INF 1005 – Programação I  
Aula 02 – Algoritmos e Ciclo de  
Desenvolvimento  
Edirlei Soares de Lima  
<elima@inf.puc-rio.br>  
Modelo de um Computador  
Linguagem de Máquina  
•
•
Um processador executa instruções de máquina  
Instruções de máquina são muito simples, mas são executadas  
em altíssima velocidade  
•
Um conjunto típico de instruções inclui operações aritméticas,  
lógicas e de desvio  
•
Exemplo de seqüência típica de instruções:  
1
. Carregue o conteúdo da posição de memória 40 no  
registrador 1 (R1);  
2. Carregue o valor 100 no registrador 2 (R2);  
3
. Se o conteúdo de R1 for maior do que o conteúdo de R2  
prossiga com a instrução armazenada na posição de  
memória 240;  
Linguagem de Máquina  
•
•
Instruções de máquina são representadas por  
seqüências de dígitos binários  
Exemplo:  
Adicionar R1 e R2 e armazenar  
o resultado em R6  
Desviar para a instrução  
armazenada no endereço de  
memória 1024  
Linguagens de Alto-Nível  
•
•
Programar em linguagem máquina é uma tarefa  
entediante e propensa a erros  
A partir de meados dos anos 50 várias linguagens de  
alto nível foram criadas  
•
•
Possuem nível de abstração relativamente elevados  
Elas são mais próximas das linguagens utilizadas pelos  
seres humanos  
Linguagens de Alto-Nível  
•
Exemplos de linguagens de alto-nivel:  
–
–
–
–
–
–
FORTRAN (1957)  
COBOL (1960)  
PASCAL (1970)  
C (1972)  
C++ (1983)  
JAVA (1995)  
Exemplo de Programa em C  
int main(void)  
{
int a = 3, b = 7, c;  
c = a + b;  
if (c%2 == 0)  
printf("o resultado e par\n");  
else  
printf("o resultado e impar\n");  
return 0;  
}
Compilação  
•
•
•
•
Programas escritos em linguagens de alto nível não são  
executados diretamente pelo processador  
Antes de executá-lo é preciso traduzir os comandos de  
alto-nível para instruções de máquina  
Esta tarefa (compilação) é realizada por um programa  
chamado de compilador.  
Linguagem Compilada X Linguagem Interpretada  
Ciclo de Desenvolvimento  
Programa  
de computador  
(solução)  
Resultados  
Problema  
Ciclo de Desenvolvimento  
•
•
Um programa escrito em C deve respeitar a sintaxe  
da linguagem  
Um computador não é capaz de executar uma  
sequência de instruções escritas em C  
–
ou em qualquer outra linguagem de alto nível  
•
Para executar um programa em C, antes é necessário  
converter o programa em C para um programa em  
linguagem de máquina  
–
processo chamado de COMPILAÇÃO  
–
processo realizado por um COMPILADOR  
Ciclo de Desenvolvimento  
•
•
Escolha da linguagem de programação depende  
da aplicação que será desenvolvida  
Na disciplina INF1005, a escolha da linguagem C  
está relacionada a:  
–
–
–
–
–
eficiência  
facilidade de uso  
base para muitas outras linguagens  
mais usada atualmente  
base para Programação II  
Ciclo de Desenvolvimento  
Definição de Problemas  
•
•
Problema: Andando pelo campus da PUC,  
alguém lhe pergunta:  
“
Como faço para ir ao centro da cidade?”  
O que você responde?  
Definição de Problemas  
•
•
Faltam detalhes:  
–
meio de transporte  
• envolve tempo e dinheiro  
–
–
endereço específico  
quando?  
•
envolve trajeto devido a engarrafamento  
–
número de pessoas  
Fica difícil responder sem saber as reais  
necessidades de quem perguntou  
Solução de Problemas  
•
•
Objetivo: encontrar uma sequência de passos que permitam que o  
problema possa ser resolvido de maneira automática e repetitiva  
Descrição da solução (como fazer)  
–
–
–
clara  
não ambígua  
sequencial  
•
•
Atores envolvidos  
–
–
–
criador da solução  
executor da solução  
usuário da solução  
Linguagem utilizada na solução deve ser compreendida pelo executor da  
solução  
Solução de Problemas  
•
•
•
•
•
•
•
Definir o objetivo do problema  
Entender a proposta do problema  
Levantar dados sobre a situação que ele descreve  
Gerar alternativas para a solução (idéias)  
Avaliar as alternativas e chegar à solução  
Refletir acerca dessa solução  
Fazer com que ela seja entendida e aceita  
Algoritmos  
•
•
•
•
Lógica de Programação é a técnica de criar sequências  
lógicas de ações para atingir determinados objetivos.  
Sequências Lógicas são instruções executadas para  
atingir um objetivo ou solução de um problema.  
Instruções são uma forma de indicar ao computador  
uma ação elementar a executar.  
Um Algoritmo é formalmente uma sequência finita de  
instruções que levam a execução de uma tarefa.  
Algoritmos  
•
Até mesmo tarefas simples, podem ser descritas por  
sequências lógicas:  
“
Chupar uma bala”  
“Somar dois números”  
1) Escreva o primeiro número no  
retângulo A.  
1
2
3
4
) Pegar a bala;  
) Retirar o papel;  
) Chupar a bala;  
) Jogar o papel no lixo;  
2
3
) Escreva o segundo número no  
retângulo B.  
) Some o número do retângulo A  
com número do retângulo B e  
coloque o resultado no retângulo C.  
Escrevendo Algoritmos  
•
Os algoritmos podem ser escritos diretamente em uma  
linguagem de programação ou simplesmente descritos  
em pseudocódigo.  
•
•
Pseudocódigo é uma forma genérica de escrever um  
algoritmo.  
Linguagens de programação são formas padronizadas  
de comunicar instruções para o computador. São  
conjuntos de regras sintáticas e semânticas usadas para  
definir um programa de computador.  
Escrevendo Algoritmos  
Processo Geral de um Algoritmo  
Entrada  
Processamento  
Saída  
•
•
Entrada: O algoritmo recebe os dados de entrada.  
Processamento: Os procedimentos para se chegar ao  
resultado final são executados.  
•
Saída: O resultado final é mostrado.  
Escrevendo Algoritmos  
•
Exemplo: “Ler duas notas e calcular a média”  
Pseudocódigo:  
Algoritmo descritivo:  
variáveis  
nota1, nota2, media : real;  
Leia a primeira nota e armazene  
ela em nota1;  
Leia a segunda nota e armazene  
ela em nota2;  
Some a nota1 com a nota2 e divida  
o resultado por 2;  
início  
escreva(“Digite a nota 1”);  
leia(nota1);  
escreva(“Digite a nota 2”);  
leia(nota2);  
Mostre o resultado;  
media = (nota1 + nota2)/2;  
escreva(media);  
fim  
Exercício  
1
) Crie um programa que faça a multiplicação  
dois números digitados pelo usuário  
a) Escreva o algoritmo de forma descritiva  
b) Escreva o algoritmo em pseudocódigo  
Exercício  
2
) Crie um programa que calcule a área de um  
triângulo  
ꢄ ∗ ℎ  
ꢁꢂꢃ =  
ꢀ
2
a) Escreva o algoritmo de forma descritiva  
b) Escreva o algoritmo em pseudocódigo