Ir ao conteúdo
  • Cadastre-se

Ajuda em exercício ferrovia.


Ir à solução Resolvido por Sandro Rodrigues_367994,

Posts recomendados

Boa tarde! gostaria de saber se alguem pode me orientar num exercício que não estou conseguindo resolver.

segue o enuciado do exercicio.

 

Elaborar um programa para informar onde o trem do correio vai parar em uma ferrovia.
a)cada parada tem 75 km
b)todo correio fica numa parada
c)O trem não pode percorrer mais de  250 km sem parada.

Deve pedir ao usuário quantos quilometros tem a ferrovia
Deve pedir quantas parada de correio ele precisa
Deve pedir em que quilometro ele precisa entregar a encomenda.

o programa deve imprimir assim
se o usuario informou que a ferrovia tinha 500 km.
e que teria uma encomenda para entregar no km 75, 306, 400.
se ele tiver uma encomeda menor que a parada ele deve entregar na parada anterior, sempre no inicio ou é parada normal ou é parada correio caso onde ele vai entregar a encomenda seja inferior a 75. deve se ainda informar a quantidade de paradas que a rodovia tem.
A ferrovia possui 7 parada
Parada 1 (0 km)-Parada normal
Parada 2 (75 km)-sem parada.
Parada 3 (150 km)-sem parada.
Parada 4 (225 km)-sem parada.
Parada 5 (300 km)-Parada correio.
Parada 6 (375 km)-Parada correio.
Parada 7 (450 km)-Parada normal.

 

código

******************************************

Program Ferrovia ;varparada1,parada2,parada3,parada:string;ferrovia,qt,li,i,cont,km:integer;vet:array[1..10000] of integer;Begin  {******alimentar as variáveis com o tipo****}  parada1:=('parada normal');  parada2:=('Sem parada');  parada3:=('parada correio');  {*****Coletar informação do tamanho da ferrovia****}  writeln('Informe o tamanho da ferrovia');  readln(ferrovia);  {***coletar a informações de quantidade de parada***}  writeln('informe quantidade de paradas');  readln(qt);   ferrovia:=(ferrovia div 75)+1;// calcula a quantidade de kms que a ferrovia tem  {***coletar os numeros que as paradas estão localizadas***}  for i:=1 to qt do  begin    writeln('Informe o numero de localização das paradas');    readln(li);    {***atribuir o valor das parada correio no km onde será ligado ao vetor.***}    vet[i]:=(li div 75);  end;  writeln('');//pular uma linha para ter espaço na resposta  {***Informar a quantidade de km***}  writeln('A ferrovia possui ',ferrovia,' parada');  {***Laço para apresentar onde cada km está até o fim da ferrovia***}  for i:=1 to ferrovia do  begin    cont:=cont+1; //contar onde cada km está    if(vet[i]=cont)and(vet[i]<km)then //comparar se o numero onde está o correio é onde tem uma parada    begin      parada:=parada3;//mostrar no km em que tem uma para correio    end;    if(vet[i]<>cont)then //comparar se o km não tem correio    begin      parada:=parada2;//mostrar no km em que está sem parada    end;    if(vet[i]=cont)and(vet[i]<>km)then //comparar se o numero onde está correio é onde tem um km    begin      parada:=parada1;//mostrar no km em que tem uma parada normal    end;    writeln('Parada ',cont,' (',km,'  quilometros)-',parada);//saida de resultados.    km:=km+75;  end;End.
Link para o comentário
Compartilhar em outros sites

  • Solução

Não sei se seria o mais certo, no momento  faria assim.

Program Pzim ;varv:array[1..1000] of integer;t,q,n,p,cont,ax,m,i,b,j,vCount,pt,ax1,c:integer;esta:integer;Begin  ClrScr;  esta:=0;  c:=1;  m:=0;  pt:=1;  vCount := 1; //variavel do contador do vetor  cont:=1;  ax:=75;  ax1:=2;  writeln('Informe o tamanho da Ferrovia');  readln(t);  writeln('Informe a quantidade de parada');  readln(q);  p:=t div 75+1;    for i:=1 to q do  begin    writeln('Informe o numero da parada');    readln(v[i]);  end;  for i:=1 to q do//Ordenar o vetor em ordem crescente.  begin    for j:=1 to q do    begin      if(v[j] > v[i])then      begin        b:=v[i];        v[i]:=v[j];        v[j]:=b;      end;    end;  end;  writeln('');  writeln('A rua ferrovia ',p,' paradas');  Writeln('');  for i:=1 to p do //Comparar o valor do vetor com as paradas  begin    while(cont < p+1)do    begin      if(i=c)and(v[vCount]>ax)then      begin        writeln('Parada ',pt,' (',m,' metros - Parada Normal ');        esta:=1;      end else      if(m mod 225=0)and(esta<>1)then      begin        writeln('Parada ',pt,' (',m,' metros - Parada Normal ');        esta:=1;      end else      if(v[vCount]>ax1)and(v[vCount]<ax)and(esta<>1)then      begin        writeln('Parada ',pt,' (',m,' metros - Parada correio ');        vCount := vCount + 1;        esta:=1;      end;      if(esta=0)then      begin        writeln('Parada ',pt,' (',m,' metros - Sem parada ');      end;      esta:=0;      c:=4;      ax:=ax+75;      ax1:=ax1+73;      m:=m+75;      pt:=pt+1;      cont:=cont+1;    end;  end;end.
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...