Mostrando postagens com marcador Programação de Computadores. Mostrar todas as postagens
Mostrando postagens com marcador Programação de Computadores. Mostrar todas as postagens

quinta-feira, 17 de março de 2016

Programação de Computadores - 16/03/2016

Programação de Computadores - 16/03/2016


Exercício para resolver à mão em sala de aula (sem computador).


Faça um programa em C++ que leia os dados de conta bancária (número da conta, saldo, ano de criação) de várias pessoas e mostre:


a) Quanto de crédito pré-aprovado o correntista tem direito seguindo a tabela:
  • Saldo bancário até R$ 500,00 - Valor do crédito R$ 500,00
  • Saldo bancário acima de R$ 500,00 até R$ 2000,00 - Valor do crédito R$ 800,00
  • Saldo bancário acima de R$ 2000,00 até R$ 5000,00 - Valor do crédito R$ 1500,00
  • Saldo bancário acima de R$ 5000,00 - Valor do crédito R$ 3000,00
Assim que for informado número da conta igual a "-1" mostrar:



b) O número da conta mais antiga.



c) A conta bancária com o maior saldo (número da conta e saldo).



d) Quantas contas possuem saldo superior a R$ 1000,00 e foram criadas entre 2000 e 2010 (inclusive).



e) A média dos saldos das contas criadas em 2014.



Minha resposta (não corrigida):

//início da resposta


cstdlib;


int main() {


//variáveis
int numeroconta;
float saldo;
int anocriacao;
int contamaisantiga;
int anocontamaisantiga;
float maiorsaldo;
int contamaiorsaldo;
int contasmaisquemil;
float saldos2014;
int contascriadas2014;
float mediasaldos2014;



//zerando as variáveis
numeroconta=0;
saldo=0;
anocriacao=0;
contamaisantiga=0;
anodacontamaisantiga=0;
maiorsaldo=0;
contamaiorsaldo=0;
contasmaisquemil=0;
saldos2014=0;
contascriadas2014=0;
mediasaldos=0;

cout<<”Bem vindo ao programa de crédito bancário.”<<endl;



cout<<”Para sair digite número da conta igual a -1”<<endl;


cout<<”Digite o número da conta”<<endl;
cin>>numeroconta;


//início do while
while (numeroconta!=-1){
   cout<<”Informe o ano de criação da conta.”<<endl;
   cin>>anocriacao;



   cout<<”Informe o saldo da conta”<<endl;
   cin>>saldo;


   //resposta da letra a => crédito pré-aprovado
   if (saldo<=500){
      cout<<”O correntista tem direito a R$ 500,00 de crédito.”<<endl;
   }
   if ((saldo>500)&&(saldo<=2000)){
      cout<<”O correntista tem direito a R$ 800,00 de crédito.”<<endl;
   }
   if ((saldo>2000)&&(saldo<=5000)){
      cout<<”O correntista tem direito a R$ 1500,00 de crédito.”<<endl;
   }
   if ((saldo>5000){
      cout<<”O correntista tem direito a R$ 3000,00 de crédito.”<<endl;
   }



   //resposta da letra b => número da conta mais antiga
   if (contamaisantiga==0){
      contamaisantiga=numeroconta;
      anodacontamaisantiga=anocriacao;
   }
   if (anocriacao<anodacontamaisantiga){
      contamaisantiga=numeroconta;
      anodacontamaisantiga=anocriacao;
   }



   //resposta da letra c => conta bancária com maior saldo500
   if (contamaiorsaldo==0){
      contamaiorsaldo=numeroconta;
      maiorsaldo=saldo;
   }
   if(maiorsaldo<saldo){
      contamaiorsaldo=numeroconta;
      maiorsaldo=saldo;
   }



   //resposta da letra d => contas criadas entre 2000 e 2010 (inclusive) com saldo maior que R$ 1000,00.
   if ((anocriacao>2000)&&(anocriacao<=2010)&&(saldo>1000)){
      contasmaisquemil++;
   }



   //resposta da letra e => média dos saldos das contas criadas em 2014
   if (anocriacao==2014){
      contascriadas2014++;
      saldos2014=saldo+saldos2014;
   }

   cout<<”Para sair digite número da conta igual a -1”<<endl;

   cout<<”Digite o número da conta”<<endl;
   cin>>numeroconta;


} // fim do while



//Fora do estrutura do while
//saídas no final do programa
//resposta da letra b
cout<<”O número da conta mais antiga é ”<<contamaisantiga<<endl;



//resposta da letra c
cout<<”O número da conta de maior saldo é ”<<contamaiorsaldo<<” e o saldo da conta é”<<maiorsaldo<<endl;



//resposta da letra d
cout<<”O número de contas criadas entre 2000 e 2010 com saldo superior a R$ 1000,00 é “<<contasmaisquemil<<endl;



//resposta da letra e
mediasaldos2014=saldos2014/contascriadas2014;
cout<<”A média dos saldos das contas criadas em 2014 é “<<mediasaldos2014<<endl;



System (Pause);
return 0;

} // fechamento final



// fim da minha resposta sem correção




Lucas T R Freitas




segunda-feira, 14 de março de 2016

Programaçao de computadores - 14 de Março de 2016

Programaçao de computadores - 14 de Março de 2016

Resposta do exercício da última aula - conta telefônica residencial e comercial (resolução da professora):

int main(){
   int cod,quantmin,tipo;
   float conta, perc1,perc2;
   float contamaior1,contamenor1;
   int codmaior1,codmenor1;
   int quant2exc;
   float somaconta2,mediaconta2;
   int cont2;

   perc=0;
   contamaior1=0;
   quant2exc=0;
   somaconta2=0;
   mediaconta2=0;
   cont2=0;
   perc2=0;
   contamenor1=0;

   cout<<"Informe o código ou digite -1 para sair"<<endl;
   cin>>cod;

   while (cod!=-1){
     cout<<"Informe a quantidade de minutos"<<endl;
     cin>>quantmin;
     cout<<"Informe o tipo de cliente: 1 (Residencial) e 2 (Comercial)"<<endl;
     cin>>tipo;
     if(tipo==1){
      conta=quantmin*0.2;
      }//fechamento do if
     else {
       if(tipo==2){
         if (quantmin>100){
           conta=(quantmin-100)*0.40)+(100*0.30);
         }//fechamento do if
         else{
           conta=(quantmin*0.30);
         }//fechamento do else
       }//fechamento do if
     }// fechamento do else
      cout<<"o valor da sua conta é <<endl;
      cout<<conta<<endl;
      if(tipo==1){
        cont1++;
      }
      else{
         if(tipo==2){
            cont2++;
         }
      }
      if(tipo==1){
         if(conta>contamaior1) {
            contamaior1=conta;
            codmaior=cod;
         }
         if(conta<contamenor1||contamenor==0){
            contamenor1=conta;
            codmenor1=cod;
         }
      }
      if(tipo==2){
         if(quantmin>100) {
            quant2exc++;
         }
      }
      if(tipo==2){
         somaconta2=conta+somaconta2;
      }
      cout<<"Informe o código ou digite -1 para sair"<<endl;
      cin>>cod;
  }// fechamento do while principal

mediaconta2=(somaconta2/cont2
cout<<"A media e" <<mediaconta2<<endl;
perc1=(cont1/(cont1+cont2)*100);
perc2=(cont2/(cont1+cont2)*100));
cout<<perc1;
cout<<perc2;
cout<<cont1;
cout<<cont2;
cout<<contamaior1;
cout<<contamenor1;
cout<<codmaior1;
cout<<codmenor1;
cout<<quant2exc;
//fim int main

}// fechamento final


