O documento discute introdução à algoritmia, definindo o que é um programa e o ato de programar. Explica os passos para programar, incluindo definir o problema, escolher uma estratégia, codificar instruções lógicas e testar. Dois problemas de exemplo são apresentados e resolvidos através de algoritmos e programas.
2. O que é um programa?
• Um programa é um conjunto de instruções que:
• tem como objetivo a resolução de um ou vários problemas;
• é normalmente escrito com o apoio de uma linguagem de programação;
• é interpretado e executado por uma máquina/computador.
3. O que é programar?
• É o ato de ordenar um conjunto de instruções pré-definidas de forma
lógica, com o objetivo de resolver um problema.
• O que é a lógica ?
• “É a ciência que estuda as leis e critérios de validade que regem o
pensamento e a demonstração, ou seja, ciência dos princípios formais
do raciocínio.” (Manzano, 2000: 3)
• Usar o “raciocínio” lógico implica compreender os processos de
geração de conhecimento, implica seguir uma sequência coerente e
regular de acontecimentos.
4. Passos a seguir no ato de programar
1. Definir o problema e identificar todas as suas especificidades;
2. Escolher a estratégia ou método para a resolução do problema;
3. Resolver o problema numa sequência lógica de instruções;
4. Codificar essas instruções numa linguagem de programação (JavaScript,
PHP, Actionscript, Pascal, Java, C, C++, Objective C,….);
5. Testar e corrigir erros;
6. Documentar o programa.
5. • Construir um algoritmo para trocar os objetos entre as duas mãos.
Problema 1
6. • Construir um algoritmo para trocar os objetos entre as duas mãos.
• Regra 1: Uma mão só pode segurar um objeto;
• Regra 2: Os objetos têm de estar sempre em contacto com uma mão.
Problema 1 - regras
8. 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
9. 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, as variáveis 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 influência 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.
• para que uma variável possa ser processada é obrigatório que esteja
armazenada na memória do computador.
10. INÍCIO
var a = “Azul”;
var b = “Laranja”;
var c = a;
a = b;
b = c;
FIM
Problema 1 - solução - programa
11. 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!
12. 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
13. Curiosidade
• um simulador online de execução de código em Python
• http://www.pythontutor.com/visualize.html
14. 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/)
15. Tabelas ASCII
0..255 = 256 valores
256 = 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
16. 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)
17. Problema 2
• Escrever um algoritmo que leia três números inteiros e apresente o maior dos
valores introduzidos.
18. 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?
19. INÍCIO
ler dados de entrada;
determinar o maior valor;
escrever resultado final;
FIM
Problema 2 - algoritmo
20. 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
21. INÍCIO
ler (num1);
ler (num2);
ler (num3);
maior = num1;
SE num2 > maior ENTÃO
maior = num2;
FIM SE
SE num3 > maior ENTÃO
maior = num3;
FIM SE
escrever (maior);
FIM
Problema 2 - algoritmo
22. INÍCIO
var num1 = lerValor();
var num2 = lerValor();
var num3 = lerValor();
var maior = num1;
SE num2 > maior ENTÃO
maior = num2;
FIM SE
SE num3 > maior ENTÃO
maior = num3;
FIM SE
escrever (maior);
FIM
Problema 2 - programa
RAM
vamos ver no quadro o funcionamento passo-a-passo!
23. 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;
• Identificar vantagens e desvantagens dessa possível solução.