Você está na página 1de 36

Introduo a Programao IF669

http://www.cin.ufpe.br/~if669

Introduo
Aula 01

Ricardo Massa F. Lima Srgio C. B. Soares


rmfl@cin.ufpe.br scbs@cin.ufpe.br
Perguntas iniciais

n O que um computador?
Qual a diferena entre software e hardware?
n O que um programa?
n Como fazer e onde executar um programa?
Como um programa diz ao
computador o que fazer?

n Como fazemos uma atividade no dia a dia?

que tal um bolo?

Alguma ideia?
Seguimos uma receita

n Adicione 4 ovos
n Adicione uma xcara de gasolina
n Adicione 300g de farinha de trigo
n Misture tudo e coloque em um recipiente
n Leve ao forno
n Ligue o forno e pre-aquea a 300 graus

Tem algo errado com esse programa?


Mas como dizer ao computador
para executar esses passos?

n Ele entende portugus?


ingls?
espanhol?
. . .
Linguagens de Programao

n Os programas tm que ser escritos em uma


linguagem de programao:
uma linguagem que pode ser entendida pelo computador
10010010
10001110

uma linguagem que entendemos e que possa ser traduzida


para a linguagem entendida pelo computador

Imprima a 10010010
raiz quadrada ? 10001110
de 4
Existem muitas linguagens de
programao?
Como dar ordens ao computador?

n Imagine que eu quero que o computador me


responda qual o dobro de um nmero
J sabemos que no adianta escrever em
portugus
Nem queremos a complexidade de ter de falar a
lngua do computador
Precisamos de um meio termo
Vamos comandar a execuo do computador...
Dando ordens ao computador

1. Leia numeroDeEntrada

2. Compute resposta como


numeroDeEntrada vezes 2

3. Imprima resposta

Vocs acham que isso um programa?


As ordens ainda so muito abstratas:
Ler de onde? Imprimir onde?
Possvel interpretao do
programa anterior

n Ler do teclado um valor numrico e armazenar


em uma posio de memria chamada
numeroDeEntrada.
n Calcular o produto do nmero armazenado no
espao de memria numeroDeEntrada por 2 e
armazenar no espao de memria resposta
n Imprimir no monitor do computador o valor
numrico armazenado no espao de memria
resposta
Passos grosseiros para escrever
um programa

n 1 Entender o problema
n 2 Planejar a lgica
n 3 Escrever o programa (programar)
n 4 Traduzir o programa para linguagem de
mquina (compilao)
n

n
5 Testar o programa
6 Instalar o programa para uso
?
Compilao

Programa
Uma lata de leo, duas colheres de farinha,
um litro de leite, meio quilo de manteiga,
100g de fermento, bata tudo e asse em
forno bem quente

Compilador

Cdigo de mquina (windows)


