SlideShare una empresa de Scribd logo
1 de 35
Programação Estruturada II
Aula 01 – Depuração e Documentação
Prof. Thomás da Costa
thomasdacosta@gmail.com
Anhanguera – 2015.1
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
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
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
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
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
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
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
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 !!!";
}
Bibliotecas de funções
Função principal do programa
Identificador da função
Prof. Thomás da Costa Programação Estruturada II
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
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
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
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
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
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 (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
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
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
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
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
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
Depuração e Documentação
Depuração ou Debug
“Debugando”:
Executando linha por linha
Prof. Thomás da Costa Programação Estruturada II
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
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
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
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
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
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 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
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
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
Depuração e Documentação
Obrigado !!!
Prof. Thomás da Costa Programação Estruturada II

Más contenido relacionado

La actualidad más candente

Conceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoConceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoJorge Cardoso
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Robson Ferreira
 
Algoritmos e Técnicas de Programação - Aula 05
Algoritmos e Técnicas de Programação - Aula 05Algoritmos e Técnicas de Programação - Aula 05
Algoritmos e Técnicas de Programação - Aula 05thomasdacosta
 
Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01thomasdacosta
 
Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03thomasdacosta
 
Lógica e Matemática Computacional - Aula 04
Lógica e Matemática Computacional - Aula 04Lógica e Matemática Computacional - Aula 04
Lógica e Matemática Computacional - Aula 04thomasdacosta
 
Programação Concorrente - Aula 02
Programação Concorrente - Aula 02Programação Concorrente - Aula 02
Programação Concorrente - Aula 02thomasdacosta
 
Algoritmos e Técnicas de Programação - Aula 02
Algoritmos e Técnicas de Programação - Aula 02Algoritmos e Técnicas de Programação - Aula 02
Algoritmos e Técnicas de Programação - Aula 02thomasdacosta
 
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling CAlgoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling CRodrigo Kiyoshi Saito
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01thomasdacosta
 
As cinco etapas da programação
As cinco etapas da programaçãoAs cinco etapas da programação
As cinco etapas da programaçãoClausia Antoneli
 
Conceitos e técnicas de programação aula 1
Conceitos e técnicas de programação aula 1Conceitos e técnicas de programação aula 1
Conceitos e técnicas de programação aula 1Robson Ferreira
 
Linguagem C (UFRPE)
Linguagem C (UFRPE)Linguagem C (UFRPE)
Linguagem C (UFRPE)guest14543db
 
Maratona de Programação
Maratona de ProgramaçãoMaratona de Programação
Maratona de ProgramaçãoMarcos Castro
 
Conceitos e técnicas de programação apresentação
Conceitos e técnicas de programação apresentaçãoConceitos e técnicas de programação apresentação
Conceitos e técnicas de programação apresentaçãoRobson Ferreira
 
Oficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvROficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvRCiro Matheus
 
C curso - notas de aula
C   curso - notas de aulaC   curso - notas de aula
C curso - notas de aulaLoAlves21
 
Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03thomasdacosta
 

La actualidad más candente (20)

Conceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoConceitos Fundamentais de Programacao
Conceitos Fundamentais de Programacao
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 
Atpaula3 150906041855-lva1-app6892
Atpaula3 150906041855-lva1-app6892Atpaula3 150906041855-lva1-app6892
Atpaula3 150906041855-lva1-app6892
 
Algoritmos e Técnicas de Programação - Aula 05
Algoritmos e Técnicas de Programação - Aula 05Algoritmos e Técnicas de Programação - Aula 05
Algoritmos e Técnicas de Programação - Aula 05
 
Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01
 
Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03
 
Lógica e Matemática Computacional - Aula 04
Lógica e Matemática Computacional - Aula 04Lógica e Matemática Computacional - Aula 04
Lógica e Matemática Computacional - Aula 04
 
Programação Concorrente - Aula 02
Programação Concorrente - Aula 02Programação Concorrente - Aula 02
Programação Concorrente - Aula 02
 
Algoritmos e Técnicas de Programação - Aula 02
Algoritmos e Técnicas de Programação - Aula 02Algoritmos e Técnicas de Programação - Aula 02
Algoritmos e Técnicas de Programação - Aula 02
 
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling CAlgoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
 
Etapas da programação
Etapas da programaçãoEtapas da programação
Etapas da programação
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01
 
As cinco etapas da programação
As cinco etapas da programaçãoAs cinco etapas da programação
As cinco etapas da programação
 
Conceitos e técnicas de programação aula 1
Conceitos e técnicas de programação aula 1Conceitos e técnicas de programação aula 1
Conceitos e técnicas de programação aula 1
 
Linguagem C (UFRPE)
Linguagem C (UFRPE)Linguagem C (UFRPE)
Linguagem C (UFRPE)
 
Maratona de Programação
Maratona de ProgramaçãoMaratona de Programação
Maratona de Programação
 
Conceitos e técnicas de programação apresentação
Conceitos e técnicas de programação apresentaçãoConceitos e técnicas de programação apresentação
Conceitos e técnicas de programação apresentação
 
Oficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvROficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvR
 
C curso - notas de aula
C   curso - notas de aulaC   curso - notas de aula
C curso - notas de aula
 
Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03
 

Destacado

Programação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código FonteProgramação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código Fontethomasdacosta
 
Exercícios da Aula de LAB 03
Exercícios da Aula de LAB 03Exercícios da Aula de LAB 03
Exercícios da Aula de LAB 03thomasdacosta
 
Exercícios da Aula de LAB 02
Exercícios da Aula de LAB 02Exercícios da Aula de LAB 02
Exercícios da Aula de LAB 02thomasdacosta
 
LAB 03 - Programação Estruturada 2
LAB 03 - Programação Estruturada 2LAB 03 - Programação Estruturada 2
LAB 03 - Programação Estruturada 2thomasdacosta
 
Programação Estruturada 2 - Aula 04
Programação Estruturada 2 - Aula 04Programação Estruturada 2 - Aula 04
Programação Estruturada 2 - Aula 04thomasdacosta
 
Revisão - Funções
Revisão - FunçõesRevisão - Funções
Revisão - Funçõesthomasdacosta
 
Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07thomasdacosta
 
LAB 02 - Programação Estruturada 2
LAB 02 - Programação Estruturada 2LAB 02 - Programação Estruturada 2
LAB 02 - Programação Estruturada 2thomasdacosta
 
Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05thomasdacosta
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03thomasdacosta
 

Destacado (10)

Programação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código FonteProgramação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código Fonte
 
Exercícios da Aula de LAB 03
Exercícios da Aula de LAB 03Exercícios da Aula de LAB 03
Exercícios da Aula de LAB 03
 
Exercícios da Aula de LAB 02
Exercícios da Aula de LAB 02Exercícios da Aula de LAB 02
Exercícios da Aula de LAB 02
 
LAB 03 - Programação Estruturada 2
LAB 03 - Programação Estruturada 2LAB 03 - Programação Estruturada 2
LAB 03 - Programação Estruturada 2
 
Programação Estruturada 2 - Aula 04
Programação Estruturada 2 - Aula 04Programação Estruturada 2 - Aula 04
Programação Estruturada 2 - Aula 04
 
Revisão - Funções
Revisão - FunçõesRevisão - Funções
Revisão - Funções
 
Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07
 
LAB 02 - Programação Estruturada 2
LAB 02 - Programação Estruturada 2LAB 02 - Programação Estruturada 2
LAB 02 - Programação Estruturada 2
 
Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03
 

Similar a Programação Estruturada 2 - Aula 01

Programação Concorrente - Aula 01
Programação Concorrente - Aula 01Programação Concorrente - Aula 01
Programação Concorrente - Aula 01thomasdacosta
 
Informática para concursos téo schah_apostilão_cespe_2012_provas_290_questões...
Informática para concursos téo schah_apostilão_cespe_2012_provas_290_questões...Informática para concursos téo schah_apostilão_cespe_2012_provas_290_questões...
Informática para concursos téo schah_apostilão_cespe_2012_provas_290_questões...IMP Concursos
 
Nova Geração de Certificações Microsoft Visual Studio 2008 e Visual Studio 2010
Nova Geração de Certificações Microsoft Visual Studio 2008 e Visual Studio 2010Nova Geração de Certificações Microsoft Visual Studio 2008 e Visual Studio 2010
Nova Geração de Certificações Microsoft Visual Studio 2008 e Visual Studio 2010C. Augusto Proiete
 
Estruturas em C++ (struct)
Estruturas em C++ (struct)Estruturas em C++ (struct)
Estruturas em C++ (struct)Márcio Rizzatto
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Cristiano Rafael Steffens
 
Algoritmos e programacao_em_python
Algoritmos e programacao_em_pythonAlgoritmos e programacao_em_python
Algoritmos e programacao_em_pythonArtur Santos
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaÁlvaro Justen
 
Construindo Chatbots em Node.js
Construindo Chatbots em Node.jsConstruindo Chatbots em Node.js
Construindo Chatbots em Node.jsFelipe Pedroso
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
Desligar pc
Desligar pcDesligar pc
Desligar pcferbsi
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 
Seu framework é melhor pra quê?
Seu framework é melhor pra quê?Seu framework é melhor pra quê?
Seu framework é melhor pra quê?Jaime Neto
 
Depurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSDepurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSThiago Rodrigues
 
PROJETO MODELO editado.docx
PROJETO MODELO editado.docxPROJETO MODELO editado.docx
PROJETO MODELO editado.docxDiedisonRamos1
 
CURSOS DA ÁREA DE TI - A multiplexação consiste basicamente em formas de tran...
CURSOS DA ÁREA DE TI - A multiplexação consiste basicamente em formas de tran...CURSOS DA ÁREA DE TI - A multiplexação consiste basicamente em formas de tran...
CURSOS DA ÁREA DE TI - A multiplexação consiste basicamente em formas de tran...HELENO FAVACHO
 
Curso Informática p/ Concurso Polícia Civil PE
Curso Informática p/ Concurso Polícia Civil PECurso Informática p/ Concurso Polícia Civil PE
Curso Informática p/ Concurso Polícia Civil PEEstratégia Concursos
 
Codificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadosCodificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadoshenriqueprossi
 

Similar a Programação Estruturada 2 - Aula 01 (20)

Manual Dev C++
Manual Dev C++Manual Dev C++
Manual Dev C++
 
Manual dev c
Manual dev cManual dev c
Manual dev c
 
Programação Concorrente - Aula 01
Programação Concorrente - Aula 01Programação Concorrente - Aula 01
Programação Concorrente - Aula 01
 
Informática para concursos téo schah_apostilão_cespe_2012_provas_290_questões...
Informática para concursos téo schah_apostilão_cespe_2012_provas_290_questões...Informática para concursos téo schah_apostilão_cespe_2012_provas_290_questões...
Informática para concursos téo schah_apostilão_cespe_2012_provas_290_questões...
 
Nova Geração de Certificações Microsoft Visual Studio 2008 e Visual Studio 2010
Nova Geração de Certificações Microsoft Visual Studio 2008 e Visual Studio 2010Nova Geração de Certificações Microsoft Visual Studio 2008 e Visual Studio 2010
Nova Geração de Certificações Microsoft Visual Studio 2008 e Visual Studio 2010
 
Estruturas em C++ (struct)
Estruturas em C++ (struct)Estruturas em C++ (struct)
Estruturas em C++ (struct)
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)
 
