Programação em Linguagem C Aula #111 EBS 111 ICC Prof Luiz Fernando S Coletta luizfsc@tupaunespbr Campus de Tupã
Modularização do código 2
Modularização do código Organização, legibilidade e manutenibilidade 3
Modularização do código Organização, legibilidade e manutenibilidade Na linguagem C Usamos Procedimentos e Funções 4
Modularização do código Organização, legibilidade e manutenibilidade Na linguagem C Usamos Procedimentos e Funções Evita repetição de código; Geralmente procedimentos e funções são invocados na main(); A declaração de funções e procedimentos deve vir antes de seu uso! 5
Funções em C tipo_retorno nome(parâmetros){ return ; 6
Funções em C tipo_retorno nome(parâmetros){ return ; float convtemp(float C){ float F; F = C*(9/5)+32; return F; 7
Funções em C tipo_retorno nome(parâmetros){ return ; float convtemp(float C){ float F; F = C*(9/5)+32; return F; Funções podem compor bibliotecas (header-files) Estas bibliotecas são arquivos h que podem ter suas funções acessadas usando-se #include <nome_bibliotecah> https://wwwimeuspbr/~pf/algoritmos/apend/interfaceshtml 8
Procedimentos em C void nome(parâmetros){ 9
Procedimentos em C void nome(parâmetros){ Procedimentos podem ser entendidos como funções que não retornam nenhum valor 10
Procedimentos em C void nome(parâmetros){ void imprsit(float peso){ if (peso > 100){ printf( Acima do peso ); else{ printf( Peso normal ); Procedimentos podem ser entendidos como funções que não retornam nenhum valor 11
Chamadas de funções/procedimentos Se faz através de argumentos que são passados para os parâmetros da função/procedimento: 12
Chamadas de funções/procedimentos Se faz através de argumentos que são passados para os parâmetros da função/procedimento: float convtemp(float C){ float F; F = C*(9/5)+32; return F; void main(){ grausf = convtemp(grausc); 13
Chamadas de funções/procedimentos Se faz através de argumentos que são passados para os parâmetros da função/procedimento: float convtemp(float C){ float F; F = C*(9/5)+32; return F; void main(){ grausf = convtemp(grausc); void imprsit(float peso){ if (peso > 100){ printf( Acima do peso ); else{ printf( Peso normal ); void main(){ imprsit(medicaopeso); 14
Escopo de variáveis Variável global x variável local 15
Escopo de variáveis Variável global x variável local 16
Escopo de variáveis Variável global x variável local 17
Exercícios (fazer agora) 1 Assumindo que o cálculo do fatorial n! é dado pela seguinte equação: implemente uma função que receba um valor n 0 e devolva o seu fatorial Invoque esta função no bloco de código main(); neste local, leia um valor de n, passe-o para a função e exiba na tela o seu resultado 18
Fatorial Recursivo 19
Exercícios (fazer agora) 2 Desenvolva uma melhoria no programa desenvolvido em 1: quando o usuário fornecer um valor de n que seja negativo não executar o cálculo do fatorial e informar o seguinte: Apenas valores positivos são aceitos 20
Próxima aula: 8/6 Laboratório 1 Material em http://luizcolettacom/ebs111/ Prof Luiz Fernando S Coletta luizfsc@tupaunespbr Campus de Tupã
Exercício (aula prática) 1 Crie uma estrutura (global) de dados, Academia, que armazene o código, nome, peso e altura de até 1000 sócios (deverá ser declarado um vetor do tipo desta estrutura) Leia os dados de sócios, para serem cadastrados na estrutura, enquanto o código do sócio digitado for maior de zero; 2 A seguir, leia um código, t, a ser pesquisado na estrutura Deve-se armazenar em uma variável, p, a posição em que se encontra este código no vetor; 22
Exercício (aula prática) 3 A partir da posição p, recupere da estrutura: o peso (P) e a altura (A) do sócio Passe esses valores para uma função, CalcIMC Esta função irá retornar para o programa principal o índice de massa corporal do sócio, cujo cálculo se dá por: P/(A 2 ); 4 Com base no IMC, informe na tela a situação do sócio por meio de um procedimento que mapeia as condições da tabela abaixo - invoque este procedimento na main(): 23