(a03) labmm3 - introdução à programação

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

Upload: carlos-santos

Post on 08-Jul-2015

681 views

Category:

Education


1 download

TRANSCRIPT

Page 1: (A03) LabMM3 - Introdução à programação

Introdução à algoritmia

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

Page 2: (A03) LabMM3 - Introdução à programação

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

Problema 1

Page 3: (A03) LabMM3 - Introdução à programação

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

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

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

Problema 1 - regras

Page 4: (A03) LabMM3 - Introdução à programação

Problema 1 - solução

Page 5: (A03) LabMM3 - Introdução à programação

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: (A03) LabMM3 - Introdução à programação

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 na qual esta pode ser utilizada;

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

• num computador é a RAM e os registos do processador que permitem armazenar informação para ser processada.

Page 7: (A03) LabMM3 - Introdução à programação

INÍCIO

var a = “Azul”;

var b = “Laranja”;

var c = a;

a = b;

b = c;

FIM

Problema 1 - solução - programa

Page 8: (A03) LabMM3 - Introdução à programação

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: (A03) LabMM3 - Introdução à programação

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

“Laranja”

“Azul”

“Azul”

a

b

c

Page 10: (A03) LabMM3 - Introdução à programação

Curiosidade

• um simulador online de execução de código em Python

• http://www.pythontutor.com/visualize.html

Page 11: (A03) LabMM3 - Introdução à programação

Variáveis: espaço em memória

• Qual o espaço 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 12: (A03) LabMM3 - Introdução à programação

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 13: (A03) LabMM3 - Introdução à programação

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 14: (A03) LabMM3 - Introdução à programação

Problema 2

• Escrever um algoritmo que leia três números inteiros e apresente o maior dos valores introduzidos.

Page 15: (A03) LabMM3 - Introdução à programação

Problema 2 - questões?

• Escrever um algoritmo que leia três números inteiros e apresente o maior dos valores introduzidos.

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

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

Page 16: (A03) LabMM3 - Introdução à programação

INÍCIO

ler dados de entrada;

determinar o maior valor;

escrever resultado final;

FIM

Problema 2 - algoritmo

Page 17: (A03) LabMM3 - Introdução à programação

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 18: (A03) LabMM3 - Introdução à programação

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 19: (A03) LabMM3 - Introdução à programação

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 20: (A03) LabMM3 - Introdução à programação

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 SAPO Campus;

• Instruções vão ser enviadas muito brevemente pelo moodle!

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

Page 21: (A03) LabMM3 - Introdução à programação

Próxima aula

• Javascript!

• para que serve?

• como ler?

• como armazenar informação?

• como escrever?

• ...