Fundamentos de Programação 1 Slides 7 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Funções” 1.

Slides:



Advertisements
Apresentações semelhantes
Funções em C Prof. Fabiano Utiyama.
Advertisements

Um programa em C Bibliotecas Variáveis globais
Linguagem C Funções.
Armazenamento de Dados em Arquivos
Vetores, Matrizes e Funções
Estruturas de Dados Homogêneas Unidimensionais – Vetores e Strings
Slides: Prof. João Fabro UTFPR - Curitiba
Armazenamento de Dados em Arquivos
Estruturas de Dados Homogêneas Multidimensionais – Matrizes
Matrizes e Funções - Continuação
Slides: Prof. SIMÃO Revisão: Prof. João Fabro
Slides: Prof. João Fabro UTFPR - Curitiba
Estruturas de Decisão Permitir testes para decidir acções alternativas: if if - else switch (?:) Operador Condicional MF.
Linguagem de Programação
Ameliara Freire Programação I Ameliara Freire
PROGRAMAÇÃO ESTRUTURADA II
Introdução à linguagem C
Técnicas de Desenvolvimento de Programas
Linguagem de Programação
Algoritmos - Profa. Alciléia1 Profa. Maria Alciléia Alves Rocha Funções em C 2011.
Introdução à Linguagem C
Declarando e Chamando Funções
Aula Prática 3 Funções Monitoria Introdução à Programação.
 São utilizadas para dividir um código maior (mais complexo) em partes menores (mais simples).  Quando uma mesma tarefa é realizada várias vezes em um.
