Ir ao conteúdo
  • Cadastre-se

Programação pascal loop até que digite o comando de saida


Posts recomendados

pessoal, to com esse exercício pra fazer e não consigo desenvolver a segunda tela, a primeira já esta feita, alguém pode me ajudar? segue a primeira tela

Program ATIVIDADE3 ;
VAR
PRODCR: STRING;
PRECOCR: REAL;
QUANTCR: INTEGER;
TOTALPCR: REAL;
TOTALCCR: REAL;
DESCCR: REAL;
TOTALLCR: REAL;
RESPCR:CHAR; //CONTROLE DO LAÇO
 Begin
    REPEAT
     CLRSCR; //LIMPAR A TELA
     WRITELN ( ' SISTEMA COMPRA/VENDA - TELA ENTRADA ');
     WRITELN ( ' ----------------------------------- ');
     WRITELN ( ' PRODUTO---------------------------- ');
     READLN  ( PRODCR );
     WRITELN ( ' PREÇO UNITÁRIO--------------------- ');
     READLN  ( PRECOCR );
     WRITELN ( ' QUANTIDADE------------------------- ');
     READLN  ( QUANTCR );
     WRITELN ( '------------------------------------ ');
     TOTALPCR:= PRECOCR*QUANTCR;
     TOTALCCR:= TOTALCCR+TOTALPCR;
     WRITELN ( ' TOTAL PARCIAL----:', TOTALPCR:0:2);
     WRITELN ( 'TOTAL DA COMPRA---:', TOTALCCR:0:2);
     WRITELN ( '---------------------------------');
     WRITE ( 'OUTRO PRODUTO ( S/N )?');
     READLN ( RESPCR );
     UNTIL ( RESPCR = ' N ' );
  
 End.

 

programação.jpg

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @kakajr10. Seja bem vindo ao Fórum do Clube do Hardware...

 

Alguns ponto que acho importante:

 

1) Padrão do texto do código

Não use CAIXA ALTA, pois dificulta a leitura das informações (e parece que tá gritando).

 

Veja a diferença:

program Atividade3;
var
  prodcr  :string;
  precocr :real;
  quantcr :integer;
  totalpcr:real;
  totalccr:real;
  desccr  :real;
  totallcr:real;
  respcr  :char; //controle do laço
BEGIN
repeat
  ClrScr; //limpar a tela
  writeln(' SISTEMA Compra/Venda - Tela Entrada');
  writeln(' -----------------------------------');
  writeln(' Produto----------------------------');
  readln(prodcr);
  writeln(' Preço Unitário---------------------');
  readln(precocr);
  writeln(' Quantidade-------------------------');
  readln(quantcr);
  writeln(' -----------------------------------');
  totalpcr:=precocr*quantcr;
  totalccr:=totalccr+totalpcr;
  writeln(' Total Parcial-----: ',totalpcr:0:2);
  writeln(' Total da Compra---: ',totalccr:0:2);
  writeln(' -----------------------------------');
  write  (' Outro produto <s/n> ?'); readln(respcr);
until (respcr = ' n ');
END.

Obs.: já fiz alguns ajustes para tentar ajudar...
Obs.2: 

 

2) Condição do repeat

Lá no until não existe esses espaços... fica apenas 'n' (não ' n ').

 

3) Padronização do texto

Da mesma forma que o Total Parcial e Total da Compra, o texto na parte de cima tem que ficar no lado, e não embaixo (use também write - sem o ln)

 

4) Segunda tela

O próprio enunciado já explica como faz.

Basta usar os write/writeln e os readln de modo que fique parecido com a tela do anexo, assim como efetuar a referida conta...é bem parecido com a primeira tela, a diferença que não precisa de um repeat/until.

 

5) O que significar esses "CR" no final de cada variável???

Não entendi...

 

***

 

No aguardo

 

 

Link para o comentário
Compartilhar em outros sites

@Simon Viegas  meu amigo, nao estou conseguindo fazer o programa funcionar, pode me ajudar?

