SlideShare uma empresa Scribd logo
Aula 03Aula 03
AlgoritmosAlgoritmos
Programação de Computadores IProgramação de Computadores I
BCC 701BCC 701
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
LÓGICA DE PROGRAMAÇÃO: é a técnica de
encadear pensamentos para atingir determinado
objetivo; técnica necessária para o
desenvolvimento de sistemas e programas.
ALGORITMO: é uma sequencia de passos finitos
com o objetivo de solucionar o problema.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
“Um conjunto finito de regras que provê uma
seqüência de operações para resolver um tipo de
problema específico” - [Knuth]
“Seqüência ordenada, e não ambÍgua, de passos
que levam à solução de um dado problema” -
[Tremblay]
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
DEFINIÇÃO DE ALGORITMO
♦ Diante de um problema, busca-se a solução!
♦ O algoritmo não é a solução de um problema,
pois, se assim fosse, cada problema teria um único
algoritmo;
♦ O algoritmo é um conjunto de passos (ações)
que levam à solução de um determinado problema,
ou então, é um caminho para a solução de um
problema.
♦ Os caminhos podem ser muitos!
♦ Objetivo deste estudo: possibilitar ao aluno, a
partir das soluções apresentadas, construir sua
própria lógica de programação.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
POR QUE ESTUDAR ALGORITMOS?
♦ Ligação de um telefone público
Problema: falar com alguém pelo telefone.
1) retirar o telefone do gancho
2) esperar o sinal
3) colocar o cartão
4) discar o número
5) falar no telefone
6) colocar o telefone no gancho
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
EXEMPLOS DE ALGORITMOS COTIDIANOS
♦ Algoritmo para levar um leão, uma cabra e um pé
de alface, de um lado para outro de um rio,
atravessando com um bote. Sabe-se que nunca o
leão pode ficar sozinho com a cabra e nem a cabra
sozinha com o alface.
1) levar a alface e o leão
2) voltar com o leão
3) deixar o leão
4) levar a cabra
5) deixar a cabra
6) voltar com o alface
7) levar o leão e o alface
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
EXEMPLOS DE ALGORITMOS COTIDIANOS
♦ Algoritmo para fazer uma prova
1) ler a prova;
2) pegar a caneta;
3) enquanto ( (houver questão em branco) e
(tempo não terminou) ) faça
se (souber a questão)
resolvê-la;
senão
pular para a outra;
fim-enquanto;
4) entregar a prova.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
EXEMPLOS DE ALGORITMOS COTIDIANOS
Fazer um algoritmo para levar 3 missionários e 3
canibais de um lado para outro de um rio,
atravessando com um bote. Sabe-se que nunca
pode ter mais missionários do que canibais,
porque senão os missionários catequizam os
canibais. O que fazer para levar os 6 de uma
margem para a outra?
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
D E S A F I O
♦ Cada linha do algoritmo (passo) é uma instrução
finita e compreensível para que a executa;
♦ INSTRUÇÃO: indica a um computador uma ação
elementar a ser executada;
♦ Ao formularmos um algoritmo, temos de ter
clareza a respeito do aspecto estático dessa
seqüência de ações escritas num pedaço de papel.
O aspecto dinâmico só se evidencia ao
executamos essa seqüência no computador e daí,
poderemos ter certeza se conseguimos ou não
resolver o problema.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
ALGORITMOS ...
♦PROGRAMA DE COMPUTADOR: é um algoritmo
escrito em uma linguagem de programação
qualquer (C, Pascal, Eiffel, Java, etc.). É a tradução
da linguagem do algoritmo para a linguagem de
programação.
♦ O mais importante de um programa é a sua
lógica, raciocínio utilizado para resolver o
problema que é exatamente o algoritmo.
PROGRAMA =
ALGORITMO + LINGUAGEM DE PROGRAMAÇÃO
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
ALGORITMO – PROGRAMA DE COMPUTADOR
Algoritmo
1) retire uma moeda do bolso;
2) coloque a moeda sobre a mesa;
3) volte ao passo 1;
Problema: e quando não houver mais moedas no
bolso?
O algoritmo não sabe o que fazer...
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
O PROBLEMA DA AMBIGUIDADE
♦ Ter um início e fim claros;
♦ Não dar margem a interpretações duplas
(ambiguidade);
♦ ter zero ou mais informações de entrada;
♦ ter uma ou mais informações de saída;
♦ ter passos claros e bem definidos.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
CARACTERÍSTICAS DE UM ALGORITMO
♦ Para representar-se os algoritmos requer-se
alguma forma de linguagem;
♦ Algumas formas de representação:
♦ descrição narrativa;
♦ fluxograma;
♦ Pseudocódigo: português estruturado ou
portugol.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
REPRESENTAÇÃO DE ALGORITMOS
♦ Os algoritmos são expressos diretamente em
linguagem natural (Português).
♦ Exemplo: Cálculo da média de um aluno
1) Obter as notas da primeira e da segunda prova;
2) Calcular a média aritmética entre as duas notas;
3) Se a média for maior ou igual a 6.0, o aluno foi
aprovado, senão ele foi reprovado.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
Descrição Narrativa
VANTAGEM
♦ O português é bastante conhecido por nós.
DESVANTAGEM
♦ Imprecisão e Extensão, isto é, escreve-se muito
para dizer pouca coisa.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
Descrição Narrativa
Utilização de símbolos gráficos padronizados para
representar os algoritmos.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
FLUXOGRAMA
Cálculo da média
de um aluno.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
FLUXOGRAMA
VANTAGENS
♦ Uma das ferramentas mais conhecidas;
♦ Figuras dizem mais que palavras;
♦ Padrão mundial.
DESVANTAGENS
♦ Pouca atenção aos dados, não oferecendo
recursos para descrevê-los e representá-los;
♦ Torna-se complicado a medida que o algoritmo
cresce.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
FLUXOGRAMA
♦Combina a facilidade da linguagem natural com a
precisão da linguagem de programação.
JOGO DA FORCA
1) escolher a palavra;
2) montar o diagrama do jogo;
3) enquanto ( (houver lacunas vazias) e
(corpo incompleto) ) faça
se (acertar uma letra)
escrever na lacuna correspondente;
senão
desenhar uma parte do corpo na forca;
4) fim
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
PSEUDOCÓDIGO
VANTAGENS
♦ Usa o português como base;
♦ Pode-se definir quais e como os dados vão
estar estruturados;
♦ Passagem quase que imediata do algoritmo
para uma linguagem de programação qualquer.
DESVANTAGENS
♦ Não padronizado
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
PSEUDOCÓDIGO
1) Escreva o algoritmo na forma de descrição
narrativa para fritar um ovo.
2) Escreva os algoritmos utilizando fluxogramas:
a) Obter a soma (S) e o produto (P) de dois valores
(A; B) inseridos por teclado. Imprimir o resultado.
b) Calcular a área (A) de um retângulo. A base (B) e
a altura (H) do retângulo são inseridos por teclado.
Imprimir o resultado.
3) Escrever os pseudocódigos para:
a) Dados 2 valores por teclado mostrá-los em
ordem crecente.
b) Dado um número, responder se ele é positivo ou
negativo
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
EXERCÍCIOS

