SlideShare ist ein Scribd-Unternehmen logo
1 von 19
ANHANGUERA – 2016.2
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO
AULA 02 – FUNDAMENTOS DE ALGORITMOS
Prof. Thomás da Costa
thomascosta@aedu.com
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
FUNDAMENTOS DE ALGORITMOS
FUNDAMENTOS DE ALGORITMOS
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Fundamentos
FUNDAMENTOS DE ALGORITMOS
Antes de iniciar os Fundamentos de Algoritmos:
• 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 TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Torre de Hanói
FUNDAMENTOS DE ALGORITMOS
"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
O que é:
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Torre de Hanói
FUNDAMENTOS DE ALGORITMOS
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 TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Torre de Hanói
FUNDAMENTOS DE ALGORITMOS
Vamos resolver a Torre de Hanói:
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Torre de Hanói
FUNDAMENTOS DE ALGORITMOS
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 TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
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.
FUNDAMENTOS DE ALGORITMOS
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Algoritmo
O que é?:
FUNDAMENTOS DE ALGORITMOS
É 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 TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Algoritmo
Detalhes:
FUNDAMENTOS DE ALGORITMOS
• Para resolver um problema temos várias soluções.
• Então....um problema não tem um único algoritmo.
• Cada desenvolvedor tem um pensamento para criar um algoritmo.
• Um algoritmo pode ser melhor que o outro para resolver um problema.
• Estudar algoritmo requer bastante dedicação.
• Algoritmo é algo do nosso dia-a-dia.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Algoritmo
Exemplos:
FUNDAMENTOS DE ALGORITMOS
• 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.
• Fazer a prova e ser aprovado.
• Multiplicar dois números.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Algoritmo
Exercícios:
FUNDAMENTOS DE ALGORITMOS
• 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 TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Algoritmo
Exercícios:
FUNDAMENTOS DE ALGORITMOS
• Criar o algoritmo de mascar um chiclete em linguagem natural:
• Resposta:
1. Pegar o chiclete.
2. Retirar do papel.
3. Mastigar.
4. Jogar o papel no lixo.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Algoritmo
Exercícios:
FUNDAMENTOS DE ALGORITMOS
• Criar o algoritmo para jogar um jogo no Playstation em
linguagem natural:
• Resposta:
1. Ligar a TV.
2. Ligar o Playstation (pode ser 3 ou o 4 !!!).
3. Ligar o controle.
4. Colocar o jogo no drive.
5. Escolher o jogo com o botão X.
6. Jogar o jogo até cansar !!!
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Algoritmo
Exercícios:
FUNDAMENTOS DE ALGORITMOS
• Criar o algoritmo para calcular a média da matéria em
linguagem natural:
• Resposta:
1. Obter a média da B1.
2. Obter a média da B2.
3. Efetuar o cálculo de 40% da B1
4. Efetuar o cálculo de 60% da B2
5. Somar os cálculos obtidos.
6. Se a média for maior ou igual a 6, aluno aprovado.
7. Se a média for menor que 6, aluno reprovado.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Algoritmo
Como são feitos os programas de computador:
FUNDAMENTOS DE ALGORITMOS
• Todo programa é feito com algoritmos.
• Para escrever os algoritmos precisamos de uma linguagem.
• Existem várias linguagens no mercado. (Se lembram?)
• Para escrever um programa em uma linguagem utilizamos um outro
programa.
• Este programa é conhecido como IDE (Integrated Development
Environment)
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
IDE
Orwell Dev-C++:
FUNDAMENTOS DE ALGORITMOS
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
IDE
Orwell Dev-C++:
FUNDAMENTOS DE ALGORITMOS
• Vamos programar em uma linguagem conhecida como C. 
• Simplesmente C !!!
• Para baixar o programa utilize o endereço abaixo:
• https://sf.net/projects/orwelldevcpp/
Obrigado !!!
ANHANGUERA – 2016.2

Weitere ähnliche Inhalte

Was ist angesagt?

Introdução à programação
Introdução à programação Introdução à programação
Introdução à programação João Piedade
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de RequisitosCloves da Rocha
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisFabrício Lopes Sanchez
 
Estrutura de Dados - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados  - Aula 12 - Listas Duplamente EncadeadasEstrutura de Dados  - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados - Aula 12 - Listas Duplamente EncadeadasLeinylson Fontinele
 
2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...
2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...
2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...Leandro de Castro
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
O que é bit e byte
O que é bit e byteO que é bit e byte
O que é bit e bytenikepassos
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de ProgramaçãoBeDMK
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
Redes 1 introducao historico conceitos
Redes 1 introducao historico conceitosRedes 1 introducao historico conceitos
Redes 1 introducao historico conceitosMauro Pereira
 
