Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Joyce França Professora de Ciência da Computação - IFNMG
VETOR
Vetor
• Imagine o seguinte problema:
• Leia 100 números do teclado e depois imprima a
soma das extremidades.
• Exemplo: 1,2,10,50,..... , 1, 7, 90,78
1 2 10 50 ... 1 7 54 78
Vetor
• Solução1: Declarar 100 variáveis do tipo
inteiro e depois realizar a soma
• int num1,num2,num3,num4,....., num100
Vetor
• Solução1: Declarar 100 variáveis do tipo
inteiro e depois realizar a soma
• int num1,num2,num3,num4,....., num100
INVIÁVEL!!!!
Vetor
• Solução2: Usar vetores!!
• int num[100];
Array unidimensional ou
vetor
• Um array é um conjunto de componentes
do mesmo tipo.
Vetor
• Sintaxe:
tipo nome[tam];
• Tipo pode ser: int,float,double,char.
Array - Definição
• Como estes dados têm uma relação entre si, podemos declará-los usando um ÚNICO nome para todos os 100 elementos.
• Lista = conjunto de 100 números acessados por um índice.
0 1 ... 99
Lista
Array - Definição
• Na linguagem C a numeração começa sempre em zero.
• Isto significa que, no exemplo anterior, os dados serão indexados de 0 a 99.
▫ Lista[0], Lista[1], ..., Lista[99]
0 1 ... 99
LISTA
Array - Definição
• Observação
▫ Se o usuário digitar mais de 100 elementos em um array de 100 elementos, o programa tentará ler normalmente.
▫ Porém, o programa os armazenará em uma parte não alocada de memória, pois o espaço alocado foi para somente 100 elementos.
▫ Isto pode resultar nos mais variados erros no instante da execução do programa.
Array = varíavel
• O elemento do array tem todas as características de uma variável e pode aparecer em expressões e atribuições.
▫ Lista[2] = Lista[3] + Lista[20]
• Ex: somar todos os elementos da Lista:
int soma = 0;
for(i=0;i < 100; i++)
soma = soma + Lista[i];
Características
• Características básicas de um Array ▫ Estrutura homogênea, isto é, formada de elementos do
mesmo tipo. ▫ todos os elementos da estrutura são igualmente
acessíveis, isto é, o tempo e o tipo de procedimento para acessar qualquer um dos elementos do Array são iguais.
▫ cada elemento componente desta estrutura tem um índice próprio segundo sua posição no conjunto
Vetores em C - Inicialização
• É possível inicializar vetores no comando de
declaração.
• Exemplos:
/* Cria e inicializa vetor de 10 posições */
int a[10] = {1, 2, 3, 5, 7, 11, 13, 17, 19, 23};
/* Cria e inicializa vetor de 6 posições. O tamanho do vetor PODE ser omitido se houver uma inicialização no comando de declaração */
• int b[] = {1, 2, 4, 8, 16, 32};
Exemplo
• Armazenar 10 números em um vetor. E ao final imprimi-los na tela.
#include <stdio.h>
#include <stdlib.h>
int main() {
int i, vet[10]={20,22,23,25,26,28,98,36,98,36};
for(i=0;i<10;i++)
{
printf(" %d ", vet[i]);
}
}
14
Exercício de fixação
1. Faça um programa que possua um vetor denominado A que armazene 6 números inteiros. O programa deve executar os seguintes passos:
(a) Atribua os seguintes valores a esse vetor: 1, 0, 5, -2, -5, 7.
(b) Armazene em uma variável inteira (simples) a soma entre os valores das posições A[0], A[1] e A[5] do vetor e mostre na tela esta soma.
(c) Modifique o vetor na posição 4, atribuindo a esta posição o valor 100.
(d) Mostre na tela cada valor do vetor A, um em cada linha.
Exemplo
• Inicialização de vetor usando números digitados
• Ler 10 inteiros e armazená-los em um vetor. E ao final imprimi-los na tela.
#include <stdio.h>
#include <stdlib.h>
int main() {
int i, vet[10];
printf("digite 10 numeros separados por espaço ou digite um numero e aperte enter \n");
for(i=0;i<10;i++)
{
scanf("%d", &vet[i]);
}
for(i=0;i<10;i++)
{
printf(" %d ", vet[i]);
}
}
16
Exercícios
1. Dada uma seqüência de 10 números digitados, imprimi-la e também mostre o posição.
2. Dada uma seqüência de 10 números digitados, imprimi-la na ordem inversa à da leitura.
17
Exercícios
1. Dada uma seqüência de 10 números digitados, imprimir a soma das extremidades.
2. Faça um programa que leia um vetor de 8 posições e, em seguida, leia também dois valores X e Y quaisquer correspondentes a duas posições no vetor. Ao final seu programa deverá escrever a soma dos valores encontrados nas respectivas posições X e Y .
3. Ler um conjunto de números reais, armazenando-o em vetor e calcular o quadrado das componentes deste vetor, armazenando o resultado em outro vetor. Os conjuntos têm 10 elementos cada. Imprimir todos os conjuntos.
4. Leia um vetor de 10 posições. Contar e escrever quantos valores pares ele possui.
18
Números aleatórios • Para gerar um número aleatório (randômico) em
linguagem C podemos usar a função rand pertencente à biblioteca stdlib.h.
#include <stdio.h> main() { int i; printf("Gerando 10 valores aleatorios:\n\n"); for (i = 0; i < 10; i++) { /* gerando valores aleatórios entre zero e 100 */ printf("%d ", rand() % 100); } }
Números aleatórios
criar um vetor de 10 espaços com
números aleatórios
#include<stdio.h> #include<stdlib.h> #include<time.h> main(){ srand(time(NULL));
int a[10],i; printf("Programa para criação de vetor\n"); for(i=0;i<10;i++) { a[i]=rand()%10; } printf("\n\nVetor a\n"); for(i=0;i<10;i++) { printf("[%d] = %d\n",i+1,a[i]); } }
Exercícios
1. Elabore um programa que preencha um vetor com 20 números aleatórios. Em seguida, mostre o vetor e depois a soma dos números pares.
2. Elabore um programa que preencha um vetor com 100 números aleatórios. Em seguida, mostre o vetor e depois mostre somente os números armazenado nas posições ímpares do vetor.
3. Elabore um programa que encontre o menor elemento de um vetor com 20 elementos gerados por números aleatórios.
4. Elabore um programa que leia um vetor A de 10 números inteiros e imprima o maior valor e a posição em que ele se encontra no vetor.
5. Faça um programa que preencha um vetor com 10 números reais, calcule e mostre a quantidade de números negativos e a soma dos números positivos desse vetor.
6. Faça um programa para ler a nota da prova de 15 alunos e armazene num vetor, calcule e imprima a média geral.
22
Exercícios
3. Elabore um programa que receba 10 letras e armazene em um vetor. E ao final imprima as 10 letras ao contrário.
4. Elabore um programa que, dados dois vetores inteiros de 10 posições, leia os dois vetores, some os valores da mesma posição e armazene em um terceiro vetor inteiro de 10 posições. No final imprima este terceiro vetor.
5. Faça um programa que receba 6 números inteiros e mostre:
▫ Os números pares digitados; ▫ A soma dos números pares digitados; ▫ Os números ímpares digitados; ▫ A quantidade de números ímpares digitados
23