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

Sign in to follow this  
Sota

qual é o erro?

Recommended Posts

Sota

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.

Share this post


Link to post
Share on other sites
Sota

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.

Share this post


Link to post
Share on other sites
Warrior

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..

Share this post


Link to post
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
Sign in to follow this  

×

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.