Ir ao conteúdo
  • Cadastre-se

Ajuda com programa para nota (complicado pra mim)


tony101

Posts recomendados

Um shopping deseja fazer uma pesquisa com seus clientes, para isso foi solictado na entrada

que o usuário informasse seu nome, idade, sexo e código correspondente ao objetivo da ida ao shopping:

Tabela:

010 COMPRAS

020 SERVIÇOS (banco, correio, etc.)

030 LAZER (cinema, jogos, etc.)

040 ALIMENTAÇÃO (restaurante e lanchonete)

1-Faça um programa que leia o percentual de indivíduos que buscavam por serviços

2-E que informe quem frequenta mais o chopping Homen ou Mulher

OBS: O programa deve ser finalizado quando o usuário digitar 'fim'

Olha só o que ja fiz.


program teste;
uses crt;
var
nome:string;
serv,idade,cont,objetivo,quant_f, quant_m : integer;
sexo:char;
p_i_s:real;


begin
p_i_s:=0;
cont:=0;
serv:=0;
quant_f:=0;
quant_m:=0;

while nome <> 'fim' do
begin
writeln( ' qual o seu nome?>>>');
readln(nome);
writeln( ' qual a sua idade?>>>');
readln(idade);
writeln( ' qual o seu sexo F/M ?>>>');
readln(sexo);
if ((sexo = 'M') or (sexo = 'm')) then

quant_m:=quant_m+1;
if ((sexo = 'F') or (sexo = 'f')) then
quant_f:=quant_f+1;

writeln( ' Digite o codigo correspondente ao seu objetivo no shopping?>>>');
writeln('-----------------------------------------------------');
writeln(' CODIGO OBJETIVO ');
writeln(' 010 COMPRAS ');
writeln(' 020 SERVICOS(BANCO,CORREIO, ETC.)');
writeln(' 030 LAZER (CINEMA, JOGOS, ETC.)');
writeln(' 040 ALIMENTACAO(RESTAURANTES E LANCHONETES');
writeln('-----------------------------------------------------');
readln(objetivo);
if objetivo = 020 then
serv:=serv+1;
end;


cont:=cont+1;


p_i_s:= cont*100;
p_i_s:= p_i_s/serv;
writeln('--------------------------------------------------');
writeln('o numero de pessoas que frequentam o shopping é:', cont);
writeln('o percentual de individuos que buscam servicos é:', p_i_s:2:2);
writeln('o numero de mulheres que frequentam o shopping é:', quant_f);
writeln('--------------------------------------------------');

writeln(' fim do prog');


readkey;
end.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Um shopping deseja fazer uma pesquisa com seus clientes, para isso foi solictado na entrada

que o usuário informasse seu nome, idade, sexo e código correspondente ao objetivo da ida ao shopping:

Tabela:

010 COMPRAS

020 SERVIÇOS (banco, correio, etc.)

030 LAZER (cinema, jogos, etc.)

040 ALIMENTAÇÃO (restaurante e lanchonete)

1-Faça um programa que leia o percentual de indivíduos que buscavam por serviços

2-E que informe quem frequenta mais o chopping Homen ou Mulher

OBS: O programa deve ser finalizado quando o usuário digitar 'fim'

Olha só o que ja fiz.


program teste;
uses crt;
var
nome:string;
serv,idade,cont,objetivo,quant_f, quant_m : integer;
sexo:char;
p_i_s:real;


begin
p_i_s:=0;
cont:=0;
serv:=0;
quant_f:=0;
quant_m:=0;

while nome <> 'fim' do
begin
writeln( ' qual o seu nome?>>>');
readln(nome);
writeln( ' qual a sua idade?>>>');
readln(idade);
writeln( ' qual o seu sexo F/M ?>>>');
readln(sexo);
if ((sexo = 'M') or (sexo = 'm')) then

quant_m:=quant_m+1;
if ((sexo = 'F') or (sexo = 'f')) then
quant_f:=quant_f+1;

writeln( ' Digite o codigo correspondente ao seu objetivo no shopping?>>>');
writeln('-----------------------------------------------------');
writeln(' CODIGO OBJETIVO ');
writeln(' 010 COMPRAS ');
writeln(' 020 SERVICOS(BANCO,CORREIO, ETC.)');
writeln(' 030 LAZER (CINEMA, JOGOS, ETC.)');
writeln(' 040 ALIMENTACAO(RESTAURANTES E LANCHONETES');
writeln('-----------------------------------------------------');
readln(objetivo);
if objetivo = 020 then
serv:=serv+1;
end;