--

Teste de mesa

int main(){
   int i,j;
   i=1;
   j=2;
   j=i+j; // 1+ 2 = 3
      cout<<j; // imprime 3
         while(j<=8){
            i=i++; //i=2
            j=j+i;  //j=5
            cout<<i+j; // i+j=7
            if((j+i)%2==0){ //não entra aqui
               cout<<j+j;
            }
            else{
               cout<<i+i; // escreve 4
            }
         }

}//fim geral

Resposta da questão:
imprime na tela: 3,7,4,11,6,16,24.


Lucas T R Freitas

quarta-feira, 9 de março de 2016

Programação de computadores - 09 de Março de 2016

Programação de computadores - 09 de Março de 2016

Correção do exercício da MegaSena (corrigido pela Professora Zirlene)

int main(){
   int g1,g2,g3,g4,g5,g6;
   int n1,n2,n3,n4,n5,n6;
   int cont,cont2, I;
   cont=0; cont2=0;
      //números sorteados
      cout<<"Informe os números sorteados"<<endl;
      cin>>g1;
      cin>>g2;
      cin>>g3;
      cin>>g4;
      cin>>g5;
      cin>>g6;
   for (i=1;i<=30;i++){
      cout<<"Informe os 6 números jogados"<<endl;
      cin>>n1;
      cin>>n2;
      cin>>n3;
      cin>>n4;
      cin>>n5;
      cin>>n6;
      // condicionais
      if ((n1==g1)||(n1==g2)||(n1==g3)||(n1==g4)||(n1==g5)||(n1==g6)){
         cont++;
      }
      if ((n2==g1)||(n2==g2)||(n2==g3)||(n2==g4)||(n2==g5)||(n2==g6)){
         cont++;
      }
      if ((n3==g1)||(n3==g2)||(n3==g3)||(n3==g4)||(n3==g5)||(n3=g6)){
         cont++;
      }
      if ((n4==g1)||(n4==g2)||(n4==g3)||(n4==g4)||(n4==g5)||(n4==g6)){
         cont++;
      }
      if ((n5==g1)||(n5==g2)||(n5==g3)||(n5==g4)||(n5=g5)||(n5==g6)){
         cont++;
      }
      if ((n6==g1)||(n6==g2)||(n6==g3)||(n6==g4)||(n6==g5)||(n6==g6)){
         cont++;
      }
      //verificando se houve ganhador
      if (cont==6){
         cout<<"Parabéns, você ganhou!"<<endl;
         cont2++;
      }
      else{
         cout<<"Você não ganhou"<<endl;
      }
      cont=0;
}// fim for


Exercício

A empresa xyz deseja um sistema que possa controlar as suas contas de telefone. Para tanto o sistema deverá atender as seguintes especificações.
O sistema deverá fazer a leitura do código do cliente, quantidade de minutos usados no mês, e o tipo de cliente. Considere tipo residencial e comercial.
O algoritmo deverá retornar:
  • [v] a) a conta de cada cliente. Considere que clientes residenciais pagam R$0,20 por minuto. Clientes comerciais pagam até 100 minutos R$0,30 por minuto; se exceder a 100 minutos pagará R$ 0,40 por minuto excedido.
  • [v] b) O percentual de clientes residenciais e comerciais. (Exibir fora do While)
  • [v] c) O código e conta do cliente residencial que pagou a maior e menor conta. (Exibir fora do While)
  • [v] d) A quantidade de clientes comerciais que excederam os minutos. (Exibir fora do While)
  • [v] e) A média da conta dos clientes comerciais. (Exibir fora do While)