Aula prática 3 Aprofundando em Funções Parâmetros de uma função Uso do return Execução Variáveis Global, local e estática Monitoria de Introdução à.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
Revisão Luis Antonio Tavares
Comando de Seleção switch
Aula Prática 3 Funções Monitoria Introdução à Programação.
Professora: Flávia Balbino da Costa. RRevisão (estruturas de decisão e repetição, procedimentos e funções ) TTrabalhando com a Linguagem C EEstrutura.
Profº Antonio Carlos Marcelino de Paula
Introdução à Programação Engenharia da Computação Aula Prática 3 Funções Monitoria
Profa. Maria Augusta Constante Puget
Linguagem de Programação 11 Estruturas de Decisão e Repetição. Prof. Luiz José Hoffmann Filho
Arrays e Matrizes na Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
PRE 1002 Éverlin Marques 2015/1.
Computação – Informática Aula N. 05 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Matrizes em C”
Fundamentos de Programação 1 Slides 19 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Binários”.
Fundamentos de Programação 1 Slides 11 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “ Struct, Union, Enum, Typedef ”
Fundamentos de Programação1 Aula N. 01 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Introdução e elementos principais”
Fundamentos de Programação 1 Aula N. 02 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Laços de Repetição em C”
Fundamentos de Programação 1
Fundamentos de Programação 1 Slides C – Número 4 Prof. SIMÃO Jean Marcelo SIMÃO Estrutura de Dados Homogêneas “vetores de números e de caracteres”
Fundamentos de Programação 1 Slides 7 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Funções”
Funções Prof. Márcio.
Linguagem C Escola Olímpio Professor Marcelo Josué Telles Linguagem de Programação I1 de 36.
Aula 4 Comandos de Repeti çã o Prof. Filipe Mutz..
Fundamentos de Programação 1 Slides 21 Prof.ª Fabiany e Prof. SIMÃO Linguagem C “Lista Encadeada”.
Fundamentos de Programação 1 Slides 22 Prof.ª Fabiany e Prof. SIMÃO Linguagem C “Lista Duplamente Encadeada - Projeto com vários Arquivos”.
Orientação a Objetos - Programação em C++ Slides 11: Herança et al. (Funções Virtuais, Polimorfismo, Herança Múltipla, Funções Virtuais Puras e Classes.
Algoritmos Grupos de Slides No 1. Prof. J. M. SIMÃO Feito por Prof. Jean Marcelo SIMÃO e revisado por Prof. Luis Alberto LUCAS.
Fundamentos de Programação 1 Aula N. 02 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Laços de Repetição em C” 1.
Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.
Lógica de Programação Aula 08 Prof. Marcelo Marcony.
Lógica de programação Estruturas de seleção Estruturas de repetição Sub-Rotinas 1.
Grupos de Slides No 5. Prof. SIMÃO
Algoritmos Grupos de Slides No 4. Prof. SIMÃO Estrutura de decisão de múltipla escolha “escolha-caso” switch case Feito por Prof. Jean Marcelo SIMÃO e.
Fundamentos de Programação1 Aula N. 01 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Introdução e elementos principais” 1.
Algoritmos Grupos de Slides No 6. Prof. SIMÃO Estrutura de Repetição “faça até” do until Feito por Prof. Jean Marcelo SIMÃO e revisado por Prof. Luis Alberto.
Fundamentos de Programação 1 Linguagem C Slides 03 – ‘Vetores’ Prof. SIMÃO Jean Marcelo SIMÃO Estrutura de Dados Homogêneas “Vetores” 1.
Computação – Informática Aula N. 05 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Matrizes em C” 1.
Estruturas Homogêneas - Matrizes
Algoritmos Grupos de Slides No 7. Prof. SIMÃO Estrutura de Repetição “para - passo”” for Feito por Prof. Jean Marcelo SIMÃO e revisado por Prof. Luis Alberto.
Fundamentos de Programação 1 Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Seqüências ou de Texto ”. 1.
Algoritmos Grupos de Slides No 3. Prof. SIMÃO Estrutura de decisão composta "se senão" if else end Feito por Prof. Jean Marcelo SIMÃO e revisado por Prof.
Estruturas de Repetição
Fundamentos de Programação 1
Fundamentos de Programação 1
Fundamentos de Programação 1
Programação de Computadores LINGUAGEM C – AULA 05 - PROF. WELLINGTON TELLES.
Transcrição da apresentação:

Fundamentos de Programação 1 Slides 7 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Funções” 1

Funções e variáveis globais #include float area = -1.0; void calc_area_quadrado(); void calc_area_triang_ret(); int main() { int opcao = -1; printf ("Cálculo de áreas. \n"); printf ("0 - Área de um quadrado. \n"); printf ("1 - Área de um triângulo ret. \n"); printf ("Informe sua opção: \n"); scanf ("%d", &opcao); switch (opcao) { case 0: { calc_area_quadrado (); } break; case 1: { calc_area_triang_ret (); } break; default: { printf ("Opcao inválida! \n"); } printf ("O calculo da área é: %f \n", area); fflush (stdin); getchar(); return 0; } void calc_area_quadrado () { float lado = 0.0; printf ("Informe o valor do lado \n"); scanf ("%f", &lado); area = lado * lado; } void calc_area_triang_ret () { float lado1 = 0.0; float lado2 = 0.0; printf ("Informe o valor do primeiro lado \n"); scanf ("%f", &lado1); printf ("Informe o valor do segundo lado \n"); scanf ("%f", &lado2); area = (lado1 * lado2) / 2.0; } 2

Retorno de Funções - Variáveis locais #include float calc_area_quadrado(); float calc_area_triang_ret(); int main() { int opcao = -1; float area = -1.0; printf ("Cálculo de áreas. \n"); printf ("0 - Área de um quadrado. \n"); printf ("1 - Área de um triângulo ret. \n"); printf ("Informe sua opção: \n"); scanf ("%d", &opcao); switch (opcao) { case 0: { area = calc_area_quadrado ( ); } break; case 1: { area = calc_area_triang_ret ( ); } break; default: { printf("Opcao inválida! \n"); } printf("O cálculo da área é: %f \n", area); fflush(stdin); getchar(); return 0; } float calc_area_quadrado() { float lado = 0.0; float result = 0.0; printf ("Informe o valor do lado \n"); scanf ("%f", &lado); result = (lado * lado); return result; } float calc_area_triang_ret() { float lado1 = 0.0; float lado2 = 0.0; float result = 0.0; printf ("Informe o valor do primeiro lado \n"); scanf ("%f", &lado1); printf ("Informe o valor do segundo lado \n"); scanf ("%f", &lado2); result = (lado1 * lado2) / 2; return result; } 3

Funções com parâmetros por valor - 1. #include float calc_area_quadrado (float); float calc_area_triang_ret (float, float); int main() { int opcao = -1; float area = -1.0; printf ("Cálculo de áreas. \n"); printf ("0 - Área de um quadrado. \n"); printf ("1 - Área de um triângulo ret. \n"); printf ("Informe sua opção: \n"); scanf ("%d", &opcao); switch(opcao) { case 0: { float lado = 0.0; printf("Informe o valor do lado \n"); scanf("%f", &lado); area = calc_area_quadrado ( lado ); } break; case 1: { float lado1 = 0.0; float lado2 = 0.0; printf ("Informe o valor do primeiro lado \n"); scanf ("%f", &lado1); printf ("Informe o valor do segundo lado \n"); scanf ("%f", &lado2); area = calc_area_triang_ret (lado1, lado2); } break; default: { printf ("Opcao inválida! \n"); } printf("O cálculo da área é: %f \n", area); fflush(stdin); getchar(); return 0; } float calc_area_quadrado (float lado) { float result = 0.0; result = (lado * lado); return result; } float calc_area_triang_ret (float lado1, float lado2) { float result = 0.0; result = (lado1 * lado2) / 2; return result; } 4

Funções com parâmetros por valor - 2. #include float calc_area_quadrado (float); float calc_area_triang_ret (float, float); int main() { int opcao = -1; float area = -1.0; printf ("Cálculo de áreas. \n"); printf ("0 - Área de um quadrado. \n"); printf ("1 - Área de um triângulo ret. \n"); printf ("Informe sua opção: \n"); scanf ("%d", &opcao); switch(opcao) { case 0: { float lado = 0.0; printf("Informe o valor do lado \n"); scanf("%f", &lado); area = calc_area_quadrado (lado); } break; case 1: { float lado1 = 0.0; float lado2 = 0.0; printf ("Informe o valor do primeiro lado \n"); scanf ("%f", &lado1); printf ("Informe o valor do segundo lado \n"); scanf ("%f", &lado2); area = calc_area_triang_ret (lado1, lado2); } break; default: { printf ("Opcao inválida! \n"); } printf("O cálculo da área é: %f \n", area); fflush(stdin); getchar(); return 0; } float calc_area_quadrado (float ld) { float result = 0.0; result = (ld * ld); return result; } float calc_area_triang_ret (float ld1, float ld2) { float result = 0.0; result = (ld1 * ld2) / 2; return result; } 5

Funções com parâmetros por valor - 3. #include float calc_area_quadrado (float); float calc_area_triang_ret (float, float); int main() { int opcao = -1; float area = -1.0; printf ("Cálculo de áreas. \n"); printf ("0 - Área de um quadrado. \n"); printf ("1 - Área de um triângulo ret. \n"); printf ("Informe sua opção: \n"); scanf ("%d", &opcao); switch(opcao) { case 0: { float lado = 0.0; printf("Informe o valor do lado \n"); scanf("%f", &lado); area = calc_area_quadrado (lado); printf("O lado vale: %f \n", lado); } break; case 1: { float lado1, lado2; printf ("Informe o valor do primeiro lado \n"); scanf ("%f", &lado1); printf ("Informe o valor do segundo lado \n"); scanf ("%f", &lado2); area = calc_area_triang_ret (lado1, lado2); } break; default: { printf ("Opcao inválida! \n"); } printf("O cálculo da área é: %f \n", area); fflush ( stdin ); getchar(); return 0; } float calc_area_quadrado (float ld) { ld = ( ld * ld ); return ld; } float calc_area_triang_ret (float ld1, float ld2) { float result = 0.0; result = (ld1 * ld2) / 2; return result; } 6

Funções com parâmetros por retorno -1. #include void calc_area_quadrado (float, float *); void calc_area_triang_ret (float, float, float *); int main() { int opcao = -1; float area = -1.0; printf("Cálculo de áreas. \n"); printf("0 - Área de um quadrado. \n"); printf("1 - Área de um triângulo ret. \n"); printf("Informe sua opção: \n"); scanf("%d", &opcao); switch (opcao) { case 0: { float lado = 0.0; printf("Informe o valor do lado \n"); scanf("%f", &lado); calc_area_quadrado (lado, &area); } break; case 1: { float lado1 = 0.0; float lado2 = 0.0; printf ("Informe o valor do primeiro lado \n"); scanf ("%f", &lado1); printf ("Informe o valor do segundo lado \n"); scanf ("%f", &lado2); calc_area_triang_ret (lado1, lado2, &area); } break; } if ( ( 0 == opcao) || ( 1 == opcao ) ) { printf ("O cálculo da área é: %f \n", area); } fflush ( stdin ); getchar(); return 0; } void calc_area_quadrado (float lado, float *area) { *area = (lado * lado); } void calc_area_triang_ret (float lado1, float lado2, float *area) { *area = (lado1 * lado2) / 2; } 7

Funções com parâmetros por retorno - 2. #include void calc_area_quadrado (float, float *); void calc_area_triang_ret (float, float, float *); int main() { int opcao = -1; float area = -1.0; printf("Cálculo de áreas. \n"); printf("0 - Área de um quadrado. \n"); printf("1 - Área de um triângulo ret. \n"); printf("Informe sua opção: \n"); scanf("%d", &opcao); switch (opcao) { case 0: { float lado = 0.0; printf("Informe o valor do lado \n"); scanf("%f", &lado); calc_area_quadrado (lado, &area); } break; case 1: { float lado1 = 0.0; float lado2 = 0.0; printf ("Informe o valor do primeiro lado \n"); scanf ("%f", &lado1); printf ("Informe o valor do segundo lado \n"); scanf ("%f", &lado2); calc_area_triang_ret (lado1, lado2, &area); } break; } if ( ( 0 == opcao) || ( 1 == opcao ) ) { printf ("O cálculo da área é: %f \n", area); } fflush ( stdin ); getchar(); return 0; } void calc_area_quadrado (float lado, float *ar) { *ar = (lado * lado); } void calc_area_triang_ret (float lado1, float lado2, float *ar) { *ar = (lado1 * lado2) / 2.0; } 8

Funções com parâmetros por retorno – 3 (alternativo para C++). #include void calc_area_quadrado (float, float &); void calc_area_triang_ret (float, float, float &); int main() { int opcao = -1; float area = -1.0; printf ( "Cálculo de áreas. \n" ); printf ( "0 - Área de um quadrado. \n" ); printf ("1 - Área de um triângulo ret. \n" ); printf ( "Informe sua opção: \n" ); scanf ( "%d", &opcao); switch (opcao) { case 0: { float lado = 0.0; printf ( "Informe o valor do lado \n" ); scanf ( "%f", &lado ); calc_area_quadrado ( lado, area ); } break; case 1: { float lado1 = 0.0; float lado2 = 0.0; printf ( "Informe o valor do primeiro lado \n" ); scanf ( "%f", &lado1 ); printf ( "Informe o valor do segundo lado \n" ); scanf ( "%f", &lado2 ); calc_area_triang_ret ( lado1, lado2, area ); } break; } if ( ( 0 == opcao) || ( 1 == opcao ) ) { printf ("O cálculo da área é: %f \n", area); } fflush ( stdin ); getchar(); return 0; } void calc_area_quadrado ( float lado, float &ar ) { ar = ( lado * lado ); } void calc_area_triang_ret ( float lado1, float lado2, float &ar ) { ar = ( lado1 * lado2 ) / 2; } Nesta versão, usa-se o & na frente do parâmetro por referência na função... enquanto na versão anterior usava-se um * na frente do parâmetro tanto quanto em qq utilização dele na função e ainda se fazia necessário usar um & na chamada da função, na frente da varíável relacionada ao parâmetro. Isto só funciona em C++... Não funciona em C puro 9

Funções com parâmetros por retorno – 3 (alternativo para C++). #include void calc_area_quadrado (float, float &); void calc_area_triang_ret (float, float, float &); int main() { int opcao = -1; float area = -1.0; printf ( "Cálculo de áreas. \n" ); printf ( "0 - Área de um quadrado. \n" ); printf ("1 - Área de um triângulo ret. \n" ); printf ( "Informe sua opção: \n" ); scanf ( "%d", &opcao); switch (opcao) { case 0: { float lado = 0.0; printf ( "Informe o valor do lado \n" ); scanf ( "%f", &lado ); calc_area_quadrado ( lado, area ); } break; case 1: { float lado1 = 0.0; float lado2 = 0.0; printf ( "Informe o valor do primeiro lado \n" ); scanf ( "%f", &lado1 ); printf ( "Informe o valor do segundo lado \n" ); scanf ( "%f", &lado2 ); calc_area_triang_ret ( lado1, lado2, area ); } break; } if ( ( 0 == opcao) || ( 1 == opcao ) ) { printf ("O cálculo da área é: %f \n", area); } fflush(stdin); getchar(); return 0; } void calc_area_quadrado ( float lado, float &ar ) { ar = ( lado * lado ); } void calc_area_triang_ret ( float lado1, float lado2, float &ar ) { ar = ( lado1 * lado2 ) / 2; } Nesta versão, usa-se o & na frente do parâmetro por referência na função... enquanto na versão anterior usava-se um * na frente do parâmetro tanto quanto em qq utilização dele na função e ainda se fazia necessário usar um & na chamada da função, na frente da varíável relacionada ao parâmetro. Isto só funciona em C++... Não funciona em C puro 10

Exercício 1 Elaborar um programa que calcule o valor de PI por meio de uma função específica para tal. O valor de PI, na função, deve ser calculado utilizando a seguinte série: O número de termos da série deverá ser maior que 10 e informado pelo usuário. Este número servirá de parâmetro para a função em questão. Certamente, na elaboração, deve ser considerada a qualidade da solução (e.g. uso apropriado das estruturas algorítmicas e não uso de variáveis globais), sua consistência (e.g. variáveis validadas) e sua ‘elegância’ (e.g. caligrafia adequada e endentação). 11 sendo PI =

Exercício 2 Elaborar um programa que permita receber as notas de cada aluno de uma turma de n alunos, sendo n informado pelo usuário e não podendo ultrapassar 30. O programa deve ser capaz de –Receber as notas das seis (6) parciais de cada aluno, bem como calcular e informar a sua média (ma) –Para cada aluno, identificado por um número único (contador), informar: “Reprovado” se média (ma) menor que 5.0 (isto é, ma ≥ 0 e ma < 5.0) “Exame” se média (ma) entre 5.0 e 6.9 (isto é, ma ≥ 5.0 e ma ≤ 6.9). “Aprovado” se média (ma) maior que 6.9 (isto é, ma > 6.9.e ma ≤ 10.0). –Os dois tópicos acima devem estar em uma função que retorna o valor da média do aluno. Esta função (bem como qualquer outra função da resolução deste exercício) não deve fazer uso de variável global. –Calcular a média geral da turma (mt). –Calcular e informar a maior média (mar) obtida na turma. –Calcular e informar a menor e 2 a menor média obtida na turma. –Os cálculos dos dois tópicos acima devem ser feito por meio de um conjunto de funções, sendo que estas não poderão ter comunicação com o usuário (e.g. não utilizar comando ‘printf’ neles). Assim sendo, eles deverão utilizar parâmetros apropriados e/ou retorno (cf. o caso).

Exercício 3 1)Faça um programa que leia as coordenadas de um quadrado (x1,y1) (x2,y2) (x3,y3) (x4,y4) e calcule o perímetro do quadrado formado pelas coordenadas lidas através de uma função que retorna o perímetro do quadrado para o programa principal. 2)Elabore um programa que leia um valor e imprima: se o valor é par ou ímpar se é divisível por 5 seu fatorial. sua tabuada. Obs.: Utilize uma função para executar cada uma das tarefas anteriores e utilize somente variáveis locais e parâmetros (não use variáveis globais).

Fazer exercícios outros: os da apostila, por exemplo. 14