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

saramgsilva

Programa de exemplo: usando arrays e menus

Recommended Posts

saramgsilva

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;
}

Share this post


Link to post
Share on other sites
neon_prannock

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.

Share this post


Link to post
Share on other sites
TheDark

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


Desaparecido.

Share this post


Link to post
Share on other sites
ferpedes

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.

Share this post


Link to post
Share on other sites
TheDark

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.


Desaparecido.

Share this post


Link to post
Share on other sites
ferpedes

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. 

Share this post


Link to post
Share on other sites
TheDark

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.


Desaparecido.

Share this post


Link to post
Share on other sites
owny

Uma questão:

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


using System;

Share this post


Link to post
Share on other sites
TheDark

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.


Desaparecido.

Share this post


Link to post
Share on other sites
hristosax

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.