Ir ao conteúdo
  • Cadastre-se

Algaritimo em pascal que calcula a utilizaçao de elevaodres.


diegopalos

Posts recomendados

Recebi o seguinte problema que eu preciso resolver.

Em um prédio há três elevadores denominados A, B e C. Para otmizar o sistema de controle dos elevadores, foi realizado um levantamento no qual cada usuario respondia:

- o elevador que utilizava com mais frequencia;

- o periodo que utilizava o elevador: M - matutino, V - vespertino, N - noturno;

Construa um algoritimo que calcule e imprima:

- qual é o elevador mais frequentado e em que periodo se concentra o maisr fluxo;

- qual o periodo mais usado de todos e a que elevador pertence;

- qual a diferença percentual entre o mais usado dos horarios e o menos usado;

- qual percentagem sobreo total de serviços prestados do elevador de media utilização.

Por favor quem souber como se faz esse programa, me ajude é um trabalho valendo nota para fechar o semestre da faculdade.

Link para o comentário
Compartilhar em outros sites

O programa que consegui desnvolver ate agora foi esse, nao estou consseguindo fazer o laço rodar direito quando roda ele nao interrope quando digita 0, me ajuda por favor.

Desde ja agradeço o interesse em querer ajudar.

Program elevador;
var
resposta1,resposta2:string;
qntdelva,qntdelvb,qntdelvc,prdelvm,prdelvv,prdelvn,sair:integer;

begin
resposta1:=0;
resposta2:=0;
qntdelva:=0;
qntdelvb:=0;
qntdelvc:=0;
prdelvm:=0;
prdelvv:=0;
prdelvn:0;
clrscr;
writeln('Questionario sobre a utilização dos elevadores A, B e C');
writeln('Responda as seguintes questões abaixo.');
writeln('Qual elevaodor utiliza com mais frequência A, B ou C?:');
readln(resposta1);
writeln('Qual o periodo em que mais utiliza o elevador?');
writeln('Responda: M(matutino), V(vespertino), N(noturno):');
readln(resposta2);

if resposta1='A' then qntdelva:=qntdelva+1;
if resposta1='B' then qntdelvb:=qntdelvb+1;
if resposta1='C' then qntdelvc:=qntdelvc+1;


if resposta2='M' then prdelvm:=prdelvm+1;
if resposta2='V' then prdelvv:=prdelvv+1;
if resposta2='N' then prdelvn:=prdelvn+1;




if (qntdelva>qntdelvb) and (qntdelva>qntdelvc) then
begin
writeln('O elevador mais utilizado é o A, com:',qntdelva,'vezes ao dia');
end;
if (qntdelvb>qntdelva) and (qntdelvb>qntdelvc) then
begin
writeln('O elevador mais utilizado é o B, com:',qntdelvb,'vezes ao dia');
end;
if (qntdelvc>qntdelva) and (qntdelvc>qntdelvb) then
begin
writeln('O elevador mais utilizado é o C, com',qntdelvc,'vezes ao dia');
end;
readkey;


end.

Link para o comentário
Compartilhar em outros sites

Código corrigido e comentado:


uses
crt; {necessária para CLRSCR, READKEY e outros}
var
resposta1,resposta2,sair:char; //só têm um carácter
qntdelva,qntdelvb,qntdelvc,prdelvm,prdelvv,prdelvn:integer;
begin

(*
resposta1:=0;
resposta2:=0;
*)
{String's devem ter aspas únicas, como em 'x', portanto não podem ser 0.
Além disso, não há a necessidade de zerar, pois será recebida}

qntdelva:=0;
qntdelvb:=0;
qntdelvc:=0;
prdelvm:=0;
prdelvv:=0;

(* prdelvn:0; *) {para atribuição, use := }
prdelvn:=0;
repeat //para fazer o loop
clrscr;

writeln('Questionário sobre a utilização dos elevadores A, B e C.');
writeln('Responda as seguintes questões abaixo.');
writeln('Qual elevador utiliza com mais frequência: A, B ou C?');

(*
readln(resposta1);
*)
{Use REPEAT para ignorar respostas erradas}
repeat
readln(resposta1);
until upcase(resposta1) in ['A','B','C'];

writeln('Qual o período em que mais utiliza o elevador?');
writeln('Responda: M(matutino), V(vespertino) ou N(noturno):');

(*
readln(resposta2);
*)
repeat
readln(resposta2);
until upcase(resposta2) in ['M','V','N'];
{Fiz também algumas correções ortográficas}


(*
if resposta1='A' then qntdelva:=qntdelva+1;
if resposta1='B' then qntdelvb:=qntdelvb+1;
if resposta1='C' then qntdelvc:=qntdelvc+1;
*)
{Não use tantos if's desse jeito. Use ELSE.}
if upcase(resposta1)='A' then
qntdelva:=qntdelva+1
else
if upcase(resposta1)='B' then
qntdelvb:=qntdelvb+1
else
qntdelvc:=qntdelvc+1;

(*
if resposta2='M' then prdelvm:=prdelvm+1;
if resposta2='V' then prdelvv:=prdelvv+1;
if resposta2='N' then prdelvn:=prdelvn+1;
*)
{O mesmo caso do anterior}
if upcase(resposta2)='M' then
prdelvm:=prdelvm+1
else
if upcase(resposta2)='V' then prdelvv:=prdelvv+1
else
prdelvn:=prdelvn+1;

(*
if (qntdelva>qntdelvb) and (qntdelva>qntdelvc) then
begin
writeln('O elevador mais utilizado é o A, com:',qntdelva,'vezes ao dia');
end;
if (qntdelvb>qntdelva) and (qntdelvb>qntdelvc) then
begin
writeln('O elevador mais utilizado é o B, com:',qntdelvb,'vezes ao dia');
end;
if (qntdelvc>qntdelva) and (qntdelvc>qntdelvb) then
begin
writeln('O elevador mais utilizado é o C, com',qntdelvc,'vezes ao dia');
end;
*)
{Para apenas um comando, não use BEGIN e END. Para pôr as outras possibilidades, use ELSE.}

if (qntdelva>qntdelvb) and (qntdelva>qntdelvc) then
writeln('O elevador mais utilizado é o A, com ',qntdelva,' vezes ao dia.')
else
if (qntdelvb>qntdelva) and (qntdelvb>qntdelvc) then
writeln('O elevador mais utilizado é o B, com ',qntdelvb,' vezes ao dia.')
else
if (qntdelvc>qntdelva) and (qntdelvc>qntdelvb) then
writeln('O elevador mais utilizado é o C, com ',qntdelvc,' vezes ao dia.')
else {pode acontecer empate}
if (qntdelva=qntdelvb) and (qntdelva>qntdelvc) then
writeln('Os elevadores mais usados são o A e o B, ambos com ',qntdelva,' vezes ao dia.')
else
if (qntdelva=qntdelvc) and (qntdelva>qntdelvb) then
writeln('Os elevadores mais usados são o A e o C, ambos com ',qntdelva,' vezes ao dia.')
else
if (qntdelvb=qntdelvc) and (qntdelva>qntdelva) then
writeln('Os elevadores mais usados são o B e o C, ambos com ',qntdelvb,' vezes ao dia.');

writeln;
writeln('Deseja sair? S(sim) ou N(não)?');

repeat
sair:=readkey;
until upcase(sair) in ['S','N'];

until upcase(sair)='S';

end.
Program elevador;

Não faz tudo o que pede o enunciado, mas faz o loop correto e ignora respostas erradas.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!