Buscar

Aula 2 - Depuração Modularização e Funções

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

Continue navegando