Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luiz Phelipe Steinbach

problema no final de um algoritmo

Recommended Posts

Galera, tô com um problema no final de um algoritmo, faço tudo OK, só que chego no final o sistema de busca por número pelo número do vetor não bate, é em Pascal, programação básica, mas mesmo assim, estou a horas e não consigo, alguém poderia me dar uma ajuda ? o Exemplo abaixo:

 

Considere que você tenha um vetor (Meses), já preenchido com 12 literais, onde em cada posição exista o nome de um mês.

Considere também que você deverá fazer 100 leituras armazenando-as em um vetor, onde em cada leitura o usuário irá digitar um número entre 1 e 12 ( representando o número de um mês), e um valor (REAL). Após a digitação de todos as 100 leituras mostrar na tela o nome da cada um dos meses e o seu saldo atual. Para esta questão você deverá utilizar registros para armazenar TSaldo dentro de um vetor

Program T;
 
type TSaldo = record

		nomeDoMes : array [1..12] of string;

		saldo : array [1..3] of real;
		
		nrmes : array [1..3] of integer;
end; 
 
 
var
messaldo:TSaldo;
cont, i :integer;
 
 Begin
   //-- Declaração dos nomes dos meses --// 
   
  
   	writeln ('--- Lista de Meses ---');
   	writeln ('');
   	messaldo.nomeDoMes[1]:='Janeiro - 1';
   	writeln (messaldo.nomeDoMes[1]);
   	writeln ('');
   	messaldo.nomeDoMes[2]:='Fevereiro - 2';
   	writeln (messaldo.nomeDoMes[2]);
   	writeln ('');
   	messaldo.nomeDoMes[3]:='Março - 3';
   	writeln (messaldo.nomeDoMes[3]);
   	writeln ('');                                                        
   	messaldo.nomeDoMes[4]:='Abril - 4';
   	writeln (messaldo.nomeDoMes[4]);
   	writeln ('');
   	messaldo.nomeDoMes[5]:='Maio - 5';
   	writeln (messaldo.nomeDoMes[5]);
   	writeln ('');
   	messaldo.nomeDoMes[6]:='Junho - 6';
   	writeln (messaldo.nomeDoMes[6]);            
   	writeln ('');
   	messaldo.nomeDoMes[7]:='Julho - 7';
   	writeln (messaldo.nomeDoMes[7]);
   	writeln ('');
   	messaldo.nomeDoMes[8]:='Agosto - 8';
   	writeln (messaldo.nomeDoMes[8]);
   	writeln ('');
   	messaldo.nomeDoMes[9]:='Setembro - 9';
   	writeln (messaldo.nomeDoMes[9]);
   	writeln ('');
   	messaldo.nomeDoMes[10]:='Outubro - 10';
   	writeln (messaldo.nomeDoMes[10]);
   	writeln ('');
   	messaldo.nomeDoMes[11]:='Novembro - 11';
   	writeln (messaldo.nomeDoMes[11]);
   	writeln ('');
   	messaldo.nomeDoMes[12]:='Dezembro - 12';
   	writeln (messaldo.nomeDoMes[12]);
   	writeln ('=================================');
  
   
   //-- Pedido de mês e saldo --//
   
   begin
   for i:=1 to 3 do
   	writeln ('');
   	writeln ('Digite o número do mês:');
   	read (messaldo.nrmes[i]);
    writeln ('Digite o saldo:');
   	read (messaldo.saldo[i]);
   end;
   	
     
     
     
   begin  
   for i:=1 to 3 do
     if messaldo.nrmes[i]=1 then
     writeln ('Seu mês é Janeiro e seu saldo é ',messaldo.saldo[i]);
    if messaldo.nrmes[i]=2 then
     writeln ('Seu mês é Fevereiro e seu saldo ',messaldo.saldo[i]);
	 end;                             

       
       


				
  
  
 End.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o ultimo bloco

 begin  
   for i:=1 to 3 do
     if messaldo.nrmes[i]=1 then
     writeln ('Seu mês é Janeiro e seu saldo é ',messaldo.saldo[i]);
    if messaldo.nrmes[i]=2 then
     writeln ('Seu mês é Fevereiro e seu saldo ',messaldo.saldo[i]);
	 end;  

eu colocaria assim:

for i:=1 to 12 do
   writeln ('Mês de %1 e seu saldo é %2',messaldo.nomeDoMes[messaldo.nrmes[i]], messaldo.saldo[i]);
end

Só não tenho certeza se a nomenclatura está correta. Mas, a ideia é que o %1 entre o valor de messaldo.nomeDoMes[messaldo.nrmes] e o %2 entre o valor de messaldo.saldo

 

Desse jeito ele iria imprimir todos os registros sem acumular. Para acumular o ideal é transformar o vetor NomeDoMes em 2 dimensões (nome e saldo) e ai criar mais um FOR e armazenar um acumulado de saldo em cada posicao do NomeDoMes

 

 

Mas, qual a mensagem de erro que aparece para você?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.