[Pascal] exercicio - Tabela Classificativa

g0rTh1k

Membro
Uma Associação Cultural e Desportiva (ACD) de âmbito regional pretende actualizar cada fim-de-semana a tabela classificativa da terceira divisão distrital de futebol, para a disponibilizar aos seus sócios.
Escreva um programa em linguagem Pascal que proporcione à ACD as seguintes funcionalidades:
a) Ler de um dado ficheiro binário a tabela classificativa correspondente à jornada anterior;
b) Listar no ecrã do computador a tabela lida;
c) Actualizar a tabela classificativa, mediante os resultados da nova jornada;
d) Actualizar o conteúdo do ficheiro binário, substituindo-o pela nova tabela;
e) Manter um ficheiro de texto actualizado com os resultados das sucessivas jornadas da época.
OBSERVAÇÕES
a) A estrutura de dados utilizada para representar cada clube da tabela deverá incluir records (registos) para guardar os dados de cada clube participante (nome, número de pontos, número de jogos, vitórias, empates, total de golos, etc.) e arrays para guardar os clubes;
b) O programa deverá ser devidamente estruturado com subprogramas (funções e procedimentos);
c) A actualização da tabela deverá incluir a respectiva ordenação, usando um algoritmo adequado.

Alguém me consegue ajudar a resolver este exercicio? Eu estou mesmo à nora :S Dêem-me ajuda pur favoreee :'(
 
Eu não pretendo que me façam o programa, queria era que me dissessem por onde começar e me dessem umas luzes para me guiar por elas. Dizerem que tipo de procedimentos devo fazer, do género, "fazer um procedimento para converter blablabla". Cenas assim, nada de mais..
 
Lol mas esse é o objectivo do "trabalho de casa".

Programar não é escrever código... quando fizeres teste não vais ter ninguém para te dizer o que fazer ( em princípio... ) Portanto tens de ter ou desenvolver essa capacidade.

Dúvidas no código é uma coisa... Como fazer é outra (Até porque depende do raciocínio de cada um).
Cumps.
 
ler ficheiro:
var fich:text;
assign(fich,'ficheiro.dat');
reset (fich);
while not eof(fich) do
begin
...
..
.
end;
nota k o ficheiro é .dat porque é um ficheiro binario

mostar o conteudo do ficheiro no ecrã:
var fich:text;
assign(fich,'ficheiro.dat');
reset (fich);
while not eof(fich) do
begin
read(fich,maria);
read(fich,tone);
end;
writeln(tone);
writeln(maria);





espero ter ajudado em algo....desculpa mas tenho as maos frias e nao da jeito a escrever
cumps :S
 
Podem-me ajudar nas seguintes funçoes?


actualizar a tabela

Código:
procedure actualiza_tabela(nc:integer;var v:vector; var f:ficheiro);
var gm,gs,i:integer;
    c:integer;
begin
  writeln('Digite os resultados que cada equipa obteve: 1:vitoria; 2:empate; 3:derrota');
  for i:=1 to nc do
    begin
      write(v[i].nome,': ');
      readln(c);
      case c of
        1:begin v[i].pontos:=v[i].pontos + 3;
                v[i].vitoria:=v[i].vitoria + 1;
                v[i].jogos:=v[i].jogos+1;
                repeat
                  write('Numero de golos marcados? ');
                  readln(gm);
                  Write('Numero de golos sofridos? ');
                  readln(gs);
                until (gm>gs);
            end;
        2:begin v[i].pontos:=v[i].pontos + 1;
                v[i].empate:=v[i].empate + 1;
                v[i].jogos:=v[i].jogos+1;
                repeat
                  write('Numero de golos marcados? ');
                  readln(gm);
                  Write('Numero de golos sofridos? ');
                  readln(gs);
                until (gm=gs);
          end;
        3:begin v[i].derrota:=v[i].derrota + 1;
                v[i].jogos:=v[i].jogos+1;
                repeat
                  write('Numero de golos marcados? ');
                  readln(gm);
                  Write('Numero de golos sofridos? ');
                  readln(gs);
                until (gm<gs);
          end;
      end;
      v[i].golos_m:=v[i].golos_m+gm;
      v[i].golos_s:=v[i].golos_s+gs;
      {write(f,v[i]);}
    end;
end;

Ordenar Tabela

Código:
procedure ordena_tabela(n:integer;var v:vector);
var i,j:integer;
    tmp:clube;
    houvetroca:boolean;
begin
  i:=n;
  repeat
    houvetroca:=false;
    for j:=1 to i-1 do
      if v[j].pontos<v[j+1].pontos then
        begin
          tmp:=v[j+1];
          houvetroca:=true
        end
      else
        if v[j].pontos=v[j+1].pontos then
          if (v[j].golos_m-v[j].golos_s)<(v[j+1].golos_m-v[j+1].golos_s) then
            begin
              tmp:=v[j+1];
              houvetroca:=true;
            end;
    i:=i-1;
  until (not houvetroca) or (i=1);
end;
 
ja tenho este problema resolvido e o projecto feito, só queria saber agora se me podem explicar como funcionar com o gotoxy, pois preciso de colocar os dados direitos na tabela...
 
Back
Topo