Mini Curso Python
Mini Curso PythonMini Curso Python
Mini Curso Python
 
Algoritmos e programacao_em_python
Algoritmos e programacao_em_pythonAlgoritmos e programacao_em_python
Algoritmos e programacao_em_python
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtiva
 
Construindo Chatbots em Node.js
Construindo Chatbots em Node.jsConstruindo Chatbots em Node.js
Construindo Chatbots em Node.js
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Desligar pc
Desligar pcDesligar pc
Desligar pc
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Seu framework é melhor pra quê?
Seu framework é melhor pra quê?Seu framework é melhor pra quê?
Seu framework é melhor pra quê?
 
Depurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSDepurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSS
 
PROJETO MODELO editado.docx
PROJETO MODELO editado.docxPROJETO MODELO editado.docx
PROJETO MODELO editado.docx
 
CURSOS DA ÁREA DE TI - A multiplexação consiste basicamente em formas de tran...
CURSOS DA ÁREA DE TI - A multiplexação consiste basicamente em formas de tran...CURSOS DA ÁREA DE TI - A multiplexação consiste basicamente em formas de tran...
CURSOS DA ÁREA DE TI - A multiplexação consiste basicamente em formas de tran...
 
Curso Informática p/ Concurso Polícia Civil PE
Curso Informática p/ Concurso Polícia Civil PECurso Informática p/ Concurso Polícia Civil PE
Curso Informática p/ Concurso Polícia Civil PE
 
Codificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadosCodificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcados
 

Más de thomasdacosta

Azure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a ProduçãoAzure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a Produçãothomasdacosta
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02thomasdacosta
 
Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01thomasdacosta
 
Organização de Computadores - Aula 02
Organização de Computadores - Aula 02Organização de Computadores - Aula 02
Organização de Computadores - Aula 02thomasdacosta
 
Organização de Computadores - Aula 03
Organização de Computadores - Aula 03Organização de Computadores - Aula 03
Organização de Computadores - Aula 03thomasdacosta
 
Organização de Computadores - Aula 01
Organização de Computadores - Aula 01Organização de Computadores - Aula 01
Organização de Computadores - Aula 01thomasdacosta
 
Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06thomasdacosta
 
Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05thomasdacosta
 
Programação Concorrente - Curso Completo
Programação Concorrente - Curso CompletoProgramação Concorrente - Curso Completo
Programação Concorrente - Curso Completothomasdacosta
 
Programação Concorrente - Aula 07
Programação Concorrente - Aula 07Programação Concorrente - Aula 07
Programação Concorrente - Aula 07thomasdacosta
 
Programação Concorrente - Aula 06
Programação Concorrente - Aula 06Programação Concorrente - Aula 06
Programação Concorrente - Aula 06thomasdacosta
 
Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04thomasdacosta
 