Obs.: O algorítmo será encerrado quando for digitado -1 no código do cliente.
Utilize while.


Minha resolução (letras a, b, c, d e e prontas e testadas no Code Blocks)

//cabeçalho
#include <iostream> // para poder usar o cin (entrada) e cout (saída)
#include <cstdlib> // para poder incluir a função "system pause"
using namespace std; // para poder incluir o return 0

int main(){

//Declarando as variáveis
//variável para o código do cliente
int codigodocliente; //variável do tipo inteiro
//variável para a quantidade de minutos utilizados;
float quantdeminutos; //variável do tipo inteiro
// variável para o tipo de cliente - 1 para residencial e 2 para comercial
int tipodecliente; // variável do tipo inteiro
//variável para armazenar o valor da conta do cliente
float contadocliente; //variável do tipo real
//variável para contar o número de clientes residenciais
int residenciais;
//variável para contar o número de clientes comerciais
int comerciais;
//variável para contar o número total de clientes
int totaldeclientes;
//variável para armazenar o percentual de clientes residenciais
float percentualresidenciais; //variável do tipo real
//variável para armazenar o percentual de clientes comerciais
float percentualcomerciais; //variável do tipo real
//variável para armazenar o valor da maior conta de clientes residenciais
float valordamaiorcontaresidencial; //variável do tipo real
//variável para armazenar o valor da menor conta de clientes residenciais
float valordamenorcontaresidencial; //variável do tipo real
//variável para armazenar o código do cliente com a maior conta
int codigoclientemaiorconta; //variável do tipo inteiro
//variável para armazenar o código do cliente com a menor conta
int codigoclientemenorconta; //variável do tipo inteiro
//variável para armazenar a quantidade de clientes comerciais que excederam os minutos
int quantclientescomerciaisexcdereramminutos; //variável do tipo inteiro
//variável para armazenar o valor da total das contas dos clientes comerciais
float contascomerciais; //variável do tipo real
//variável para armazenar o valor da media das contas dos clientes comerciais
float mediacontascomerciais; //variável do tipo real
//variável para armazenar a quantidade de clientes comerciais
int quantclientescomerciais; //variável do tipo inteiro


//Zerando as variáveis
codigodocliente=0;
quantdeminutos=0;
tipodecliente=0;
residenciais=0;
comerciais=0;
totaldeclientes=0;
percentualresidenciais=0;
percentualcomerciais=0;
valordamaiorcontaresidencial=0;
valordamenorcontaresidencial=0;
codigoclientemaiorconta=0;
codigoclientemenorconta=0;
quantclientescomerciaisexcdereramminutos=0;
contascomerciais=0;
mediacontascomerciais=0;
quantclientescomerciais=0;


// Entradas
cout<<"Informe o codigo do cliente ou digite -1 para sair"<<endl; //solicita o codigo do cliente
cin>>codigodocliente; //recebe o codigo do cliente

//Início do while
while(codigodocliente!=-1){
   cout<<"Informe a quantidade de minutos utilizados pelo cliente"<<endl; //solicita a quantidade de minutos utilizados pelo cliente
   cin>>quantdeminutos; //recebe a quantidade de minutos utilizados pelo cliente

   cout<<"Informe o tipo de cliente: digite 1 para cliente residencial e 2 para cliente comercial"<<endl; //solicita o tipo do cliente: residencial ou comercial
   cin>>tipodecliente; //recebe o codigo do cliente

   //Verificação do tipo de cliente
   while((tipodecliente!=1)&&(tipodecliente!=2)){
      cout<<"Informe corretamento o tipo de cliente: digite 1 para cliente residencial e 2 para cliente comercial"<<endl;
      cin>>tipodecliente; //recebe o codigo do cliente
   }

   //Conta do cliente residencial
   if(tipodecliente==1){
      contadocliente=0.2*quantdeminutos;
   }

   //Conta do cliente comercial
   if(tipodecliente==2){
      if(quantdeminutos<=100){
         contadocliente=0.3*quantdeminutos;
      }
      if(quantdeminutos>100){
         contadocliente=((0.3*100)+(quantdeminutos-100)*0.4);
      }
   }

   //Contando os clientes
   //contando os clientes pelo tipo residencial
   if(tipodecliente==1){
      residenciais=residenciais+1; //incrementa 1
   }
   //contando os clientes pelo tipo comercial
   if(tipodecliente==2){
      comerciais=comerciais+1; //incrementa 1
   }
   //incrementando o total de clientes
   totaldeclientes++; //incrementa 1

   //Informa a conta do cliente na tela - resposta da letra a
   cout<<"A conta do cliente "<<codigodocliente<<" deu R$"<<contadocliente<<endl;

   //Comparando as contas dos clientes residenciais
   if(tipodecliente==1){
      if(contadocliente!=0){ //Contas com valor igual a zero são desconsideradas na comparação
        if(contadocliente>valordamaiorcontaresidencial){
            valordamaiorcontaresidencial=contadocliente;
            codigoclientemaiorconta=codigodocliente;
        }
        if(valordamenorcontaresidencial==0){
            valordamenorcontaresidencial=contadocliente;
            codigoclientemenorconta=codigodocliente;
        }
        else {
            if(contadocliente<valordamenorcontaresidencial){
                valordamenorcontaresidencial=contadocliente;
                codigoclientemenorconta=codigodocliente;
            }
        }
        }
      }


   //Quantidade de clientes comerciais que excederam 100 minutos
   if(tipodecliente==2){
      if(quantdeminutos>100){
         quantclientescomerciaisexcdereramminutos=quantclientescomerciaisexcdereramminutos+1;
      }
   }

   //Para calcular a média das contas dos clientes comerciais (letra e)
   if(tipodecliente==2){
      contascomerciais=contascomerciais+contadocliente;
      quantclientescomerciais=quantclientescomerciais+1;
   }

   //Preparando para o próximo cliente
   cout<<"Informe o codigo do cliente ou digite -1 para sair"<<endl; //solicita o codigo do cliente
   cin>>codigodocliente; //recebe o codigo do cliente
   contadocliente=0;

}//Fechamento do While principal

//Exibindo o percentual de clientes residenciais e comerciais - resposta da letra b
//calculando o percentual de clientes residenciais
percentualresidenciais=100*residenciais/totaldeclientes;
//calculando o percentual de clientes comerciais
percentualcomerciais=100*comerciais/totaldeclientes;
//Exibindo o percentual de clientes residenciais
cout<<"O percentual de clientes residenciais e: "<<percentualresidenciais<<"%."<<endl;
//Exibindo o percentual de clientes comerciais
cout<<"O percentual de clientes comerciais e: "<<percentualcomerciais<<"%."<<endl;

//Exibindo o código do cliente residencial que pagou a maior e a menor conta - resposta da letra c
//Exibindo o código do cliente residencial que pagou a maior conta
cout<<"Exibindo os codigos dos clientes residenciais com a menor e a maior conta. Nota: clientes com conta igual a zero nao sao registrados."<<endl;
cout<<"O codigo do cliente residencial com a maior conta e: "<<codigoclientemaiorconta<<"."<<endl;
//Exibindo o código do cliente residencial que pagou a menor conta
cout<<"O codigo do cliente residencial com a menor conta e: "<<codigoclientemenorconta<<"."<<endl;

//Exibindo a quantidade de clientes comerciais que excederam 100 minutos - resposta da letra d
cout<<"A quantidade de clientes comerciais que excederam 100 minutos e: "<<quantclientescomerciaisexcdereramminutos<<"."<<endl;

//Exibindo a media das contas dos clientes comerciais - resposta da letra e
mediacontascomerciais=contascomerciais/quantclientescomerciais;
cout<<"A media das contas dos clientes comerciais e R$ "<<mediacontascomerciais<<"."<<endl;

//teste
cout<<"dados para simples conferencia"<<endl;
cout<<"percentual comercial de clientes: "<<percentualcomerciais<<endl;
cout<<"percentual residencial de clientes: "<<percentualresidenciais<<endl;
cout<<"total de clientes: "<<totaldeclientes<<endl;
cout<<"clientes residenciais: "<<residenciais<<endl;
cout<<"clientes comerciais: "<<comerciais<<endl;


//finalizando o programa
system("pause");
return 0;
}//Fechamento do programa


