Vous êtes sur la page 1sur 32

1

Algoritmos e Tcnicas
- Estruturas de Controle
de Fluxo -
Programao Estruturada
Programao estruturada a tcnica
de construir e formular algoritmos de
uma forma sistemtica.
Utilizada para apresentar as etapas do
processo de uma forma padronizada
id610574659 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com
2
O Conceito de Algoritmo
Conjunto ordenado de passos
executveis no ambguos, definindo
um processo que tem um trmino.
Algoritmo Algoritmo abstrato e distinto de
sua representao
Programa Programa uma das possveis
representaes do algoritmo
Processo Processo a atividade de executar
um algoritmo.
Representao de Algoritmo
Primitivas Primitivas conjunto bem definido de
elementos funcionais bsicos com os
quais podem ser construdas
representaes de algoritmos.
Linguagem de Programao Linguagem de Programao um
conjunto de primitivas + as regras de
combinao
3
Representao de Algoritmo
Cada primitiva consiste de duas partes:
Sintaxe Sintaxe representao simblica da
primitiva
Semntica Semntica o significado da primitiva
Lgica de Programao & Algoritmo
Estruturas bsicas de um algoritmo:
Seqncia Incio/Fim
Define uma estrutura onde as instrues sero
executadas na ordem que aparecem.
Seleo Se-Ento/Seno
Define uma estrutura condicional que dada a sua
avaliao (V ou F) determina qual caminho do
algoritmo ser executado
Repetio Repita, Enquanto ou Para
Define uma estrutura de iterao condicional (V
ou F) ou contada (pr-definida) de instrues
4
Algoritmo para ligar de um telefone
pblico - Seqncia
Incio
1. Tirar o fone do gancho;
2. Ouvir o sinal de linha;
3. Introduzir o carto;
4. Teclar o nmero desejado;
5. Conversar;
6. Desligar;
7. Retirar o carto;
Fim.
Este algoritmo s usa uma
estrutura de seqncia
Incio/Fim
Lgica de Programao & Algoritmo
Algoritmo para ligar de um telefone
pblico Seleo
E se o telefone pblico estiver com defeito?
Incio
1. Tirar o fone do gancho;
2. Se ouvir o sinal de linha, ento
1. Introduzir o carto;
2. Teclar o nmero desejado;
3. Conversar;
4. Desligar;
5. Retirar o carto;
3. Seno
1. ir para o prximo telefone;
Fim.
Este algoritmo usa
estrutura de deciso
Se-ento/Seno
Lgica de Programao & Algoritmo
5
Algoritmo para ligar de um telefone
pblico Repetio
E se o prximo telefone pblico tambm estiver com defeito?
Incio
1. Repita
1. Tirar o fone do gancho;
2. Se ouvir o sinal de linha ento
1. Introduzir o carto;
2. Teclar o nmero desejado;
3. Conversar;
4. Desligar;
5. Retirar o carto;
3. Seno
1. ir para o prximo telefone;
2. At ouvir o sinal de linha
Fim.
Este algoritmo usa uma
estrutura de repetio
Repita/At
Lgica de Programao & Algoritmo
Algoritmo para ligar de um telefone pblico Repetio
E se o telefone chamado estiver com defeito?
E se o telefone chamado estiver ocupado?
E se acabarem os crditos do carto telefnico?
E se ...?
Um algoritmo
SEMPRE sofre melhorias sucessivas.
(Tcnica de refinamentos sucessivos)
Lgica de Programao & Algoritmo
6
Estruturas de Controle
Baseado na lgica estruturada, Bohn e
Jacopini provaram que apenas estas trs
estruturas so suficientes para explicar a
soluo de qualquer problema, inclusive
tornando-os estruturados e mais legveis.
Estruturas de Controle
Estrutura Seqencial: os comandos ou
instrues vo sendo executados na
ordem em que aparecem no algoritmo.
7
Estrutura de Seleo: Conforme o
resultado de uma expresso lgica,
determinados comandos so executados
e outros no, caracterizando assim uma
seleo de comandos
TRUE
FALSE
Estruturas de Controle
Estrutura de Repetio: comandos so
executados repetidas vezes at que uma
condio de parada seja satisfeita
Estruturas de Controle
8
Estruturas Seqenciais
So as aes que podem ser
executadas pelos algoritmos. Elas so
executadas na seqncia em que
esto definidas.
Forma Geral:
Comando 1
Comando 2
.
.
Comando n
Estruturas Seqenciais
Usaremos a seguinte estrutura para
se fazer um algoritmo:
Algoritmo {Nome Do Algoritmo}
Declare
{Declarao de variveis}
Incio
{Comandos}
Fim
9
Estruturas Condicionais
So aes executadas mediante
o atendimento de condies
representada em uma instruo
de seleo
Forma geral
Se <condio > ento
bloco de comandos (1)
Seno
bloco de comandos (2)
Fim se
Permite definir o fluxo de execuo do
algoritmo a partir de uma condio
Seleo nica Sintaxe
A seleo nica ou simples quando executada
apenas uma instruo ou bloco de instrues.
SE (condio)entao
comando
SE (condio)entao
INICIO
Comando1
Comando2
FIM
Instrues de Seleo
10
Instrues de Seleo
Tipo simples:
se <condio> ento
<comandos>;
fim-se
OBS.:
<comandos> sero executados apenas se
<condio> resultar em TRUE.
Exemplo:
se A > 0 ento
B A + 1;
A 0;
fim-se
Instrues de Seleo
11
Seleo dupla Sintaxe
A seleo dita ser dupla ou composta quando pode ser
executado apenas uma instruo ou bloco de instrues.
SE (condio)
INICIO
Comando1
Comando2
FIM
SENO
INICIO
Comando3
Comando4
FIM
Blocos de
Instruo
Instrues de Seleo
Tipo composto:
se <condio> ento
<comandos1>;
seno
<comandos2>;
fim-se
OBS.:
<comandos1> sero executados apenas se
< condio > resultar em TRUE. Em caso
contrrio, <comandos2> sero executados.
Instrues de Seleo
12
Exemplo:
se A > B ento
B A + 1;
A 0;
seno
A 0;
B A + 1;
fim-se
Instrues de Seleo
Exemplo
Algoritmo Media
Declare
Real: n1, n2, media
Incio
Escreva(Digite as duas notas:)
Leia(n1, n2)
media <- (n1+n2)/2
Se (media >= 5) ento
Escreva (APROVADO)
Seno
Escreva (REPROVADO)
Fim_se
Fim
Instrues de Seleo
13
SES Aninhados (Encaixados): Muitas vezes
existe a necessidade de tomar outras
decises dentro de uma das alternativas da
estrutura do se.
SE (condio)
INICIO
SE (condio)
Comando1
FIM
Instrues de Seleo
CONDIO
uma expresso lgica que deve resultar em
um valor verdadeiro ou falso.
Operadores relacionais
So usados para a comparao de dados
=; <; >; >=; <=; <>
leia(qtdcds);
se(qtdcds>=30)
imprima(fulano tem muitos cds para
ouvir!);
14
CONDIO
Operadores lgicos
So usados como conectivos lgicos
^ v
leia(qtdcds);
leia(qtddvds);
se(qtdcds>=30 ^ qtddvds>30)
imprima(fulano tem muitos cds
para ouvir e muitos dvds para
assistir!);
CONDIO
F v F = F F ^ F = F
F v V = V F ^ V = F
F = V V v F = V V ^ F = F
V = F V v V = V V ^ V = V
Tabela (No) Tabela v (ou) Tabela ^ (e)
15
Exerccio
1. Fazer um algoritmo para determinar
se possvel calcular ou no uma raiz
quadrada. Caso positivo calcule-a.
2. Fazer um algoritmo que identifique se
o nmero digitado par ou impar.
3. Ler um nmero real e escrever se
negativo, nulo ou positivo.
1. Resposta:
Algoritmo Raiz-quadrada
Declare
num, raiz: real
Inicio
Escreva (digite um nmero)
Leia (num)
Se (num >= 0) ento
raiz <- num ** 0.5
Escreva (a raiz quadrada : raiz)
Seno
escreva (no h raiz quadrada)
Fim-se
Fim
Exerccio
16
2. Resposta:
Algoritmo par-impar
Declare
num: inteiro
Inicio
Escreva (digite um nmero)
Leia (num)
Se (num mod 2 = 0) ento
Escreva (O nmero par)
Seno
Escreva (O nmero impar)
Fim-se
Fim
Exerccio
3. Resposta:
Algoritmo numero
Declare
num: Real
Incio
Leia(num)
Se (num > 0) ento
Escreva (POSITIVO)
Seno
Se (num = 0) ento
Escreva (NULO)
Seno
Escreva (NEGATIVO)
Fim_se
Fim_se
Fim
Exerccio
17
4. Desenvolver algoritmo que, dada duas notas,
informar se o aluno foi aprovado ou no.
5. No exemplo anterior, informar se o aluno foi
aprovado, est em recuperao ou foi reprovado.
6. Desenvolver um algoritmo que dado um salrio,
calcule o novo salrio, sabendo-se que o aumento
diferenciado da seguinte forma: quem tem salrio
menor que R$ 500,00 vai ter um aumento de 30% e
quem receber isso ou mais, ter um aumento de
20%.
7. Calcular imposto sobre salrio: at 1.100 no paga
imposto, at 2.200 paga 11% e acima de 2.200
paga 20%.
Exerccio
Exerccio
8. Definir valores para as variveis A, B, C e D e
indicar o valor da varivel X aps a execuo dos
trechos de programa abaixo: A = , B= , C= , D=
Fimse
D); * (C B) - (A X
Seno
C; * B) (A X
Ento )) 1 ( e B) (( no Se
+
+
+ = > D C A
Fimse
D); * C - (B - A X
Seno
C); (B * X
Ento )) 1 ( e ) (( no Se

+
+ <> s
A
D C B A
18
Exerccio
Fimse
D); * (C B) - ( X
Seno
C; * B) A ( X
Ento ) 1 ( ou B) ( No Se
+
+
+ = >
A
D C A
Fimse
D); * C - (B - A X
Seno
C); (B * X
Ento )) 1 ( e ) (( No Se

+
+ <> s
A
D C B A
Fimse
D); - A ( X
Seno
C; * B) ( X
Ento ) 1 ( No ou ) ( Se


+ = >
A
D C B A
Fimse
D); * (C -B X
Seno
C; * A X
Ento ) ( ou B) ( Se
+

+ > = D B C A
Exerccio
9. Fazer um algoritmo para calcular as razes de
uma equao do 2 grau na forma
Obs.: Os valores de a,b e c devem ser do tipo
real e a 0.
Os coeficientes devem ser fornecidos pelo
usurio. O algoritmo tambm dever verificar se
possvel calcular as razes
( )
c bx ax x f + + =
2
) (
0 > A
=
19
Exerccio
10. Dados trs valores A, B,C, verificar se eles
podem ser os comprimentos dos lados de um
tringulo, se forem, verificar se formam um
tringulo equiltero, issceles ou escaleno.
Informar se no formarem nenhum tringulo.
Considere:
a. O tringulo uma figura geomtrica fechada de trs
lados, em que cada um menor que a soma dos outros
dois.
b. Os Tringulos:
equiltero possui trs lados iguais;
Issceles possui dois lados iguais
Escaleno possui todos os lados diferentes
10. Resposta:
Algoritmo Triangulo
Declare
A,B,C: inteiro
Incio
Leia(A,B,C)
Se (A<B+C) E (B<A+C) E (C<A+B) entao
Se ((A=B) E (B=C))entao
Escreva(Tringulo Equiltero)
Senao
Se ((A=B) OU (A=C) OU (B=C)) entao
Escreva(Tringulo Issceles)
Seno
Escreva(Tringulo Escaleno)
Fimse
Fimse
Senao
Escreva(Estes valores no formam tringulo)
Fimse
Fim
Exerccio
20
Estrutura Repetitiva
Forma geral de repetio com teste no
incio
Enquanto <condio >
bloco de Comandos
Fim enquanto
Instrues de Repetio
Enquanto / Fim-Enquanto
enquanto < condio > faa
<comandos>;
fim-enquanto;
OBS.:
<comandos> sero executados enquanto
< condio > resultar em TRUE.
21
Instrues de Repetio
Exemplo:
enquanto A > 0 faa
leia(B);
escreva(B);
A A - 1;
fim-enquanto;
Estrutura Repetitiva
Forma geral de repetio com teste no
fim
Repita
bloco de Comandos
At < condio >
22
Instrues de Repetio
Repita / At
repita
<comandos>;
at <sentena>;
OBS.:
<comandos> sero executados at que
<sentena> resulte em TRUE.
Exemplo:
repita
leia(B);
escreva(B);
A A - 1;
at A < 1;
Instrues de Repetio
23
Estrutura Repetitiva
Dentre as Estruturas de programao,
vimos:
Estrutura Seqencial
Estrutura Condicional
Estruturas Repetitivas: Enquanto e Repita
Estrutura Repetitiva
Uma terceira forma de Estrutura
Repetitiva :
Para <var> <incio> at <fim> passo <inc>
faa
bloco de comando
Fim_para
24
Instrues de Repetio
Para / At / Fim-Para
para <varivel> <inicial> at <final> faa
<comandos>;
fim-para;
OBS.:
<varivel> - contador do tipo inteiro
<inicial> - valor inicial da varivel
<final> - valor final da varivel
Exemplo:
{ Comandos para escrever 10 vezes uma frase
na tela do computador }
para i 1 at 10 faa
escreva(ltimo tipo de repetio);
fim-para;
Instrues de Repetio
25
Exemplo
Algoritmo Soma-media
Declare
contador: inteiro;
valor, soma, media: real
Inicio
contador <- 0;
soma <- 0;
Enquanto (contador < 100) faa
Escreva (entre com um valor:);
leia (valor);
soma <- soma + valor;
contador <- contador + 1;
Fim-enquanto
media <- soma / contador;
Escreva (a soma : soma);
Escreva (a mdia : media)
Fim
Estrutura Repetitiva
Exemplo
Algoritmo Soma-media
Declare
contador: inteiro;
valor, soma, media: real
Inicio
Soma <- 0;
Para (contador 0 at 99 passo 1) faa
Escreva (entre com um valor:);
Leia (valor);
Soma <- soma + valor;
Fim-para
media <- soma / contador;
Escreva (a soma : soma);
Escreva (a mdia : media)
Fim
Estrutura Repetitiva
26
Estrutura Repetitiva
Enquanto: Enquanto: consiste em um teste de
condio antes de efetivar a repetio.
A sada do lao s ocorre quando a
condio se torna falsa.
Repita Repita: : Consiste em um teste de
condio no final. A sada de um lao
repita ocorre quando a condio booleana
se torna verdadeira.
Para Para: : Consiste em uma estrutura de
repetio cujo processo tem um incio
e um fim fixo.
11. Faa um algoritmo que leia um nmero
inteiro e em seguida calcule e escreva o seu
fatorial. Se o nmero for negativo, informe
que o valor invlido.
Exerccio
27
11. Resposta:
Algoritmo Fatorial
Declare
valor, fat, num: inteiro
Inicio
Escreva (Entre com um valor:);
Leia (valor);
Se (valor < 0) ento
Escreva (valor invlido);
Seno
fat <- 1;
num <- valor;
Enquanto (num > 1) faa
fat <- fat * num;
num <- num 1;
Fim-enquanto
Fim-se
Escreva(O fatorial de valor igual a: fat);
Fim
Exerccio
Algoritmo Fatorial
Declare
valor, fat, num: Inteiro
Incio
Escreva (Entre com um valor:);
Leia(valor);
Se (valor < 0) ento
Escreva(No existe fatorial de nmero
negativo.);
Seno
fat 1;
Para (num 2 at valor) faa
fat fat*num;
Fim_para
Escreva (Fatorial de valor igual a, fat);
Fim_se
Fim
Exerccio
28
12. Escreva um algoritmo para calcular a soma
de dez nmeros quaisquer fornecidos pelo
usurio. Utilize a estrutura de repetio do
tipo Para.
Exerccio
12. Resposta:
Algoritmo Soma-10
Declare
Soma, num: real;
Cont: int;
Incio
Soma <- 0;
Para ( Cont 1 at 10 ) faa
Escreva (digite o nmero);
Leia (num);
Soma soma + num
Fim-para
Escreva ( A soma : soma);
Fim
Exerccio
29
13. Faa um algoritmo que leia trs valores que
representam os lados de um tringulo.
Primeiramente, verifique se os lados podem
formar um tringulo (a soma de dois lados
no pode ser menor que o terceiro lado).
Caso possa formar um tringulo, indique se
este equiltero (trs lados iguais),
issceles (dois lados iguais) ou escaleno
(trs lados diferentes).
Exerccio
13. Resposta:
Algoritmo Tringulo
Declare
a, b, c: int;
Incio
Escreva (entre com os trs lados do tringulo);
Leia (a, b, c);
Se ((a + b < c) ou (a + c < b) ou (b + c < a)) ento
Escreva ( valores invlidos);
Seno
Se ((a = b) e (b = c)) ento
Escreva (equiltero);
Seno
Se ((a = b) ou (a = c) ou (b = c))
ento
Escreva (issceles);
Seno
Escreva (escaleno);
Fim-se
Fim-se
Fim-se
Fim
Exerccio
30
14. Faa um algoritmo que calcule a
potenciao. Utilize o operador * quando o
expoente for positivo ou nulo e utilize o
operador ** quando o expoente for negativo.
Exerccio
14. Resposta:
Algoritmo Potencia
Declare
result, base, expoente, cont: real;
Incio
Escreva (entre com a base);
Leia (base);
Escreva (entre com o expoente);
Leia (expoente);
Se (expoente < 0) ento
Result <- base ** expoente;
Seno
cont <- 1; // usa-se as duas barras para colocar
comentrios
Result <- 1; // no caso de expoente 0, o lao
evitado
Enquanto (cont <= expoente) faa
result <- result * base;
cont <- cont + 1;
Fim-enquanto
Fim-se
Escreva (base, elevado a, expoente, =, result);
Fim
Exerccio
31
15. Dado o algoritmo abaixo:
Algoritmo
Declare
X, Y, Z:Real
Incio
Ler (x, y)
Z x y
Se (z = 0) ento
Escrever (x igual a y)
Seno
Se (z > 0) ento
Escrever (x maior do que y)
Seno
Escrever (x menor do que y)
Fim_se
Fim_se
Fim
Represente-o em forma de fluxograma.
Exerccio
Exerccio
15. Resposta:
32
16. Calcular a mdia aritmtica de 4 notas para
vrios alunos e parar quando aparecer uma
nota negativa
Exerccio
16. Resposta:
Algoritmo media
Declare
n1, n2, n3, n4, media: reais;
Incio
Escreva ("Informe as quatro notas do aluno: ");
Leia (n1, n2, n3, n4);
Enquanto (n1 >= 0 e n2 >= 0 e n3 >= 0 e n4 >= 0)
faa
media <- (n1 + n2 + n3 + n4) / 4;
Escreva ("a mdia calculada : " media);
/* Obteno das notas
para os demais alunos */
Escreva ("Informe as quatro notas do aluno: ");
Leia (n1, n2, n3, n4);
Fim_enquanto
Fim
Exerccio

Vous aimerez peut-être aussi