41
CCO 016 / COM 110 Fundamentos de Fundamentos de Programação Programação Universidade Federal de Itajubá Prof. Roberto Affonso da Costa Junior

CCO 016 / COM 110 - Prof. Roberto Affonso da Costa Junior ...rcosta62br.unifei.edu.br/com110/aula_03.pdf · significado para o computador? –O que acontece quando se acessa a

  • Upload
    hahanh

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

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 = …………