Lucas T R Freitas

segunda-feira, 7 de março de 2016

Programação de Computadores - 07/03/2016

Programação de Computadores - 07/03/2016

Correção do exercício da última aula:

Resolução da primeira questão (corrigida pela professora):

Questão 1:
Faça um algoritmo que leia o nome e 3 notas de 20 alunos.
O algoritmo deverá retornar:
  • o nome e a média aritmética de cada aluno e sua situação final. 
  • a quantidade de alunos aprovados, reprovados ou reprovado com direito a fazer a prova suplementar.Considere aluno aprovado com média acima de 5, aluno reprovado com média abaixo de 4 e aluno reprovado com direito a prova suplementar com média entre 4 e 5.
  • média geral da turma. 


#include <iostream> // para poder usar o cin (entrada) e cout (saída)
#include <cstdlib> // para poder incluir a função "system pause"

using namespace std; // para poder incluir o return 0
int main () [
   string nome;
   float nota1, nota2, nota3;
   int i, cont1, cont2, cont3;
   float media, mediag;

   // Inicializando as variáveis - zerar as variáveis que serão trabalhadas
   cont1=0;
   cont2=0;
   cont3=0;
   media=0;
   mediag=0;
   for (I=1; I<=20,i++)[
   //Entradas
   cout<<"Informe o nome"<<endl;
   cin>>nome;
   cout<<"Informe 3 notas"<<endl;
   cin>>nota1;
   cin>>nota2;
   cin>>nota3;
  // Calculando a média do aluno
  media=(nota1+nota2+nota3)/3;
  //Informando a média de cada aluno
   cout<<nome<<"Sua média é:"<<media<<endl;
   //Soma das médias dos alunos
   mediag=(mediag+media);
   //condicionais para verificar
   //a situação do aluno
   if (media>5) [
   //Aprovados
   cout<<"Aprovado"<<endl;
   cont1++;
   ]
   else [
      if (media <4) {
         //Reprovados
         cout<<"Reprovado"<<endl;
         cont2++;
      }
      else{
         //suplementar
         cout<<"Direito a prova suplementar"<<endl;
         cont3++;
      }
}
//Fim do for
]
//Calculando a media da turma
mediag=(mediag/20)
//Sáidas
cout<<"Média geral da turma"<<mediag<<endl;
cout<<"número de aprovados"<< cont1<<endl;
cout<<"número de reprovados"<<cont2<<endl;
cout<<"Alunos com direito a prova suplementar"<<cont3<<endl;
//fim do int main
]