Introdução a Ciência de Dados
Introdução a Ciência de DadosIntrodução a Ciência de Dados
Introdução a Ciência de DadosNauber Gois
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Sérgio Souza Costa
 
Componentes da placa mãe
Componentes da placa mãeComponentes da placa mãe
Componentes da placa mãeWilsonkentura
 

Was ist angesagt? (20)

Introdução à programação
Introdução à programação Introdução à programação
Introdução à programação
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Estrutura de Dados - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados  - Aula 12 - Listas Duplamente EncadeadasEstrutura de Dados  - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados - Aula 12 - Listas Duplamente Encadeadas
 
2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...
2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...
2016: Introdução à Mineração de Dados: Conceitos Básicos, Algoritmos e Aplica...
 
Logica Programação. ...
Logica Programação. ...Logica Programação. ...
Logica Programação. ...
 
Logica de Programacao
Logica de ProgramacaoLogica de Programacao
Logica de Programacao
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
O que é bit e byte
O que é bit e byteO que é bit e byte
O que é bit e byte
 
Algoritmos: Tipos de Dados
Algoritmos: Tipos de DadosAlgoritmos: Tipos de Dados
Algoritmos: Tipos de Dados
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Clock
ClockClock
Clock
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Redes 1 introducao historico conceitos
Redes 1 introducao historico conceitosRedes 1 introducao historico conceitos
Redes 1 introducao historico conceitos
 
Introdução a Ciência de Dados
Introdução a Ciência de DadosIntrodução a Ciência de Dados
Introdução a Ciência de Dados
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Algoritmos - capítulo 1
Algoritmos - capítulo 1Algoritmos - capítulo 1
Algoritmos - capítulo 1
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
 
Componentes da placa mãe
Componentes da placa mãeComponentes da placa mãe
Componentes da placa mãe
 

Ähnlich wie Algoritmos e Técnicas de Programação - Aula 02

AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSprofjotamarcosduarte
 
Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02thomasdacosta
 
01 fundamentos de programação
01   fundamentos de programação01   fundamentos de programação
01 fundamentos de programaçãomaceca21
 
Aula 01 introdução a linguagem pascal
Aula 01   introdução a linguagem pascalAula 01   introdução a linguagem pascal
Aula 01 introdução a linguagem pascalTácito Graça
 
Aula1 introdução à lógica de programação
Aula1 introdução à lógica de programaçãoAula1 introdução à lógica de programação
Aula1 introdução à lógica de programaçãoHelder Martins
 
Olimpiadas Programação: O que, Por que e Como?
Olimpiadas Programação: O que, Por que e Como?Olimpiadas Programação: O que, Por que e Como?
Olimpiadas Programação: O que, Por que e Como?Alexandre Duarte
 
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Alex Camargo
 
T02_LM3: Introdução à algoritmia (2013-2014)
T02_LM3: Introdução à algoritmia (2013-2014)T02_LM3: Introdução à algoritmia (2013-2014)
T02_LM3: Introdução à algoritmia (2013-2014)Carlos Santos
 
(A03) LabMM3 - Introdução à programação
(A03) LabMM3 - Introdução à programação(A03) LabMM3 - Introdução à programação
(A03) LabMM3 - Introdução à programaçãoCarlos Santos
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Algoritmos visualg
Algoritmos visualgAlgoritmos visualg
Algoritmos visualgDiego Sales
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosMario Jorge Pereira
 

Ähnlich wie Algoritmos e Técnicas de Programação - Aula 02 (20)

AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
 
Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02
 
01 fundamentos de programação
01   fundamentos de programação01   fundamentos de programação
01 fundamentos de programação
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Aula 01 introdução a linguagem pascal
Aula 01   introdução a linguagem pascalAula 01   introdução a linguagem pascal
Aula 01 introdução a linguagem pascal
 
122172 1445
122172 1445122172 1445
122172 1445
 
Algoritmos - Pascal
Algoritmos - PascalAlgoritmos - Pascal
Algoritmos - Pascal
 
Aula01
Aula01Aula01
Aula01
 
Aula1 introdução à lógica de programação
Aula1 introdução à lógica de programaçãoAula1 introdução à lógica de programação
Aula1 introdução à lógica de programação
 
Olimpiadas Programação: O que, Por que e Como?
Olimpiadas Programação: O que, Por que e Como?Olimpiadas Programação: O que, Por que e Como?
Olimpiadas Programação: O que, Por que e Como?
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
 
