Академический Документы
Профессиональный Документы
Культура Документы
2
Algoritmo - Conceito
“É uma sequência de passos que visa atingir um
objetivo bem definido” (FORBELLONE, 1999)
Exemplo de Algoritmo
Como você descreveria os passos para
preparar um macarrão instantâneo?
4
Algoritmo: Definição
Algoritmo do macarrão instantâneo:
1. ir até a cozinha.
2. procurar pelas embalagens de macarrão.
3. repetir, para cada embalagem:
a. ferver 2 copos de água em uma panela.
b. abrir a embalagem.
c. colocar o macarrão na panela e cozinhar por 3
minutos.
d. mexer para soltar os fios do macarrão.
e. retirar do fogo, deixar escorrer a água e juntar em
uma travessa.
4. acrescentar tempero pronto do macarrão
5. servir.
5
Algoritmo: Definição
Objetos de entrada:
● macarrão instantâneo.
● tempero pronto
● água
Objetos auxiliares:
● panela.
● travessa.
● fogão.
● cozinheiro.
Objeto de saída:
● macarrão cozido.
Objeto de controle:
● receita (algoritmo).
6
Algoritmo: Definição
Passo 1 - Formar uma cruz
no topo
Passo 2 - Organizar as
peças do canto superior
Passo 3 - Organizar as
peças no meio, formando 2ª
camada
Passo 4 - ...
SAÍDA
ENTRADA
7
Algoritmo: Definição
Um pouco de história
Os historiadores da palavra algoritmo encontraram
a origem no sobrenome, Al-Khwarizmi, do
matemático persa do século IX Mohamed ben
Musa, cujas obras foram traduzidas no ocidente
cristão no século XII, tendo uma delas recebido o
nome Algorithmi de numero indorum, sobre os
algoritmos usando o sistema de numeração
decimal (indiano).
Fonte: pt.wikipedia.org/wiki/Algoritmo.
8
Algoritmo: Definição
Um exemplo com números...
Problema:
Encontrar máximo divisor comum ou MDC entre
dois números inteiros positivos. Lembre-se de
que MDC é o maior número inteiro que é fator
de ambos os números. Assim, por exemplo,
como os divisores comuns entre 12 e 18 são 1,2,3
e 6, o MDC deles é igual à 6.
Ideia:
?????
9
Algoritmo: Definição
Um exemplo com números...
Ideia
Utilizar o algoritmo de Euclides, como nos
tempos do colégio :)
10
Algoritmo: Definição
Um exemplo com números…
Objetos de entrada:
● dois números inteiros positivos M e N
Objetos auxiliares:
● lápis, papel, borracha e você
Objeto de saída:
● um números inteiro positivo Z com o resultado do
MDC de M e N.
11
Algoritmo: Definição
Um exemplo com números...
Algoritmo de Euclides
E ai, funciona?
Como testamos isso?
12
Simulando o código
Simulação
Simulando código
● Bem simples: Existem apenas dois passos.
○ “Reservar” os espaços para os nossos
objetos
○ “Executar” em sequência cada um dos
passos do algoritmo.
14
Simulando
Algoritmo de Euclides
1. Defina M igual à 10 e N igual à 6.
2. Se M é igual N, então MDC, Z, é M (ou N); pare!
3. Caso contrário:
a. se M é maior que N, então substitua M por (M-N) e
repita a partir do passo 2
b. se N é maior que M, então substitua N por (N-M) e
repita a partir do passo 2
Reservando espaço para os objetos
Após executar a linha 1.
Nome M N Z
Valor 10 6 ?
15
Simulando
Algoritmo de Euclides
1. Defina M igual à 10 e N igual à 6.
2. Se M é igual N, então MDC, Z, é M (ou N); pare!
3. Caso contrário:
a. se M é maior que N, então substitua M por (M-N) e
repita a partir do passo 2
b. se N é maior que M, então substitua N por (N-M) e
repita a partir do passo 2
Execução
Após executar a linha 3.a.
Nome M N Z
Valor 4 6 ?
16
Simulando
Algoritmo de Euclides
1. Defina M igual à 10 e N igual à 6.
2. Se M é igual N, então MDC, Z, é M (ou N); pare!
3. Caso contrário:
a. se M é maior que N, então substitua M por (M-N) e
repita a partir do passo 2
b. se N é maior que M, então substitua N por (N-M) e
repita a partir do passo 2
Execução
Após executar a linha 3.b.
Nome M N Z
Valor 4 2 ?
17
Simulando
Algoritmo de Euclides
1. Defina M igual à 10 e N igual à 6.
2. Se M é igual N, então MDC, Z, é M (ou N); pare!
3. Caso contrário:
a. se M é maior que N, então substitua M por (M-N) e
repita a partir do passo 2
b. se N é maior que M, então substitua N por (N-M) e
repita a partir do passo 2
Execução
Após executar a linha 3.a.
Nome M N Z
Valor 2 2 ?
18
Simulando
Algoritmo de Euclides
1. Defina M igual à 10 e N igual à 6.
2. Se M é igual N, então MDC, Z, é M (ou N); pare!
3. Caso contrário:
a. se M é maior que N, então substitua M por (M-N) e
repita a partir do passo 2
b. se N é maior que M, então substitua N por (N-M) e
repita a partir do passo 2
Execução
Após executar a linha 2.
Nome M N Z
Valor 2 2 2
19
Simulando
Algoritmo de Euclides
1. Defina M igual à 10 e N igual à 6.
2. Se M é igual N, então MDC, Z, é M (ou N); pare!
3. Caso contrário:
a. se M é maior que N, então substitua M por (M-N) e
repita a partir do passo 2
b. se N é maior que M, então substitua N por (N-M) e
repita a partir do passo 2
Execução
Opa! Terminamos...
Nome M N Z
Valor 2 2 2
20
Simulação Manual
Simulando código
Simule o algoritmo para M igual à 36 e N igual à 21.
21
Algoritmos: caracterização
Recapitulando...
● Sequência finita de passos, precisos e bem
definidos, para a resolução de um problema.
22
Algoritmos: caracterização
Recapitulando...
● Sequência finita de passos, precisos e bem
definidos, para a resolução de um problema.
Exemplo
O algoritmo para o problema do MDC sempre
termina.
25
Simulando
Algoritmo de Euclides
1. Se M é igual N, então MDC, Z, é M (ou N); pare!
2. Caso contrário:
a. se M é maior que N, então substitua M por (M-N) e repita
a partir do passo 2
b. se N é maior que M, então substitua N por (N-M) e repita
a partir do passo 2
Exemplo
Quando M e N são positivos, temos que:
1. a cada execução M ou N sempre diminuem.
2. M e N sempre são positivos, pois
a. M - N é maior que 1, se M é maior que N;
b. N - M é maior que 1, se N é maior que M;
3. Não podemos passar de M igual à N igual à 1.
Logo, o algoritmo termina!! 26
Resolvendo problemas
Exercício
Considere a seguinte situação hipotética. Há três
pequenas caixas lacradas em uma sala. Você sabe
que elas estão cheias de ouro em pó, mas não
conhece a quantidade exata de cada uma delas.
● Como você faria para ordenar as tais caixas de
acordo com sua quantidade de ouro utilizando
uma balança de pratos?
● Quantas vezes a balança foi utilizada?
27
De algoritmos para programas
● Como transformar um algoritmo em linguagem
que o computador entenda?
28
O que é um computador?
● Computador: o que computa, calculador,
calculista. (dicionário Houaiss).
29
Programando computadores
● Como usuários, interagimos com os programas
de aplicação.
30
Linguagens de Programação
31
Linguagens de Programação
Paradigma de Programação
É a forma utilizada para resolver um problema computacional.
Linguagens podem suportar mais de um paradigma (linguagens
multiparadigma), este a ser escolhido conforme o problema a ser
resolvido.
34
Qual a melhor linguagem?
Não há! Entenda que não existe uma linguagem melhor
que outra, cada uma tem suas características que a
tornam mais adequada para cada projeto.
35
Recapitulando...
Nos concentramos em alguns aspectos relacionados
com ‘conteúdo’ e aprendemos
36
Forma Vs Conteúdo
37
Variáveis
Definição
Variáveis são locais onde armazenamos valores. Toda
variável é caracterizada por um nome, que a identifica
em um programa e por um tipo, que determina o que
pode ser armazenado naquela variável.
38
Declarando uma variável
Declara-se da seguinte forma: <tipo_variável>
<nome_variável> ;
Exemplos corretos
● int soma;
● float preco_abacaxi;
● char resposta;
Exemplos incorretos
● soma int;
● float preco_abacaxi
39
Variáveis inteiras
Variáveis inteiras são utilizadas para armazenar valores
inteiros, em formato binário.
● Exemplo: 13 10 = 1101 2
Exemplos corretos
● int: Inteiro cujo comprimento depende do computador.
É o inteiro mais utilizado. Em computadores Pentium,
ocupa 32 bits e pode armazenar valores de
-2.147.483.648 a 2.147.483.647.
42
Variáveis de tipo Ponto Flutuante
Armazenam valores reais, da seguinte forma de um
produto e uma potência:
(−1) sinal · mantissa · 2 expoente . (Norma IEEE754)
● Exemplo:
Binário: 0,5 = (−1) 0 · 1 · 2 −1
Decimal:
44
Regras para nomes de variáveis em C
46
Constantes
É um valor que não se altera durante a execução do
programa.
Exemplos
int a;
float c;
a = 5;
c = 3,14159265358979323846;
48
Comando de atribuição
● O comando de atribuição pode conter expressões do lado
direito:
variável = expressão ;
Exemplos
int a;
float c;
a = 5+5+10;
c = 3,14 + 8 - 9;
49
Comando de atribuição
No exemplo abaixo, a variável soma recebe o valor
calculado da expressão a+b
50
Atribuição
● O operador de atribuição é o sinal de igual (=)
À direita, deve
À esquerda do haver uma
operador de expressão cujo
atribuição deve valor será
existir somente o = calculado e
nome de uma armazenado na
variável. variável
51
Exemplos de atribuição
Sempre que uma variável for usada, ela deve ter sido
declarada antes, ou declarada e atribuído valor na mesma
linha.
int a, b;
float f, g;
char h = ‘g’;
a = 10;
b = -15;
f = 10.0;
a = b;
f = a;
a = (b+f+a);
52
Estrutura básica de um Programa em C
Declaração de variáveis
int main(){
Declaração de variáveis
Comandos
…
Comandos
return 0;
}
53
Estrutura básica de um Programa em C
54
Informações Extras: Constantes Inteiras
55
Informações Extras: Constantes do tipo
ponto flutuante
56
Informações Extras: Caracter
● Caracteres são, na verdade, variáveis inteiras que
armazenam umnúmero associado ao símbolo. A
convenção normalmente adota é a tabela ASCII (American
Standard Code for Information Interchang), mas existem
outras (EBCDIC, Unicode etc.).
59
Exercício 2.1
Complete e/ou corrija o código abaixo.
60
Exercício 2.2
Escreva um programa que calcula o resultado das
frações:
● 2/3
● 5/2
61
Exercício 2.3
Simule o código abaixo e encontre os problemas.
62
Exercício 2.4
Implemente o algoritmo de Euclides:
Algoritmo de Euclides
63