aula01 - vetores

Post on 12-Jan-2016

224 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Aula vetores

TRANSCRIPT

Aula 01 - Vetores Prof.ª Luciana

UNIFAE

Motivação

Estruturas homogêneasEstruturas homogêneas unidimensionais

VETORESEstruturas homogêneas multidimensionais

MATRIZES

Vetores

Ilustração de um vetor

Declaração de um vetor

Declaração de um vetor

Acesso aos elementos de um vetor

Acesso aos elementos de um vetor

Acesso aos elementos de um vetor

Vetores: exemplo 1

Vetores: exemplo 2

Vetores: considerações

Vetores: considerações

Constantes• Em C podemos declarar constantes de duas

formas: por meio do comando const e da diretiva de pré-processamento #define.

• Sintaxes:

const tipo identificador = valor;

#define identificador valor

Constantes - exemplo#include <stdio.h>

const int TAM = 50;

int main() { int faltas[TAM], i; for(i=0; i<TAM; i++) { printf(“falta do aluno %d: ”, i+1); scanf(“%d”, &faltas[i]); } for(i=0; i<TAM; i++) { printf(“\nfalta do aluno %d: %d”, i+1, faltas[i]); }

return 0;}

}

Constantes - exemplo#include <stdio.h>

#define TAM 50

int main() { int faltas[TAM], i; for(i=0; i<TAM; i++) { printf(“falta do aluno %d: ”, i+1); scanf(“%d”, &faltas[i]); } for(i=0; i<TAM; i++) { printf(“\nfalta do aluno %d: %d”, i+1, faltas[i]); }

return 0;}

}

Vetores são estruturas estáticas#include <stdio.h>#define TAM 50int main() { int faltas[TAM], i; for(i=0; i<TAM; i++) { printf(“falta do aluno %d: ”, i+1); scanf(“%d”, &faltas[i]); } for(i=0; i<TAM; i++) { printf(“\nfalta do aluno %d: %d”, i+1, faltas[i]); }

return 0;}

}

Vetores são estruturas estáticasVamos modificar o exemplo que lê as faltas

dos alunos para que o usuário entre com um número não previamente definido de faltas.

Por exemplo, o usuário pode fornecer as faltas até que um valor especial, por exemplo -1, seja fornecido.

O valor especial diz que o usuário deseja parar de fornecer as faltas, e quer que o programa as imprima na tela.

Qual deve ser o tamanho do vetor?

Vetores são estruturas estáticasOs vetores são chamados de estruturas

estáticas, pois têm o seu tamanho definido durante a codificação do programa.

Durante a execução do programa, o tamanho do vetor não pode ser alterado, ou seja, não pode ser aumentado nem diminuído.

Uma vez que nós não sabemos quantas faltas serão fornecidas pelo usuário, é difícil estipular previamente um tamanho para o vetor

Vetores são estruturas estáticasTudo isso pode acarretar dois problemas para o

programa:

1. Durante a codificação, o programador especificou um tamanho para o vetor que é muito maior do que o necessário. Nesse caso, tem-se memória alocada para o vetor que está sendo desperdiçada;

2. Também, o programador pode especificar um tamanho para o vetor que é menor do que o necessário. Nesse caso, o vetor não será suficiente para armazenar todos os valores que o usuário deseja fornecer.

Vetores são estruturas estáticasPrecisamos ler um determinado número de

faltas até que seja fornecido o valor -1. O trecho de código para ler valores e

armazená-los em um vetor faltas até que um valor –1 seja fornecido é:

num_faltas = 0;do {scanf(“%d”, &faltas[num_faltas]);num_faltas++;} while (faltas[num_faltas-1] != -1);

Vetores são estruturas estáticasRepare que foi necessário utilizar a variável

num_faltas. O laço do-while termina quando uma nota com

valor -1 é fornecida. Note que ao sair do laço do-while a variável

num_faltas terá o número de faltas fornecidas pelo usuário mais uma falta.

Na realidade a última falta fornecida é a falta especial -1. Nós não queremos armazenar essa falta. Por isso, é necessário decrementar a variável num_faltas.

Vetores são estruturas estáticasPodemos fazer mais um melhoramento. O que ocorrerá se o usuário fornecer mais

que 250 faltas? Isso pode ser perigoso já que o usuário

conseguirá ler e armazenar a falta 251, mas isso poderá provocar erros.

Para evitar que erros ocorram, o laço do-while pode ser interrompido sempre que num_faltas atinja o valor 250.

Vetores são estruturas estáticasPortanto, o trecho de código referente a

leitura dos dados ficaria assim:

num_faltas = 0;do {

scanf(“%d”, &faltas[num_faltas]); num_faltas++;

} while (faltas[num_faltas-1] != -1 && num_faltas < 250);

Vetores são estruturas estáticasO laço do-while será executado até que uma falta -1 seja

fornecida, ou que o valor de num_faltas atinja o valor 250, o qual é uma posição além do máximo permitido pelo vetor faltas declarado.

Note que a variável num_faltas só será decrementada caso o usuário digite o valor -1. Se o usuário fornecer as 250 faltas, então a variável num_faltas não precisa ser decrementada, pois todas as faltas fornecidas serão válidas.

Para decrementar num_faltas precisamos agora fazer um teste e verificar se foi digitado o valor -1. O trecho de código referente ao teste ficaria assim:

if (faltas[num_faltas - 1] == -1) { num_faltas--;

}

Vetores são estruturas estáticasSuponha que o usuário logo na primeira vez digite o

valor -1. Se isto acontecer não teremos nenhuma falta para mostrar.

Precisamos portanto verificar se o usuário digitou alguma falta válida. Isto pode ser feito verificando se a variável num_faltas é diferente de 0.

Se a variável num_faltas for diferente de 0 significa que existem faltas e portanto podemos imprimi-las. Caso contrário, ou seja, se num_faltas for igual a 0, então não há faltas e enviaremos uma mensagem ao usuário dizendo que nenhuma falta foi fornecida.

Devemos lembrar que o número de faltas fornecido pelo usuário está na variável num_faltas.

Vetores são estruturas estáticas

Exercícios1. Faça um programa que leia N valores inteiros (0

< N ≤ 100) e armazena‐os em um vetor. Em seguida, mostre os valores lidos em ordem inversa à leitura.

2. Faça um programa que leia 8 valores inteiros e armazena‐os em um vetor. Em seguida, calcule e mostre a soma dos valores pares lidos.

3. Faça um programa que leia 10 valores que representam notas e armazene‐as em um vetor. Em seguida, calcule e imprima a média das notas e as notas que estão acima da média.

Exercícios 4. Faça um programa que leia 200 números inteiros

e armazene‐os em um vetor V. Em seguida separe os elementos de V em dois vetores A e B, de forma que o vetor A contenha os elementos pares de V e B contenha os elementos ímpares de V. Imprima na tela os números dos vetores A e B.

5. Faça um programa que leia 30 valores inteiros positivos e armazene‐os em um vetor, calcule e imprima:

O menor valor do vetor.A quantidade de elementos do vetor que são

divisíveis pelo menor valor.

top related