Graduação em TI (ADS/SI/CS) > Estrutura de Dados

Aula 1 - Vetores

(1/1)

Jefferson:
Exercício 1

Crie um programa que receba as notas da AV1, AV2 e AV3 e calcule a sua média final.


--- Código: C++ ---123456789101112131415161718192021222324252627282930313233343536#include <iostream>using std::cout;using std::cin; #include <locale.h> //necessário para usar setlocale int main(){     setlocale(LC_ALL,"");  //me permite usar acentuação     float n[3];     cout << "Nota AV1: ";    cin >> n[0];    int indiceMenor=0;     cout << "Nota AV2: ";    cin >> n[1];    if (n[1]<n[indiceMenor]) indiceMenor=1;     cout << "Nota AV3: ";    cin >> n[2];    if (n[2]<n[indiceMenor]) indiceMenor=2;    cout << '\n' << "O menor valor é o da AV: " << indiceMenor+1 << '\n' ;     //Ignoro o menor valor, somo os restantes e divido por dois    float k=0;    if (indiceMenor==0) {k=((n[1]+n[2])/2);};    if (indiceMenor==1) {k=((n[0]+n[2])/2);};    if (indiceMenor==2) {k=((n[0]+n[1])/2);};     cout << "Sua média é: " << k << '\n' ; return 0;} 
Exercício 2
2. Crie um programa que lê 6 valores inteiros e, em seguida, mostre na tela os valores lidos. [for, vetores]


--- Código: C++ ---12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455#include <iostream>using std::cout;using std::cin; #include <iomanip>using std::setw; //no dev c++ para isso ser aceito é preciso ir em Tools -> Compiler Options e acrescentar -std=c++11 "when calling the compiler"#include <random> #include <locale.h> //necessário para usar setlocale  int main(){     int a[10];    char resposta;     setlocale(LC_ALL,"");  //me permite usar acentuação     cout << "Por default este programa usa o gerador de números aleatórios.\n";    cout << "você deseja em vez disso fornecer os valores?\n";    cout << "s=sim, n=não.\n";    cin >> resposta;     if (resposta=='s'){//Não me importa realmente qualquer outra resposta        for (int i=0; i<6; i++){            cout << "Posição " << i+1 << ": ";            cin >> a[i];        }    }    else{        // Preparo o gerador de número randômicos para me fornecer números na faixa de -10 a 10        std::mt19937 eng(time(NULL)); // Alimento o gerador com a hora atual para me certificar que cada execução seja diferente        std::uniform_int_distribution<> distr(-10, 10); // defino faixa          //Preencho o vetor com números aleatórios e exibo o resultado        for (int i=0; i<6; i++){            a[i]=distr(eng);        }     }     cout << '\n';    cout << "Valores de entrada:\n";    cout << '\n';     for (int i=0; i<6; i++){        cout <<i+1 <<": " << a[i] << '\n';    } return 0;} 
Exercício 3

--- Código: C++ ---12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667#include <iostream>using std::cout;using std::cin; #include <iomanip>using std::setw; //no dev c++ para isso ser aceito é preciso ir em Tools -> Compiler Options e acrescentar -std=c++11 "when calling the compiler"#include <random> #include <locale.h> //necessário para usar setlocale  int main(){     int a[10];    int x;    int y;    char resposta;    setlocale(LC_ALL,"");  //me permite usar acentuação     cout << "Por default este programa usa o gerador de números aleatórios.\n";    cout << "você deseja em vez disso fornecer os valores?\n";    cout << "s=sim, n=não.\n";    cin >> resposta;     if (resposta=='s'){//Não me importa realmente qualquer outra resposta       for (int i=0; i<8; i++){            cout << "Posição " << i+1 << ": ";            cin >> a[i];       }        cout << '\n';        cout << "X: ";        cin >> x;        cout << "Y: ";        cin >> y;    }    else{        // Preparo o gerador de número randômicos para me fornecer números na faixa de -10 a 10        std::mt19937 eng(time(NULL)); // Alimento o gerador com a hora atual para me certificar que cada execução seja diferente        std::uniform_int_distribution<> distr(-10, 10); // defino faixa        std::uniform_int_distribution<> distr1(1, 8); // defino faixa         //Preencho o vetor com números aleatórios e exibo o resultado        for (int i=0; i<8; i++){            a[i]=distr(eng);        }        x=distr1(eng);        y=distr1(eng);    }     cout << '\n';    cout << "Valores de entrada\n";    cout << '\n';     for (int i=0; i<8; i++){        cout <<i+1 <<": " << a[i] << '\n';    }    cout << '\n';    cout << "X: " << x << '\n';    cout << "Y: " << y << '\n';    cout << '\n';    cout << "A soma dos valores encontrados nas posições X e Y é: " << a[x-1]+a[y-1] << '\n'; return 0;} 
Exercício 4
4. Leia um vetor de 10 posições e atribua valor 0 para todos os elementos que possuírem valores negativos.

