• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Sota

[ajuda] qual é o erro?

4 mensagens neste tópico

BOm pessoal tenho seguinte problema tenho este pa um trabalho de faculdade so que ele ao compilar disme que a um erro type mismatch nas linhas a vermelho e noutra que basicamente sao iguais a essas

program trabalho_3;
type
     tipohorario = array ['A'..'F',441..446] of string[6];
var hor : tipohorario;
   f:char;
procedure tabela ;
var x:char; y: integer;
begin
    for x:='A' to 'F' do
        for y:=441 to 446 do
    hor[x,y]:= '' ;
    hor['A',441]:= '09:10';
    hor['A',444]:='15:35 ';
    hor['A',446]:=' 07:40';
    hor['B',442]:= '10:30';
    hor['B',444]:=' 17:50';
    hor['C',441]:= '11:20';
    hor['C',442]:= '11:10';
    hor['D',444]:= '19:00';
    hor['D',445]:= '19:30';
    hor['E',442]:= '13:40';
    hor['E',445]:= '20:40';
    hor['F',441]:= '14:00';
    hor['F',445]:= '21:50';
    hor['F',446]:= '11:00';
    hor['B',441]:= '|';
    hor['D',441]:= '|';
    hor['E',441]:= '|';
    hor['D',442]:= '|';
    hor['C',444]:= '|';
    hor['B',446]:= '|';
    hor['C',446]:= '|';
    hor['D',446]:= '|';
    hor['E',446]:= '|';


end;
procedure apagar;
var x: integer; e,c:char;
begin
    writeln('insira a estação');
    read (e);
    writeln('insira o comboio');
    readln(c);
    if (ORD(e) < 65) or (ord(e)> 70) then
       writeln('ERRO ESSA ESTAÇÃO NAO EXISTE')
    else
    begin

          if (hor[chr( ord(e)+1 ),c] <> '') then
            writeln('ERRO NAO PODE APAGAR ESSA PARAGEM')
         else
             hor[e,c]:='';
         x:=0;
         while (hor[chr(ord( e )-x),c] = '|') do          begin
               hor[chr(ord( e )-x),c]:='';
               x:=x-1;
         end;

    end;

    while (hor[chr(ord( e )-x),c] = '|') do
    begin
         hor[chr(ord( e )-x),c]:='';         
         x:=x-1;
    end;

end;

procedure suprimir;
var e,c:char;
begin
    writeln('insira a estação');
    read (e);
    writeln('insira o comboio');
    readln(c);
    if (ORD (e) < 65) or (ord (e) > 70) then
       writeln('ERRO ESSA ESTAÇÃO NAO EXISTE');
    else
        begin

             if (hor[chr(ord +1),c] = '') or (hor[chr(ord -1),c] = '') then
                writeln('ERRO NAO PODE SUPRIMIR ESSA PARAGEM');
             else
                 hor[e,c].para:='|';

        end;

begin
tabela;
repeat
    writeln('Diga a opçao que quer');
readln(f);

case f of
'A': apagar;
'S': suprimir;
'M': modificar;
end;
until f= 0;



readln
end.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

como esse nao tava a dar tentei implemtar o programa de outra forma.

mas da o mesmo erroa onde desta vez e capaz de aparecer mm a cor se poderem ajudar a decubrir qual o erro ai csg modificar nos outros sitios.

program trabalho_3;

type horario = record

para: boolean;

passa:boolean;

hora :string[6] ;

passagem: char;

end;

tipohorario = array ['A'..'F',441..446] of horario;

var hor : tipohorario;

f:char;

procedure tabela ;

var e:char; c: integer;

begin

for e:='A' to 'F' do

for c:=441 to 446 do

begin

hor[e,c].para:=false;

hor[e,c].passa:=false;

hor[e,c].hora:='0';

hor[e,c].passagem:='0';

end;

hor['A',441].para:=true; hor['A',441].passa:=false; hor['A',441].hora:='09:10';

hor['A',444].para:=true; hor['A',444].passa:=false; hor['A',444].hora:='15:35';

hor['A',446].para:=true; hor['A',446].passa:=false; hor['A',446].hora:='07:40';

hor['B',442].para:=true; hor['B',442].passa:=false; hor['B',442].hora:='10:30';