--


Resolução do exercício 2 (minha resolução):

Questão 2.
Faça um algoritmo que leia o gabarito de um jogo da MegaSena e o jogo de 30 pessoas, com seus respectivos nomes.
O algoritmo deverá retornar quantas pessoas acertaram os 6 números da MegaSena.


#include <iostream> // para poder usar o cin (entrada) e cout (saída)
#include <cstdlib> // para poder incluir a função "system pause"

using namespace std; // para poder incluir o return 0
int main () {

// declaração das variáveis
// variáveis que vão receber as dezenas ganhadoras
int dezena1, dezena2, dezena3, dezena4, dezena5, dezena6;
//váriavel que vai receber o número de acertos de cada jogador
int numerodeacertos;
//variável que vai receber o número de ganhadores
int numerodeganhadores;
// variável que vai receber o nome do jogador
string nomedojogador;
//variável para contar o número de jogadores
int i;
//variável para contar o número de números verificados
int verificados;
//variável para receber o número jogado
int numerojogado;

//Inicializando as variáveis
dezena1=0;
dezena2=0;
dezena3=0;
dezena4=0;
dezena5=0;
dezena6=0;
numerodeacertos=0;
numerodeganhadores=0;
i=0;
verificados=0;

//leitura da primeira dezena ganhadora
"Informe a primeira dezena ganhadora"<<endl;
cin>>dezena1;

//leitura da segunda dezena ganhadora
"Informe a segunda dezena ganhadora"<<endl;
cin>>dezena2;

//leitura da terceira dezena ganhadora
"Informe a terceira dezena ganhadora"<<endl;
cin>>dezena3;

//leitura da quarta dezena ganhadora
"Informe a quarta dezena ganhadora"<<endl;
cin>>dezena4;

//leitura da quinta dezena ganhadora
"Informe a quinta dezena ganhadora"<<endl;
cin>>dezena5;

//leitura da sexta dezena ganhadora
"Informe a sexta dezena ganhadora"<<endl;
cin>>dezena6;

for (i=1;i<=30;i++) [
   //leitura do nome do primeiro jogador
   cout<<"Informe o nome do jogador"<<endl;
   cin>>nomedojogador;

   //leitura dos números jogados
   cout<<"Informe o primeiro número jogado"<<endl;
   cin>>numerojogado;
      if (numerojogado==dezena1)[
         numerodeacertos=numerodeacertos+1;
      ]
      else [
         if (numerojogado==dezena2)[
         numerodeacertos=numerodeacertos+1;
         ]
         else [
            if (numerojogado==dezena3)[
         numerodeacertos=numerodeacertos+1;
            ]
            else [
               if (numerojogado==dezena4)[
         numerodeacertos=numerodeacertos+1;
               ]
               else [
                  if  (numerojogado==dezena5)[
         numerodeacertos=numerodeacertos+1;
                  ]
                  else [
                     if (numerojogado==dezena6)[
         numerodeacertos=numerodeacertos+1;
                     ]
                  ]
               ]
            ]      
         ]
      ]
   
]
}