Redes de Computadores - Aula 05
Redes de Computadores - Aula 05Redes de Computadores - Aula 05
Redes de Computadores - Aula 05thomasdacosta
 
Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05thomasdacosta
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04thomasdacosta
 
Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03thomasdacosta
 
Redes de Computadores - Aula 04
Redes de Computadores - Aula 04Redes de Computadores - Aula 04
Redes de Computadores - Aula 04thomasdacosta
 
Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05thomasdacosta
 
Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04thomasdacosta
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03thomasdacosta
 

Más de thomasdacosta (20)

Azure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a ProduçãoAzure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a Produção
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02
 
Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01
 
Organização de Computadores - Aula 02
Organização de Computadores - Aula 02Organização de Computadores - Aula 02
Organização de Computadores - Aula 02
 
Organização de Computadores - Aula 03
Organização de Computadores - Aula 03Organização de Computadores - Aula 03
Organização de Computadores - Aula 03
 
Organização de Computadores - Aula 01
Organização de Computadores - Aula 01Organização de Computadores - Aula 01
Organização de Computadores - Aula 01
 
Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06
 
Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05
 
Programação Concorrente - Curso Completo
Programação Concorrente - Curso CompletoProgramação Concorrente - Curso Completo
Programação Concorrente - Curso Completo
 
Programação Concorrente - Aula 07
Programação Concorrente - Aula 07Programação Concorrente - Aula 07
Programação Concorrente - Aula 07
 
Programação Concorrente - Aula 06
Programação Concorrente - Aula 06Programação Concorrente - Aula 06
Programação Concorrente - Aula 06
 
Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04
 
Redes de Computadores - Aula 05
Redes de Computadores - Aula 05Redes de Computadores - Aula 05
Redes de Computadores - Aula 05
 
Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04
 
Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03
 
Redes de Computadores - Aula 04
Redes de Computadores - Aula 04Redes de Computadores - Aula 04
Redes de Computadores - Aula 04
 
Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05
 
Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03
 

Programação Estruturada 2 - Aula 01

  • 1. Programação Estruturada II Aula 01 – Depuração e Documentação Prof. Thomás da Costa thomasdacosta@gmail.com Anhanguera – 2015.1
  • 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. 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. 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. 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. 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. 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. 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. Apresentação Vamos iniciar o nosso curso !!! Prof. Thomás da Costa Programação Estruturada II
  • 10. Revisão REVISÃO Prof. Thomás da Costa Programação Estruturada II
  • 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. 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. 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. 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. 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. 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. Depuração e Documentação DEPURAÇÃO E DOCUMENTAÇÃO Prof. Thomás da Costa Programação Estruturada II
  • 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. 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. 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. 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. 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. 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. Depuração e Documentação Depuração ou Debug “Debugando”: Executando linha por linha Prof. Thomás da Costa Programação Estruturada II
  • 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. Depuração e Documentação Prof. Thomás da Costa Programação Estruturada II
  • 27. Depuração e Documentação Prof. Thomás da Costa Programação Estruturada II
  • 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. 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. 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. Depuração e Documentação Prof. Thomás da Costa Programação Estruturada II
  • 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. 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. 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. Depuração e Documentação Obrigado !!! Prof. Thomás da Costa Programação Estruturada II