Mais conteúdo relacionado

Mais procurados

(A03) LabMM3 - Introdução à programação
(A03) LabMM3 - Introdução à programação(A03) LabMM3 - Introdução à programação
(A03) LabMM3 - Introdução à programação
Carlos Santos
 
Programando em Elixir
Programando em ElixirProgramando em Elixir
Programando em Elixir
Adolfo Neto
 
Programando em Elixir
Programando em ElixirProgramando em Elixir
Programando em Elixir
Adolfo Neto
 
Slide
SlideSlide
Aula 11 - Começando a programar: Condicionais
Aula 11 - Começando a programar: CondicionaisAula 11 - Começando a programar: Condicionais
Aula 11 - Começando a programar: Condicionais
Luiz Augusto Macêdo Morais
 
LabMM3 - Aula teórica 03
LabMM3 - Aula teórica 03LabMM3 - Aula teórica 03
LabMM3 - Aula teórica 03
Carlos Santos
 
Aula2 ambientação a linguagem deprogramação python
Aula2   ambientação a linguagem deprogramação pythonAula2   ambientação a linguagem deprogramação python
Aula2 ambientação a linguagem deprogramação python
Cleyton Fábio
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
Ismar Silveira
 
Aula 4 - Introducão a algoritmos
Aula 4 - Introducão a algoritmosAula 4 - Introducão a algoritmos
Aula 4 - Introducão a algoritmos
Luiz Augusto Macêdo Morais
 
Descrição do Projeto 8 puzzle
Descrição do Projeto 8 puzzleDescrição do Projeto 8 puzzle
Descrição do Projeto 8 puzzle
Leinylson Fontinele
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
Aislan Rafael
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Adriano Teixeira de Souza
 
Criptografia com bloco de correção de erros aplicados à evolução autômatos
Criptografia com bloco de correção de erros aplicados à evolução autômatosCriptografia com bloco de correção de erros aplicados à evolução autômatos
Criptografia com bloco de correção de erros aplicados à evolução autômatos
Anderson Chaves
 
Sábado Hackadêmico - JavaScript
Sábado Hackadêmico - JavaScriptSábado Hackadêmico - JavaScript
Sábado Hackadêmico - JavaScript
Julio Greff
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação Python
Flávio Ribeiro
 
E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11
Ismar Silveira
 
Exemplo do software educativo - PGTIAE
Exemplo do software educativo - PGTIAEExemplo do software educativo - PGTIAE
Exemplo do software educativo - PGTIAE
Diego Leal
 

Mais procurados (17)

(A03) LabMM3 - Introdução à programação
(A03) LabMM3 - Introdução à programação(A03) LabMM3 - Introdução à programação
(A03) LabMM3 - Introdução à programação
 
Programando em Elixir
Programando em ElixirProgramando em Elixir
Programando em Elixir
 
Programando em Elixir
Programando em ElixirProgramando em Elixir
Programando em Elixir
 
Slide
SlideSlide
Slide
 
Aula 11 - Começando a programar: Condicionais
Aula 11 - Começando a programar: CondicionaisAula 11 - Começando a programar: Condicionais
Aula 11 - Começando a programar: Condicionais
 
LabMM3 - Aula teórica 03
LabMM3 - Aula teórica 03LabMM3 - Aula teórica 03
LabMM3 - Aula teórica 03
 
Aula2 ambientação a linguagem deprogramação python
Aula2   ambientação a linguagem deprogramação pythonAula2   ambientação a linguagem deprogramação python
Aula2 ambientação a linguagem deprogramação python
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
 
Aula 4 - Introducão a algoritmos
Aula 4 - Introducão a algoritmosAula 4 - Introducão a algoritmos
Aula 4 - Introducão a algoritmos
 
Descrição do Projeto 8 puzzle
Descrição do Projeto 8 puzzleDescrição do Projeto 8 puzzle
Descrição do Projeto 8 puzzle
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
 
Criptografia com bloco de correção de erros aplicados à evolução autômatos
Criptografia com bloco de correção de erros aplicados à evolução autômatosCriptografia com bloco de correção de erros aplicados à evolução autômatos
Criptografia com bloco de correção de erros aplicados à evolução autômatos
 
Sábado Hackadêmico - JavaScript
Sábado Hackadêmico - JavaScriptSábado Hackadêmico - JavaScript
Sábado Hackadêmico - JavaScript
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação Python
 
E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11
 
Exemplo do software educativo - PGTIAE
Exemplo do software educativo - PGTIAEExemplo do software educativo - PGTIAE
Exemplo do software educativo - PGTIAE
 

Semelhante a scilab aula 05

2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx
2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx
2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx
rapc987
 
Algoritmos
AlgoritmosAlgoritmos
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
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
Alisson Meneses Batista
 
122172 1444
122172 1444122172 1444
122172 1444
Robson Ferreira
 
Introducao a Lógica de Programação
Introducao a Lógica de ProgramaçãoIntroducao a Lógica de Programação
Introducao a Lógica de Programação
Marcelo Rodrigues
 
C curso - notas de aula
C   curso - notas de aulaC   curso - notas de aula
C curso - notas de aula
LoAlves21
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
Professor Samuel Ribeiro
 
Algoritimo - Raul
Algoritimo - RaulAlgoritimo - Raul
Algoritimo - Raul
Raul Oliveira
 
23º GURU-SP - Entenda LISP em 15 minutos
23º GURU-SP - Entenda LISP em 15 minutos23º GURU-SP - Entenda LISP em 15 minutos
23º GURU-SP - Entenda LISP em 15 minutos
pbalduino
 
Python for zombies (very basic level)
Python for zombies (very basic level)Python for zombies (very basic level)
Python for zombies (very basic level)
FATEC São José dos Campos
 
aula_01_tec_programacao_python_programacao.pdf
aula_01_tec_programacao_python_programacao.pdfaula_01_tec_programacao_python_programacao.pdf
aula_01_tec_programacao_python_programacao.pdf
andersonsoares275191
 
Minicurso Ruby
Minicurso RubyMinicurso Ruby
Minicurso Ruby
Saulo Arruda
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
Mario Sergio
 
Forb.cap1
Forb.cap1Forb.cap1
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
Microsoft
 
portugol
portugolportugol
portugol
anselmo alves
 
122172 1445
122172 1445122172 1445
122172 1445
Robson Ferreira
 
Backtracking
BacktrackingBacktracking
Aula 04 - Introducao a Algoritmos.pdf
Aula 04 - Introducao a Algoritmos.pdfAula 04 - Introducao a Algoritmos.pdf
Aula 04 - Introducao a Algoritmos.pdf
EMERSONMUNIZDECARVAL
 

Semelhante a scilab aula 05 (20)

2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx
2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx
2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
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
 
122172 1444
122172 1444122172 1444
122172 1444
 
Introducao a Lógica de Programação
Introducao a Lógica de ProgramaçãoIntroducao a Lógica de Programação
Introducao a Lógica de Programação
 
C curso - notas de aula
C   curso - notas de aulaC   curso - notas de aula
C curso - notas de aula
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Algoritimo - Raul
Algoritimo - RaulAlgoritimo - Raul
Algoritimo - Raul
 
23º GURU-SP - Entenda LISP em 15 minutos
23º GURU-SP - Entenda LISP em 15 minutos23º GURU-SP - Entenda LISP em 15 minutos
23º GURU-SP - Entenda LISP em 15 minutos
 
Python for zombies (very basic level)
Python for zombies (very basic level)Python for zombies (very basic level)
Python for zombies (very basic level)
 
aula_01_tec_programacao_python_programacao.pdf
aula_01_tec_programacao_python_programacao.pdfaula_01_tec_programacao_python_programacao.pdf
aula_01_tec_programacao_python_programacao.pdf
 
Minicurso Ruby
Minicurso RubyMinicurso Ruby
Minicurso Ruby
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Forb.cap1
Forb.cap1Forb.cap1
Forb.cap1
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
 
portugol
portugolportugol
portugol
 
122172 1445
122172 1445122172 1445
122172 1445
 
Backtracking
BacktrackingBacktracking
Backtracking
 
Aula 04 - Introducao a Algoritmos.pdf
Aula 04 - Introducao a Algoritmos.pdfAula 04 - Introducao a Algoritmos.pdf
Aula 04 - Introducao a Algoritmos.pdf
 

scilab aula 05

  • 1. Aula 03Aula 03 AlgoritmosAlgoritmos Programação de Computadores IProgramação de Computadores I BCC 701BCC 701 UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red)
  • 2. LÓGICA DE PROGRAMAÇÃO: é a técnica de encadear pensamentos para atingir determinado objetivo; técnica necessária para o desenvolvimento de sistemas e programas. ALGORITMO: é uma sequencia de passos finitos com o objetivo de solucionar o problema. UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red)
  • 3. “Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico” - [Knuth] “Seqüência ordenada, e não ambÍgua, de passos que levam à solução de um dado problema” - [Tremblay] UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) DEFINIÇÃO DE ALGORITMO
  • 4. ♦ Diante de um problema, busca-se a solução! ♦ O algoritmo não é a solução de um problema, pois, se assim fosse, cada problema teria um único algoritmo; ♦ O algoritmo é um conjunto de passos (ações) que levam à solução de um determinado problema, ou então, é um caminho para a solução de um problema. ♦ Os caminhos podem ser muitos! ♦ Objetivo deste estudo: possibilitar ao aluno, a partir das soluções apresentadas, construir sua própria lógica de programação. UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) POR QUE ESTUDAR ALGORITMOS?
  • 5. ♦ Ligação de um telefone público Problema: falar com alguém pelo telefone. 1) retirar o telefone do gancho 2) esperar o sinal 3) colocar o cartão 4) discar o número 5) falar no telefone 6) colocar o telefone no gancho UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) EXEMPLOS DE ALGORITMOS COTIDIANOS
  • 6. ♦ Algoritmo para levar um leão, uma cabra e um pé de alface, de um lado para outro de um rio, atravessando com um bote. Sabe-se que nunca o leão pode ficar sozinho com a cabra e nem a cabra sozinha com o alface. 1) levar a alface e o leão 2) voltar com o leão 3) deixar o leão 4) levar a cabra 5) deixar a cabra 6) voltar com o alface 7) levar o leão e o alface UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) EXEMPLOS DE ALGORITMOS COTIDIANOS
  • 7. ♦ Algoritmo para fazer uma prova 1) ler a prova; 2) pegar a caneta; 3) enquanto ( (houver questão em branco) e (tempo não terminou) ) faça se (souber a questão) resolvê-la; senão pular para a outra; fim-enquanto; 4) entregar a prova. UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) EXEMPLOS DE ALGORITMOS COTIDIANOS
  • 8. Fazer um algoritmo para levar 3 missionários e 3 canibais de um lado para outro de um rio, atravessando com um bote. Sabe-se que nunca pode ter mais missionários do que canibais, porque senão os missionários catequizam os canibais. O que fazer para levar os 6 de uma margem para a outra? UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) D E S A F I O
  • 9. ♦ Cada linha do algoritmo (passo) é uma instrução finita e compreensível para que a executa; ♦ INSTRUÇÃO: indica a um computador uma ação elementar a ser executada; ♦ Ao formularmos um algoritmo, temos de ter clareza a respeito do aspecto estático dessa seqüência de ações escritas num pedaço de papel. O aspecto dinâmico só se evidencia ao executamos essa seqüência no computador e daí, poderemos ter certeza se conseguimos ou não resolver o problema. UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) ALGORITMOS ...
  • 10. ♦PROGRAMA DE COMPUTADOR: é um algoritmo escrito em uma linguagem de programação qualquer (C, Pascal, Eiffel, Java, etc.). É a tradução da linguagem do algoritmo para a linguagem de programação. ♦ O mais importante de um programa é a sua lógica, raciocínio utilizado para resolver o problema que é exatamente o algoritmo. PROGRAMA = ALGORITMO + LINGUAGEM DE PROGRAMAÇÃO UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) ALGORITMO – PROGRAMA DE COMPUTADOR
  • 11. Algoritmo 1) retire uma moeda do bolso; 2) coloque a moeda sobre a mesa; 3) volte ao passo 1; Problema: e quando não houver mais moedas no bolso? O algoritmo não sabe o que fazer... UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) O PROBLEMA DA AMBIGUIDADE
  • 12. ♦ Ter um início e fim claros; ♦ Não dar margem a interpretações duplas (ambiguidade); ♦ ter zero ou mais informações de entrada; ♦ ter uma ou mais informações de saída; ♦ ter passos claros e bem definidos. UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) CARACTERÍSTICAS DE UM ALGORITMO
  • 13. ♦ Para representar-se os algoritmos requer-se alguma forma de linguagem; ♦ Algumas formas de representação: ♦ descrição narrativa; ♦ fluxograma; ♦ Pseudocódigo: português estruturado ou portugol. UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) REPRESENTAÇÃO DE ALGORITMOS
  • 14. ♦ Os algoritmos são expressos diretamente em linguagem natural (Português). ♦ Exemplo: Cálculo da média de um aluno 1) Obter as notas da primeira e da segunda prova; 2) Calcular a média aritmética entre as duas notas; 3) Se a média for maior ou igual a 6.0, o aluno foi aprovado, senão ele foi reprovado. UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) Descrição Narrativa
  • 15. VANTAGEM ♦ O português é bastante conhecido por nós. DESVANTAGEM ♦ Imprecisão e Extensão, isto é, escreve-se muito para dizer pouca coisa. UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) Descrição Narrativa
  • 16. Utilização de símbolos gráficos padronizados para representar os algoritmos. UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) FLUXOGRAMA
  • 17. Cálculo da média de um aluno. UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) FLUXOGRAMA
  • 18. VANTAGENS ♦ Uma das ferramentas mais conhecidas; ♦ Figuras dizem mais que palavras; ♦ Padrão mundial. DESVANTAGENS ♦ Pouca atenção aos dados, não oferecendo recursos para descrevê-los e representá-los; ♦ Torna-se complicado a medida que o algoritmo cresce. UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) FLUXOGRAMA
  • 19. ♦Combina a facilidade da linguagem natural com a precisão da linguagem de programação. JOGO DA FORCA 1) escolher a palavra; 2) montar o diagrama do jogo; 3) enquanto ( (houver lacunas vazias) e (corpo incompleto) ) faça se (acertar uma letra) escrever na lacuna correspondente; senão desenhar uma parte do corpo na forca; 4) fim UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) PSEUDOCÓDIGO
  • 20. VANTAGENS ♦ Usa o português como base; ♦ Pode-se definir quais e como os dados vão estar estruturados; ♦ Passagem quase que imediata do algoritmo para uma linguagem de programação qualquer. DESVANTAGENS ♦ Não padronizado UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) PSEUDOCÓDIGO
  • 21. 1) Escreva o algoritmo na forma de descrição narrativa para fritar um ovo. 2) Escreva os algoritmos utilizando fluxogramas: a) Obter a soma (S) e o produto (P) de dois valores (A; B) inseridos por teclado. Imprimir o resultado. b) Calcular a área (A) de um retângulo. A base (B) e a altura (H) do retângulo são inseridos por teclado. Imprimir o resultado. 3) Escrever os pseudocódigos para: a) Dados 2 valores por teclado mostrá-los em ordem crecente. b) Dado um número, responder se ele é positivo ou negativo UFOP - ICEB - DECOM Prof. Marcelo Luiz Silva (Red) EXERCÍCIOS