Você está na página 1de 31

IFPB – Campus Campina Grande

Curso Bach. em Engenharia de Computação

ALGORITMOS e
PROGRAMAÇÃO
(teoria e laboratório)

Professores:
Ianna Sodré/ Leandro Melo/ Petrônio Bezerra
Alguns conceitos importantes
Sistema Computacional

Hardware

Software

Peopleware
Sistema computacional – HW + SW

Processador

Memória

Entrada Programa Saída



Exemplos de programas, entradas e saídas
– Editor de Texto

Entrada: Caracteres, palavras, texto

Processamento: Formatação, mudança de
fonte, geração automática de índice

Saída: Texto na tela, texto impresso, texto salvo
em arquivo
– Navegador Web

Entrada: Cliques de mouse em links, digitação
de endereços na barra de endereços

Processamento: Solicitação de página ao
servidor

Saída: Página exibida na tela do navegador
Computadores e programas

Computador: máquina que pode executar
programas.

Programa: sequência bem precisa de passos
que um computador deve executar.

Linguagem de programação: linguagem
projetada para produzir programas de
computadores.

E os algoritmos? Onde se encaixam?

Para produzir uma saída, o programa executa um
algoritmo

Definição informal:
“Conjunto bem definido de passos sequenciais para
realizar uma tarefa”

Existem algoritmos para: Uso de linguagem natural
– Cozinhar
– Localizar-se em determinado local
– Operar um eletrodoméstico (p.e., máquina de
lavar)
– Tocar uma música
– Realizar mágica
– Etc.

Para produzir uma saída, o programa executa um
algoritmo

Definição um pouco mais formal:
“Sequência finita de operações (comandos, instruções
ou passos) que podem ser aplicados a um conjunto de
dados para atingir um objetivo em um tempo finito.”
Representação do algoritmo
em formato compatível
com o computador.

Assim, um programa
– “É um algoritmo escrito em uma linguagem de
programação”
– Exemplos de linguagens de programação:

Python

C, C++, C#

Pascal

Java

PHP

etc...
O que os computadores entendem?

Para que o computador faça o que você quer (e
ele pode fazer (quase) tudo que você mandar),
é necessário usar a linguagem dele.

Qual a linguagem que o computador fala?
Bits
“Your computer sucessfully creates the illusion that it
contains photographs, letters, songs, and movies. All
it really contains is bits, lots of them, patterned in
ways you can't see. Your computer was designed
to store just bits – all the files and folders and
different kinds of data are illusions created by
computer programmers.”

(Hal Abelson, Ken Ledeen, Harry Lewis, in “Blown to


Bits”)
Interpretador x Compilador

Linguagem interpretada
– Exemplo: Python

Linguagem compilada
– Exemplo: C

O que é um interpretador de comandos?
– Recebe comandos textuais
– Executa uma operação
– Retorna um resultado para o usuário
Entrada e saída

Cada sistema computacional (SC) tem o que
chamamos de entrada padrão e saída padrão

Saída padrão: É um fluxo onde o programa
escreve dados de saída
– Exemplos de dispositivos mais comuns que
recebem a saída padrão:

PC: Monitor

Smartphone: Tela
Entrada e saída

Entrada padrão: Fluxo por onde o
programa recebe dados
– Exemplos de dispositivos mais comuns que
permitem a entrada padrão:

PC: Teclado

Smartphone: Tela touchscreen
Linguagens
main PROC Em Java:
mov eax, offset x
push eax
public class HelloPrinter {
mov eax, 17 public static void main (String[]
push eax args){
mov eax, 5 System.out.println(“Olá Mundo”);
push eax
pop ebx
}
pop eax }
add eax, ebx push eax
pop eax
pop ebx Em Python:
mov [ebx], eax call writeint call crlf print(“Olá Mundo”)
exit
main ENDP
END main
Assembly – baixo nível Alto nível
O foco da disciplina é Python?

Não!

O objetivo é aprender a escrever soluções
lógicas para problemas e, depois, usando uma
linguagem de programação, executar no
computador.
Algoritmos
Lógica de programação
Lógica e Algoritmo

O que é algoritmo?

“É uma sequência finita e não ambígua de instruções


computáveis para solucionar um problema”.

“Algoritmo é uma descrição com um número finito de passos,


que indicam precisamente os processos que produzirão um
resultado desejado”.
Lógica e Algoritmo

O que é lógica? ●
Lógica de programação
é a técnica de encadear
pensamentos para
atingir determinado
objetivo.

Permite definir uma
sequência lógica para
o desenvolvimento e
solução de determinado
problema.
O que é lógica?

Sequência lógica são passos executados até
atingir um objetivo ou solução de um problema.

Instruções são “um conjunto de regras ou
normas definidas para a realização ou emprego
de algo”.

Em informática, instrução é a informação que
indica a um computador uma ação elementar
que deve ser executada.
Existe lógica no dia a dia?

Sempre que pensamos, o raciocínio e a lógica
nos acompanham necessariamente.

Exemplos:
a) Todo mamífero é animal.
Todo cavalo é mamífero.
Portanto, todo cavalo é animal.
b) A gaveta está fechada. A bala está na gaveta.
Quero a bala.
Vamos exercitar a lógica
1) Um homem precisa atravessar um rio com
um barco que possui capacidade de carregar
apenas ele mesmo e mais uma de suas três
cargas, que são: um lobo, um bode e um maço
de alfafa. O que o homem deve fazer para
conseguir atravessar o rio sem perder suas
cargas?
Vamos exercitar a lógica
2)Três jesuítas e três canibais precisam atravessar um
rio; para tal, dispõem de um barco com capacidade
para duas pessoas. Por medidas de segurança não se
permite que em alguma margem a quantidade de
jesuítas seja inferior à de canibais. Qual a seqüência
de passos que permitiria a travessia com segurança?
Vamos exercitar a lógica
3) Numa determinada noite, acontece uma queda de
energia. Você sabia que poderia encontrar uma vela na
gaveta da cozinha, um lampião embaixo da cama,
fusíveis de reserva no armário da sala e fósforos na
estante da cozinha. Descreva a seqüência de passos que
poderia ser utilizada para diagnosticar e resolver o
problema, que pode ser previsto em duas possibilidades:
a) o fusível queimou;
b) a queda é na estação da companhia elétrica.
Vamos exercitar a lógica
4) Quais os passos que devem ser executados
para descascar vagens de feijão verde?
Vamos exercitar a lógica
5) A, B, C e D decidiram participar de uma corrida. Antes
do início da corrida, eles fizeram as seguintes previsões:

A previu que B ganharia

B previu que D seria o último

C previu que A seria o terceiro

D previu que a previsão de A estaria correta
Apenas uma das previsões é correta, e foi feita pelo
vencedor. Em que ordem A, B, C e D terminaram a
corrida?
Vamos exercitar a lógica
6) Cinco amigos músicos: Ana, Chico, Diva, Eva e Luiz,
resolveram gravar uma música para divulgar na Internet. Cada
amigo vai tocar um dos seguintes instrumentos: Bateria, Flauta,
Guitarra, Piano e Viola. Algumas restrições devem ser obedecidas
para definir qual instrumento cada amigo vai tocar:
Ana só toca Flauta ou Viola.
Diva toca somente Guitarra ou Flauta.
Eva não toca Guitarra.
Luiz toca qualquer instrumento, mas se Chico tocar Bateria, Luiz
vai tocar Flauta.
Qual das opções a seguir é uma atribuição válida de instrumentos?
(a)Bateria: Ana, Flauta: Eva, Guitarra: Luiz, Piano: Diva, Viola: Chico.
(b)Bateria: Chico, Flauta: Luiz, Guitarra: Ana, Piano: Diva, Viola: Eva
(c)Bateria: Luiz, Flauta: Ana, Guitarra: Diva, Piano: Chico, Viola: Eva.
(d)Bateria: Chico, Flauta: Luiz, Guitarra: Diva, Piano: Ana, Viola: Eva
(e)Bateria: Chico, Flauta: Diva, Guitarra: Ana, Piano: Eva, Viola: Luiz
Vamos exercitar a lógica
6) Cinco amigos músicos: Ana, Chico, Diva, Eva e Luiz,
resolveram gravar uma música para divulgar na Internet. Cada
amigo vai tocar um dos seguintes instrumentos: Bateria, Flauta,
Guitarra, Piano e Viola. Algumas restrições devem ser obedecidas
para definir qual instrumento cada amigo vai tocar:
Ana só toca Flauta ou Viola.
Diva toca somente Guitarra ou Flauta.
Eva não toca Guitarra.
Luiz toca qualquer instrumento, mas se Chico tocar Bateria, Luiz
vai tocar Flauta.
Se Chico tocar Bateria, então qual das alternativas abaixo são
instrumentos que Diva pode escolher para tocar?
(a) Flauta e Viola
(b) Somente Guitarra
(c) Somente Flauta
(d) Guitarra e Piano
(e) Flauta e Piano
Vamos exercitar a lógica
6) Cinco amigos músicos: Ana, Chico, Diva, Eva e Luiz,
resolveram gravar uma música para divulgar na Internet. Cada
amigo vai tocar um dos seguintes instrumentos: Bateria, Flauta,
Guitarra, Piano e Viola. Algumas restrições devem ser obedecidas
para definir qual instrumento cada amigo vai tocar:
Ana só toca Flauta ou Viola.
Diva toca somente Guitarra ou Flauta.
Eva não toca Guitarra.
Luiz toca qualquer instrumento, mas se Chico tocar Bateria, Luiz
vai tocar Flauta.
Se Luiz tocar Bateria, então qual das alternativas abaixo são
instrumentos que Diva pode escolher para tocar?
(a) Flauta e Guitarra
(b) Somente Guitarra
(c) Flauta e Viola
(d) Flauta, Piano e Viola
(e) Flauta, Guitarra e Piano
Vamos exercitar a lógica
6) Cinco amigos músicos: Ana, Chico, Diva, Eva e Luiz,
resolveram gravar uma música para divulgar na Internet. Cada
amigo vai tocar um dos seguintes instrumentos: Bateria, Flauta,
Guitarra, Piano e Viola. Algumas restrições devem ser obedecidas
para definir qual instrumento cada amigo vai tocar:
Ana só toca Flauta ou Viola.
Diva toca somente Guitarra ou Flauta.
Eva não toca Guitarra.
Luiz toca qualquer instrumento, mas se Chico tocar Bateria, Luiz
vai tocar Flauta.
Se Chico tocar Guitarra, então qual das alternativas abaixo são
instrumentos que Luiz pode escolher para tocar?
(a) Bateria e Piano
(b) Flauta e Viola
(c) Somente Viola
(d) Somente Flauta
(e) Bateria, Flauta, Piano e Viola
Vamos exercitar a lógica
7) Torre de Hanói é 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.