Linguagem C vetores IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná
Até agora... Introdução à linguagem C Estrutura de um programa Escrita e execução do primeiro programa em C Declaração de variáveis Tipos de dados Operadores aritméticos, de comparação e lógicos Entrada e saída de dados Estruturas condicionais Estruturas de repetição
Aula de hoje Um programa que ordena 3 números inteiros
Aula de hoje Um programa que ordena 3 números inteiros E se eu quisesse um programa que... ordena 100 números inteiros Ou, ainda, um programa que... armazena o nome de uma pessoa
Aula de hoje Vetores
Vetores Coleção de variáveis do mesmo tipo referenciada por um nome comum (Herbert Schildt): Características: Acesso por meio de um índice inteiro Posições contíguas na memoria Tamanho pré-definido Índices fora dos limites podem causar comportamento anômalo do programa
Declaração de vetores <tipo> identificador [<tamanho do vetor>]; Exemplo: float notas [100]; int medias [50]; 0 1 2... tamanho-1
Declaração de vetores <tipo> identificador [<tamanho do vetor>]; 0 1 2... tamanho-1 Exemplo: float notas [100]; int medias [50]; medias 0 1 2... 49
Usando vetores Para acessar o valor de uma certa posição do vetor identificador [<posição>]; Exemplo int nota[10]; int a; nota[5] = 95; a = nota[5];
Usando vetores - Exemplo int cont, vet[10]; for (cont = 0; cont<10; cont++) { vet[cont] = 5*cont; printf( %d, vet[cont]); } O que esse programa imprimirá quando for executado?
Tamanho pré-definido float nota[100]; int n, i; Este programa está correto? printf("número de alunos: "); scanf("%d", &n); for (i = 0; i < n; i++) { printf("nota do aluno %d: ", i+1); scanf("%f", ¬a[i]); }
Tamanho pré-definido float nota[100]; int n, i; printf("número de alunos: "); scanf("%d", &n); if(n>100){ n=100; printf("\n Número máximo alterado para 100"); } for (i = 0; i < n; i++) { printf("nota do aluno %d: ", i+1); scanf("%f", ¬a[i]); } Precisamos testar o valor informado pelo usuário
Inicialização de um vetor Para quando é desejado atribuir um valor inicial a um vetor <tipo> identificador [] = {elem. separados por vírgula}; Exemplos: double vet1[] = {2.3, 5.6, 9.10}; int vet 2[] = {5, 4, 6, -1}
Strings Em algoritmos utilizamos variáveis do tipo caractere para armazenar conjuntos de caracteres como, por exemplo, tigre dente de sabre Na linguagem C o tipo char armazena somente um caractere Logo, precisamos de cadeias de caracteres, chamadas de strings.
Strings Em C são vetores de caracteres Toda string é terminada pelo caractere especial \0 Portanto, declare strings com um caractere a mais do que é necessário Exemplo: Uma sigla de quatro caracteres: char sigla[5]; sigla[0] = I ; sigla[1] = B ; sigla[2] = G ; sigla[3] = E ; sigla[4] = \0 ;
Para imprimir strings... printf( informe a sigla: ); scanf( %s, sigla); printf( Sigla %s, sigla);...
Para ler strings Para ler strings que contenham espaços... char nome[80]; scanf( %[^\n], nome); printf( %s, nome);...
Atividades Ler dois vetores de tamanho 5 e calcular o produto interno deles. Obs.: o produto interno entre dois vetores a e b de tamanho n é dado por: a[0]*b[0]+a[1]*b[1]...a[n]*b[n] Ler dois vetores de 5 inteiros cada e informar quais elementos do segundo vetor são iguais a algum elemento do primeiro.
Atividades Ler o nome de uma pessoa de, no máximo 80 caracteres, salvar o nome invertido em outro vetor e imprimir o nome invertido. Exemplo: Ler: João Silva Imprimir: avlis oãoj Agora leia um nome. Inverta-o no mesmo vetor (e sem usar um vetor adicional) e imprima o nome invertido.
Exercícios complementares Dado um vetor VET declarado como: int VET[5]; a) preenchê-lo (todas as posições) com o valor 30; b) preenchê-lo com os inteiros 1,2,3...; c) preenchê-lo com 1 se a posição é par e com 0 se a posição é impar d) refazer a declaração e o os itens a), b) e c) considerando-se agora um vetor de 100 elementos
Exercícios complementares Escreva um programa que calcule e escreva o somatório dos valores armazenados num vetor V de 100 elementos informados pelo usuário Fazer um programa que leia dois vetores contendo, cada um, 25 elementos numéricos. Intercale os elementos destes dois conjuntos formando um novo vetor de 50 elementos Imprima o novo vetor obtido
Exercícios complementares Faça um algoritmo que receba um vetor X de 10 elementos e calcule a média dos valores de X. Agora, em seguida o programa deve receber um outro vetor Y de 10 elementos e calcular quais os valores de Y, estão acima da média calculada sobre os elementos de X.
Exercícios complementares Faça um programa que recebe dois vetores de inteiros ordenados A e B informados pelo usuário e de tamanho 5 cada. O programa deve retornar um vetor C de 10 posições com os valores de A e B intercalados. O vetor C também deve estar ordenado.