hor['B',444].para:=true; hor['B',444].passa:=false; hor['B',444].hora:='17:50';

hor['C',441].para:=true; hor['C',441].passa:=false; hor['C',441].hora:='11:20';

hor['C',442].para:=true; hor['C',442].passa:=false; hor['C',442].hora:='11:10';

hor['D',444].para:=true; hor['D',444].passa:=false; hor['D',444].hora:='19:00';

hor['D',445].para:=true; hor['D',445].passa:=false; hor['D',445].hora:='19:30';

hor['E',442].para:=true; hor['E',442].passa:=false; hor['E',442].hora:= '13:40';

hor['E',445].para:=true; hor['E',445].passa:=false; hor['E',445].hora:= '20:40';

hor['F',441].para:=true; hor['F',441].passa:=false; hor['F',441].hora:= '14:00';

hor['F',445].para:=true; hor['F',445].passa:=false; hor['F',445].hora:= '21:50';

hor['F',446].para:=true; hor['F',446].passa:=false; hor['F',446].hora:= '11:00';

hor['B',441].passagem:= '|'; hor['B',441].para:= false; hor['B',441].passa:= true;

hor['D',441].passagem:= '|'; hor['D',441].para:= false; hor['D',441].passa:= true;

hor['E',441].passagem:= '|'; hor['E',441].para:= false; hor['E',441].passa:= true;

hor['D',442].passagem:= '|'; hor['D',442].para:= false; hor['D',442].passa:= true;

hor['C',444].passagem:= '|'; hor['C',444].para:= false; hor['C',444].passa:= true;

hor['B',446].passagem:= '|'; hor['C',444].para:= false; hor['C',444].passa:= true;

hor['C',446].passagem:= '|'; hor['C',446].para:= false; hor['C',446].passa:= true;

hor['D',446].passagem:= '|'; hor['D',446].para:= false; hor['D',446].passa:= true;

hor['E',446].passagem:= '|'; hor['E',446].para:= false; hor['E',446].passa:= true;

end;

procedure apagar;

var x: integer; e,c:char;hor:tipohorario;

begin

writeln('insira a estação');

read (e);

writeln('insira o comboio');

readln©;

if (ORD(e) < 65) or (ord(e)> 70) then

writeln('ERRO ESSA ESTAÇÃO NAO EXISTE')

else

begin

if ((hor[chr(ord(e)+1),c].para)

or (hor[chr(ord( e )+1),c].passa))

and ((hor[chr(ord( e )-1),c].para)

or (hor[chr(ord( e )-1),c].passa)) then writeln('ERRO NAO PODE APAGAR ESSA PARAGEM')

else

begin

hor[e,c].para:=false;

hor[e,c].passa:=false;

hor[e,c].hora:='0';

hor[e,c].passagem:='0';

end;

x:=1;

while (hor[chr(ord( e )-x),c].passa ) do

begin

hor[e,c].para:=false;

hor[e,c].passa:=false;

hor[e,c].hora:='0';

hor[e,c].passagem:='0';

x:=x+1;

end;

end;

end;

procedure suprimir;

var e,c:char;

begin

writeln('insira a estação');

read (e);

writeln('insira o comboio');

readln©;

if (ORD (e) < 65) or (ord (e) > 70) then

writeln('ERRO ESSA ESTAÇÃO NAO EXISTE')

else

begin

if (hor[chr(ord(e)+1),c].para = true) or (hor[chr(ord(e) +1),c].passa= true)

and (hor[chr(ord(e) -1),c].para) or (hor[chr(ord(e) -1),c].passa) then

begin

hor[e,c].para:=false; hor[e,c].passa:=true; hor[e,c].hora:='0'; hor[e,c].pasagem:='|';

end

else

writeln('ERRO NAO PODE SUPRIMIR ESSA PARAGEM')

end;

begin

tabela;

repeat

writeln('Diga a opçao que quer');

readln(f);

case f of

'A': apagar;

'S': suprimir;

'M': modificar;

end;

until f= 0;

readln

end.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Corrigir código é das coisas mais chatas e dificeis que há.. há tantas formas de se resolver o mesmo problema, que por vezes nem se percebe o que o outro escreve..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora