Baixe o app para aproveitar ainda mais
Prévia do material em texto
ECT1203 Linguagem de Programação 2014.2 Profa. Caroline Rocha Aula 21 – Funções e Vetores Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia Hora de silenciar o celular • Manter o celular sempre desligado/silencioso quando estiver em sala de aula • Nunca atender o celular em sala de aula Objetivo da Aula • Mostrar passagem de vetores e matrizes como parâmetros de funções • Resolver exercícios Vetores como argumento de funções • Ao passar um vetor para uma função não se cria uma cópia do vetor, temos uma referência para o vetor. • Na lista de parâmetros de uma função, declara-se um vetor da seguinte forma: tipo nome[ ] • A função deve ter outro parâmetro que especifica quantos elementos o vetor tem. Exemplo 1 #include <iostream> using namespace std; void imprimir(int v[], int tam) { for (int n=0; n<tam; n++) cout << v[n] << " "; cout << "\n"; } int main (){ int vetor1[] = {5, 10, 15}; int vetor2[] = {2, 4, 6, 8, 10}; imprimir(vetor1, 3); imprimir(vetor2, 5); return 0; } #include <iostream> using namespace std; float calcula_media(float notas[], int tamanho){ float media = 0; for(int i = 0; i < tamanho; i++) media += notas[i]; media = media/tamanho; return media; } int main (){ int tam; float media, notas[200]; cout << "Qual o tamanho da turma? "; cin >> tam; cout << "Entre com as notas dos alunos: "; for(int i = 0; i < tam; i++) cin >> notas[i]; media = calcula_media(notas, tam); cout << "A media eh: " << media << endl; return 0; } Exemplo 2 Vetores locais a funções Como fazer uma função que recebe dois vetores de tamanho 10 como parâmetros e calcula o vetor soma? int[] soma(int A[], int B[]){ int C[10]; for(int i=0; i<10; i++) C[i] = A[i]+B[i]; return C; } Vetores locais a funções Como fazer uma função que recebe dois vetores de tamanho 10 como parâmetros e calcula o vetor soma? int[] soma(int A[], int B[]){ int C[10]; for(int i=0; i<10; i++) C[i] = A[i]+B[i]; return C; } A função retorna um endereço de memória que não estará mais disponível quando a função terminar! Vetores locais a funções Como fazer uma função que recebe dois vetores de tamanho 10 como parâmetros e calcula o vetor soma? void soma(int A[], int B[], int C[]){ for(int i=0; i<10; i++) C[i] = A[i]+B[i]; } O espaço para guardar o resultado é alocado pela função chamadora. Assim, a função soma() recebe três vetores: dois com dados de entrada (A e B) e um para armazenar o resultado (C) Exercício Faça uma função que receba um vetor de números V e retorne os números que são maiores que seus vizinhos, chamados de picos. Considere que a lista é circular, ou seja, o início e o fim estão ligados. Exemplo: Se o vetor é {2,3,5,10,5,5,6,2,3}, então os picos são {10,6,3}
Compartilhar