$#@&* sjjdm fgkgg 74#57Cb wtwt ddjddi ddmd ssks
sjjdm 5%%% dddkd twtw sjjdm fgkgg dddkd fjf f ss
ww wtq jfjfjfff qkgye fjf ee[ s,sg, gsgo[ we twet twt wt
Ainda no temos um programa

n preciso criar uma lngua mais precisa que o


portugus e menos complicada que a lngua
que o computador entende
Sintaxe
Palavras da lngua
Semntica
Significado das palavras e suas
combinaes
Sintaxe e Semntica
Uma linguagem de programao define as palavras e
smbolos que se pode usar para escrever um programa

r ec i sa
e m i mp
i n gu ag ga n os
L
u z a en
cond
Sintaxe e Semntica

Inadequao entre o nvel de detalhe exigido pelo


leitor e o utilizado na formulao da frase

difcil em geral
fcil para estudante
de origami

e pode
d et alh
v el de do
N eq u a
e r i n ad
s
Sintaxe e Semntica

n Uma linguagem de programao emprega um conjunto


de regras (sintaxe) que estabelece como palavras e
smbolos podem ser agrupados de maneira a formar
instrues vlidas de um programa

n A semntica de uma instruo define o significado


desta instruo no programa

sintaxe: +

semntica: operao aritmtica de soma


Algoritmo para cabea do pssaro usando
primitivas do origami
Sintaxe e Semntica

Um programa que
sintaticamente correto no
necessariamente logicamente
(semanticamente) correto!

Lembram da receita de bolo com gasolina?


OK, mas como escrever o
programa?

n Escolher uma linguagem de programao e


estudar a sintaxe/semntica...

n Vamos iniciar por uma linguagem imaginria


Pseudo-algoritmo

n Descrio do que ser executado pelo


programa usando palavras em portugus

n Quase um programa!

Mais simples de criar e escrever

Foco no entendimento dos conceitos de


programao
Exemplo 1

nEscrever um programa para:

1. ler um valor do teclado

2. calcular o dobro

3. imprimir na tela o resultado


Pseudo-algoritmo 1

leia x
compute y como (x * 2)
imprima y

n leia: comando que l um valor do teclado


n compute: comando que realiza um clculo
n imprima: comando que imprime um valor no
monitor
Mais conceitos

n Variveis
entidade que armazena valores (de um
determinado tipo de dado)

n Tipo de dado
representa um grupo de valores
numricos (1, -8, 0, 187, -291 ...)
textuais (teste, UFPE ...)
lgicos (verdadeiro e falso)
Manipulando variveis

n Considere as variveis:
x (numrica) e
y (textual)
n o comando = armazena valores em variveis
x = 1
Essas y = CIn

expresses
fazem sentido? x = -1
y = 10

Expresses

n Aritmticas
alguns operadores
+ - * /
n Lgicas
alguns operadores
< > == !=

Ateno para operador de igualdade


Exemplos de expresses

Qual o tipo de cada expresso?

1 + 4 numrico

1 > 2 lgico

teste textual

(1 2) lgico
Variveis

n Para utilizar uma varivel em um programa


preciso definir que valores ela pode
assumir

real x = 1,8
texto h = 123
inteiro y = 10
inteiro j = 20,34
logico z = y > 1
texto w = 10==2
Estruturas de controle
n Sequncia
comandos executados um aps o outro
passos simples da receita de bolo
n Seleo
escolhe (seleciona) entre dois possveis caminhos
adoante, se o bolo for diet; acar se no for
n Repetio
executa um conjunto de comandos enquanto uma
condio for verdadeira
acrescentar gua enquanto no dissolver a farinha
Exemplo de sequncia

inteiro x, y
leia x
y = (x * 2)
imprima y

Agora parece com um programa de verdade!


O que ele faz?
Exemplo de seleo

inteiro x, y Condio
leia x
se (x>0) ento
y = (x + 2)
seno
O que ser
y = (x * 2) impresso?
imprima y
Exemplo de repetio

Condio

inteiro x
leia x
54321
enquanto (x>0) ento
imprima x
x = (x-1)

O que ser impresso se o usurio digitar 5?


Programa 1

n Escrever um programa
para: inteiro x
inteiro y
1. ler dois valores
leia x
inteiros do teclado
leia y
2. calcular o produto inteiro resposta
destes dois valores
resposta = x * y
3. imprimir na tela o imprima resposta
resultado
Programa 2
Exerccio (10 min) inteiro x, y, a, b
n Escrever um programa leia x
para: leia y
1. ler dois valores
se (y < x) ento
inteiros do teclado a = y
2. imprimir na tela os
b = x
valores em ordem seno
crescente a = x
b = y
imprima a, b
Programa 3
Exerccio (20 min)

n Escrever um programa para:


1. ler dois valores inteiros do teclado
2. calcular o produto destes dois valores
sem usar o operador *
3. imprimir na tela o resultado

DICA: Use repetio e o operador +


Soluo

inteiro x, y
leia x, y
inteiro resposta = 0
enquanto (y>0)
resposta = resposta + x
y = y 1
imprima resposta

No esqueam de ler os slides da prxima aula


http://www.cin.ufpe.br/~if669/

Você também pode gostar