Você está na página 1de 43

Unidade I

PROGRAMAO DE COMPUTADORES

Profa. Fabola Ribeiro

Plano de ensino
Objetivo: desenvolver o raciocnio lgico por meio da soluo de problemas prticos sob a forma de algoritmos. Contedo programtico: Variveis. Operadores aritmticos e lgicos. Algoritmos e fluxogramas. Desvio condicional simples. Desvio condicional composto. p Estruturas de repetio.

Bibliografia bsica
CARBONI, I. F. Lgica de programao. 1. ed. So Paulo: Thomson, 2003. FORBELLONE, A. L. Lgica de programao. 3. ed. So Paulo: Prentice Hall Brasil, 2005. MANZANO, J. A. N. G.; OLIVEIRA, J. F. Algoritmos: lgica para desenvolvimento de programao. 22. ed. So Paulo: rica, 2009.

Variveis
Endereo na memria do computador. Armazena um valor ou caractere. Precisa ter um nome. Tipos Booleana: V (verdadeiro) ou F (falso). Inteiro: 1, ou 2, ou -15. Real: 3, 14, ou 152, 444, ou -3. Char: A, B. String: St i ABC, ABC ou Maria. M i

Variveis
Nome: combinao de letras e nmeros, nunca iniciado por nmeros. Declarao: VAR L N: real. L, real Comandos de atribuio: N=7 N:=7 N7 O valor 7 armazenado na varivel N N.

Operadores algbricos

Operador Soma Subtrao Multiplicao Diviso Potenciao Raiz quadrada Resultado inteiro da diviso Resto da diviso

Smbolo + * / ^ SQR DIV MOD

Prioridade de execuo 3 3 2 2 1 1 1 1

Funes matemticas

Nome Cosseno Seno Tangente Exponencial ex Logaritmo neperiano ln(x) Mdulo ou valor absoluto

Funo COS(x) SEN(x) ( ) TAN(x) EXP(x) LN(x) ABS(x)

Funes matemticas
Importante: as funes trigonomtricas so calculadas para ngulos em radianos. Converso de um ngulo de graus para radianos: multiplico o ngulo por e divido por 180.

Exemplo
Diviso: 11 / 2 = 5,5 Resultado inteiro da diviso: 11 DIV 2 = 5 Resto da diviso: 11 MOD 2 = 1 pois

Interatividade
Desejamos elaborar um algoritmo que calcule a expresso

e que armazene o resultado na varivel A. Como devemos escrever essa expresso? a) SQR(2+SQR(3)) b) A := SQR2+SQR(3) c) A := SQR(2+3) d) A := SQR(2+SQR(3)) e) SQR(2+SQR(3)) := A

Algoritmos sequenciais
Procedimento em etapas. Sem ramificaes estrutura linear. Um mesmo problema pode ter diversos algoritmos.

Algoritmos sequenciais
Exemplo: troca do pneu de um carro. Sinalizao. Erguer o carro. Tirar pneu furado. Colocar novo pneu. Abaixar carro. Guardar pneu danificado. Remover sinalizao.

Algoritmos formas
Linguagem natural (procedimento). Fluxograma (esquema). Portugus estruturado (pseudolinguagem).

Portugus estruturado
Portugus estruturado (pseudolinguagem). Estrutura: Nome do programa Declarao das variveis Incio Comandos Fim. Sempre encerro uma ideia ideia com ponto e vrgula (;) no final da linha. Encerro o programa com ponto final (.).

Fluxograma smbolos
Incio ou fim

Entrada de dados

Sada de dados

Fluxograma smbolos
Clculo

Condicional

Fluxo de dados

Exemplo: dobro de um nmero


Elabore um programa em portugus estruturado e um fluxograma que d o dobro de um nmero inteiro dado. Entrada: um nmero N dado pelo usurio. Sada: o dobro do nmero dado, ou seja, 2*N.

Exemplo: dobro de um nmero


Programa em portugus estruturado: Programa dobro VAR N, dobro: inteiro; Incio Leia (N); dobro := 2*N; Escreva (dobro); Fim.

Exemplo: dobro de um nmero


Fluxograma:
Incio

Leia (N)

Dobro = 2*N

Dobro

Fim

Interatividade
Qual das alternativas completa corretamente o programa em portugus estruturado a seguir? Programa rea_quadrado VAR lado, rea: real; Incio (?) rea := lado^2; Escreva (rea); Fim. a) Leia (lado); b) Escreva (lado); c) Defina (lado); d) Leia (rea); e) Escreva (rea);

Desvios condicionais
Tomada de deciso. Desvio do fluxo de um programa. Envolve uma condio: Expresso lgica que governa a tomada de deciso deciso. Exemplo: MS>=7 Se verdadeira aluno aprovado. Se falsa aluno de exame.

Desvio condicional simples


Trecho do algoritmo executado apenas se condio for verdadeira. Em portugus estruturado: Se (condio) ento <instrues>; <instrues>; Fim_Se; Tabulao importante para facilitar a leitura do programa. programa

