• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

saramgsilva

Programa de exemplo: usando arrays e menus

13 mensagens neste tópico

Bem primeiro quero voltar a dizer o mesmo que já disse algumas vezes, os TPCs são pra cada 1 os fazer...e assim é k se aprende...tem duvidas ao faze-los aprendam que nos damos 1 ajuda, e vemos o k fizeram...mas assim do nada, pedirem ajuda constantemente....e nem mostrarem trabalho, acho muito mau...pois não aprendem nada, e andam a espera que cai algo do céu...e depois não fazem o trabalho a tempo, como deve ser...e nem aprendem... enfim cada um sabe de si...mas mais 1 vez ajudo, da pior maneira, fazendo o programa todo...

criei um programa que guarda as despesas diárias dos meses de novembro e dezembro...e depois calcula o total gasto em cada, mês e dos 2 meses em conjunto...note.se que um mês tem 31 dias e o outro 30 :D aqui fica o

#include <iostream>

using namespace std;


int main(){

   double novembro[30];
   double dezembro[31];
   double despesa;
   int opcao=1,i;

   cout<<"Introduza o valor das despesas diarias do mes de novembro (30) \n";
   for(i=0; i<30; i++)
   {  cout<<"dia "<< i+1;
     cin>>novembro[i];   
   }

   cout<<"Introduza o valor das despesas diarias do mes de dezembro (31) \n"; 
   for(i=0; i<31; i++)
   { 
     cout<<"dia " <<i+1;
     cin>>dezembro[i];   
   }

   while(opcao!=0){

     cout<<"\n\t1-Pretendo calcular o total de despesa feito em Novembro ->";
     cout<<"\n\t2-Pretendo calcular o total de despesa feito em Dezembro ->";
     cout<<"\n\t3-Pretendo calcular o total de despesa feita nos 2 meses: novembro e dezembro "; 
     cout<<"\n\t0-Sair\n";
     cin>>opcao;

     switch(opcao){

       case 0: break;

       case 1: {  despesa=0;
                   for(i=0; i<30; i++)   
                   despesa=despesa+novembro[i];

                   cout<<"\tA despesa no mes de novembro foi de "<<despesa;
                   break;
               }
       case 2:{  despesa=0;
                 for(i=0; i<31; i++)   
                 despesa=despesa+dezembro[i];

                 cout<<"\tA despesa no mes de dezembro foi de "<<despesa;
                 break;
               }
       case 3: { despesa=0;
                 for(i=0; i<30; i++)   
                 despesa=despesa+novembro[i]+dezembro[i];

               despesa=despesa+dezembro[30];
               cout<<"\tA despesa nos 2 meses foi de "<<despesa;
               break;
               }   
       default: cout<<"\n\n\tverifica a opcao introduzida!!ERRO....\n";
     }
     }
     ;

return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado por partilhare o programa e o código, de certeza que vai ser útil aos que andam a aprender C++, essa linguagem maravilhosa.

Agora sobre o que disseste em primeiro, concordo contigo! Não podemos fazer o trabalho de ninguém, se não nem ajudamos os que ficam com o trabalhinho feito, nem os outros que tiveram MESMO trabalho e que ficam com a mesma nota.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não custa fazer o programa,e em parte até é fixe, porque testo os meus conhecimentos...mas eu refilo...porque quero que o ppl se esforce e tente fazer algo...para aprenderem!!

Existe um proverbio tipo "ensina o a pescar e nao lhe des o peixe " ...  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desculpem lá a dúvida de noob mas o "endl" é facultativo após o "cout"?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O endl serve para mudar de linha e fazer flush ao buffer de saída. Ou seja, sim, é facultativo, só o utilizas se quiseres utilizá-lo para aquilo que ele serve :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O endl serve para mudar de linha e fazer flush ao buffer de saída. Ou seja, sim, é facultativo, só o utilizas se quiseres utilizá-lo para aquilo que ele serve :D

Bem me parecia... Portanto podemos verificar neste exemplo que m vez de ser usado o "endl", foi usado o "\n" que tem o mesmo efeito (corrijam-me se tiver errado). Bons tempos de C.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é exactamente o mesmo. O endl força o flush do stream, ou seja, se estiveres a utilizar o cout para escrever no ecrã, quando usas um endl tens a certeza que o conteúdo aparece no ecrã nesse momento, se estiveres a utilizar um ofstream sabes que o conteúdo foi escrito no disco. Obviamente, além de ter sido escrito um caracter de mudança de linha :D

Quando utilizas um '\n' isso pode não acontecer devido aos efeitos de buffer dos streams. Tudo o que sabes é que naquele momento foi inserido um caracter de mudança de linha.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é exactamente o mesmo. O endl força o flush do stream, ou seja, se estiveres a utilizar o cout para escrever no ecrã, quando usas um endl tens a certeza que o conteúdo aparece no ecrã nesse momento, se estiveres a utilizar um ofstream sabes que o conteúdo foi escrito no disco. Obviamente, além de ter sido escrito um caracter de mudança de linha :D

Quando utilizas um '\n' isso pode não acontecer devido aos efeitos de buffer dos streams. Tudo o que sabes é que naquele momento foi inserido um caracter de mudança de linha.

Haa, então vou continuar com o meu costume de meter sempre endl no final de cada linha. Pelo que percebi é mais "eficaz" do que o /n. 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é ser mais eficaz, pode até trazer problemas de eficiência, uma vez que escrever para o ecrã/disco/etc é mais demorado que escrever para a memória. É esse o objectivo do uso de buffers em vez da escrita directa no destino.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma questão:

- Nesse menu se escolhesses uma opção e te enganasses na opção como voltavas ao menu?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O código volta automaticamente ao menu após escrever os dados no ecrã porque se encontra dentro de um while. Só se escolhesses a opção 0 é que não voltava ao menu.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não custa fazer o programa,e em parte até é fixe, porque testo os meus conhecimentos...mas eu refilo...porque quero que o ppl se esforce e tente fazer algo...para aprenderem!!

Existe um proverbio tipo "ensina o a pescar e nao lhe des o peixe " ...  ;)

Mas tutorials a ensinar a pescar há suficientes. Até a explicar o que é um peixe.  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora