Você está na página 1de 21

ANHANGUERA – 2016.

ALGORITMOS E ESTRUTURA DE DADOS


AULA 02 – REVISÃO

Prof. Thomás da Costa


thomascosta@aedu.com
REVISÃO

Fundamentos
Antes de iniciar:
• Iremos resolver um problema denominado Torre de Hanói.
• Para resolução do problema, vamos utilizar lógica.
• E...um pouco mais de lógica !!!
• Vamos descrever a solução do problema passo-a-passo.
• Iremos conhecer alguns fundamentos básicos da programação.
• Vamos começar !!!

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

Torre de Hanói
O que é:
"Torre de Hanói ou Torre de Lucas é um "quebra-cabeça" que consiste em uma
base contendo três pinos, em um dos quais são dispostos alguns discos uns
sobre os outros, em ordem crescente de diâmetro, de cima para baixo. O
problema consiste em passar todos os discos de um pino para outro qualquer,
usando um dos pinos como auxiliar, de maneira que um disco maior nunca fique
em cima de outro menor em nenhuma situação. O número de discos pode
variar sendo que o mais simples contém apenas três."
Fonte: https://pt.wikipedia.org/wiki/Torre_de_Han%C3%B3i

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

Torre de Hanói
Vamos resolver a Torre de Hanói:
• Temos 3 pinos e 3 discos. (Podemos ter mais !!!)
• Devemos transferir os 3 discos para o último pino.
• O disco maior não deve fica em cima do disco menor.

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

Torre de Hanói
Vamos resolver a Torre de Hanói:

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

Torre de Hanói
Algoritmo:
• Início.
• Mover disco 1 para C.
• Mover disco 2 para B.
• Mover disco 1 para B.
• Mover disco 3 para C.
• Mover disco 1 para A.
• Mover disco 2 para C.
• Mover disco 1 para C.

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

Torre de Hanói
O que utilizamos para resolver o problema:
• Utilizamos lógica para resolver o problema.
• Um raciocínio lógico.
• Uma sequência definida e ordenada de passos.
• Tivemos que seguir a sequência, para a correta resolução do problema.
• Tínhamos um objetivo. Como todo programa ou software.
• Foi escrita a sequência de passos, mostrando o movimento dos discos. Isto
é um algoritmo.
• Foi escrita em uma linguagem conhecida e interpretada facilmente.
• Computadores utilizam de linguagem para escrever algoritmos.
• Na computação existem várias linguagens de desenvolvimento.

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

Algoritmo
O que é?:
É uma sequência lógica de passos para atingir um determinado objetivo. Em
computação é uma sequência finita de instruções ou comandos para resolver
um problema computacional.

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

Algoritmo
Exemplos:
• Somar dois números.
• Trocar um pneu furado.
• Trocar a lâmpada queimada.
• Tomar banho.
• Cozinhar um bolo.
• Jogar videogame.
• Calcular raiz quadrada.
• Viajar no final de semana.
• Jogar o jogo da velha.
• Jogar o jogo Watch Dogs.
• Fazer a prova e ser aprovado.
• Multiplicar dois números.

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

Algoritmo
Exercícios:
• Criar o algoritmo de fritar um ovo em linguagem natural:

• Resposta:
1. Pegar frigideira, ovo, óleo e sal.
2. Colocar óleo na frigideira.
3. Acender o fogo.
4. Colocar a frigideira no fogo.
5. Esperar o óleo esquentar.
6. Colocar o ovo.
7. Retirar quando pronto.

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

Algoritmo
Como são feitos os programas de computador:
• Todo programa é feito com algoritmos.
• Para escrever os algoritmos precisamos de uma linguagem.
• Existem várias linguagens no mercado.
• Para escrever um programa em uma linguagem utilizamos um outro
programa.
• Este programa é conhecido como IDE (Integrated Development
Environment)

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

IDE
Orwell Dev-C++:

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

IDE
Orwell Dev-C++:
• Vamos programar em uma linguagem conhecida como C++. 
• Para baixar o programa utilize o endereço abaixo:
• https://sf.net/projects/orwelldevcpp/

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

Estrutura de um programa C++


Bibliotecas de funções

#include <iostream>

using namespace std; Identificador da função

int main()
Função principal do programa
{
cout << "Olá Mundo !!!";
}

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

Variáveis
#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;
}

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

Operadores
#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--;
}

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

Operadores
#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
}

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

Desvios Condicionais
#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";
}

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

Desvios Condicionais
#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;
}
}

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


REVISÃO

Laço (Loops)
#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);
}

ALGORITMOS E ESTRUTURA DE DADOS – Prof. Thomás da Costa


ANHANGUERA – 2016.1

Obrigado !!!

Você também pode gostar