Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação Estruturada II Aula 2 – Depuração. Modularização e funções Prof: Efrem Lousada efrem.lousada@anhanguera.com plainit.co/u/efrem Sumário Prof: Efrem Lousada 2 1. Depuração 2. Modularização 3. Funções Depuração Prof: Efrem Lousada 3 Conceitos Defeito / Bug / Erro : Instrução ou comando incorreto Falha Produção de uma saída incorreta Depuração Prof: Efrem Lousada 4 Conceitos Leia dois inteiros e imprima o maior: Depuração Prof: Efrem Lousada 5 Conceitos Leia dois inteiros e imprima o maior: O programa falhou!!! Depuração Prof: Efrem Lousada 6 Leia dois inteiros e imprima o maior: #include <stdio.h> #include <conio.h> int main(void) { int num1, num2; printf("Entre com o primeiro numero: "); scanf("%d", &num1); printf("\nEntre com o segundo numero: "); scanf("%d", &num2); if(num1 < num2) printf("\n\nO maior numero eh %d.", num1); else printf("\n\nO maior numero eh %d.", num2); getch(); } Depuração Prof: Efrem Lousada 7 Leia dois inteiros e imprima o maior: #include <stdio.h> #include <conio.h> int main(void) { int num1, num2; printf("Entre com o primeiro numero: "); scanf("%d", &num1); printf("\nEntre com o segundo numero: "); scanf("%d", &num2); if(num1 < num2) printf("\n\nO maior numero eh %d.", num1); else printf("\n\nO maior numero eh %d.", num2); getch(); } O defeito deste programa é a troca do sinal. O correto seria: if(num1 > num2) Depuração Prof: Efrem Lousada 8 Conceitos Debugging Processo de encontrar e corrigir defeitos Como encontrar o defeito? • Mensagens do compilador • Revisão de código • Ferramentas de depuração Depuração Prof: Efrem Lousada 9 Conceitos Revisão de Código Leitura do código, linha a linha, executando o sistema e verificando os possíveis erros. Depuração Prof: Efrem Lousada 10 Conceitos Depuração • Breakpoints Até que ponto o programa deve executar normalmente • Watch Quais variáveis devem ser acompanhadas? Depuração Prof: Efrem Lousada 11 Depuração Prof: Efrem Lousada 12 Defina o breakpoint Depuração Prof: Efrem Lousada 13 Inicie o depurador! Na 1ª execução, uma Nova compilação é pedida. Selecione yes e clique em Debug novamente! Depuração Prof: Efrem Lousada 14 Durante a execução do depurador, a interação com o usuário (entrada) ainda é necessária. Depuração Prof: Efrem Lousada 15 Interrompe o processo de depuração. Depuração Prof: Efrem Lousada 16 Continua a execução do Programa de Forma Normal. Depuração Prof: Efrem Lousada 17 Executa um passo (um Comando). É possível Acompanhar cada passo de Execução do programa (Execução passo-a-passo) Depuração Prof: Efrem Lousada 18 Adiciona ou remove o ”watch” de uma variável. Depuração Prof: Efrem Lousada 19 Watch para as variáveis a e b, mostrando seus Valores correntes. Modularização Prof: Efrem Lousada 20 Conceitos Permite a construção de algoritmos e programas constituídos de módulos Consiste em dividir o algoritmo em subalgoritmos (denominados sub-rotinas) que executam tarefas menores e bem definidas possivelmente necessárias em diferentes programas ou partes de um mesmo programa Ajuda na elaboração de algoritmos e programas bem estruturados Modularização Prof: Efrem Lousada 21 Manipulação Um módulo pode ser acionado de qualquer ponto do algoritmo principal ou de outro módulo O acionamento de um módulo também é conhecido por chamada ou ativação do módulo Quando ocorre uma chamada, o fluxo de execução passa para o módulo chamado Quando se conclui a execução do módulo chamado, o fluxo retorna imediatamente após o ponto de chamada do algoritmo/módulo Modularização Prof: Efrem Lousada 22 Relação de chamada Modularização Prof: Efrem Lousada 23 Vantagens Principais da Modularização: Legibilidade: clareza do algoritmo Independência: construção e testes individualizados Manutenibilidade: simplificação da manutenção Reusabilidade: Reaproveitamento de código Modularização Prof: Efrem Lousada 24 Vantagens Principais da Modularização: Legibilidade: clareza do algoritmo Independência: construção e testes individualizados Manutenibilidade: simplificação da manutenção Reusabilidade: Reaproveitamento de código Modularização Prof: Efrem Lousada 25 Módulos como Funções em C Um módulo em linguagem C é realizado por uma função Funções recebem ou não valores (argumentos) como parâmetros e retornam ou não explicitamente um valor (resultado) Declaração: tipo nome (lista de parâmetros) { instruções ; /* corpo da função */ } Exemplo: double quadrado (double x) { return x*x; } Módulos como Funções em C Prof: Efrem Lousada 26 Escopo de variáveis Variáveis Globais: Declaradas fora de qualquer função (incluindo main) no início do programa. São visíveis em qualquer parte do programa Variáveis Locais: Declaradas dentro de funções São visíveis apenas dentro do escopo a que pertencem “Desaparecem” quando a função encerra sua execução Conflito: Vale a variável local Módulos como Funções em C Prof: Efrem Lousada 27 Passagem de parâmetros por Valor Alterações feitas nos parâmetros recebidos não se refletem nos valores passados como argumentos O valor do argumento é copiado durante a chamada da função Módulos como Funções em C Prof: Efrem Lousada 28 Passagem de parâmetros por Valor Fim, Obrigado! Prof: Efrem Lousada 29
Compartilhar