SlideShare uma empresa Scribd logo
1 de 39
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO
Professor João Marcos
APRESENTAÇÃO
• Cursando Pós-graduação em Engenharia de Software.
• Pós-graduação em Redes e Segurança de Sistemas.
• Pós-graduação em Metodologia do Ensino Superior.
• Graduado em Tecnologia em Análise Desenvolvimento de Sistemas.
• 19 anos de experiência na área de TI.
• 9 anos de experiência com desenvolvimento em Java.
• Certificação em ITIL 4 Foundation.
• Certificação Scrum Foundation.
• Certificação Kanban Foundation.
• Certificação DevOps Essentials.
• Desenvolvimento e arquitetura de aplicações em várias áreas.
• Experiência profissional com várias linguagens e ferramentas de desenvolvimento Java SE, Java
EE, Spring Core, Spring MVC, Spring Boot, JBoss, Hibernate, PHP, Delphi, NodeJS.
Professor João Marcos
https://www.linkedin.com/in/jotamarcosduarte/
profjotamarcosduarte@gmail.com
https://github.com/JotaMarcos
Professor João Marcos
APRESENTAÇÃO DA TURMA
• Qual é o seu nome?
• Já trabalha com programação ou TI?
• Qual o seu principal objetivo com o Curso
Superior em Tecnologia em Análise e
Desenvolvimento de Sistemas?
Agora é com vocês!!!
Ementa
Apresentação do Docente e formas de contatos
Apresentação da Turma
Ementa
Formas de avaliação
O que é Algoritmos e Técnicas de Programação?
O que vamos aprender
Por que aprender Algoritmos e Técnicas de Programação
Bibliografias Utilizadas
Fundamentos de Algoritmos
Torre de Hanói
Todo mundo deveria aprender a programar
Sanando Dúvidas
Forma de avaliação
• Frequência mínima é de 75%
• Avaliação Parcial 1      100 Pontos
• Avaliação Parcial 2      100 Pontos
• Média Parcial      (AP1 + AP2)/2
• Avaliação Final      100 Pontos
• Avaliação de Recuperação      100 Pontos
• Média Final sem Recuperação      (MP + AF)/2
• Média Final com a Recuperação      (MF + AR)
Professor João Marcos
• Já pensou, como são feitos os principais programas que utilizamos?
• Windows que utilizamos, como é feito?
• Os aplicativos de celulares como Facebook, Whatsapp e Clash of Clans,
precisaram de quantas pessoas para desenvolver?
• Jogos de Playstation e Xbox como são feitos?
Esses programas são feitos a partir de outros programas !!!
Isso mesmo: programas que fazem programas.
Mas os programas precisam ser feitos a partir de uma linguagem, na qual
escrevemos comandos e ações, conhecidos como algoritmos.
O que é Algoritmos e Técnicas de Programação?
Pense nisso:
Vamos entender melhor a seguir !!!
O que é Algoritmos e Técnicas de Programação?
Programador/Desenvolvedor. Que gera um aplicativo para
celular, jogo ou um site da
internet.
Escreve algoritmos em uma linguagem.
Nossa disciplina entra nesta
etapa, na qual vamos
aprender uma linguagem e
estudar algoritmos para
desenvolver um programa.
É a disciplina onde vamos aprender a desenvolver aplicações, a partir de uma
linguagem de programação. Em Algoritmos e Técnicas de Programação,
iremos estudar o básico da criação de aplicações, ou seja, é o alicerce para
se tornar um programador ou desenvolvedor.
O que é Algoritmos e Técnicas de Programação?
Definição:
= Programador ou Desenvolvedor cria
aplicações para computadores, celulares,
jogos e sites de internet.
• Uma linguagem de programação.
• Vamos estudar algoritmos.
• O básico para criar programas de computador.
• Aplicações simples de calcular média, somar números e criar uma
calculadora.
• Não iremos criar aplicações mais complexas, mas é o básico para
iniciar a carreira de programador.
• Nossas aplicações serão desenvolvidas sem interface gráfica para o
usuário, pois não é o escopo dessa matéria.
O que vamos aprender
Onde tudo começa:
• Melhorar a lógica.
• Adquire conhecimento em outras áreas.
• 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 !!!
Por que aprender Algoritmos e Técnicas de
Programação
Pesquisa de emprego no site
Linkedin, mais de 1000
vagas para programador
Bibliografias Utilizadas
Algoritmos e Lógica de Programação - 2ª Ed
Marco Antonio Furlan de Souza, Marcelo Marques Gomes, Márcio Vieira
Soares, Ricardo Concilio
Bibliografias Utilizadas
Estruturas de Dados: algoritmos, análise da complexidade e
implementações em JAVA e C/C++
Ana Fernanda Gomes Ascencio, Graziela Santos Araújo
FUNDAMENTOS DE ALGORITMOS
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 !!!
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 é:
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.
Torre de Hanói
FUNDAMENTOS DE ALGORITMOS
Vamos resolver a Torre de Hanói:
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.
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
FUNDAMENTOS DE ALGORITMOS
https://www.youtube.com/watch?v=hLnuMXO95f8
Vídeo
Torre de Hanói
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.
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.
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.
• Jogar o jogo Watch Dogs.
• Fazer a prova e ser aprovado.
• Multiplicar dois números.
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.
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.
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, 4 ou o 5 !!!).
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 !!!
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.
FUNDAMENTOS DE ALGORITMOS
https://www.youtube.com/watch?v=4iKu9qtCSXg&list=FLvaVtRXmM6d
QGcMOM5nUcRw&index=1
Vídeo
Todo mundo deveria aprender a programar
Vamos pensar???
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)
IDE
VisuAlg:
FUNDAMENTOS DE ALGORITMOS
IDE
VisuAlg:
FUNDAMENTOS DE ALGORITMOS
• Vamos programar em uma linguagem conhecida como Portugol.
• Uma linguagem de programação mais natural perto do que conhecemos no dia-a-dia.
• Para baixar o programa utilize o endereço abaixo:
• http://www.apoioinformatica.inf.br/
SOUSA, Marco Antonio Furlan de; GOMES, Marcelo Marques; SOARES, Márcio
Vieira; CONCILIO, Ricardo. Algoritmos e Lógica de Programação. 2. ed. São Paulo:
Érica, 2020.
ASCENCIO, Ana Fernanda Gomes; ARAÚJO, Graziela Santos. Estruturas de Dados:
algoritmos, análise da complexidade e implementações em JAVA e C/C++. São
Paulo: Pearson Prentice Hall, 2007.
TOMÁS, Ana Paula. Algoritmos e Estruturas de Dados. São Paulo: LTC, 2014.
CORMEN, Thomas H. et al. Algoritmos: Teoria e Prática. Tradução de Mário de
Araújo Telecommunications, Marco Antônio Moreira. Rio de Janeiro: Elsevier,
2012.
ZIVIANI, Nivio. Projeto de Algoritmos com Implementações em Pascal e C. São
Paulo: Cengage Learning, 2010.
TRENTIN, Marco Antônio Sandini. Algoritmos e Programação: Teoria e Prática.
São Paulo: Novatec, 2016.
GOODRICH, Michael T.; TAMASSIA, Roberto. Estruturas de Dados e Algoritmos em
Java. Tradução de Marcelo Soares da Silva. Porto Alegre: Bookman, 2014.
Referências
Obrigado pela sua Atenção!!!
Sanando Dúvidas!!!
“... Você é aquilo que faz constantemente ...”. Aristóteles

Mais conteúdo relacionado

Semelhante a 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 02thomasdacosta
 
Sistemas para o Mundo Real
Sistemas para o Mundo RealSistemas para o Mundo Real
Sistemas para o Mundo RealLeandro Silva
 
Mini Curso Programação Paralela utilizando OpenMP - SACTA 2013
Mini Curso Programação Paralela utilizando OpenMP - SACTA 2013Mini Curso Programação Paralela utilizando OpenMP - SACTA 2013
Mini Curso Programação Paralela utilizando OpenMP - SACTA 2013Arthur Francisco Lorenzon
 
MiniCurso Programação Paralela com OpenMP - SACTA 2013
MiniCurso Programação Paralela com OpenMP - SACTA 2013MiniCurso Programação Paralela com OpenMP - SACTA 2013
MiniCurso Programação Paralela com OpenMP - SACTA 2013Arthur Francisco Lorenzon
 
01 fundamentos de programação
01   fundamentos de programação01   fundamentos de programação
01 fundamentos de programaçãomaceca21
 
Aprenda a programar python
Aprenda a programar pythonAprenda a programar python
Aprenda a programar pythonLourenço Junior
 
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
 
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.pptINFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.pptPatricaNascimento1
 
Princípios Básicos para Desenvolvedores
Princípios Básicos para DesenvolvedoresPrincípios Básicos para Desenvolvedores
Princípios Básicos para Desenvolvedoresguitoper
 
Ebook logica-de-programacao-para-iniciantes
Ebook logica-de-programacao-para-iniciantesEbook logica-de-programacao-para-iniciantes
Ebook logica-de-programacao-para-iniciantesMarcio Lima
 
Carreira de desenvolvedor
Carreira de desenvolvedorCarreira de desenvolvedor
Carreira de desenvolvedorLucas Moura
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...Alex Casañas
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...Alex Casañas
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...Alex Casañas
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...Alex Casañas
 
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...tdc-globalcode
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoUbirajara Cavaco
 

Semelhante a AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS (20)

Curso Scratch 2015
Curso Scratch 2015Curso Scratch 2015
Curso Scratch 2015
 
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
 
Sistemas para o Mundo Real
Sistemas para o Mundo RealSistemas para o Mundo Real
Sistemas para o Mundo Real
 
Mini Curso Programação Paralela utilizando OpenMP - SACTA 2013
Mini Curso Programação Paralela utilizando OpenMP - SACTA 2013Mini Curso Programação Paralela utilizando OpenMP - SACTA 2013
Mini Curso Programação Paralela utilizando OpenMP - SACTA 2013
 
MiniCurso Programação Paralela com OpenMP - SACTA 2013
MiniCurso Programação Paralela com OpenMP - SACTA 2013MiniCurso Programação Paralela com OpenMP - SACTA 2013
MiniCurso Programação Paralela com OpenMP - SACTA 2013
 
01 fundamentos de programação
01   fundamentos de programação01   fundamentos de programação
01 fundamentos de programação
 
Aprenda a programar python
Aprenda a programar pythonAprenda a programar python
Aprenda a programar python
 
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
 
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.pptINFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
INFORMATICA LOGICA DE PROGRAMAÇÃO E ALGORITIMOS AULA- 01.ppt
 
Princípios Básicos para Desenvolvedores
Princípios Básicos para DesenvolvedoresPrincípios Básicos para Desenvolvedores
Princípios Básicos para Desenvolvedores
 
Mergulhando no ecossistema .NET
Mergulhando no ecossistema .NETMergulhando no ecossistema .NET
Mergulhando no ecossistema .NET
 
Introdução ao XP
Introdução ao XPIntrodução ao XP
Introdução ao XP
 
Ebook logica-de-programacao-para-iniciantes
Ebook logica-de-programacao-para-iniciantesEbook logica-de-programacao-para-iniciantes
Ebook logica-de-programacao-para-iniciantes
 
Carreira de desenvolvedor
Carreira de desenvolvedorCarreira de desenvolvedor
Carreira de desenvolvedor
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
 
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 

AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS

  • 1. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO Professor João Marcos
  • 2. APRESENTAÇÃO • Cursando Pós-graduação em Engenharia de Software. • Pós-graduação em Redes e Segurança de Sistemas. • Pós-graduação em Metodologia do Ensino Superior. • Graduado em Tecnologia em Análise Desenvolvimento de Sistemas. • 19 anos de experiência na área de TI. • 9 anos de experiência com desenvolvimento em Java. • Certificação em ITIL 4 Foundation. • Certificação Scrum Foundation. • Certificação Kanban Foundation. • Certificação DevOps Essentials. • Desenvolvimento e arquitetura de aplicações em várias áreas. • Experiência profissional com várias linguagens e ferramentas de desenvolvimento Java SE, Java EE, Spring Core, Spring MVC, Spring Boot, JBoss, Hibernate, PHP, Delphi, NodeJS. Professor João Marcos
  • 4. APRESENTAÇÃO DA TURMA • Qual é o seu nome? • Já trabalha com programação ou TI? • Qual o seu principal objetivo com o Curso Superior em Tecnologia em Análise e Desenvolvimento de Sistemas? Agora é com vocês!!!
  • 5. Ementa Apresentação do Docente e formas de contatos Apresentação da Turma Ementa Formas de avaliação O que é Algoritmos e Técnicas de Programação? O que vamos aprender Por que aprender Algoritmos e Técnicas de Programação Bibliografias Utilizadas Fundamentos de Algoritmos Torre de Hanói Todo mundo deveria aprender a programar Sanando Dúvidas
  • 6. Forma de avaliação • Frequência mínima é de 75% • Avaliação Parcial 1      100 Pontos • Avaliação Parcial 2      100 Pontos • Média Parcial      (AP1 + AP2)/2 • Avaliação Final      100 Pontos • Avaliação de Recuperação      100 Pontos • Média Final sem Recuperação      (MP + AF)/2 • Média Final com a Recuperação      (MF + AR) Professor João Marcos
  • 7. • Já pensou, como são feitos os principais programas que utilizamos? • Windows que utilizamos, como é feito? • Os aplicativos de celulares como Facebook, Whatsapp e Clash of Clans, precisaram de quantas pessoas para desenvolver? • Jogos de Playstation e Xbox como são feitos? Esses programas são feitos a partir de outros programas !!! Isso mesmo: programas que fazem programas. Mas os programas precisam ser feitos a partir de uma linguagem, na qual escrevemos comandos e ações, conhecidos como algoritmos. O que é Algoritmos e Técnicas de Programação? Pense nisso: Vamos entender melhor a seguir !!!
  • 8. O que é Algoritmos e Técnicas de Programação? Programador/Desenvolvedor. Que gera um aplicativo para celular, jogo ou um site da internet. Escreve algoritmos em uma linguagem. Nossa disciplina entra nesta etapa, na qual vamos aprender uma linguagem e estudar algoritmos para desenvolver um programa.
  • 9. É a disciplina onde vamos aprender a desenvolver aplicações, a partir de uma linguagem de programação. Em Algoritmos e Técnicas de Programação, iremos estudar o básico da criação de aplicações, ou seja, é o alicerce para se tornar um programador ou desenvolvedor. O que é Algoritmos e Técnicas de Programação? Definição: = Programador ou Desenvolvedor cria aplicações para computadores, celulares, jogos e sites de internet.
  • 10. • Uma linguagem de programação. • Vamos estudar algoritmos. • O básico para criar programas de computador. • Aplicações simples de calcular média, somar números e criar uma calculadora. • Não iremos criar aplicações mais complexas, mas é o básico para iniciar a carreira de programador. • Nossas aplicações serão desenvolvidas sem interface gráfica para o usuário, pois não é o escopo dessa matéria. O que vamos aprender Onde tudo começa:
  • 11. • Melhorar a lógica. • Adquire conhecimento em outras áreas. • 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 !!! Por que aprender Algoritmos e Técnicas de Programação Pesquisa de emprego no site Linkedin, mais de 1000 vagas para programador
  • 12. Bibliografias Utilizadas Algoritmos e Lógica de Programação - 2ª Ed Marco Antonio Furlan de Souza, Marcelo Marques Gomes, Márcio Vieira Soares, Ricardo Concilio
  • 13. Bibliografias Utilizadas Estruturas de Dados: algoritmos, análise da complexidade e implementações em JAVA e C/C++ Ana Fernanda Gomes Ascencio, Graziela Santos Araújo
  • 15. 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 !!!
  • 16. 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 é:
  • 17. 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.
  • 18. Torre de Hanói FUNDAMENTOS DE ALGORITMOS Vamos resolver a Torre de Hanói:
  • 19. 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.
  • 20. 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
  • 22.
  • 23. 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.
  • 24. 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.
  • 25. 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. • Jogar o jogo Watch Dogs. • Fazer a prova e ser aprovado. • Multiplicar dois números.
  • 26. 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.
  • 27. 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.
  • 28. 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, 4 ou o 5 !!!). 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 !!!
  • 29. 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.
  • 31.
  • 33. 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)
  • 35. IDE VisuAlg: FUNDAMENTOS DE ALGORITMOS • Vamos programar em uma linguagem conhecida como Portugol. • Uma linguagem de programação mais natural perto do que conhecemos no dia-a-dia. • Para baixar o programa utilize o endereço abaixo: • http://www.apoioinformatica.inf.br/
  • 36. SOUSA, Marco Antonio Furlan de; GOMES, Marcelo Marques; SOARES, Márcio Vieira; CONCILIO, Ricardo. Algoritmos e Lógica de Programação. 2. ed. São Paulo: Érica, 2020. ASCENCIO, Ana Fernanda Gomes; ARAÚJO, Graziela Santos. Estruturas de Dados: algoritmos, análise da complexidade e implementações em JAVA e C/C++. São Paulo: Pearson Prentice Hall, 2007. TOMÁS, Ana Paula. Algoritmos e Estruturas de Dados. São Paulo: LTC, 2014. CORMEN, Thomas H. et al. Algoritmos: Teoria e Prática. Tradução de Mário de Araújo Telecommunications, Marco Antônio Moreira. Rio de Janeiro: Elsevier, 2012. ZIVIANI, Nivio. Projeto de Algoritmos com Implementações em Pascal e C. São Paulo: Cengage Learning, 2010. TRENTIN, Marco Antônio Sandini. Algoritmos e Programação: Teoria e Prática. São Paulo: Novatec, 2016. GOODRICH, Michael T.; TAMASSIA, Roberto. Estruturas de Dados e Algoritmos em Java. Tradução de Marcelo Soares da Silva. Porto Alegre: Bookman, 2014. Referências
  • 37. Obrigado pela sua Atenção!!!
  • 39. “... Você é aquilo que faz constantemente ...”. Aristóteles