--- Código: C++ ---123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566#include <iostream>using std::cout;using std::cin; #include <iomanip>using std::setw; //no dev c++ para isso ser aceito é preciso ir em Tools -> Compiler Options e acrescentar -std=c++11 "when calling the compiler"#include <random> #include <locale.h> //necessário para usar setlocale  int main(){     int a[10];    char resposta;    setlocale(LC_ALL,"");  //me permite usar acentuação     cout << "Por default este programa usa o gerador de números aleatórios.\n";    cout << "você deseja em vez disso fornecer os dez valores?\n";    cout << "s=sim, n=não.\n";    cin >> resposta;     if (resposta=='s'){//Não me importa realmente qualquer outra resposta       for (int i=0; i<10; i++){           cout << "Posição " << i+1 << ": ";           cin >> a[i];       }    }    else{        // Preparo o gerador de número randômicos para me fornecer números na faixa de -10 a 10        std::mt19937 eng(time(NULL)); // Alimento o gerador com a hora atual para me certificar que cada execução seja diferente        std::uniform_int_distribution<> distr(-10, 10); // defino faixa         //Preencho o vetor com números aleatórios e exibo o resultado        for (int i=0; i<10; i++){             a[i]=distr(eng);        }    }     cout << '\n';    cout << "Valores de entrada\n";    cout << '\n';     for (int i=0; i<10; i++){        cout <<i+1 << ": " << a[i] << '\n';    }     //Substituo todos os valores negativos por zero    for (int i=0; i<10; i++){        if (a[i]<0) a[i]=0;    }     cout << '\n';    cout << "Valores Corrigidos\n";    cout << '\n';     for (int i=0; i<10; i++){        cout <<i+1 << ": " << a[i] << '\n';    }  return 0;} 
Exercício 5
5. Faça um programa que receba do usuário dois vetores, A e B, com 10 números inteiros cada. Crie um novo vetor denominado C calculando C = A - B. Mostre na tela os dados dos vetores A, B e C.


--- Código: C++ ---1234567891011121314151617181920212223242526272829303132333435363738394041424344#include <iostream>using std::cout;using std::cin; #include <iomanip>using std::setw; #include <locale.h> //necessário para usar setlocale  int main(){     setlocale(LC_ALL,"");  //me permite usar acentuação     int a[10];    int b[10];    int c[10];     cout << "VETOR A:\n";    for (int i=0; i<10; i++){        cout << "Valor " << i+1 << ": ";        cin >> a[i];    }    cout << '\n';    cout << "VETOR B:\n";    for (int i=0; i<10; i++){        cout << "Valor " << i+1 << ": ";        cin >> b[i];    }     for (int i=0; i<10; i++){        c[i]=a[i]-b[i];    }     cout << '\n';    cout << "Vetor A" << setw(11) << "Vetor B" << setw(19) << "Vetor C (A-B)\n";    cout << '\n';     for (int i=0; i<10; i++){        cout << a[i] << setw(12) << b[i] << setw(12) << c[i] << '\n';   }return 0;} 

Jefferson:
Nos exercícios 2, 3 e 4, quando o enunciado menciona "ler valores" não está claro se está se referindo a valores fornecidos interativamente pelo usuário do programa.

Os exercícios 1 e 5 usam outros termos, que deixam isso mais claro.

Por causa dessa dúvida, na resposta dos exercícios 2, 3 e 4 eu incluí a escolha entre usar o gerador de números aleatórios e fornecer interativamente os dados.

Navegação

[0] Índice de mensagens

Responder

Ir para versão completa