A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Vetores, Matrizes e Funções

Apresentações semelhantes


Apresentação em tema: "Vetores, Matrizes e Funções"— Transcrição da apresentação:

1 Vetores, Matrizes e Funções
Linguagem C Vetores, Matrizes e Funções

2 Revisão de Funções O que são “Funções”? (ou subprogramas ou subrotinas) São trechos de código fonte agrupados sob um nome, que podem ser chamados sempre que for necessário executar uma determinada ação programada neste trecho;  Como usar funções? Atribui-se um nome à uma seqüência de comandos, e faz-se referência a este nome nos vários lugares do programa onde a seqüência em questão deveria ser repetida.

3 Revisão de Funções Resumo: Principais motivações para uso das funções!
Por que usar funções? Evita escrita repetida de código (uma certa seqüência de comandos deve ser repetida em vários lugares de um programa). Economiza o tempo gasto com o trabalho de copiar estas seqüências; Evitar a necessidade de mudar em múltiplos lugares caso deseje alterar o seu funcionamento; Dividir grandes tarefas de computação em tarefas menores: Facilita o gerenciamento de grandes sistemas e Aumenta a confiabilidade dos mesmos. Resumo: Principais motivações para uso das funções! Evitar repetição de código Modularização

4 Revisão de Funções Função simples: void sai_do_programa() {
printf(“Digite qualquer tecla para sair do programa.\n”); system(“pause”); exit(0); } Chamada: sai_do_programa();

5 Revisão de Funções Função com parâmetro: void imprime_quadrado(int n)
{ printf(“O quadrado de %d eh %d.\n”,n, n*n); } Chamada: imprime_quadrado(5); Saída: O quadrado de 5 eh 25

6 Revisão de Funções Função com parâmetro e retorno: int quadrado(int n)
{ int q; q = n * n; return(q); } Chamada: printf(“O quadrado de %d eh %d.\n”, 5, quadrado(5) ); Saída: O quadrado de 5 eh 25

7 Revisão de Funções Função com parâmetro e retorno: int quadrado(int n)
{ int q; q = n * n; return(q); } Chamada: int i; for(i=1;i<5;i++) printf(“O quadrado de %d eh %d.\n”, 5, quadrado(5) ); Saída: O quadrado de 1 eh 1 O quadrado de 2 eh 4 O quadrado de 3 eh 9 O quadrado de 4 eh 16

8 Revisão de Funções Função com diversos parâmetros e retorno:
int potencia(int n, int p) { int i,resultado=1; for(i=1;i<=p;i++) resultado = resultado * n; return(resultado); } Chamada: printf(“%d elevado a %d vale %d.\n”,2,4,potencia(2,4)); Saída: 2 elevado a 4 vale 16

9 Revisão de Funções Função com diversos parâmetros e retorno:
int potencia(int n, int p) { int i,resultado=1; for(i=1;i<=p;i++) resultado = resultado * n; return(resultado); } Chamada: int i; for(i=1;i<5;i++) printf(“%d elevado a %d vale %d.\n”,2,i,potencia(2,i)); Saída: 2 elevado a 1 vale 1 2 elevado a 2 vale 4 2 elevado a 3 vale 8 2 elevado a 4 vale 16

10 Revisão de Funções Posicionamento das funções no programa C:
Sempre antes da função main() Caso queira colocar as funções após a função main(), é preciso colocar um “protótipo” da função antes da função main()!!!! (Mas o que é um protótipo de função?.....) …é a descrição da função! Ex: função “sai_do_programa” void sai_do_programa() { printf(“Digite qualquer tecla para sair do programa.\n”); system(“pause”); exit(0); } Protótipo da função “sai_do_programa”: void sai_do_programa();

11 Revisão de Funções Posicionamento das funções no programa C:
Ex2: função “quadrado” int quadrado(int n) { int q; q = n * n; return(q); } Protótipo da função “quadrado”: int quadrado(int n);

12 Revisão de Vetores tipo nomedovetor[DimMax]; Onde:
Vetores são Estruturas de Dados Homegêneas, isto é, capazes de armazenar uma quantidade pré-definida de valores do mesmo tipo Necessitam de apenas um índice de acesso. Declaração: tipo nomedovetor[DimMax]; Onde: tipo:um dos tipos primitivos de dados em C (char, int, float, double) nomedovetor: segue as mesmas regras das variáveis básicas DimMax: define o número máximo de elementos do vetor pode ser uma expressão constante inteira

