Programação Estruturada II
Aula 01 – Depuração e Documentação
Prof. Thomás da Costa
thomasdacosta@gmail.com
Anhanguera – 2...
Apresentação
Prof. Thomás da Costa
- Graduado em Gestão em Tecnologia da Informação pela UNIP
- MBA em Arquitetura de Solu...
Apresentação
Material da Aula
- Conteúdo da aula no site SlideShare:
- http://pt.slideshare.net/thomasdacosta/presentation...
Apresentação
Avaliação
- Média para Aprovação: 6,0
- Período das avaliações B1: 06 até 10 de Abril – 06/04 (SIS) e 07/04 (...
Apresentação
ATPS
- Data de Entrega B1: 30 de março (SIS) e 31 de março (TADS)
- O prazo para entrega é até as 20h50 do di...
Apresentação
Plano de Ensino e Aprendizagem (PEA)
Linguagem de desenvolvimento C++
- Revisão de Programação Estruturada I
...
Apresentação
Sobre as Aulas
- O que vocês esperam da aula de Programação Estruturada II ?
- Por que aprender Programação E...
Apresentação
Avisos
- Horário de Aula: 19h10 – 20h50 e 21h10 – 22h00 (Sem emenda de intervalos)
- Celulares desligados, at...
Apresentação
Vamos iniciar o nosso curso !!!
Prof. Thomás da Costa Programação Estruturada II
Revisão
REVISÃO
Prof. Thomás da Costa Programação Estruturada II
Revisão
Estrutura de um programa C++:
Revisão
#include <iostream>
using namespace std;
int main()
{
cout << "Olá Mundo !!!...
Revisão
Variáveis:
Revisão
#include <iostream>
using namespace std;
int main()
{
const float numero_pi = 3.14;
char genero...
Revisão
Operadores:
Revisão
#include <iostream>
using namespace std;
int main()
{
int x = 10 + 5;// soma
int y = 4 - 20;//...
Revisão
Desvios Condicionais:
Revisão
#include <iostream>
using namespace std;
int main()
{
int idade;
cout << "Digite sua...
Revisão
Laço (Loops):
Revisão
#include <iostream>
using namespace std;
int main()
{
for (int i=0;i<=10;i++)
{
cout << i <<...
Revisão
Vetores:
Revisão
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
int k[10] = {1, 2, 3, 4...
Depuração e Documentação
DEPURAÇÃO E DOCUMENTAÇÃO
Prof. Thomás da Costa Programação Estruturada II
Depuração e Documentação
O que é:
É uma técnica para executar uma aplicação passo a passo, identificando possíveis
erros (...
Depuração e Documentação
Mais um pouco:
- Executa o programa linha a linha
- Visualizar valores das variáveis em tempo de ...
Depuração e Documentação
Como fazer análise de um erro:
Tendo a premissa que conhecemos o programa a ser depurado, podemos...
Depuração e Documentação
Depuração ou Debug
Análise de Código:
No caso do código abaixo, conseguimos identificar um possív...
Depuração e Documentação
Depuração ou Debug
Debug no DevC++:
Muitas vezes efetuamos a análise do código, e não conseguimos...
Depuração e Documentação
Depuração ou Debug
Breakpoints:
São marcações efetuadas na ferramenta, que tem como finalidade in...
Depuração e Documentação
Depuração ou Debug
“Debugando”:
Executando linha por linha
Prof. Thomás da Costa Programação Estr...
Depuração e Documentação
Depuração ou Debug
Watch:
No processo de depuração conseguimos visualizar os valores das variávei...
Depuração e Documentação
Prof. Thomás da Costa Programação Estruturada II
Depuração e Documentação
Prof. Thomás da Costa Programação Estruturada II
Depuração e Documentação
Documentação
Sempre !!!:
Documentação do código serve principalmente quando outro desenvolvedor
p...
Depuração e Documentação
Bloco de comentário
Comentário em linha
#include <iostream>
using namespace std;
/**
Autor: Thomá...
Depuração e Documentação
Resumo
- Depuração é o processo de identificação erros dentro de uma aplicação
- Podemos conhecer...
Depuração e Documentação
Prof. Thomás da Costa Programação Estruturada II
Depuração e Documentação
Exercícios
1 – Código abaixo mostra todas as tabuadas, mas o programa está mostrando
somente a ta...
Depuração e Documentação
Exercícios
2 – Programa abaixo efetua o cálculo do fatorial de 6, mas o usuário reclamou
dizendo ...
Depuração e Documentação
Exercícios
3 – Este programa mostra os números pares e impares de 100 até 1. Mostre todos
os poss...
Depuração e Documentação
Obrigado !!!
Prof. Thomás da Costa Programação Estruturada II
Próximos SlideShares
Carregando em…5
×

Programação Estruturada 2 - Aula 01

701 visualizações

Publicada em

Aula 01 - Depuração e Documentação

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
701
No SlideShare
0
A partir de incorporações
0
Número de incorporações
83
Ações
Compartilhamentos
0
Downloads
28
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Programação Estruturada 2 - Aula 01

  1. 1. Programação Estruturada II Aula 01 – Depuração e Documentação Prof. Thomás da Costa thomasdacosta@gmail.com Anhanguera – 2015.1
  2. 2. Apresentação Prof. Thomás da Costa - Graduado em Gestão em Tecnologia da Informação pela UNIP - MBA em Arquitetura de Soluções pela FIAP - 19 anos de experiência na área de Informática - 14 anos de experiência com desenvolvimento em Java - Certificação Java Programmer (SCJP) - Desenvolvimento e arquitetura de aplicações em várias áreas - Experiência profissional com várias linguagens e ferramentas de desenvolvimento PHP, C#, C, JavaScript, Java SE, Java EE, Spring Core, Spring MVC, JBoss Seam, Hibernate - Atualmente sou líder de uma equipe de desenvolvimento para um projeto na área bancária https://www.linkedin.com/in/thomasdacosta https://www.facebook.com/thomasdacosta @thomasdacostadev https://github.com/thomasdacosta Prof. Thomás da Costa Programação Estruturada II
  3. 3. Apresentação Material da Aula - Conteúdo da aula no site SlideShare: - http://pt.slideshare.net/thomasdacosta/presentations - http://pt.slideshare.net/thomasdacosta/documents - Será disponibilizado 1 dia depois da aula - Conteúdo complementar para as aulas - Ferramenta de desenvolvimento: - Orwell Dev-C++ - http://sourceforge.net/projects/orwelldevcpp/?source=navbar - Ferramenta de desenvolvimento WEB: - http://www.tutorialspoint.com/compile_cpp_online.php - Será encaminhado para o representante de sala, caso não consigam ter acesso aos sites mencionados acima - Agendamento das aulas de laboratório - E-mail do Professor: thomasdacosta@gmail.com Prof. Thomás da Costa Programação Estruturada II
  4. 4. Apresentação Avaliação - Média para Aprovação: 6,0 - Período das avaliações B1: 06 até 10 de Abril – 06/04 (SIS) e 07/04 (TADS) - Período das avaliações B2: 15 até 19 de Junho - ATPS: 20% da média = até 2,0 pontos - Arredondamento: uma casa decimal (5,85 = 5,9) - Prova substitutiva substitui a nota da B2 - Frequência: mínimo 75%, abaixo disso REPROVA - TERÁ CHAMADA - 1º Avaliação (Peso: 40%) - Lista de Exercícios (8 pontos) + ATPS - Individual - Aula normal no dia da entrega dos exercícios. Entrega até as 20h50 - 2º Avaliação (Peso: 60%) - Prova (8 pontos) + ATPS - Individual Prof. Thomás da Costa Programação Estruturada II
  5. 5. Apresentação ATPS - Data de Entrega B1: 30 de março (SIS) e 31 de março (TADS) - O prazo para entrega é até as 20h50 do dia 30 (SIS) e 31 (TADS) - Fora desse horário não será aceito - Entrega da cópia para o representante da sala - Mandar por e-mail os integrantes do grupo, máximo 5 pessoas - Será disponibilizado um resumo da ATPS para melhor entendimento - Resumo será enviado por e-mail para o representante e disponibilizado no site: http://pt.slideshare.net/thomasdacosta/documents Vamos ver a ATPS !!! Prof. Thomás da Costa Programação Estruturada II
  6. 6. Apresentação Plano de Ensino e Aprendizagem (PEA) Linguagem de desenvolvimento C++ - Revisão de Programação Estruturada I - Conceitos básicos de depuração e documentação de programas - Funções e parâmetros em C++ - Tipos de dados definidos pelo programador: struct, union e enum - Criação de arquivos. Operações de manipulação de arquivos e registros, incluindo leitura, substituição de conteúdo, adição de novos dados; leitura e gravação de dados - Ponteiros em C++: conceituação e principais utilizações. Declaração de variável ponteiro - Incremento e decremento de ponteiros. Passagem de um argumento ponteiro para função - Definição de recursão. Algoritmos recorrentes Prof. Thomás da Costa Programação Estruturada II
  7. 7. Apresentação Sobre as Aulas - O que vocês esperam da aula de Programação Estruturada II ? - Por que aprender Programação Estruturada II ? - Melhorar a lógica - Adquire conhecimento em outras áreas (exe.: banco de dados) - A profissão de Programador é uma das mais requisitadas - Tem bons salários no mercado - É possível fazer qualquer tipo de programa como jogos, sites e etc. - O Programador é o Rei !!! - Quero a opinião de todos sobre as aulas - Conteúdo - Método de ensino - Material da Aula - Não esqueçam de fazer o PAI Estou aqui para fazer uma excelente aula e prepará-los para o mercado de trabalho Prof. Thomás da Costa Programação Estruturada II
  8. 8. Apresentação Avisos - Horário de Aula: 19h10 – 20h50 e 21h10 – 22h00 (Sem emenda de intervalos) - Celulares desligados, atendam fora da sala caso precisem - Controlem as conversas paralelas !!! - Todos os programas foram testados. Teremos menos problemas de compatibilidade do Dev-C++ - Qual linguagem foi estudada em Programação Estruturada I ? - Vamos continuar com C++ - Quem ficou de DP em Programação Estruturada I ? - Estarei a disposição para tirar dúvidas para quem ficou de DP. Podem entrar em contato por e-mail - A todos estarei a disposição para tirar dúvidas !!!! - Vamos ter uma aula animada - Participação de todos na aula Prof. Thomás da Costa Programação Estruturada II
  9. 9. Apresentação Vamos iniciar o nosso curso !!! Prof. Thomás da Costa Programação Estruturada II
  10. 10. Revisão REVISÃO Prof. Thomás da Costa Programação Estruturada II
  11. 11. Revisão Estrutura de um programa C++: Revisão #include <iostream> using namespace std; int main() { cout << "Olá Mundo !!!"; } Bibliotecas de funções Função principal do programa Identificador da função Prof. Thomás da Costa Programação Estruturada II
  12. 12. Revisão Variáveis: Revisão #include <iostream> using namespace std; int main() { const float numero_pi = 3.14; char genero = 'M'; int idade = 31; float nota_final = 8.5; double salario = 1200.12; cout << "Variáveis:" << genero << "," << idade << "," << nota_final << "," << salario << "," << numero_pi << endl; double nota1, nota2; cout << "Digite as notas:" << endl; cin >> nota1 >> nota2; cout << "Notas: " << nota1 << "-" << nota2; } Tipo da variável Nome da variável Ler uma variável a partir do teclado Prof. Thomás da Costa Programação Estruturada II
  13. 13. Revisão Operadores: Revisão #include <iostream> using namespace std; int main() { int x = 10 + 5;// soma int y = 4 - 20;// subtração int j = 34 * 160;// multiplicação int i = 6 / 2;// divisão int p = 150 % 2;// resto da divisão int acelerar = 100;// incremento pós-fixado acelerar++; int desacelerar = 100;// decremento pós-fixado desacelerar--; } #include <iostream> using namespace std; int main() { int correr = 20;// incremento pré-fixado ++correr; int andar = 30;// decremento pré-fixado --andar; int a = 1; int b = 2; int c = 3; int d = 4; int e = 5; a += 1;// atribuição soma b -= 1;// atribuição subtração c *= 1;// atribuição multiplicação d /= 1;// atribuição divisão e %= 1;// atribuição resto da divisão } Prof. Thomás da Costa Programação Estruturada II
  14. 14. Revisão Desvios Condicionais: Revisão #include <iostream> using namespace std; int main() { int idade; cout << "Digite sua idade:"; cin >> idade; if (idade >= 21) { cout << "Maior de idade"; } else { cout << "Menor de idade"; } } #include <iostream> using namespace std; int main() { int opcao; cout << "Informe uma opção (1,2,3):"; cin >> opcao; switch (opcao) { case 1: cout << "Opção 1 Selecionada"; break; case 2: cout << "Opção 2 Selecionada"; break; case 3: cout << "Opção 3 Selecionada"; break; default: cout << "Nenhuma Opção Selecionada"; break; } } Condição Condições Prof. Thomás da Costa Programação Estruturada II
  15. 15. Revisão Laço (Loops): Revisão #include <iostream> using namespace std; int main() { for (int i=0;i<=10;i++) { cout << i << "n"; } int j = 0; while (j <=10) { cout << j << "n"; j++; } int k = 0; do { cout << k << "n"; k++; } while (k <= 10); } Condição inicial, final do loop e contador Condição do loop. Pode não entrar na rotina Condição do loop, passa pelo menos uma vez na rotina Prof. Thomás da Costa Programação Estruturada II
  16. 16. Revisão Vetores: Revisão #include <iostream> #include <string.h> using namespace std; int main() { int k[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // inicializando um vetor for (int i=9;i>=0;i--) { k[i] = i; cout << k[i] << "n"; } char nome1[10] = "João"; // uma string char nome2[10] = "Maria"; strcat(nome2, " das Graças"); // concatena duas strings cout << "Nome1, Nome2: " << nome1 << "," << nome2 << "n"; cout << "Tamanho do Nome1: " << strlen(nome1) << "n"; // tamanho de uma string cout << "Tamanho do Nome2: " << strlen(nome2) << "n"; cout << "Comparando:" << strcmp(nome1, nome2) << "n"; // compara duas strings char usuario[100]; gets(usuario);// lê a string do teclado cout << "Usuário: " << usuario; } Criando um vetor com 10 posições Inicializando um vetor Atribuindo um valor na posição Ler um vetor de char pelo teclado Prof. Thomás da Costa Programação Estruturada II
  17. 17. Depuração e Documentação DEPURAÇÃO E DOCUMENTAÇÃO Prof. Thomás da Costa Programação Estruturada II
  18. 18. Depuração e Documentação O que é: É uma técnica para executar uma aplicação passo a passo, identificando possíveis erros (bug) ou para o entendimento de uma funcionalidade do programa pelo desenvolvedor. Depuração ou Debug Prof. Thomás da Costa Programação Estruturada II
  19. 19. Depuração e Documentação Mais um pouco: - Executa o programa linha a linha - Visualizar valores das variáveis em tempo de execução - Breakpoints - Analise das funções do código fonte Depuração ou Debug BUGS = DEFEITOS = ERROS Prof. Thomás da Costa Programação Estruturada II
  20. 20. Depuração e Documentação Como fazer análise de um erro: Tendo a premissa que conhecemos o programa a ser depurado, podemos seguir os seguintes passos: - 1º Passo: - Verificar o problema reportado (normalmente por um usuário) - 2º Passo: - Entender o problema - 3º Passo: - Conhecer os parâmetros do usuário - 4º Passo: - Reproduzir o problema (isso pode ser extremamente difícil) - 5º Passo: - Após conseguir reproduzir o problema, efetuar a leitura do código e ver possíveis erros de codificação ou utilizar uma ferramenta de depuração Depuração ou Debug Prof. Thomás da Costa Programação Estruturada II
  21. 21. Depuração e Documentação Depuração ou Debug Análise de Código: No caso do código abaixo, conseguimos identificar um possível problema em nosso programa ? Sim temos !!! Nosso vetor de inteiros, possui 10 posições e para percorrer um vetor é sempre a posição – 1. Então o i <= 10 deveria ser i <= 9 #include <iostream> using namespace std; int main() { int value[10]; int i = 0; for (;i<=10;i++) { value[i] = i; cout << i; } } Prof. Thomás da Costa Programação Estruturada II
  22. 22. Depuração e Documentação Depuração ou Debug Debug no DevC++: Muitas vezes efetuamos a análise do código, e não conseguimos identificar o problema, pois o código pode ser extenso ou de difícil compreensão. Por isso as ferramentas modernas, possuem funcionalidades que permitem rodar o programa linha a linha. Caçando os BUGS !!! Prof. Thomás da Costa Programação Estruturada II
  23. 23. Depuração e Documentação Depuração ou Debug Breakpoints: São marcações efetuadas na ferramenta, que tem como finalidade interromper o programa na linha selecionada, até que o desenvolvedor continue para a próxima instrução. Na imagem abaixo, o programa interrompe na linha 12. Marcação do breakpoint Prof. Thomás da Costa Programação Estruturada II
  24. 24. Depuração e Documentação Depuração ou Debug “Debugando”: Executando linha por linha Prof. Thomás da Costa Programação Estruturada II
  25. 25. Depuração e Documentação Depuração ou Debug Watch: No processo de depuração conseguimos visualizar os valores das variáveis em tempo de execução. Para isso usamos o botão Add watch. Na barra lateral podemos ver as variáveis do programa sendo preenchidas Valores das variáveis em tempo de execução Botão Add Watch Prof. Thomás da Costa Programação Estruturada II
  26. 26. Depuração e Documentação Prof. Thomás da Costa Programação Estruturada II
  27. 27. Depuração e Documentação Prof. Thomás da Costa Programação Estruturada II
  28. 28. Depuração e Documentação Documentação Sempre !!!: Documentação do código serve principalmente quando outro desenvolvedor precisa efetuar uma manutenção no programa. Podemos criar uma documentação através de comentários dentro do código. A documentação de um código pode ser feita com: // - quando for uma linha /** **/ - quando for um bloco de texto em mais de uma linha Prof. Thomás da Costa Programação Estruturada II
  29. 29. Depuração e Documentação Bloco de comentário Comentário em linha #include <iostream> using namespace std; /** Autor: Thomás da Costa Data de Criação: 01/01/2015 Titulo: Programa que efetua o cálculo de uma progressão aritmética Descritivo: Progressão aritmética é um tipo de seqüência numérica que a partir do segundo elemento cada termo (elemento) é a soma do seu antecessor por uma constante. **/ int main() { const int TOTAL_PA = 10; // Limite total da progressão aritmética int razao = 2; // Razão da progressão int i = 0; // Indice para efetuar o loop da progressão int resultadoPa = 0;// Resultado da posição da PA int resultadoAntPa = 3;// Resultado anterior da posicao da PA // Efetuado o cálculo da progressão de acordo for (;i<=TOTAL_PA;i++) { // Cálculo da progressão ocorre indice atual mais a razão resultadoPa = resultadoAntPa + razao; resultadoAntPa = resultadoPa; // Imprime valor na tela da PA cout << resultadoPa << "n"; } } Prof. Thomás da Costa Programação Estruturada II
  30. 30. Depuração e Documentação Resumo - Depuração é o processo de identificação erros dentro de uma aplicação - Podemos conhecer a funcionalidade de um programa - Na depuração o programa é executado linha a linha - Bugs são defeitos no programa - Documentação é importante quando vamos efetuar a manutenção de um programa Prof. Thomás da Costa Programação Estruturada II
  31. 31. Depuração e Documentação Prof. Thomás da Costa Programação Estruturada II
  32. 32. Depuração e Documentação Exercícios 1 – Código abaixo mostra todas as tabuadas, mas o programa está mostrando somente a tabuada do 1. Identifique o erro. #include <iostream> using namespace std; int main() { int i=1; int j=1; for (;i<=10;i++) { for (;j<=10;j++) { cout << i << "x" << j << "=" << (i * j) << "n"; } cout << "n"; } } Prof. Thomás da Costa Programação Estruturada II
  33. 33. Depuração e Documentação Exercícios 2 – Programa abaixo efetua o cálculo do fatorial de 6, mas o usuário reclamou dizendo que o valor não é exibido na tela. Qual o problema com o programa? #include <iostream> using namespace std; int main() { int fat=6; int fatorial = 1; while (fat >= 1) { fatorial *= fat; } cout << fatorial << "n"; } Prof. Thomás da Costa Programação Estruturada II
  34. 34. Depuração e Documentação Exercícios 3 – Este programa mostra os números pares e impares de 100 até 1. Mostre todos os possíveis problemas encontrados no programa. #include <iostream> using namespace std; int main() { for (int k=100;k>=1;k++) { int ret = k % 2; if (ret = 0) { cout << "Par:" << k << "n"; } else { cout << "Impar:" << k << "n"; } } } Prof. Thomás da Costa Programação Estruturada II
  35. 35. Depuração e Documentação Obrigado !!! Prof. Thomás da Costa Programação Estruturada II

×