Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal da Grande Dourados Faculdade de Ciências Exatas e de Tecnologias Curso de Bacharelado em Sistemas de Informação Algoritmos e Programação Modularidade (1) Profª Janne Oeiras Lachi 1 Plano de aula ` Programação estruturada de computador ou Programação modular ` Subprogramas: procedimentos e funções ` Variáveis globais e locais ` Passagem de parâmetro: por valor e por referência ` Parâmetros formais e reais Tipos de módulos ou subprogramas ` Procedimento ou Sub-rotina ` É um tipo de módulo que não retorna valor ` São estruturas que agrupam um conjunto de comandos executados quando o procedimento é invocado ` Funções ` É um tipo de módulo que tem a capacidade de sempre retornar um valor como resposta. Procedimentos ` Tem início e fim (como qualquer algoritmo) e é identificado por um nome para que possa ser chamado pela unidade mestre (algoritmo principal). ` Sintaxe em Português estruturado: programa <nome_do_seu_programa> procedimento <nome_do_procedimento> var <variáveis do procedimento> início <instruções do procedimento> fim var <variáveis do seu programa> início <instruções> <sub-rotina> <instruções> fim É como se você tivesse um programa dentro de outro Exemplo 1 ` Escreva um procedimento para imprimir o seguinte cabeçalho: Universidade Federal da Grande Dourados Curso de Bacharelado em Sistemas de Informação Ano 2012 ` Escreva um algoritmo em Português estruturado que utilize o procedimento para escrever o cabeçalho. Exemplo 1: solução programa <nome_do_seu_programa> procedimento <nome_do_procedimento> var <variáveis do procedimento> início <instruções do procedimento> fim var <variáveis do seu programa> início <instruções> <sub-rotina> <instruções> fim programa IMPRESSAO procedimento CABECALHO início escreva “Universidade Federal da Grande Dourados” escreva “Curso de Bacharelado em Sistemas de Informação” escreva “Ano 2012” fim início CABECALHO fim Exemplo 1: em Pascal programa IMPRESSAO procedimento CABECALHO início escreva “Universidade Federal da Grande Dourados” escreva “Curso de Bacharelado em Sistemas de Informação” escreva “Ano 2012” fim início CABECALHO fim Program Impressao; procedure CABECALHO; begin writeln(‘Universidade Federal da Grande Dourados’); writeln(‘Curso de Bacharelado em Sistemas de Informação’); writeln(‘Ano 2012’); end; Begin CABECALHO; End. Tipos de módulos ou subprogramas ` A Linguagem C permite SOMENTE a definição de FUNÇÕES ` Não há o conceito de procedimento implementado como em outras linguagens como Pascal, Fortran, Basic etc. ` Porém, vamos implementar procedimentos usando funções em C. ` Todo programa em Linguagem C contém pelo menos 1 função: main() ` Além das funções disponíveis nas bibliotecas C (padrão ou não), você pode criar e usar novas funções. Funções em Linguagem C ` Sintaxe: tipo nome_função (tipo nome_parâmetro 1, ..., tipo nome_parâmetro n) { comando 1; ... comando n; return(valor_de_retorno); } O tipo de uma função ` O tipo de uma função é definido pelo tipo de valor que ela retorna por meio do comando return; ` Os tipos de funções em C são os mesmos tipos usados para declarar variáveis, exceto quando a função não retorna nada. Nesse caso ela é do tipo void; ` Atenção: o tipo de uma função é determinado pelo valor que ela retorna via comando return, e não pelo tipo de argumento que ela recebe. tipo nome_função (tipo nome_parâmetro 1, ..., tipo nome_parâmetro n) { comando 1; ... comando n; return(valor_de_retorno); } Função do tipo void ` Quando a função não retorna nada, ela é do tipo void; ` Procedimento ou Sub-rotina ` É um tipo módulo que não retorna valor ` São estruturas que agrupam um conjunto de comandos executados quando o procedimento é invocado Na Linguagem C, vamos definir nossos procedimentos como funções do tipo void Exemplo 1: em Linguagem C #include <stdio.h> #include <stdlib.h> void cabecalho(void); /* protótipo da função */ int main() { cabecalho(); system("pause"); return 0; } /* definição da função */ void cabecalho(void) { printf("Universidade Federal da Grande Dourados\n"); printf("Curso de Bacharelado em Sistemas de Informação\n"); printf("Ano 2012\n"); } programa IMPRESSAO procedimento CABECALHO início escreva “Universidade Federal da Grande Dourados” escreva “Curso de Bacharelado em Sistemas de Informação” escreva “Ano 2012” fim início CABECALHO fim Exemplo 1: em Linguagem C #include <stdio.h> #include <stdlib.h> void cabecalho(void); /* protótipo da função */ int main() { cabecalho(); system("pause"); return 0; } /* definição da função */ void cabecalho(void) { printf("Universidade Federal da Grande Dourados\n"); printf("Curso de Bacharelado em Sistemas de Informação\n"); printf("Ano 2011\n"); } programa IMPRESSAO procedimento CABECALHO início escreva “Universidade Federal da Grande Dourados” escreva “Curso de Bacharelado em Sistemas de Informação” escreva “Ano 2011” fim início CABECALHO fim Relembrando a sintaxe ` Sintaxe: #include <stdio.h> #include <stdlib.h> void cabecalho(void); /* protótipo da função */ int main() { cabecalho(); system("pause"); return 0; } /* definição da função */ void cabecalho(void) { printf("Universidade Federal da Grande Dourados\n"); printf("Curso de Bacharelado em Sistemas de Informação\n"); printf("Ano 2011\n"); } tipo nome_função (tipo nome_parâmetro 1, ..., tipo nome_parâmetro n) { comando 1; ... comando n; return(valor_de_retorno); } Note que neste exemplo, a função cabecalho não tem o return no final. Funções do tipo void ` Em funções do tipo void o comando return não é obrigatório; ` Uma função sem comando return termina quando encontra a chave de fechamento “}”. ` Podem ter um comando return desacompanhado de expressão; ` Nesse caso o return serve para terminar a execução da função; Exemplo 1: em Linguagem C #include <stdio.h> #include <stdlib.h> void cabecalho(void); /* protótipo da função */ int main() { cabecalho(); system("pause"); return 0; } /* definição da função */ void cabecalho(void) { printf("Universidade Federal da Grande Dourados\n"); printf("Curso de Bacharelado em Sistemas de Informação\n"); printf("Ano 2012\n"); return; } Poderia ser assim... Relembrando a sintaxe ` Sintaxe: #include <stdio.h> #include <stdlib.h> void cabecalho(void); /* protótipo da função */ int main() { cabecalho(); system("pause"); return 0; } /* definição da função */ void cabecalho(void) { printf("Universidade Federal da Grande Dourados\n"); printf("Curso de Bacharelado em Sistemas de Informação\n"); printf("Ano 2012\n"); } tipo nome_função (tipo nome_parâmetro 1, ..., tipo nome_parâmetro n) { comando 1; ... comando n; return(valor_de_retorno); } Nosso procedimento não precisa receber parâmetros, então usamos void Protótipo da função ` Uma função não pode ser chamada sem antes ter sido declarada; ` A declaração de uma função é denominada protótipo da função; ` O protótipo é colocado no início do programa e estabelece o tipo da função e os argumentos que ela recebe. #include <stdio.h> #include <stdlib.h> void cabecalho(void); /* protótipo da função */ int main() { cabecalho(); system("pause"); return 0; } /* definição da função */ void cabecalho(void) { printf("Universidade Federal da Grande Dourados\n"); printf("Curso de Bacharelado em Sistemas de Informação\n"); printf("Ano 2012\n"); } Usa-se o protótipo porque geralmente um programa tem várias funções que se fossem declaradasno início do arquivo, jogariam a função main lá para baixo, quando a main deveria ser a primeira função a ser vista. Protótipo da função ` O protótipo de uma função deve preceder sua definição e sua chamada. ` Fornece para o compilador as informações necessárias sobre o tipo da função, o número e o tipo dos argumentos. ` Sem o protótipo da função, o compilador não tem como verificar e checar se há erros em seu uso. ` Sintaxe: tipo nome_função (tipo 1, ..., tipo n); void cabecalho (void); Não utilização de protótipo ` O protótipo pode ser eliminado, basta escrever a função antes da função chamadora. #include <stdio.h> #include <stdlib.h> /* definição da função */ void cabecalho(void) { printf("Universidade Federal da Grande Dourados\n"); printf("Curso de Bacharelado em Sistemas de Informação\n"); printf("Ano 2011\n"); } int main() { cabecalho(); system("pause"); return 0; } Problema: a função main() é o ponto de início e pode ficar bem para “baixo” no código. Não utilização de protótipo ` Caso a função seja do tipo int, char ou void, não é obrigatório o uso do protótipo e nem a declaração do tipo da função. #include <stdio.h> #include <stdlib.h> main() { cabecalho(); return 0; } /* definição da função */ cabecalho() { printf(“Universidade Federal da Grande Dourados”); printf(“Curso de Bacharelado em Sistemas de Informação”); printf(“Ano 2012”); } O tipo da função cabecalho não foi declarado e é assumido como do tipo int. Foram omitidos os tipos de main() e cabecalho() Exemplo de problema ` Desenvolver um algoritmo que simule as operações básicas de uma calculadora que opere com a entrada de dois valores do tipo real após a escolha da operação a ser executada. ` O algoritmo deve apresentar uma lista de opções (menus) com as operações matemáticas de adição, subtração, multiplicação e divisão, além de uma opção de saída do algoritmo. ` Escolhida a opção desejada, deve ser solicitada a entrada de dois valores numéricos para que seja possível executar o processamento escolhido. ` Após a execução da operação, o algoritmo deve apresentar o resultado e voltar a apresentar o menu de opções. Referências ` Algoritmos – Fundamento e Prática. Everton Coimbra de Araújo. Florianópolis: Visual Book, 2007. ` Algoritmos - Lógica para desenvolvimento de programação de computadores. José Augusto N. G. Manzano, Jayr Figueiredo de Oliveira. São Paulo: Érica, 2006. ` Victorine Viviane Mizrahi. Treinamento em linguagem C. São Paulo: Pearson Prentice Hall, 2008. ` Ricardo Sonaglio Albano e Silvie Guedes Albano. Programação em Linguagem C. Rio de Janeiro; Editora Ciência Moderna, 2010. 23 Algoritmos e Programação Plano de aula Tipos de módulos ou subprogramas Procedimentos Exemplo 1 Exemplo 1: solução Exemplo 1: em Pascal Tipos de módulos ou subprogramas Funções em Linguagem C O tipo de uma função Função do tipo void Exemplo 1: em Linguagem C Exemplo 1: em Linguagem C Relembrando a sintaxe Funções do tipo void Exemplo 1: em Linguagem C Relembrando a sintaxe Protótipo da função Protótipo da função Não utilização de protótipo Não utilização de protótipo Exemplo de problema Referências
Compartilhar