cont:=cont+1;


p_i_s:= cont*100;
p_i_s:= p_i_s/serv;
writeln('--------------------------------------------------');
writeln('o numero de pessoas que frequentam o shopping é:', cont);
writeln('o percentual de individuos que buscam servicos é:', p_i_s:2:2);
writeln('o numero de mulheres que frequentam o shopping é:', quant_f);
writeln('--------------------------------------------------');

writeln(' fim do prog');


readkey;
end.

Olá,

Qual é sua dúvida?

Mas em fim, como comentar alguns detalhes do programa.

1) If simples x If com ELSE

  if ((sexo = 'M') or (sexo = 'm')) then
quant_m:=quant_m+1;
if ((sexo = 'F') or (sexo = 'f')) then
quant_f:=quant_f+1;

Quando se trata de proposições mutualmente exclusivas, ou seja, que só podem ser uma ou outra (ou nenhuma), mas nunca as duas ao mesmo ao tempo, deve-se usar o ELSE...

  if ((sexo = 'M') or (sexo = 'm')) then
quant_m:=quant_m+1
else if ((sexo = 'F') or (sexo = 'f')) then
quant_f:=quant_f+1;

2) Contabilidade do "objetivo"

Da mesma forma do caso do "Sexo", no "objetivo" deve se usar com um if/else.

ex..: (mais ou menos assim)

  readln(objetivo);
if objetivo = 010 then
objt:=objt+1
else if objetivo = 020 then
serv:=serv+1
else if objetivo = 030 then
lazer:=lazer+1
else if objetivo = 040 then
alim:=alim+1

Você pode uma o CASE no lugar dos ifs também...

3) Contador de pessoas

Você está colocando o contador de pessoas (de loops no while) fora do end do while... ai o resultado sempre vai ser 1 !!!

Esse contador tem que está no "bloco" begin/end do while, já que no caso cada loop (volta) será uma pessoa.

4)Tratar possíveis erros

No caso, é possível que o usuário digite dados inválidos, como códigos inexistentes, ou um sexo que não seja M ou F.. etc. Mas isso você pode deixar para ver depois!!!

***

Se não se ajudei muito, mas tente implementar o restante do código... se precisar de ajudar é só avisar.

Abraços

Link para o comentário
Compartilhar em outros sites

Olá,

Qual é sua dúvida?

Mas em fim, como comentar alguns detalhes do programa.

1) If simples x If com ELSE

Quando se trata de proposições mutualmente exclusivas, ou seja, que só podem ser uma ou outra (ou nenhuma), mas nunca as duas ao mesmo ao tempo, deve-se usar o ELSE...

  if ((sexo = 'M') or (sexo = 'm')) then
quant_m:=quant_m+1
else if ((sexo = 'F') or (sexo = 'f')) then
quant_f:=quant_f+1;

2) Contabilidade do "objetivo"

Da mesma forma do caso do "Sexo", no "objetivo" deve se usar com um if/else.

ex..: (mais ou menos assim)

  readln(objetivo);
if objetivo = 010 then
objt:=objt+1
else if objetivo = 020 then
serv:=serv+1
else if objetivo = 030 then
lazer:=lazer+1
else if objetivo = 040 then
alim:=alim+1

Você pode uma o CASE no lugar dos ifs também...

3) Contador de pessoas

Você está colocando o contador de pessoas (de loops no while) fora do end do while... ai o resultado sempre vai ser 1 !!!

Esse contador tem que está no "bloco" begin/end do while, já que no caso cada loop (volta) será uma pessoa.

4)Tratar possíveis erros

No caso, é possível que o usuário digite dados inválidos, como códigos inexistentes, ou um sexo que não seja M ou F.. etc. Mas isso você pode deixar para ver depois!!!

***

Se não se ajudei muito, mas tente implementar o restante do código... se precisar de ajudar é só avisar.

Abraços

Olá... Muito obrigado, você ajudou sim.

Olha, hoje com alguns colegas consegui resolver a questão, de qualquer forma, vou analisar suas dicas sobre o código, pois irá me ajudar no aprendizado.

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