cco 016 / com 110 - rcosta62br.unifei.edu.br · hastes e discos. desejamos mover todos discos para...
TRANSCRIPT
CCO 016 / COM 110Fundamentos de Fundamentos de
ProgramaçãoProgramação
Universidade Federal de Itajubá
Prof. Roberto Affonso da Costa Junior
AULA 03AULA 03
– Algoritmo– Tipo de Dados– Variáveis
AlgoritmoAlgoritmo
➢Definimos Algoritmo como a sequência de passos que visam atingir um objetivo bem definido.
➢Os algoritmos são utilizados no dia-a-dia para a solução dos mais diversos problemas.
AlgoritmoAlgoritmo
➢Alguns exemplos genéricos de algoritmos usados no nosso cotidiano são:
✔ uma coreografia, ✔ um manual de instruções, ✔ uma receita de bolo, ✔ a solução de uma equação do 2º grau, ✔ uma pesquisa na lista telefônica, ✔ etc.
AlgoritmoAlgoritmo➢O que todas essas coisas tem em comum?
Elas podem ser vistas como uma serie finita e bem
definida de passos ou regras que, quando realizadas,
atingem um objetivo previamente definido.
➢Assim, outra definição para algoritmos poderia ser:
Algoritmo é a descrição de um conjunto de ações que, obedecidas, resultam numa sucessão finita de passos,
atingindo um objetivo esperado.
AlgoritmoAlgoritmo➢ Dessa forma, vemos que, o que importa no algoritmo é o efeito das ações para a obtenção do resultado esperado.
São propriedades de algoritmos:
– ações simples e bem definidas (não ambíguas); – sequência ordenada deações; – sequência finita de passos.
LEMBRE-SE: Algoritmos não se aprendem:Algoritmos não se aprendem: – Copiando algoritmos – Copiando algoritmos – Estudando algoritmos – Estudando algoritmosAlgoritmos Algoritmos sósó se aprendem: se aprendem: – Construindo algoritmos – Construindo algoritmos – Testando algoritmos – Testando algoritmos
Algoritmos não se aprendem:Algoritmos não se aprendem: – Copiando algoritmos – Copiando algoritmos – Estudando algoritmos – Estudando algoritmosAlgoritmos Algoritmos sósó se aprendem: se aprendem: – Construindo algoritmos – Construindo algoritmos – Testando algoritmos – Testando algoritmos
AlgoritmoAlgoritmo
1.1 - Exemplo: Construindo um Algoritmo
Considere o seguinte problema:
Temos três hastes. Uma das hastes serve de suporte para três discos de tamanhos diferentes. Os discos menores são sempre colocados sobre os discos maiores. A figura a seguir mostra uma possível situação inicial das hastes e discos.
Desejamos mover todos discos para outra haste, porém só podemos movimentar um disco de cada vez e um disco maior nunca pode ser colocado sobre um disco de menor tamanho.
8
AlgoritmoAlgoritmo
9
Solução: Em forma narrativa Nomeamos as hastes como 1, 2 e 3 e os discos como p, m e g. Considera-se que inicialmente os discos estão na haste 1. Os passos são:
1. move o disco p para a haste 3. 2. move o disco m para a haste 2. 3. move o disco p para a haste 2. 4. move o disco g para a haste 3. 5. move o disco p para a haste 1. 6. move o disco m para a haste 3. 7. move o disco p para a haste 3.
Podemos também representar a solução em forma gráfica, desenhando as hastes e a posição dos discos a cada momento (ou passo).
AlgoritmoAlgoritmo
10
Como podemos ver, com 3 discos precisamos de, no mínimo, 7 passos para solucionar o problema. Quantos passos seriam necessários para se mover 4 discos? E para n discos?
Curiosidade: Este problema foi criado em 1883 pelo matemáticofrancês Edouard Lucas (1842-1891), que também criou uma lenda curiosa para enunciar o problema.
Deixo para vocês procurarem na Internet a lenda das Torres de Hanói.
AlgoritmoAlgoritmo
11
➢ Temos três recipientes de tamanhos distintos: o primeiro com capacidade para 8 litros, outro para 5 litros e o terceiro com capacidade para 3 litros. O recipiente de 8 litros está totalmente cheio. Deseja-se colocar 4 litros em dois recipientes. Considere que os recipientes não sejam graduados.
ExercícioExercício
12
A figura a seguir mostra a localização dos apartamentos de um edifício de três pavimentos que tem apenas alguns deles ocupados:
Sabe-se que:- Maria não tem vizinhos no seu andar, e seu apartamento
localiza-se o mais a leste possível;- Taís mora no mesmo andar de Renato, e dois apartamentos a
separam do dele;- Renato mora em um apartamento no segundo andar
exatamente abaixo do de Maria;- Paulo e Guilherme moram no andar mais baixo, não são
vizinhos e não moram abaixo de um apartamento ocupado.- No segundo andar estão ocupados apenas dois apartamentos.
ExercícioExercício
13
ExercícioExercício
14
● Se Guilherme mora a sudoeste de Tais, o apartamento de Paulo pode ser:
a) 1 ou 3
b) 1 ou 4
c) 3 ou 4
d) 3 ou 5
e) 4 ou 5
ExercícioExercício
15
➢Dado um sistema cartesiano (x,y). Como seria o algoritmo para calcular a distância entre o ponto A e B?
ExercícioExercício
A
B
TIPO DE DADOTIPO DE DADO
• Nos algoritmos da aula anterior, vimos que necessitamos de armazenar dados. No computador essa tarefa é definida como, tipos de variáveis ou dados é uma combinação de valores e de operações que uma variável pode executar.
TIPO DE DADOTIPO DE DADO• Tipo de dado representa como a
informação é armazenada na memória do computador.
• Isto significa:– quanto da memória é utilizada pela
informação;– Se a informação é ou não numérica;– Se numérica, qual é a sua menor e maior
representatividade numérica;
• Por exemplo:
– O valor 390384 pode ser armazenado no computador?
– Os valores 3.00 e 3 têm o mesmo significado para o computador?
– O que acontece quando se acessa a memória sem antes carregá-la com alguma informação?
– Toda a memória do computador está acessível pelo usuário?
TIPO INTEIROTIPO INTEIRO
• Define um valor que representa uma informação do tipo numérica inteira (sem ponto decimal )
• Exemplos: 123
-98
20938
TIPO REALTIPO REAL
• Define um valor que representa uma informação do tipo numérica não inteira (com ponto decimal )
• Exemplos:
45.678
0.56
-120.0
TIPO CARACTERTIPO CARACTER
• Define um valor que representa uma informação do tipo não numérica constituída de apenas um único caractere.
• Exemplos: C
V
u
t
TIPO CADEIATIPO CADEIA
• Define um valor que representa uma informação do tipo não numérica constituída de vários caracteres.
• Exemplos:
casa
Unifei
Estado de Minas Gerais
VariáveisVariáveis
• Definição
É o nome do local físico da memória onde a informação é armazenada no computador.
• Denominação
A denominação ou nome de uma variável é dada pelo programador e deve sempre lembrar a função da informação que está sendo armazenada.
VariáveisVariáveis
• Regras de nomes
✔ Todo nome deve ser composto apenas por letras, números e sublinhado ( ‘_’ );
✔ Deve começar com uma letra;✔ Não pode ser igual a nenhuma palavra reservada,
ou seja, palavras que já possuam um significado próprio para a linguagem como por exemplo, true, var ou if.
VariáveisVariáveis
• Exemplos
idade → corresponde ao nome de uma variável cujo objetivo é armazenar a idade de uma pessoa;
nome_Aluno → corresponde ao nome de uma variável cujo objetivo é armazenar o nome de um aluno.
VariáveisVariáveis
• Definição dos Tipos
Ao se definir uma variável, deve-se definir também o tipo da informação que esta variável vai armazenar.
Recomenda-se que esta tarefa seja realizada no inicio do programa para que haja melhor documentação do programa;
VariáveisVariáveis
Exemplo 1Exemplo 1
• Dados 3 números quaisquer, obter o média aritmética destes números
– Definir as variáveis necessárias a este programa
SoluçãoSolução1. Inteiro A, B, C
2. Real SOMA, MEDIA
3. obter A
4. obter B
5. obter C
6. guardar em SOMA a soma de A com B com C
7. guardar em MEDIA a divisão entre SOMA e 3
8. mostrar os valores armazenados em A, B, C
9. mostrar MEDIA
Exemplo 2Exemplo 2
Dados os 4 dígitos que compõem um número escrito em octal, fazer o programa que transforma este número octal no seu respectivo valor decimal.
– Definir as variáveis necessárias a este programa
1. inteiro: digito_1, digito_2, digito_3, digito_4, parcela_1, parcela_2, parcela_3, parcela_4, decimal
2. Obter digito_13. Obter digito_24. Obter digito_35. Obter digito_4
6. Guardar em parcela_1 o resultado da operação 80 multiplicado pelo digito_4
7. Guardar em parcela_2 o resultado da operação 81 multiplicado por digito_3
8. Guardar em parcela_3 o resultado da operação 82 multiplicado por digito_2
9. Guardar em parcela_4 o resultado da operação 83 multiplicado por digito_1
10. Guardar em decimal a soma de parcela_1 com parcela_2 com parcela_3 e com parcela_4
11. Mostrar os valores armazenados em digito_1, digito_2, digito_3, digito_4
12. Mostrar o valor armazenado em decimal
Atribuição de dadosAtribuição de dados
• Atribuir significa dar um valor significativo a uma variável
• Em linguagem algorítmica tem-se:
variável ← valor
• Isto significa que um dado valor está sendo atribuído, ou seja está sendo armazenado numa variável
• Valor :– Corresponde ao conteúdo da informação que
está sendo armazenado na memória do compu-tador.
– Pode ser numérico ou não numérico;
• Variável:– Corresponde a identificação do local da memória
do computador onde a informação está sendo armazenada.
Exemplo 3Exemplo 3
inteiro soma_valor, media_idades
soma_valor ← 45
media_idades ← 92
Exemplo 4Exemplo 4
real valor_a, vx, numero_1
vx ← 89.34
valor_a ← -123.450023
numero_1 ← 0.00127
Exemplo 5Exemplo 5
caracter letra_entrada, primeiro_caracter
letra_entrada ← ‘r’
primeiro_caracter ← ‘T’
Exemplo 6Exemplo 6
cadeia nome_pessoa, registro
registro ← “resposta sem sentido”
nome_pessoa ← “Antonio Goncalves”
TreinamentoTreinamento
1. Entre com os valores 10 e 100. Armazene-os em duas variáveis A e B do tipo inteiro. Após isso faça as seguintes operações:
a) Some os dois valores e guarde na variável C;
b) Subtraia o valor de A do valor de B e guarde na variável D;
c) Multiplique os dois valores e guarde na variável E;
d) Divida o valor de A do valor de B e guarde na variável F;
e) Faça a variável G receber o valor de A. Faça a variável A receber o valor de B. Faça a variável B receber o valor de G.
TreinamentoTreinamento
Quais os resultados obtidos nas variáveis:
A = …………
B = …………
C = …………
D = ………...
E = …………
F = …………
G = …………