Você está na página 1de 49

CCO 016 – Fundamentos de

Programação

Prof. Roberto Affonso da Costa Junior

Universidade Federal de Itajubá


Aula 03

Algoritmo

Tipo de Dados

Variáveis
Algoritmo
● 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.
Algoritmo
● 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.
Coreografia

#Slide 4
Manual de Instrução
Receita de Bolo
Equação do 2 Grau
o
Pesquisa na Lista Telefonica
Algoritmo
● 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.

Algoritmo é a descrição de um conjunto de ações que,


obedecidas, resultam numa sucessão finita de passos,
atingindo um objetivo esperado.
Algoritmo
● São propriedades de um algoritmo:

– ações simples e bem definidas (não


ambíguas);
– sequência ordenada de ações;
– sequência finita de passos.
Algoritmo
● LEMBRE-SE:

Algoritmos
Algoritmosnão
nãoseseaprendem:
aprendem:
––Copiando
Copiando
––Estudando
Estudando
Algoritmos
Algoritmossósóse
seaprendem:
aprendem:
––Construindo
Construindo
––Testando
Testando
Problema da Torre de Hanói
● 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.
Problema da Torre de Hanói
Problema da Torre de Hanói

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).
Problema da Torre de Hanói
● 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ático
francê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.
Exercício
● 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ício
● 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;
Exercício
– 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ício
Exercício
● Se Guilherme mora a sudoeste de Tais, o apartamento
de Paulo pode ser:

a) 1 ou 3
b) 1 ou 4 Escreva a solução
c) 3 ou 4 Na forma de um
d) 3 ou 5 algoritmo
e) 4 ou 5
Exercício
● Dado um sistema cartesiano (x,y). Como seria o
algoritmo para calcular a distância entre o ponto A e B?
Variável
● Definição

– É o nome do local físico da memória onde a


informação é armazenada no computador.

● A variável possui tipo do dado e nomenclatura


Tipo de Dados
● Nos algoritmos, vimos que necessitamos de armazenar
dados. No computador essa tarefa é definida como,
tipos de variáveis, ou tipos de dados, é uma combinação
de valores e de operações que uma variável pode
executar.
Tipo de Dados
● 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;
Tipo de Dados
● 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 Inteiro
● Define um valor que representa uma informação do tipo
numérica inteira (sem ponto decimal )

● Exemplos:
123
-98
20938
Tipo 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 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
0
&
Tipo 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 São Paulo
Nomenclatura
● 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.
Nomenclatura
● 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á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áveis
● Definição da nomenclatura

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.
Declaração
● A declaração da variável é feita da seguinte forma:
tipo nomenclatura
● O tipo é único sempre e pode ter mais de uma
nomenclatura, para isso separa-se por virgula.
● EXEMPLO:

inteiro idade
cadeia nome_aluno
real polegada, milimetro, raio
caracter ch, letra, vogal
Exemplo
● Problema:

● 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.
Exemplo
● As variáveis desse problema são:
● Dígitos do número:

digito_1, digito_2, digito_3, digito_4


● Para transformar em decimal precisa multiplicar o

digito pelo número 8 elevado a potencia da posição


começando em 0. Para isso, vamos usar as variáveis
auxiliares:
parcela_1, parcela_2, parcela_3, parcela_4
● Para calcular o número decimal, basta somar as

variáveis anteriores.
decimal
Algortimo
(solução do exemplo)
1. inteiro digito_1, digito_2, digito_3, digito_4,
parcela_1, parcela_2, parcela_3, parcela_4, decimal

2. Obter digito_1
3. Obter digito_2
4. Obter digito_3
5. Obter digito_4

6. Guardar em parcela_1 o resultado da operação 80


multiplicado pelo digito_4 (adotando o digito_4 como
sendo a unidade)
Algortimo
(solução do exemplo)
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_4al
Algortimo
(solução do exemplo)
11. Mostrar os valores armazenados em digito_1,
digito_2, digito_3, digito_4

12. Mostrar o valor armazenado em decimal

Repare que o algoritmo


começou
sempre com um verbo.
Atribuição de Dados
● Atribuir significa dar um valor significativo a uma
variável.

● Em linguagem algorítmica seria:

variavel ← valor
● Isto significa que um dado valor está sendo atribuído,
ou seja está sendo armazenado numa variável
Atribuição de Dados
● Valor :
Corresponde ao conteúdo da informação que está sendo
armazenado na memória do computador. Pode ser
numérico ou não numérico;

● Variavel:
Corresponde a identificação do local da memória do
computador onde a informação está sendo armazenada.
Atribuição de Dados
● Valor :
Corresponde ao conteúdo da informação que está sendo
armazenado na memória do computador. Pode ser
numérico ou não numérico;

● Variavel:
Corresponde a identificação do local da memória do
computador onde a informação está sendo armazenada.
Atribuição de variável inteira
inteiro soma_valor, media_idades

soma_valor ← 45

media_idades ← 92
Atribuição de variável real
real valor_a, vx, numero_1

vx ← 89.34

valor_a ← -123.450023

numero_1 ← 0.00127
Atribuição de variável caracter
caracter letra_entrada, primeiro_caracter

letra_entrada ← ‘r’

primeiro_caracter ← ‘T’
Atribuição de variável cadeia
cadeia nome_pessoa, registro

registro ← “resposta sem sentido”

nome_pessoa ← “Antonio Goncalves”


Treinamento
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 B pelo valor de A e guarde na
variável D;
c) Multiplique os dois valores e guarde na variável E;
d) Divida o valor de B pelo valor de A e guarde na
variável F;
e) Guarde na variável G o valor de A. Guarde na
variável A o valor de B. Guarde a variável B o valor
de G.
Treinamento
● Quais os resultados obtidos nas variáveis:

A = ………… E = …………

B = ………… F = …………
C = …………
G = …………
D = ………...

Você também pode gostar