quarta-feira, 27 de abril de 2016

Programação de Computadores - 27 de Abril de 2016

Programação de Computadores - 27 de Abril de 2016

Exercício:
Crie um programa que realize a leitura de 20 números inteiros em um arquivo chamado "dadosoriginais.txt"  e separe os números lidos em dois arquivos de forma que um deles tenha os números pares e o segundo apenas os números ímpares.

Exercício:
Crie um programa para realizar a leitura de 5 palavras (com tamanhos diferentes) gravada em um arquivo texto e em seguida exibir na tela a maior e menor palavra.
Dica: utilize o método length de uma string para obter o tamanho.
Exemplo: if (palavra.length()<...)


Resposta do primeiro exercício (resposta minha - testada no CodeBlocks)

# include <iostream>
# include <fstream>
# include <cstdlib>

using namespace std;

int main() {

// declarando as variáveis
int num, i, verificaprimo, contadivisores;

// zerando as variáveis
num=0;
i=0;
verificaprimo=0;
contadivisores=0;

ifstream lendo ("dadosoriginais.txt");
ofstream gravapares ("numerospares.txt");
ofstream gravaimpares ("numerosimpares.txt");
ofstream gravaprimos ("numerosprimos.txt");

  for (i=1;i<=20;i++){

    lendo>>num;

    // vendo se o número é impar
    if (num%2==1){
        gravaimpares<<num<<endl;
    } // fechamento do if

    // verificando se o número par
    if (num%2==0){
       gravapares<<num<<endl;
    } // fechamento do if

    // verificando se o número é primo
    for (verificaprimo=1;verificaprimo<=num;verificaprimo++){
       if (num%verificaprimo==0){
            contadivisores++;
       }



    } // fechamento do for

    // Verificando se o número é primo
    if (contadivisores==2){
        gravaprimos<<num<<endl;
    }

    // zerando os verificadores de números primos
    verificaprimo=0;
    contadivisores=0;

  } // fechamento do for



lendo.close();
gravaimpares.close();
gravapares.close();
gravaprimos.close();

// informando que o programa foi executado

cout<<"O programa foi executado. Numeros impares gravados. Numeros pares gravados. Numeros primos gravados."<<endl;


system("Pause");

return 0;

} // fechamento do int main


Resposta do segundo exercício (resposta minha - testada no CodeBlocks)


# include <iostream>
# include <fstream>
# include <cstdlib>


using namespace std;


int main() {

// declarando as variáveis
int i;
string palavra, palavramenor, palavramaior;

// zerando as variáveis
i=0;

ifstream lendo ("Lerpalavras.txt");

for (i=1;i<=5;i++){

    lendo>>palavra;

    // vendo se o número é impar
    if (i==1){
        palavramaior=palavra;
        palavramenor=palavra;
    } // fechamento do if

    // verificando se o número par
    else {
        if (palavramaior.length()<palavra.length()){
            palavramaior=palavra;
        }
        if (palavramenor.length()>palavra.length()){
            palavramenor=palavra;
        }

    } // fechamento do else
} // fechamento do for

// informando o resultado

cout<<"A maior palavra é;"<<palavramaior<<endl;
cout<<"A menor palavra é;"<<palavramenor<<endl;

system("Pause");

return 0;

} // fechamento do int main


Correção da professora

Resposta da primeira questão

#include <iostream>
#include <fstream>

using namespace std;

int main(){
   int num, I;
   ifstream lendo ("dadosoriginais.txt");
   ofstream grava1 ("pares.txt");
   ofstream grava2 ("impares.txt");
      for (I=1;I<=20;I++){
         lendo>>num;
         if(num%2==0){
            grava1<<num<<endl;
         } // fechamento do if
         else{
            grava2<<num<<endl;
         } // fechamento do else

      } // fechamento do for

lendo.close();
grava1.close();
grava2.close();

} // fechamento do int main



Resposta da segunda questão

#include <iostream>
#include <fstream>

using namespace std;

int main(){

string palavra = " ";
string maior=" ", menor=" ";
int i;

ifstream arqpalavras("palavras.txt");
   for(i=1;i<=5;i++){
      arqpalavras>>palavra;
      if(palavra.length()>maior.length() || i==1){
         maior=palavra;
      } // fechamento do if
      if(palavra.length()<menor.length() || i==1){
         menor=palavra;
      } // fechamento do if

   } // fechamento do for

cout<<"Maior"<<maior<<endl;
cout<<"Menor"<<menor<<endl;

arqpalavras.close();
return 0;

} // fechamento do int main


Lucas T R Freitas

Nenhum comentário: