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

Post on 08-Jul-2015

681 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introdução à algoritmia

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

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

Problema 1

• 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

Problema 1 - soluçã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

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.

INÍCIO

var a = “Azul”;

var b = “Laranja”;

var c = a;

a = b;

b = c;

FIM

Problema 1 - solução - programa

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!

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

Curiosidade

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

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

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/)

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

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)

Problema 2

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

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?

INÍCIO

ler dados de entrada;

determinar o maior valor;

escrever resultado final;

FIM

Problema 2 - algoritmo

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

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

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!

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.

Próxima aula

• Javascript!

• para que serve?

• como ler?

• como armazenar informação?

• como escrever?

• ...

top related