Resolução da professora:

if ((n1==g1)||(n1==g2)||(n1==g3)||(n1==g4)||(n1==g5)||(n1==g6))[
   cont++;
   ]
if ((n2==g1)||(n2==g2)||(n2==g3)||(n2==g4)||(n2==g5)||(n2==g6))[
   cont++;
   ]
if (cont=6)[
   cout<<"Ganhou"<<endl;
   cont2++;
]
else [
   cout<<"Perdeu"<<endl;
]
cont=0; // Para reiniciar o contador


Lucas T R Freitas

quarta-feira, 2 de março de 2016

Programação de Computadores - 02/03/2016

Programação de Computadores - 02/03/2016

Revisão da última aula: Estrutura para descobrir se o número é primo.


Escrevendo o programa com "for":

#include <iostream> // para poder usar o cin (entrada) e cout (saída)
#include <cstdlib> // para poder incluir a função "system pause"
using namespace std; // para poder incluir o return 0

int main () {
   int i,j,num,cont,contprimo;
   cont=0; contprimo=0;
   for (i=1; i<=10; i++){
      cout<<"informe um número"<<endl;
      cin>>num;
      for (j=1; j<=num; j++){
         if(num%j==0){
            cont++;
         }
      }
      if (cont<=2){
         contprimo++;
      }
      cont=0;
      }
      cout<<"A quantiade de números primos é:"<<endl;
      cout<<contprimo;
}


Escrevendo o programa com "while":

#include <iostream> // para poder usar o cin (entrada) e cout (saída)
#include <cstdlib> // para poder incluir a função "system pause"
using namespace std; // para poder incluir o return 0

int main () {
   int i, j, cont, contprimo, num;
   i=1;
   j=1;
   cont=0;
   contprimo=0;
   cout<<"Informe um número inteiro ou digite -1 para sair"<<endl;
   cin>>num;
   while(num!=-1){ //enquanto o número for diferente de -1
      while(j<=num){
         if(num%j==0){
            cont++;
         }
         j++; // "j++" é igual a "j=j+1"
      }
      if(cont<=2){
         contprimo++;
      }
      cont=0;
      j=1;
      cout<<"Informe um novo número ou -1 para sair"<<endl;
      cin>>num;
   }
   cout<<"A quantidade de números primos é:"<<endl;
   system("pause");
   return 0;
}


Exercícios:
  1. Faça um algoritmo que leia o nome e 3 notas de 20 alunos.
    O algoritmo deverá retornar:
    • o nome e a média aritmética de cada aluno e sua situação final.
    • a quantidade de alunos aprovados, reprovados ou reprovado com direito a fazer a prova suplementar. Considere aluno aprovado com média acima de 5, aluno reprovado com média abaixo de 4 e aluno reprovado com direito a prova suplementar com média entre 4 e 5.
    • média geral da turma.
  2. Faça um algoritmo que leia o gabarito de um jogo da MegaSena e o jogo de 30 pessoas, com seus respectivos nomes.
    O algoritmo deverá retornar quantas pessoas acertaram os 6 números da MegaSena.
Resolução dos exercícios:

Notas:
if (media>5){
Aprovados
}
else {
   if (media<4){
      Resprovados
   }
   else{
      Reprovados com direito à prova suplementar
   }
}

Lucas T R Freitas

segunda-feira, 29 de fevereiro de 2016

Programação de Computadores - 29/02/2016

Programação de Computadores - 29/02/2016

Programa utilizado em sala de aula:

Exercício em sala:
  1. Faça um algoritmo que leia vários números inteiros. O algoritmo deverá retornar entre os números informados quantos são primos.
  • Resolução:
    • Resposta minha:
"Bem vindo ao algoritmo que conta numeros inteiros. O programa le o numero digitado e informa quantos numeros primos ele leu."
"Digite um numero inteiro (por exemplo 0, 1, 2, 3...) e tecle ENTER ou tecle ENTER para finalizar."

    • Respostas da professora:
      • Resolução 1:
#include <iostream> // para poder usar o cin (entrada) e cout (saída)
#include <cstdlib> // para poder incluir a função "system pause"

