LabMM3 - Aula teórica 03

20
Introdução à algoritmia Carlos Santos LabMM 3 - NTC - DeCA - UA Aula 03, 19-09-2011

description

Aula teórica sobre algoritmia onde foram apresentados alguns exemplos utilizados para demonstrar o funcionamento de um programa.

Transcript of LabMM3 - Aula teórica 03

Page 1: LabMM3 - Aula teórica 03

Introdução à algoritmia

Carlos SantosLabMM 3 - NTC - DeCA - UAAula 03, 19-09-2011

Page 2: LabMM3 - Aula teórica 03

• Construir um algoritmo para trocar os objetos entre as duas mãos.

Problema 1

Page 3: LabMM3 - Aula teórica 03

• Construir um algoritmo para trocar os objetos entre as duas mãos.

• Regra 1: Em qualquer momento, uma mão só pode ter um objeto;

• Regra 2: Qualquer objeto tem que estar sempre em contacto com uma mão.

Problema 1

Page 4: LabMM3 - Aula teórica 03

Problema 1 - solução

Page 5: LabMM3 - Aula teórica 03

INÍCIO

colocar bolaAzul na mãoA;

colocar bolaLaranja na mãoB;

trocar bola na mãoA para a mãoC;

trocar bola na mãoB para a mãoA;

trocar bola na mãoC para a mãoB;

libertar mãoC;

FIM

Problema 1 - solução - algoritmo

Page 6: LabMM3 - Aula teórica 03

Um programa...

• ... serve para processar informação!

• para a informação ser processada ela tem que ser armazenada no computador.

• numa linguagem de programação, são as variáveis que permitem armazenar informação.

• uma variável simples apenas pode conter um elemento de informação;

• o tipo de informação armazenada numa variável influencia as operações com a qual esta pode ser utilizada;

• o limite do número de variáveis é essencialmente determinado pela espaço de armazenamento disponível no computador.

Page 7: LabMM3 - Aula teórica 03

INÍCIO

var a = “Azul”;

var b = “Laranja”;

var c = a;

a = b;

b = c;

FIM

Problema 1 - solução - programa

Page 8: LabMM3 - Aula teórica 03

INÍCIO

var a = “Azul”;

var b = “Laranja”;

var c = a;

a = b;

b = c;

FIM

Problema 1 - programa - como funciona?

RAM

vamos ver no quadro o funcionamento passo-a-passo!

Page 9: LabMM3 - Aula teórica 03

INÍCIO

var a = “Azul”;

var b = “Laranja”;

var c = a;

a = b;

b = c;

FIM

Problema 1 - programa - como funciona?

resultado final em RAM de acordo com a simulação realizada na aula

Page 10: LabMM3 - Aula teórica 03

Variáveis: espaço em memória

• Qual o espaço mínimo ocupado por uma variável para armazenar o texto “Azul”?

• Qual o espaço ocupado para armazenar um carácter?

• a resposta está na tabela ASCII (http://www.asciitable.com/)

Page 11: LabMM3 - Aula teórica 03

Tabelas ASCII

0..255 = 256 valores256 = 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 = 28

2 corresponde à base binária: 0 ou 1 (1 bit)8 é o número de símbolos

8 bits = 1 Byte por elemento ASCII

Page 12: LabMM3 - Aula teórica 03

Variáveis: espaço em memória

• Qual o espaço mínimo ocupado por uma variável para armazenar o texto “Azul”?

• A z u l

• 65 122 119 108 (4 Bytes)

• 01000001 01111010 01110101 01101100 (32 bits)

Page 13: LabMM3 - Aula teórica 03

Problema 2

• Ler 3 números inteiros e apresentar o maior dos valores introduzidos.

Page 14: LabMM3 - Aula teórica 03

Problema 2 - questões?

• Ler 3 números inteiros e apresentar o maior dos valores introduzidos.

• quantas variáveis são necessárias?

• como determinar o maior de 3 números inteiros?

Page 15: LabMM3 - Aula teórica 03

INÍCIO

ler dados de entrada;

determinar o maior valor;

escrever resultado final;

FIM

Problema 2 - algoritmo

Page 16: LabMM3 - Aula teórica 03

INÍCIO

ler dados de entrada (num1, num2, num3);

determinar o maior valor (num1, num2, num3, maior);

escrever resultado final (maior);

FIM

Problema 2 - algoritmo

Page 17: LabMM3 - Aula teórica 03

INÍCIOler (num1);ler (num2);ler (num3);maior = num1;SE num2 > maior ENTÃO

maior = num2;FIM SESE num3 > maior ENTÃO

maior = num3;FIM SEescrever (maior);

FIM

Problema 2 - algoritmo

Page 18: LabMM3 - Aula teórica 03

INÍCIOvar num1 = lerValor();var num2 = lerValor();var num3 = lerValor();var maior = num1;SE num2 > maior ENTÃO

maior = num2;FIM SESE num3 > maior ENTÃO

maior = num3;FIM SEescrever (maior);

FIM

Problema 2 - programa

RAM

vamos ver no quadro o funcionamento passo-a-passo!

Page 19: LabMM3 - Aula teórica 03

Problema 2 - outras soluções?

• Será possível encontrar uma solução que só utilize duas variáveis simples?

• Se sim, apresentar solução no grupo do FB;

• Identificar vantagens e desvantagens dessa possível solução.

Page 20: LabMM3 - Aula teórica 03

Próxima aula

• Javascript!

• como escrever?

• como ler?

• como armazenar informação?

• ...