Program ATIVIDADE3 ;
VAR
PRODCR: STRING;
PRECOCR: REAL;
QUANTCR: INTEGER;
TOTALPCR: REAL;
TOTALCCR: REAL;
DESCCR: REAL;
TOTALLCR: REAL;
RESPCR:CHAR; //CONTROLE DO LAÇO

 Begin
    REPEAT
     CLRSCR; //LIMPAR A TELA
     WRITELN ( ' SISTEMA COMPRA/VENDA - TELA ENTRADA ');
     WRITELN ( ' ----------------------------------- ');
     WRITELN ( ' PRODUTO---------------------------- ');
     READLN  ( PRODCR );
     WRITELN ( ' PREÇO UNITÁRIO--------------------- ');
     READLN  ( PRECOCR );
     WRITELN ( ' QUANTIDADE------------------------- ');
     READLN  ( QUANTCR );
     WRITELN ( '------------------------------------ ');
     TOTALPCR:= PRECOCR*QUANTCR;
     TOTALCCR:= TOTALCCR+TOTALPCR;
     WRITELN ( ' TOTAL PARCIAL----:', TOTALPCR:0:2);
     WRITELN ( 'TOTAL DA COMPRA---:', TOTALCCR:0:2);
     WRITELN ( '---------------------------------');
     WRITE ( 'OUTRO PRODUTO ( S/N )?');
     READLN ( RESPCR );
     UNTIL ( RESPCR = ' N ' );
   READLN;  
   //INICIO DOS CALCULOS
   IF(TOTALCCR<100)THEN DESCCR:=TOTALCCR*0.10
                 ELSE
              IF(TOTALCCR>=100)THEN DESCCR:=TOTALCCR*0.20;
                            
   TOTALCCR:=TOTALCCR-DESCCR;
   CLRSCR;
   WRITELN ('------------------------------');
   WRITELN ( ' SISTEMA COMPRA/VENDA - TELA SAIDA ');
   WRITELN ('------------------------------');
   WRITELN (' TOTAL DA COMPRA:',TOTALPCR:0:2 );
   WRITELN (' DESCONTO:',DESCCR:0:2         );
   WRITELN (' TOTAL LIQUIDO:',TOTALLCR:0:2 );
   WRITELN ('------------------------------');
   WRITELN ('FIM DE PROGRAMA, TECLE ENTER'  );

  
 End.

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @kakajr10.

 

Por favor, siga as orientações passadas na minha postagem anterior.

 

Em relação ao item 1), abaixo já deixo seu código com letras minúsculas. Favor usar esse código... faltando apenas fazer alguns pequenos ajustes em algumas palavras que devem ficar todo em maiúsculo ou só as iniciais.

 

program atividade3;
var
  prodcr  :string;
  precocr :real;
  quantcr :integer;
  totalpcr:real;
  totalccr:real;
  desccr  :real;
  totallcr:real;
  respcr  :char; //controle do laço

BEGIN
repeat
  ClrScr; //limpar a tela
  writeln(' sistema compra/venda - tela entrada ');
  writeln(' ----------------------------------- ');
  writeln(' produto---------------------------- ');
  readln(prodcr);
  writeln(' preço unitário--------------------- ');
  readln(precocr );
  writeln(' quantidade------------------------- ');
  readln(quantcr );
  writeln('------------------------------------ ');
  totalpcr:= precocr*quantcr;
  totalccr:= totalccr+totalpcr;
  writeln(' total parcial----:', totalpcr:0:2);
  writeln('total da compra---:', totalccr:0:2);
  writeln('---------------------------------');
  write( 'outro produto ( s/n )?');
  readln(respcr);
until (respcr=' n ');
readln;
//inicio dos calculos
if (totalccr<100) then
  desccr:=totalccr*0.10
else
  if(totalccr>=100)then desccr:=totalccr*0.20;
    totalccr:=totalccr-desccr;
ClrScr;
writeln('------------------------------');
writeln( ' sistema compra/venda - tela saida ');
writeln('------------------------------');
writeln(' total da compra:',totalpcr:0:2 );
writeln(' desconto:',desccr:0:2         );
writeln(' total liquido:',totallcr:0:2 );
writeln('------------------------------');
writeln('fim de programa, tecle enter'  );
END.

 

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