using namespace std; // para poder incluir o return 0

int main() {
   int num, I, contprimo;
   for (I=1; I<=10; I++){
      cout<<"Informe um numero inteiro."<<endl;
      cin>>num; // dá a possibilidade de entrada do número a ser verificado
      if (num%I==0){
         cont++;
      }
   }
   if(cont<=2){
      contprimo++;
   }
   cout<<"A quantidade de numeros primos é"<<endl;
   cout<<contprimo;
   system ("Pause"); // Para dar uma pausa
   return 0; // Para fechar o programa
}

      • Resolução 2:
#include <iostream> // incluir comentário aqui
#include <cstdlib> // para poder incluir a função "system pause"

using namespace std; // incluir comentário aqui

int main() {
   int i, num, cont, contprimo, j;
   cont=0;
   contprimo=0;
   for (i=1; i=10; i++){
      cout<<"Informe um numero inteiro."<<endl;
      cin>>num; // dá a possibilidade de entrada do número a ser verificado
      for (j=1;j<=num;j++){
         if(num%j==0){ //se o resto da divisão do numero por j for igual a zero
            cont++;
         }
         if(cont<=2){
            contprimo++;
         }
         cont = 0;
      }
   cout<<"A quantidade de numeros primos é"<<endl;
   cout<<contprimo;
   system ("Pause");
   return 0;
}

Notas:
  • int: para inteiro
  • string: caracter
  • float: para números reais

Lucas T R Freitas

segunda-feira, 22 de fevereiro de 2016

Programação de Computadores - 22/02/2016

Programação de Computadores - 22/02/2016

Resolução do exercício da aula anterior:

Algoritmo "Exercício 2"

Var num, I, quant2427: inteiro
       peso, altura, imc: real
       nummaior, nummenor: inteiro
       imcmaior, imcmenor: real

Início
   //inicializando as variáveis
   quant2427 <- 0;
   imcmaior <- 0;
   imcmenor <- 0;

 Para I de 1 até 20 faça
   //Entradas
   Escreva ("Informe o número de inscrição")
   Leia (num)
   Escreva ("Informe o peso e a altura")
   Leia (peso, altura)
   //calculando o IMC
   IMC <- (peso/altura²)
   //saída do IMC
   Escreva ("O seu IMC é:", IMC)
   //Quantidade de IMC entre 24 e 27
   Se (IMC >= 24 e IMC <= 27) então
      quant2427 <- (quant2427 + 1)
   fim se

   //descobrindo o número
   //com o maior IMC
   Se (IMC > IMCmaior) então
      nummaior <- num
      IMCmaior <- IMC
   fimse
   //descobrindo o número de inscrição
   //com o menor IMC
   Se (IMC < IMCmenor) ou (IMCmenor = 0) então
      nummenor <- num
      IMCmenor <- IMC
   fim se
 fim para
 //saída quantidade IMC entre 24 e 27
 Escreva ("Quantidade IMC entre 24 e 27 é:", quant2427)
 //Saída do número de inscrição do maior IMC:
 Escreva ("O número de inscrição com o maior IMC é:" nummaior)
 //Saída do número de inscrição com o menor IMC
 Escreva ("O número de inscrição com o menor IMC é:", nummenor)
fim algoritmo


// -- //


Transição C++
leia = CIN >>
escreva = COUT <<
Se = if
Senão = Else
Enquanto = While
Para = For

Operadores
+ Adição
- Subtração
/ Divisão
% Mod (resto de uma divisão inteira)
== Igualdade
!= diferente

Operadores Lógicos
e = &&
ou = ||

Tipos de dados
Inteiro INT
Real Float
Caracter String

Atribuição
soma <- 0 soma = 0;


# include <iostream>  /* bibliotecas são recursos para permitir que as funções funcionem /*
using namespace std;
int main(){
   int num1, num2;
   cout<< "Informe um número"<<endl; /* endl - endline - finaliza e pula uma linha
   cin>>num1;
   cout<<"Informe outro número"<<end;
   cin>>num2;
   If (num1 >= num2){
      cout<<"O número 1 é o maior"<<endl;
   }
   Else {
      cout<<"O número 2 é o menor"<< endl;
   }
   System ("Pause")
   Return 0;

-- // --

Programa para escrever em C++: code blocks

Lucas T R Freitas

quarta-feira, 17 de fevereiro de 2016

Programação de Computadores - 17/02/2016

Programação de Computadores - 17/02/2016

Programa para linguagem Portugol: visual g

Correção do exercício da última aula (exercício de somatório, quantidade e média)

Algoritmo "Revisão"

Var I, categoria, contexp, contimp: inteiro
       pvenda, pcusto, somaimp, mediaimp: Real

Início
   // Zerar as variáveis que vão receber 
   Contimp <- 0;
   pvenda <- 0;
   somaimp <- 0;
   mediaimp <- 0;
   contexp <- 0;

   Para I de 1 até 30 (passo 1) faça // "passo 1" é opcional, pois a estrutura "para" é auto-incrementável
      // Entradas
      Escreva ("Informe o preço de custo do ",I," º produto")
      Leia (pcusto)
      Escreva ("Informe a categoria, digite 1 para importação e 2 para exportação")
      Leia (cat)
      // Calculando o preço de venda
      Se (cat=1) então // operador relacional
         pvenda <- (pcusto * 1.15)
         contimp <- (contimp +1)
         somaimp <- (somaimp + pvenda)
      Senão
         Se (cat=2) então
            pvenda <- (pcusto *1.20)
            // Calculando a quantidade dos produtos exportação
            contexp <- (contexp +1)
         Senão
            Escreva ("Informe a categoria, digite 1 para importação e 2 para exportação")
            Leia (cat)
         fim se
      fim se
      Escreva ("O preço de venda do produto ", I," é ", pvenda)
   Fimpara
   Escreva ("A quantidade de produtos do tipo exportação é", contexp)
   Médiaimp <- (somaimp / contimp)
   Escreva ("A média é", Mediaimp)


-- // --

Exercício

Faça um algoritmo que leia o número de inscrição, o peso e a altura de 20 atletas corredores maratonistas. O algoritmo deverá retornar:
  • o IMC de cada maratonista
  • a quantidade de maratonistas com IMC entre (inclusive) 24 e 27
  • o número de inscrição do maratonista com maior IMC
  • o número de inscrição do maratonista com menor IMC
Observação: considere que não há IMC igual.


Lucas T R Freitas

terça-feira, 16 de fevereiro de 2016

Programação de Computadores - 15/02/2016

Programação de Computadores - 15/02/2016

ID 102

Material no ESO
Não tem atividade para fazer no ESO

25/06 - Exame contextualizado - 20% da nota

Prova 1 - 30/03 - Introdução a C++
Prova 2 - 25/05 - Manipulação de arquivos / Funções / Vetores
Prova 3 - 24/06 - Vetores e Matrizes

Ambiente: Dev C++

- Modularizar / Particionar o código
- Matrizes e Vetores

- // -

Estrutura de Repetição: Para Faça

Sintaxe
Para I de 1 até 100 passo 1 faça
   Escreva I
Fim para


  • I de 1 - inicialização
  • até 10 - condição de término
  • passo 1 - incremento (a ser realizado no fim da função)
-- / --

Revisão: Estrutura Enquanto faça

Algoritmo "nome"

Var I: inteiro

Início
   I <- 1 -- (Inicialização - I recebe 1)
   Enquanto (I <= 4) faça -- (condição de término)
      Escreva (I)
      I <- (I + 1) -- incremento - faz a estrutura de repetição avançar
   Fim Enquanto
Fim algoritmo


Variável fica em um espaço de memória alocado (reservado) no computador
  • Pode ser do tipo:
    • inteiro
    • real
    • caracter
    • boleano
Para (For) é uma estrutura auto-incrementável: é de 1 em 1

Para I de 2 até 100 passo 2 faça
   Escreva I
Fim para

-- / --

Soma <- 0
Para I de 2 até 10 passo 2 faça
   soma <- (soma + I)
Fim para
   escreva soma


-- / --

Para I de 100 até 1 passo -1 faça
   Escreva (I)
fim para


-- / --
Exercício de revisão - Repetição "para... faça"
1) Faça um algoritmo que calcule o preço de venda de 30 produtos. O algoritmo fará a leitura do preço de custo de cada produto e a categoria do produto, considere categoria "importação" e "exportação". O preço de venda de um produto é calculado em função da categoria, produtos do tipo "importação" possuem taxa de 15% de lucro sobre o preço de custo e produtos do tipo "exportação" possuem uma taxa de 20% de lucro sobre o preço de custo.

O algoritmo deverá retornar:
a) O preço de venda de cada produto
b) A quantidade de produtos do tipo exportação
c) A média dos preços de venda dos produtos do tipo "importação"


Minha resolução (não corrigida)

Categoria: caracter
Preço de custo = real
Preço de venda = real
soma preços de venda = real
número de itens import = inteiro
média import = real
itens export = inteiro

soma preços de venda <- 0
número de itens import <- 0
itens export <- 0

Para I de 1 a 30 faça
   se categoria == importação
      Preço de venda I = preço de custo I * 1,15
      número de itens import <- (número de itens import + 1)
      soma preços de venda <- (soma preços de venda + Preço de venda I)
   senão
      Preço de venda I = preço de custo I * 1,20
      itens export <- (itens export + 1)
Fim para
Para I de 1 a 30 faça
   escreva preço
Fim para
   escreva itens export
   média import <- (soma preços de venda / número de itens import)
   escreva média import



Lucas T R Freitas