Jump to content
Fórum Script Brasil
  • 0

Ajuda com Pascal (problema com variavel global)


lucas.rogerio
 Share

Question

Olá, preciso fazer uma calculadora basica sem usar variaveis globais, mas não sei como eu poderia fazer isso. Alguém poderia me ajudar?

program calc;

uses crt; 

var 
	numero1 : real;
	numero2 : real; 
	operacao : char; 
	resposta : char; 

begin
	clrscr(); 
	writeln('Programa da Calculadora Simples');
	

	repeat
	
		writeln();
		writeln('Como usar o programa:');
		writeln('1. Insira um numero e aperte a tecla ENTER');
		writeln('2. Escolha uma operacao e aperte a tecla ENTER');
		writeln('3. Insira outro numero e aperte a tecla ENTER');
		writeln('4. Informe se quer continuar fazendo calculos com o resultado dessa operacao');
		writeln('Insira s para "sim" ou n para "não", e aperte a tecla ENTER');
		writeln('5. Caso não queira, informe se quer continuar usando a calculadora');
		writeln('Insira s para "sim" ou n para "não", e aperte a tecla ENTER');
		writeln(); 
		writeln('Numeros com parte fracionaria devem ser separados com um ponto.');
		writeln('Exemplo: 4.5 (certo) | 2,3 (errado)');
		writeln(); 
		writeln('Opcoes:');
		writeln('+ Adicao');
		writeln('- Subtracao');
		writeln('* Multiplicacao');
		writeln('/ Divisao');
		writeln(); 
	
		write('Escolha o primeiro numero: ');
		readln(numero1); 
				
		repeat
			write('Escolha a operacao desejada: ');
			readln(operacao);

			case operacao of 
	
				'+':
					begin
						write('Escolha o segundo numero: ');
						readln(numero2);
						numero1 := numero1 + numero2;
					end; 
				
				'-': 
					begin
						write('Escolha o segundo numero: ');
						readln(numero2); 
						numero1 := numero1 - numero2; 
					end;
		
				'*':
					begin
						write('Escolha o segundo numero: ');
						readln(numero2); 
						numero1 := numero1 * numero2;
					end; 
		
				'/': 
					begin
						repeat
							write('Escolha o denominador: ');
							readln(numero2); 
							if numero2 = 0 then writeln('O valor do denominador não pode ser 0.');
						until numero2 <> 0; 
						numero1 := numero1 / numero2;
					end; 
			end;

			writeln('Resultado: ', numero1:5:5);
			
			repeat

				write('Deseja continuar usando esse resultado? (s/n) ');
				readln(resposta);

				if (resposta <> 'n') then
					if (resposta <> 's') then writeln('Reposta invalida. Responda s para sim ou n para não.');

			until (resposta = 'n') or (resposta = 's'); 
	
		until (resposta = 'n');
		
		clrscr();

		repeat

			write('Deseja continuar usando a calculadora? (s/n) ');
			readln(resposta);

			if (resposta <> 'n') then
				if (resposta <> 's') then writeln('Reposta invalida. Responda s para sim ou n para não.');

		until (resposta = 'n') or (resposta = 's');

	until (resposta = 'n');

	writeln('Obrigado por utilizar o Programa da Calculadora Simples!');
end. 
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...