13 Revisão de Vetores #include <stdio.h> #include <stdlib.h> #define NUM_ALUNOS 3 int main( ) { float notas [NUM_ALUNOS]; float media_turma = 0.0; int i; for ( i = 0; i < NUM_ALUNOS; i++ ) printf ("Digite a nota do %d o. aluno: ", i+1); scanf ("%f", &notas[i]); } media_turma += notas[i]; media_turma = media_turma / NUM_ALUNOS ; printf ("A media da turma eh %.2f \n", media_turma); system ("Pause"); return 0;

14 Vetores e Funções #include <stdio.h> #include <stdlib.h> #define NUM_ALUNOS 3 float media ( float notas[], int n ) { int i = 0; float m = 0.0; for ( i = 0; i < n; i++ ) m = m + notas[i] ; } m = m / n; return m; int main( ) { float notas [NUM_ALUNOS]; float media_turma; int i; for ( i = 0; i < NUM_ALUNOS; i++ ) printf ("Digite a nota do %d o. aluno: ", i+1); scanf ("%f", &notas[i]); } media_turma = media ( notas, NUM_ALUNOS ); printf ("A media da turma eh %.2f \n", media_turma); system ("Pause"); return 0;

15 Vetores e Funções E para calcular o número de alunos com notas acima da média? A função de cálculo de média pode ser a mesma já utilizada..... E agora criamos a função de cálculo da quantidade de alunos acima da média! #include <stdio.h> #include <stdlib.h> #define NUM_ALUNOS 3 float media ( float notas[], int n ) { int i = 0; float m = 0.0; for ( i = 0; i < n; i++ ) m = m + notas[i] ; } m = m / n; return m;

16 Vetores e Funções int conta_alunos_acima_da_media ( float notas[], int n, float media) { int i, conta = 0; for ( i = 0; i < n; i++ ) if (notas[i] > media) conta += 1; } return conta;

17 Vetores e Funções int main( ) { float notas [NUM_ALUNOS]; float media_turma; int i, melhores_alunos; for ( i = 0; i < NUM_ALUNOS; i++ ) printf ("Digite a nota do %d o. aluno: ", i+1); scanf ("%f", &notas[i]); } media_turma = media ( notas, NUM_ALUNOS ); printf ("A media da turma eh %.2f \n", media_turma); melhores_alunos=conta_alunos_acima_da_ media(notas, NUM_ALUNOS, media_turma); printf (“E o numero de alunos com nota acima da media foi: %d .\n”, melhores_alunos); system ("Pause"); return 0;

18 Vetores e Funções Desafio 1: Alterar o programa anterior para:
Receber duas notas bimestrais de cada aluno; Verificar se cada nota está entre 0.0 e 10.0; Calcular a média de cada aluno (e armazenar o valor em um vetor); Modificar o programa para apresentar os seguintes resultados: média geral da turma; número de alunos com média individual acima da média da turma.

19 Matrizes e Funções Será que é possível “passar matrizes” por parâmetro? Se sim, como?

20 Matrizes e Funções int main() {
#include <stdio.h> #include <stdlib.h> #define NUM_ALUNOS 3 int main() { float notas [NUM_ALUNOS][2], media_turma; int i; for ( i = 0; i < NUM_ALUNOS; i++ ) printf ("Digite a 1a. nota do %d o. aluno \n: ", i+1); scanf ("%f", &notas[i][0]); printf ("Digite a 2a. nota do %d o. aluno \n: ", i+1); scanf ("%f", &notas[i][1]); } media_turma = media_geral ( notas, NUM_ALUNOS ); printf ( "A media da turma eh %.2f \n", media_turma); system ("Pause"); return 0;

21 Matrizes e Funções float media_geral ( float notas[][2], int n ) { int i = 0; float m = 0.0; float notaaluno = 0.0; for ( i = 0; i < n; i++ ) notaaluno = ( notas[i][0] + notas[i][1] )/2; m = m + notaaluno; } m = m / n; return m;

22 Exercício Complementar:
Elabore um programa que manipule os dados para uma sala de 40 alunos. O programa deve receber como entrada (via leitura de teclado): Os nomes dos alunos (máximo 50 caracteres). As duas notas parciais. O programa deve calcular e imprimir, numa mesma linha, para cada aluno: O nome e a média final. E também deve apresentar: A maior média da turma, e a menor média da turma. A quantidade de alunos aprovados, reprovados e em exame. Uma listagem com o nome dos alunos que irão para a final.


Carregar ppt "Vetores, Matrizes e Funções"

Apresentações semelhantes


Anúncios Google