T02_LM3: Introdução à algoritmia (2013-2014)
T02_LM3: Introdução à algoritmia (2013-2014)T02_LM3: Introdução à algoritmia (2013-2014)
T02_LM3: Introdução à algoritmia (2013-2014)
 
Lógica da programação
Lógica da programaçãoLógica da programação
Lógica da programação
 
Lógica da programação
Lógica da programaçãoLógica da programação
Lógica da programação
 
(A03) LabMM3 - Introdução à programação
(A03) LabMM3 - Introdução à programação(A03) LabMM3 - Introdução à programação
(A03) LabMM3 - Introdução à programação
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Algoritmos visualg
Algoritmos visualgAlgoritmos visualg
Algoritmos visualg
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 

Mehr von 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 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03thomasdacosta
 
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
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Javathomasdacosta
 
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
 

Mehr von 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 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03
 
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
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Java
 
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 Técnicas de Programação - Aula 02

  • 1. ANHANGUERA – 2016.2 ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO AULA 02 – FUNDAMENTOS DE ALGORITMOS Prof. Thomás da Costa thomascosta@aedu.com
  • 2. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa FUNDAMENTOS DE ALGORITMOS FUNDAMENTOS DE ALGORITMOS
  • 3. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Fundamentos FUNDAMENTOS DE ALGORITMOS Antes de iniciar os Fundamentos de Algoritmos: • 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 !!!
  • 4. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Torre de Hanói FUNDAMENTOS DE ALGORITMOS "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 O que é:
  • 5. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Torre de Hanói FUNDAMENTOS DE ALGORITMOS 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.
  • 6. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Torre de Hanói FUNDAMENTOS DE ALGORITMOS Vamos resolver a Torre de Hanói:
  • 7. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Torre de Hanói FUNDAMENTOS DE ALGORITMOS 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.
  • 8. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa 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. FUNDAMENTOS DE ALGORITMOS
  • 9. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Algoritmo O que é?: FUNDAMENTOS DE ALGORITMOS É 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.
  • 10. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Algoritmo Detalhes: FUNDAMENTOS DE ALGORITMOS • Para resolver um problema temos várias soluções. • Então....um problema não tem um único algoritmo. • Cada desenvolvedor tem um pensamento para criar um algoritmo. • Um algoritmo pode ser melhor que o outro para resolver um problema. • Estudar algoritmo requer bastante dedicação. • Algoritmo é algo do nosso dia-a-dia.
  • 11. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Algoritmo Exemplos: FUNDAMENTOS DE ALGORITMOS • 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. • Fazer a prova e ser aprovado. • Multiplicar dois números.
  • 12. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Algoritmo Exercícios: FUNDAMENTOS DE ALGORITMOS • 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.
  • 13. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Algoritmo Exercícios: FUNDAMENTOS DE ALGORITMOS • Criar o algoritmo de mascar um chiclete em linguagem natural: • Resposta: 1. Pegar o chiclete. 2. Retirar do papel. 3. Mastigar. 4. Jogar o papel no lixo.
  • 14. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Algoritmo Exercícios: FUNDAMENTOS DE ALGORITMOS • Criar o algoritmo para jogar um jogo no Playstation em linguagem natural: • Resposta: 1. Ligar a TV. 2. Ligar o Playstation (pode ser 3 ou o 4 !!!). 3. Ligar o controle. 4. Colocar o jogo no drive. 5. Escolher o jogo com o botão X. 6. Jogar o jogo até cansar !!!
  • 15. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Algoritmo Exercícios: FUNDAMENTOS DE ALGORITMOS • Criar o algoritmo para calcular a média da matéria em linguagem natural: • Resposta: 1. Obter a média da B1. 2. Obter a média da B2. 3. Efetuar o cálculo de 40% da B1 4. Efetuar o cálculo de 60% da B2 5. Somar os cálculos obtidos. 6. Se a média for maior ou igual a 6, aluno aprovado. 7. Se a média for menor que 6, aluno reprovado.
  • 16. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Algoritmo Como são feitos os programas de computador: FUNDAMENTOS DE ALGORITMOS • Todo programa é feito com algoritmos. • Para escrever os algoritmos precisamos de uma linguagem. • Existem várias linguagens no mercado. (Se lembram?) • Para escrever um programa em uma linguagem utilizamos um outro programa. • Este programa é conhecido como IDE (Integrated Development Environment)
  • 17. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa IDE Orwell Dev-C++: FUNDAMENTOS DE ALGORITMOS
  • 18. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa IDE Orwell Dev-C++: FUNDAMENTOS DE ALGORITMOS • Vamos programar em uma linguagem conhecida como C.  • Simplesmente C !!! • Para baixar o programa utilize o endereço abaixo: • https://sf.net/projects/orwelldevcpp/