1 / 22

Linguagem C

Vetores, Matrizes e Funções. Linguagem C. 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 ;

Download Presentation

Linguagem C

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Revisão de Funções • O que são “Funções”? (ou subprogramas ou subrotinas) • São trechos de códigofonteagrupados sob um nome, quepodem ser chamadossempreque for necessárioexecutarumadeterminadaaçãoprogramadanestetrecho; • Como usarfunçõ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 • 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 mudaremmúltiploslugarescasodesejealterar o seufuncionamento; • 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(“Digitequalquerteclaparasair 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: intquadrado(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: intquadrado(int n) { int q; q = n * n; return(q); } Chamada: inti; 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: intpotencia(int n, int p) { inti,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: intpotencia(int n, int p) { inti,resultado=1; for(i=1;i<=p;i++) resultado = resultado * n; return(resultado); } Chamada: inti; 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 dafunção main() • Casoqueiracolocar as funçõesapós a função main(), é precisocolocar um “protótipo” dafunção antes dafunção main()!!!! • (Mas o que é um protótipo de função?.....) • …é a descriçãodafunção! • Ex: função “sai_do_programa” void sai_do_programa() { printf(“Digitequalquerteclaparasair do programa.\n”); system(“pause”); exit(0); } • Protótipodafunçã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” intquadrado(int n) { int q; q = n * n; return(q); } • Protótipodafunção “quadrado”: intquadrado(int n);

  12. Revisão de Vetores • Vetores são Estruturas de DadosHomegê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]); } for ( i = 0; i < NUM_ALUNOS; 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 ) { inti = 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 #include <stdio.h> #include <stdlib.h> #define NUM_ALUNOS 3 float media ( float notas[], int n ) { inti = 0; float m = 0.0; for ( i = 0; i < n; i++ ) { m = m + notas[i] ; } m = m / n; return m; } • 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!

  16. Vetores e Funções intconta_alunos_acima_da_media ( float notas[], int n, float media) { inti, 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 #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.

More Related