Baixe o app para aproveitar ainda mais
Prévia do material em texto
# # # # # # # # # # # # # # # # # PROGRAMAÇÃO DE COMPUTADORES Prof. Jean Carvalho Email: jeancarvalho@ufsj.edu.br Site: sites.google.com/site/jeancarvalhoufsj Sala: 4.29EL Aula 09 # # # # # # # # # # # # # # # # # Índice Modularização Sub-rotinas Funções 2 # # # # # # # # # # # # # # # # # Modularização Programação Estruturada: Divisão de um problema em partes; Facilita a resolução de tarefas; Diminui o tamanho dos programas; Facilita a alteração. Divisão Refinamentos sucessivos Redução de um problema a um conjunto de tarefas destinadas a solucioná-lo de maneira eficiente; Módulo nome de cada parte; Sub-rotinas ou Funções; Algoritmo independente; Pode ser usado em outros problemas. 3 # # # # # # # # # # # # # # # # # 4 ▸O algoritmo principal (ou módulo principal) gerencia as tarefas; ▸Módulo um grupo de comandos, constituindo um trecho de algoritmo, com uma função bem definida e o mais independente possível em relação ao resto do algoritmo. Modularização Início Preparar massa Bolo assado? Tirar Bolo do Forno Aguardar 5 minutos Fim Sim Não Levar ao Forno # # # # # # # # # # # # # # # # # Modularização Vantagens Manutenção mais simples sem efeitos colaterais no resto do código; Independência na elaboração dos módulos; Testes e correções dos módulos podem ser feitos separadamente; Uniformidade no processo de desenvolvimento de software; Um módulo independente pode ser utilizado em outros algoritmos que requeiram o mesmo processamento por ele executado; Legibilidade do código; Em síntese: Maior qualidade Maior eficiência 5 # # # # # # # # # # # # # # # # # ▸Problema: Elaborar um algoritmo para calcular o salário líquido de um empregado. 6 Modularização algoritmo //Ler os dados do funcionário //Determinar o salário líquido Ative o módulo ”determina vantagens“ Ative o módulo ”determina deduções“ SALARIOLIQUIDO VANTAGENS - DEDUCOES //Escrever o salário fim_algoritmo Módulo determina_vantagens //Comandos para determinar vantagens Fim módulo Módulo determina_deducoes //Comandos para determinar deduções Fim módulo # # # # # # # # # # # # # # # # # Modularização Problema: Elaborar um algoritmo para calcular o salário líquido de um empregado. 7 MÓDULO VANTAGENS MÓDULO DEDUÇÕES MÓDULO PRINCIPAL # # # # # # # # # # # # # # # # # Modularização Todo módulo é constituído por uma sequência de comandos que operam sobre um conjunto de variáveis (objetos), que podem ser: Variáveis Globais Declaradas em um módulo externo. Podem ser usadas em módulos internos; Variáveis Locais Declaradas em um módulo interno. Só podem ser usadas no módulo do algoritmo onde foram declaradas. Não possuem qualquer significado fora deste módulo. Um módulo pode usar variáveis globais ou locais em relação a ele. Mas não pode usar variáveis declaradas em módulos que não o abrangem. 8 # # # # # # # # # # # # # # # # # Problema: Elaborar um algoritmo para calcular o salário líquido de um empregado. MÓDULO VANTAGENS MÓDULO DEDUÇÕES A B C Modularização 9 MÓDULO PRINCIPAL # # # # # # # # # # # # # # # # # Modularização Tipos de módulos: Sub-rotina: código modularizado; Função: código modularizado que retorna um valor. 10 S1 S2 MP F1 F2 S3 F3 S4 F4 # # # # # # # # # # # # # # # # # ▸Sintaxe 11 Sub-rotina sub-rotina <Nome da sub-rotina>(<lista de parâmetros> <tipos>) //declaração de variáveis locais à sub-rotina //comandos da sub-rotina fim_sub_rotina # # # # # # # # # # # # # # # # # Sub-rotina A chamada de uma sub-rotina é feita pelo nome e pela indicação dos parâmetros atuais no local do algoritmo onde a sub-rotina dever ser ativada (onde sua execução dever ser iniciada); Forma geral para o comando de ativação de uma sub-rotina: Ao terminar a execução dos comandos de uma sub-rotina, o fluxo de controle retorna ao comando seguinte àquele que provocou a chamada. 12 <Nome da sub-rotina>(<lista de parâmetros atuais>) # # # # # # # # # # # # # # # # # 13 ▸Problema: Escreva um programa que receba um valor de temperatura em graus Fahrenheit e imprima na tela o valor da temperatura em graus Celsius. Conversão: C = 5*((F-32)/9). Sub-rotina algoritmo //declaração de variáveis //Leitura do valor de temperatura digitado //Cálculo e impressão da temperatura em °C fim_algoritmo # # # # # # # # # # # # # # # # # 14 ▸Problema: Escreva um programa que receba um valor de temperatura em graus Fahrenheit e imprima na tela o valor da temperatura em graus Celsius. Conversão: C = 5*((F-32)/9). Sub-rotina algoritmo //declaração de variáveis declare T_F, T_C numerico //Leitura do valor de temperatura digitado escreva "Entre com a temperatura em graus Fahrenheit : " leia T_F //Cálculo e impressão da temperatura em °C T_C <- 5*(T_F - 32)/9 escreva "Temperatura em graus Celsius : ", T_C, "°C" fim_algoritmo # # # # # # # # # # # # # # # # # 15 ▸Problema: Escreva um programa que receba um valor de temperatura em graus Fahrenheit e imprima na tela o valor da temperatura em graus Celsius. Conversão: C = 5*((F-32)/9). Sub-rotina algoritmo //Declaração de variáveis //Leitura do valor de temperatura digitado //Ativação da sub-rotina de conversão e impressão //Declaração da sub-rotina de conversão e impressão fim_algoritmo # # # # # # # # # # # # # # # # # Sub-rotina 16 # # # # # # # # # # # # # # # # # ▸As funções, embora bastante semelhante às sub-rotinas, têm a característica especial de retornar ao algoritmo que as chamou um valor associado ao nome da função; ▸Sintaxe: Função 17 sub-rotina <Nome da função>(<lista de parâmetros> <tipos>) //declaração de variáveis locais à função //comandos da função retorne <parâmetros> fim_sub_rotina # # # # # # # # # # # # # # # # # 18 ▸A chamada da função é feita com uma referência a seu nome e a indicação dos parâmetros atuais no local do algoritmo onde a função dever ser ativada (onde sua execução dever ser iniciada); ▸Forma geral para o comando de ativação da função: ▸A variável que recebe o valor entregue pela função deve ser declarado e deve ser do mesmo tipo especificado na declaração da função. Função <variável> <Nome da função>(<lista de parâmetros atuais>) # # # # # # # # # # # # # # # # # 19 ▸Problema: Escreva um programa que receba um valor de temperatura em graus Fahrenheit e imprima na tela o valor da temperatura em graus Celsius. Conversão: C = 5*((F-32)/9). Função algoritmo //Declaração de variáveis //Leitura do valor de temperatura digitado //Ativação da função de conversão //Impressão dos dados //Declaração da função de conversão fim_algoritmo # # # # # # # # # # # # # # # # # Função 20 # # # # # # # # # # # # # # # # # Função 21 # # # # # # # # # # # # # # # # # ▸22 Escrever um algoritmo que leia as medidas dos três lados a, b e c de um paralelepípedo, e que calcule e escreva o valor de sua diagonal D, conforme figura a seguir. a b d c f 𝑑 = 𝑎2 + 𝑏2 𝑓 = 𝑐2 + 𝑑2 22 Exercício Lista 02
Compartilhar