Buscar

Programa para Média de Notas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Vetores
Vetores e estrutura de repetição
Problema
Um algoritmo que receba a nota de 5 alunos e 
imprima:
● A média das notas dos alunos
● Quantos foram aprovados
● A maior nota 
● A menor nota 
Programando ....
Agora para 50 alunos
E se o número de alunos fosse 
desconhecido ?
Precisamos de mais ferramentas
Vetores, arranjos ou variáveis 
indexadas
Um conjunto de valores agrupados em uma única entidade, 
podendo ter uma (A), duas (B), três dimensões ou mais. 
Em C, os 
indices 
iniciam em 
zero
Vetores
Definição:
Um vetor é uma variável composta homogênea unidimensional, 
formada por uma seqüência de variáveis, todas do mesmo tipo, com 
mesmo identificador e alocadas seqüencialmente na memória.
● Uma vez que as variáveis têm o mesmo nome, o que as distingue 
é um índice, que referencia sua localização dentro da estrutura.
Um vetor (= array) é uma estrutura de dados que armazena uma 
sequência de objetos, todos do mesmo tipo, em posições consecutivas 
da memória (Paulo Feofiloff). 
Acessando os valores
● Cada elemento do vetor é tratado como se fosse uma 
variável simples.
● Para referência a um elemento do vetor utiliza-se o 
nome do vetor e a identificação do elemento (índice) 
entre colchetes.
● Para referenciar o elemento 8, tem-se: A[3]
● Para atribuir o valor 15 ao 5º elemento (índice 4) do 
conjunto, tem-se: A[4] = 15.
A
Declarando
Declaração
int idade[100]; // declara um vetor chamado 'idade' do tipo
 // 'int' que recebe 100 elementos.
float nota[25]; // declara um vetor chamado 'nota' do tipo
 // 'float' que pode armazenar 25 números.
char nome[80]; // declara um vetor chamado 'nome' do tipo
 // 'char' que pode armazenar 80 caracteres.
int dia[7] = {12,30,14,7,13,15,6};
float nota[5] = {8.4,6.9,4.5,4.6,7.2};
char vogal[5] = {'a’, ‘e’, ‘i’, ‘o’, ‘u'};
Declaração e inicialização
Atribuições
Opcionalmente, podemos atribuir os 
elementos do vetor enumerando-os um a um:
int dia[7]; // declaração
dia[0] = 2; // atribuições
dia[1] = 5;
dia[5] = 4;
Entrada e saída de dados
Podemos ler um valor para uma posição 
específica do vetor:
int v[10];
scanf ("%d", &v[3]);
Ou imprimir o valor de uma posição específica:
int v[3] = {4,5,6};
printf ("%d", v[1]);
Entrada e saída de dados
Podemos ler um valor para uma posição 
específica do vetor:
int v[10];
scanf ("%d", &v[3]);
Ou imprimir o valor de uma posição específica:
int v[3] = {4,5,6};
printf ("%d", v[1]);
Por isso os vetores 
são também 
referenciados como 
variáveis indexadas.
Voltando ao problema ...
OK. Basta então utilizar uma variável notas[50], 
ao invés de nota1, nota2, nota3 ....
Voltando ao problema ...
Porém, continua sendo trabalhoso escrever este programa, 
devo precisar de mais "ferramentas"
float notas[50];
scanf ("%f",notas[0]);
scanf ("%f",notas[1]);
scanf ("%f",notas[2]);
scanf ("%f",notas[3]);
...
scanf ("%f",notas[50]);
Voltando ao problema ...
Porém, continua sendo trabalhoso escrever este programa, 
devo precisar de mais "ferramentas"
float notas[50];
scanf ("%f",notas[0]);
scanf ("%f",notas[1]);
scanf ("%f",notas[2]);
scanf ("%f",notas[3]);
...
scanf ("%f",notas[50]);
A única coisa que muda 
são os valores dos índices.
Estruturas de iteração
Sim. Você precisa de uma estrutura de 
iteração.
Estruturas de iteração
Considere uma variável i que varie de 0 a 49. 
float notas[50];
int i;
scanf ("%f",notas[i]);
Estruturas de iteração
Agora uma estrutura que faça esta variável i 
varie de 0 a 49,
float notas[50];
int i;
i = 0;
while ( i < 50) {
scanf ("%f",notas[i]);
i = i + 1;
}
Estruturas de iteração
Simule para ver como isto funciona.
float notas[50];
int i;
i = 0;
while ( i < 50) {
scanf ("%f",notas[i]);
i = i + 1;
}
Comando: while (enquanto)
Significado: A sequência de comandos é 
executado enquanto o valor da expressão for 
verdadeiro (ou seja, diferente de zero)
while (expressão) {
sequencia de comandos;
}
While Vs For
● O comando while é suficiente para resolver todo e 
qualquer problema de iteração. 
● Porém, a linguagem C fornece outro mecanismo que 
tem uma forma mais simples para "casos de 
contagem", como no exemplo anterior.
● Voltando ao exemplo ...
 While Vs For
float notas[50];
int i;
i = 0;
while ( i < 50) {
scanf ("%f",notas[i]);
i = i + 1;
}
Inicialização
teste
incremento
float notas[50];
int i;
( i = 0;) {
scanf ("%f",notas[i]);
i = i + 1;
}
While Vs For
float notas[50];
int i;
i = 0;
while ( i < 50) {
scanf ("%f",notas[i]);
i = i + 1;
}
Inicialização
teste
incremento
float notas[50];
int i;
( i = 0;i<50;) {
scanf ("%f",notas[i]);
i = i + 1;
}
While Vs For
float notas[50];
int i;
i = 0;
while ( i < 50) {
scanf ("%f",notas[i]);
i = i + 1;
}
Inicialização
teste
incremento
float notas[50];
int i;
( i = 0;i<50; i = i+1) {
scanf ("%f",notas[i]);
}
While Vs For
float notas[50];
int i;
i = 0;
while ( i < 50) {
scanf ("%f",notas[i]);
i = i + 1;
}
Inicialização
teste
incremento
float notas[50];
int i;
for ( i = 0;i<50; i = i+1) {
scanf ("%f",notas[i]);
}
While Vs For
float notas[50];
int i;
i = 0;
while ( i < 50) {
scanf ("%f",notas[i]);
i = i + 1;
}
Inicialização
teste
incremento
float notas[50];
int i;
for ( i = 0;i<50; i++) {
scanf ("%f",notas[i]);
}
While Vs For
float notas[50];
int i;
i = 0;
while ( i < 50) {
scanf ("%f",notas[i]);
i = i + 1;
}
Inicialização
teste
incremento 
(sintaxe 
alternativa)
Sintaxe e significado do for
for ( inicialização; expressão; incremento) {
sequencia de comando;
}
inicialização;
while ( expressão) {
sequencia de comando;
incremento
}
Equivalente a ...
Conclua o algoritmo abaixo
Um algoritmo que receba a nota de 50 alunos e 
imprima (dica: teste com até 5 alunos):
● A média das notas dos alunos
● Quantos foram aprovados
● A maior nota 
● A menor nota 
Exercícios

Outros materiais