Ir ao conteúdo
  • Cadastre-se

Isaac Maciel

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

0
  1. Na verdade não é que esteja incompleto. Ele pede pra o usuário colocar a quantidade de alunos em 5 salas, e depois o próprio soft calcula os alunos acima da média... (Estou resolvendo exercício do Livro de Lógica de Programação, e surgiu essa duvida por causa do WHILE que não consegue efetuar o cálculo)
  2. Galera estou aprendendo vetores em Pasca e utilizei o mesmo problema com as três estruturas de repetições: While,For e Repeat. Usando o Repeat e o For o vetor MEDIA recebe um valor, porém ao usar o While o vetor MEDIA sempre recebe o valor de 0. Aqui esta o algoritmo com as três estruturas, vale lembrar que com a While deixei incompleto pois a MEDIA não funciona: var sala: array[1..6] of integer;i,soma: integer;media:real;//Algoritmo para captar numero de alunos de cada sala e depois descobrir quantos alunos estão acima da media geral das salas (REPEAT)Beginsoma:=0;i:=1;repeatwriteln('Informe o numero de alunos da sala ',i);readln(sala[i]);soma:= soma + sala[i];i:= i+1;until (i>5);media:= soma/5;i:=1;repeatwriteln(' A sala ',i,' possui ', sala[i] - media:6:2, ' alunos acima da media');i:=i+1;readln;until (i>5); End. ----------------------------- var sala: array[1..6] of integer;i,soma: integer;media: real;//Algoritmo para captar numero de alunos de cada sala e depois descobrir quantos alunos estão acima da media geral das salas (FOR) Beginsoma:=0;for i:=1 to 5 dobeginwriteln('Informe o numero de alunos da sala ',i);readln(sala[i]);soma:= soma + sala[i];end;media:= soma/5;for i:=1 to 5 dobeginwriteln(' A sala ',i,' possui ', sala[i] - media:6:2, ' alunos acima da media');readln;end;end. -------------------------------------------- var sala: array[1..6] of integer;i,soma: integer;media: real;// Algoritmo para captar numero de alunos de cada sala e depois descobrir quantos alunos estão acima da media geral das salas// porém o calculo da média sempre resulta em zero usando o WHILEBeginsoma:=0;i:=1;while (i<=5) dobeginwriteln('Informe o numero de alunos da sala ',i);readln(sala[i]);i:=i+1;soma:= soma + sala[i];media:= soma/5;end;writeln(media);End.
  3. Obrigado cara por ter aberto a minha mente. Tirei o diferente e atribui o valor iguale realmente funcionou.. write ('DIGITE SOMENTES AS OPERAÇÕES ( + / * - )'); read (op); until (op = '+') or (op = '-') or (op = '*') or (op = '+'); Uma dúvida.. porque o readln em vez do somente read?
  4. Galera estou estudando em pascal, e resolvi fazer uma calculadora básica... No campo que é para digitar a operação desejada, eu quero somente que o usuário digite as operações, caso ele digite uma letra ou número, quero que a pergunta seja refeita até que ele acerte alguma operação (estrutura de repetição) Eu estou usando while e dando as sentenças, na hora de compilar não da erro algum, mas quando coloco de forma proposital algum numero ou carácter que não seja as operações, o while não fiunciona, e a pergunta não é refeita, aqui esta o código, se alguém puder me ajudar no meu possível erro eu agradeço... Program Pzim ;var op : sring;soma1,soma2,resultado : real;Beginwrite ('Informe o primeiro número: ');read (soma1);write ('Informe a operação desejada ( + / * - ) ');read (op);while (op = '+') or (op = '-') or (op = '*') or (op = '+') dobeginwrite ('DIGITE SOMENTES AS OPERAÇÕES ( + / * - )');read (op);end;write ('Informe o segundo número: ');read (soma2);if op = '+' thenbeginresultado := soma1 + soma2;writeln('O Resultado é de: ', resultado:0:3);end; if op = '-' thenbeginresultado := soma1 - soma2;writeln('O Resultado é de: ', resultado:0:3); end; if op = '*' thenbeginresultado := soma1 * soma2;writeln('O Resultado é de: ', resultado:0:3); end; if op = '/' thenbeginresultado := soma1 / soma2;writeln('O Resultado é de: ', resultado:0:3); end; // O Problema era esse, ignorava o WHILE. Resolvi usar o Repeat Untilwrite ('Informe o primeiro número: '); read (soma1); write ('Informe a operação desejada ( + / * - ) '); read (op); repeat write ('DIGITE SOMENTES AS OPERAÇÕES ( + / * - )'); read (op); until (op <> '+') or (op <> '-') or (op <> '*') or (op <> '+'); write ('Informe o segundo número: '); read (soma2); if op = '+' then begin resultado := soma1 + soma2; writeln('O Resultado é de: ', resultado:0:3); end; if op = '-' then begin resultado := soma1 - soma2; writeln('O Resultado é de: ', resultado:0:3); end; if op = '*' then begin resultado := soma1 * soma2; writeln('O Resultado é de: ', resultado:0:3); end; if op = '/' then begin resultado := soma1 / soma2; writeln('O Resultado é de: ', resultado:0:3); end; sendo que agora, ele ignora qualquer valor no campo de operedaroes somente pela primeira vez, e depois exibe a nova mensagem que eu coloquei no Until, deixando passar qualquer valor.. O que estou errando nessas sentenças de repetições galera? E como criaria um Menu para o usuário querer sair do programa ou executar outro calculo? to na espera, obrigado desde ja!

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