Jump to content

qual é o erro?


Sota
 Share

Recommended Posts

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.
Link to comment
Share on other 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.

Link to comment
Share on other 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..

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.