Desvio condicional simples


No fluxograma:

condio

instruo 1

instruo 2

Exemplo: aprovao
Considere o caso no qual um aluno precise atingir 15 pontos para aprovao em uma matria. Os pontos so a combinao de notas de provas e trabalhos. Faa um programa que, dada a pontuao de um al no diga se esse aluno aluno, al no foi aprovado. apro ado Entrada: pontuao do aluno. Sada: se a pontuao for maior que 15, aprovado.

Exemplo: aprovao
Programa aprovao VAR pontos: real; Incio Escreva (entre com a pontuao); Leia (pontos); (pontos) Se (pontos >= 15) ento Escreva (aprovado); Fim_Se; Fim.

Exemplo: aprovao

Incio Entre com a pontuao

P t Pontos F Pontos >= 15 V

aprovado

Fim

Exemplo: ms de nascimento
Como mtodo de segurana para acesso de conta bancria pela internet, um banco pede o ms de nascimento do correntista. Faa um programa em portugus estruturado e um fluxograma que emitam um m alerta em caso de ms s superior perior ao ms 12 (dezembro). Entrada: ms de nascimento. Sada: se o ms for maior que 12, mensagem de erro.

Exemplo: ms de nascimento
Programa segurana VAR M: inteiro; Incio Escreva (ms de nascimento:); Leia (M); (M) Se (M > 12) ento Escreva (nmero invlido); Fim_Se; Fim.

Exemplo: ms de nascimento
Incio ms de nascimento

M F M > 12 V

nmero i invlido lid

Fim

Interatividade
O que faz o fluxograma abaixo?
Incio a) D o triplo de um nmero, se o triplo dele for maior que 20. b) ) D o dobro de um nmero, , se o dobro dele for maior que 20. c) D o triplo de um nmero, se o dobro dele for maior que 20. d) D o t triplo i l de d um nmero, se o dobro dele for menor que 20. e) D o triplo de um nmero.

Leia (N) F

2*N > 20 V (3* ) Escreva (3*N) Fim

Desvio condicional composto


Executa uma ao se a condio for verdadeira. Executa outra ao se a condio for falsa. Em portugus estruturado: Se (condio) ento <instruo1>; Seno <instruo2>; Fim Se; Fim_Se;

Desvio condicional composto


No fluxograma:

condio

instruo2

instruo1

Exemplo: par ou mpar


Elabore um programa que, dado um nmero, diga se ele par ou mpar. Nmeros pares: 2.n Nmeros mpares: 2.n+1 (onde n=0, n=0 1, 1 2 2...) ) Os nmeros pares so mltiplos de 2: 2, 4, 6, 8, 10... Logo N par, se N MOD 2 = 0 Se um nmero no par par, obrigatoriamente ele impar.

Exemplo: par ou mpar


Elabore um programa que, dado um nmero, diga se ele par ou mpar. Entrada: nmero N. N par se N MOD 2 = 0. Se N par: Sada: par. Seno (N mpar) Sada: mpar.

Exemplo: par ou mpar


Programa par_ou_mpar VAR N: inteiro; Incio Escreva (Entre com um nmero:); Leia (N); (N) Se (N MOD 2 = 0) ento Escreva (par); Seno Escreva (mpar); Fim Se; Fim_Se; Fim.

Exemplo: par ou mpar

Incio Entre com um nmero

N F N MOD 2 = 0 V

mpar Fim

par

Exemplo: par ou mpar


Simulao para N=11: Entre com um nmero: N=11 11 MOD 2 = 0? FALSO Pois 11 MOD 2 = 1 (11 DIV 2 = 5 com resto 1) mpar

Exemplo: mltiplo de 17
Elabore um programa que, dado um nmero, diga se ele mltiplo de 17. Entrada: nmero N. N mltiplo de 17 se N MOD 17 = 0. (A diviso de N por 17 exata exata, ou seja seja, o resto da diviso zero)

Exemplo: mltiplo de 17
Programa mltiplo_de_17 VAR N: inteiro; Incio Escreva (Entre com um nmero:); Leia (N); (N) Se (N MOD 17 = 0) ento Escreva ( mltiplo); Seno Escreva (no mltiplo); Fim Se; Fim_Se; Fim.

Exemplo: mltiplo de 17
Incio Entre com um nmero

N F N MOD 17 = 0 V

no no mltiplo mltiplo Fim

mltiplo mltiplo

Exemplo: mltiplo de 17
Simulao para N=34: N 34 N MOD 17 0 N MOD 17=0? V sada mltiplo

Simulao para N=35: N 35 N MOD 17 1 N MOD 17=0? F sada no mltiplo

Interatividade
Qual a sada do programa abaixo para N=8? Programa teste VAR N: inteiro; Incio ( ); Leia (N); Se (N>8) ento Escreva (2*N); Seno Escreva (N/2); Fim_Se; Fim. Fim a) 2 b) 4 c) 8 d) 12 e) 16

AT A PRXIMA!