Sei sulla pagina 1di 5

Arranjos em C++

● Exercício:
● Faça um programa em C++ que leia as notas de

uma turma de 10 alunos de um curso de idiomas e


n

exiba em tela: ∑x
INF 100 – Introdução à Programação


n
a) A média das notas x = n
i=1
∑  x − x  i
2

b) O desvio padrão das notas s= n−1 i=1

c) A maior nota
d) A menor nota
e) As notas informadas, em ordem crescente

Universidade Federal de Viçosa


Departamento de Informática
turma.cpp 05/10/2012

#include <iostream>
#include <cmath>

using namespace std;

int main() {
// Constante com o tamanho do arranjo, para fins de agilidade de atualizacao do codigo
const int TAM = 10;

float notas[TAM]; // Arranjo com as notas dos alunos


float somatorio; // Variavel utilizada tanto para o somatorio do calculo da media quanto
para o somatorio do calculo do desvio padrao
float media; // media
float desvpad; // desvio padrao
float maior, menor; // maior e menor nota, respectivamente
float aux; // variavel auxiliar, utilizada para a troca de valores, dentro da ordenacao

// Leitura dos dados de entrada, a partir do usuario


for (int i = 0; i < TAM; i++) {
cout << "Informe a " << (i+1) << " nota: "; // (i+1) -> para "esconder" do usuario
que o indice comeca com zero
cin >> notas[i];
}

// Letra a: calculo da media


somatorio = 0; // Inicializacao do somatorio
for (int i = 0; i < TAM; i++) {
somatorio += notas[i]; // Atualizacao do somatorio
}
media = somatorio / TAM;

cout << "Media = " << media << endl;

// Letra b: calculo do desvio padrao


somatorio = 0; // Inicializacao do somatorio
for (int i = 0; i < TAM; i++) {
somatorio += pow(notas[i] - media, 2); // Atualizacao do somatorio
}
desvpad = sqrt(somatorio / (TAM - 1));

cout << "Desvio Padrao: " << desvpad << endl;

// Letras c e d: Busca pela maior e menor nota simultaneamente


maior = notas[0];
menor = notas[0];
for (int i = 1; i < TAM; i++) { // Atencao, o laco comeca no indice 1 (segundo elemento
do arranjo)
if (notas[i] > maior) {
maior = notas[i];
}
if (notas[i] < menor) {
menor = notas[i];
}
}

cout << "Maior nota: " << maior << endl;


cout << "Menor nota: " << menor << endl;

-1-
turma.cpp 05/10/2012

// Letra e: ordenacao do arranjo


// Algoritmo da bolha
for (int i = 0; i < TAM-1; i++) {
for (int j = i+1; j < TAM; j++) {
if (notas[i] > notas[j]) {
aux = notas[i];
notas[i] = notas[j];
notas[j] = aux;
}
}
}

// Exibe nota a nota do arranjo


cout << "Notas ordenadas: " << endl;
for (int i = 0; i < TAM; i++) {
cout << "\t" << notas[i] << endl; // \t -> gera um espacamento de tabulacao na tela
}

return 0;
}

-2-
turma2.cpp 05/10/2012

/*
* Para maiores detalhes, ver comentarios
* na versao extensa do programa
*/

#include <iostream>
#include <cmath>

using namespace std;

int main() {
const int TAM = 10;

float notas[TAM];
float somatorio;
float media;
float desvpad;
float maior, menor;
float aux;

/*
* PARTE 1: Processamento dos dados
*/

// Leitura dos dados de entrada, calculo da media e busca por maior e menor
maior = -1;
menor = 99999;
somatorio = 0;
for (int i = 0; i < TAM; i++) {
cout << "Informe a " << (i+1) << " nota: ";
cin >> notas[i];
somatorio += notas[i];
if (notas[i] > maior) {
maior = notas[i];
}
if (notas[i] < menor) {
menor = notas[i];
}
}
media = somatorio / TAM;

// Letra b: calculo do desvio padrao


somatorio = 0;
for (int i = 0; i < TAM; i++) {
somatorio += pow(notas[i] - media, 2);
}
desvpad = sqrt(somatorio / (TAM - 1));

// Letra e: ordenacao do arranjo


for (int i = 0; i < TAM-1; i++) {
for (int j = i+1; j < TAM; j++) {
if (notas[i] > notas[j]) {
aux = notas[i];
notas[i] = notas[j];
notas[j] = aux;
}
}

-1-
turma2.cpp 05/10/2012

/*
* PARTE 2: Saidas em tela
*/
cout << "Media = " << media << endl;
cout << "Desvio Padrao: " << desvpad << endl;
cout << "Maior nota: " << maior << endl;
cout << "Menor nota: " << menor << endl;
cout << "Notas ordenadas: " << endl;
for (int i = 0; i < TAM; i++) {
cout << "\t" << notas[i] << endl;
}

return 0;
}

-2-

Potrebbero piacerti anche