Post on 01-Mar-2018
7/26/2019 Aula04 Alg
1/19
Universidade Federal do Amap
Curso de Engenharia Eltrica
Algoritmos e Programao
Unidade 4 Estruturao deAlgoritmos
7/26/2019 Aula04 Alg
2/19
Algoritmo e Programao Estruturao de Algoritmos
Objetivos
Os principais objetivos dessa unidadeconsitem em: Aprender a desenvolver os principais
comandos de deciso em algoritmos; Criar comandos de deciso compostos por
meios de blocos dentro do algoritmo; Aprender a criar laos de repetio de um ou
mais trecos em um algoritmo; Conceituar e praticar o !bito do uso de
vari!veis contadoras e acumuladores emalgoritmo
7/26/2019 Aula04 Alg
3/19
Algoritmo e Programao Estruturao de Algoritmos
Estruturas de Deciso
Em programao" os comandos dedeciso tem por objeto instruir am!#uina a no reali$ar todos oscomando inclu%dos em umalgoritmo;
Esses comandos especi&icamenteensinam a m!#uina a tomardecis'es" optando por e(ecutar ouno um ou mais comandos)
7/26/2019 Aula04 Alg
4/19
Algoritmo e Programao Estruturao de Algoritmos
Estruturas de Deciso
Comando Se (if...then...else) O comando Seconsiste na estrutura b!sica de
deciso em algoritmos) *ua sinta(e +:
Se,e(pr-l.gica/ ento,comando/ fimse
ou
Se ,e(pr-l.gica/ ento ,comando0/ seno ,comando1/ fimse
Con&orme podemos veri&icar na e(ecuo doalgoritmo a m!#uina sempre ver! o resultado dae(presso e &ar! apenasumdos dois comandos2nunca os dois ao mesmo tempo3
7/26/2019 Aula04 Alg
5/19
Algoritmo e Programao Estruturao de Algoritmos
Estruturas de Deciso
E(emplo Algoritmo para ler a idade de uma pessoae imprimir a mensagem 5oc6 + maior de idade7 seela tiver 08 anos ou mais)
// Algoritmo para ler a idade de uma pessoa e dizer se maior de idade// Verso 1.0
Variveis
idade:inteiro;
Incio
escrever Entre com idade do indivduo:;
leridade;
se idade !" 1# ento
escrever$ indivduo maior de idade;
seno
escrever $ indivduo menor de idade;
fimse
Fim.
7/26/2019 Aula04 Alg
6/19
Algoritmo e Programao Estruturao de Algoritmos
Estruturas de Deciso
Um outra maneira de escrever o mesmo algoritmosem #ue seja utili$ado a oposeno" + mostrado aseguir)
// Algoritmo para ler a idade de uma pessoa e dizer se maior de idade// Verso 1.1
Variveis
idade:inteiro;
Incio
escrever Entre com idade do indivduo:;
leridade; se idade !" 1# ento
escrever$ indivduo maior de idade;
fimse
se idade % 1#
escrever $ indivduo menor de idade;
fimseFim.
7/26/2019 Aula04 Alg
7/19
Algoritmo e Programao Estruturao de Algoritmos
Estruturas de Deciso
Encadeamento
Um encadeamento caracterizado quando o algoritmoapresenta um comando de deciso dentro de outro, quepode estar localizado internamente ao entoou aoseno,como mostrado a seguir
se A ! & ento
se ' ! ( ento
) %* ';
fimsefimse
se + % ,ento
- %* +,;
Seno
se+ % A& ento
A %* );
seno
& %* );
imse
7/26/2019 Aula04 Alg
8/19
Algoritmo e Programao Estruturao de Algoritmos
Estruturas de Deciso
Comando Caso (Case) O comando Caso+ importante em situa'es em
#ue e(iste a necessidade de se testar uma
mesma vari!vel 2ou e(presso3 #ue possa conterdiversos valores" e(ecutando assim comandos
di&erentes para valores di&erentes) *ua sinta(e +:
Caso ,var ou e(pr/ sea
,valor0/:,comando0/; ,valor1/:,comando1/;
)
) )
Seno ,comando/;fimcaso
7/26/2019 Aula04 Alg
9/19
Algoritmo e Programao Estruturao de Algoritmos
Estruturas de Deciso
E(emplo 9ado o nmero de matr%cula de um s.ciode um clube social"&ornecido pelo usu!rio" &aa umalgoritmo #ue imprima o m6s de pagamento daanuidade" de acordo com a tabela:
7/26/2019 Aula04 Alg
10/19
Algoritmo e Programao Estruturao de Algoritmos
Estruturas de Deciso
// Algoritmo para impresso do ms de pagamento de anuidade
// Verso: 1.0
Variveis
ninalmatricula:inteiro;
Incio escrever Entre com o 2ltimo digito da matrcula do s3cio:;
ler ninalmatricula;
caso ninalmatricula seja
0:escrever4agamento em 5aneiro;
1:escrever4agamento em 6evereiro;
7:escrever4agamento em (ar8o; 9:escrever4agamento em Aril;
seno
escrever 4agemento em (aio;
fimcaso
Fim.
7/26/2019 Aula04 Alg
11/19
Algoritmo e Programao Estruturao de Algoritmos
Estruturas de Repetio
Comando epita e En#uantoEsses comandos permitem repetir um
ou mais comandos no corpo de um
algoritmo) A sinta(e dos comandoconsistem em:
repita
,comando0/;
,comando1/;
)
) )
,comando
7/26/2019 Aula04 Alg
12/19
Algoritmo e Programao Estruturao de Algoritmos
Estruturas de Repetio - Exemplos// Algoritmo para n2mero pares e impares
// sando o comando repita < at
Variveis
num: inteiro;
Incio
escrever Entre com um n2mero inteiro:;
ler num; repita
se num !" 0
senum=7 " 0
escrever$ n2mero> num> par;
seno escrever$ n2mero> num> mpar;
fimse; escrever Entre com um n2mero inteiro:;
lernum
fimse;
at num%0
fimrepita
Fim.
// Algoritmo para n2mero pares e impares
// sando o comando en?uanto * a8a
Variveis
num: inteiro;
Incio
escrever Entre com um n2mero inteiro:;
ler num;
enquanto num !" 0 faa
senum=7 " 0
escrever$ n2mero> num> par;
seno escrever$ n2mero> num> mpar; fimse;
escrever Entre com um n2mero inteiro:;
lernum
fimenquanto
Fim.
Al it P E t t d Al it
7/26/2019 Aula04 Alg
13/19
Algoritmo e Programao Estruturao de Algoritmos
Variveis Cotadoras
Um vari!vel se caracteri$a comocontadora se ela tem a capacidadede arma$enar uma certa #uantidadede elementos ou itera'es;
*o muito utili$adas em estruturasde repetio" especi&icamente
problemas #ue envolvem contagemde valores)
Al it P E t t d Al it
7/26/2019 Aula04 Alg
14/19
Algoritmo e Programao Estruturao de Algoritmos
Variveis Cotadoras - Exemplo
// Algoritmo para contar itera8@es
// sando o comando repita < ate
Variveis
cont> iter: inteiro;
Incio
escreverEntre com o n2mero de itera8@es:;
ler iter;
cont " 0
repita
cont " cont 1 // varivel contadora
atcont %" iter
fimerepita
escrever $ contador registrou>cont> contagens;
Fim.
// Algoritmo para contar itera8@es
// sando o comando en?uanto < a8a
Variveis
cont> iter: inteiro;
Incio
escreverEntre com o n2mero de itera8@es:;
ler iter;
cont " 0
enquanto cont %"iter faa
cont " cont 1 // varivel contadora
fimenquanto
escrever $ contador registrou>cont>contagens;
Fim.
Algo itmo e P og amao Est t ao de Algo itmos
7/26/2019 Aula04 Alg
15/19
Algoritmo e Programao Estruturao de Algoritmos
Variveis Acumuladoras
Esse tipo de vari!vel caracteri$a=se porarma$enar dentro de si resultadoacumulado de uma s+rie de valores" em
geral" uma soma" por e(emplo;
>uando no algoritmo e(iste a necessidadede arma$enar sucessivamente um grande
#uantidade de nmeros" + imprescind%velo uso de vari!veis acumuladoras)
Algoritmo e Programao Estruturao de Algoritmos
7/26/2019 Aula04 Alg
16/19
Algoritmo e Programao Estruturao de Algoritmos
Variveis Acumuladoras - Exemplo// Algoritmo para somar at 10 numeros aleatorios
// sando o comando repita < ate
Variveis
num> soma: real;
cont> ?uant: inteiro;
Incio
cont " 0; // inicializa8o da variavel contadora soma " 0; //inicializa8o da variavel acumiladora
escrever Buantidade de numeros a somar:;
ler?uant;
repita
escrever Entre com um n2mero:
lernum; soma " somanum; // varivel acumuladora
cont " cont 1
atcont % ?uant
fimerepita
escrever -oma total:>soma;
Fim.
// Algoritmo para somar at 10 numeros aleatorios
// sando o comando en?uanto < a8a
Variveis
num> soma: real;
cont> ?uant: inteiro;
Incio
cont " 0; // inicializa8o da variavel contadora
soma " 0; //inicializa8o da variavel acumiladora
escrever Buantidade de numeros a somar:;
ler?uant;
enquantocont % ?uant faa
escrever Entre com um n2mero:
lernum; soma " somanum; // varivel acumuladora
cont " cont 1;
fimenquanto
escrever -oma total:>soma;
Fim.
Algoritmo e Programao Estruturao de Algoritmos
7/26/2019 Aula04 Alg
17/19
Algoritmo e Programao Estruturao de Algoritmos
Estrutura de Repetio Complemetar
Comando Para 2for3 Para &acilitar a construo de laos #ue
&a$em uso de vari!veis contadoras"especialmente para contagens de 0 em0" podemos utili$ar outro comando derepetio complementar camado?Para@ 2for3) *ua sinta(e +:
para ,var/ de,valorinicial/ at,valor&inal/ fa$a
,comando/;
fimpara
Algoritmo e Programao Estruturao de Algoritmos
7/26/2019 Aula04 Alg
18/19
Algoritmo e Programao Estruturao de Algoritmos
Estrutura de Repetio Complemetar
E(emplo do comando Para
// Algoritmo para impresso de numeros inteiros
// sando o comando para * a8a
Variveis
valor: inteiro;
Incio
escreverC2meros inteiros de 1 at 100:; // impresso complementar
para valor de1 at100 faa
escrevervalor">valor; // escreve na tela do computador os n2meros de 1 a100
fimpara
Fim.
Algoritmo e Programao Estruturao de Algoritmos
7/26/2019 Aula04 Alg
19/19
Algoritmo e Programao Estruturao de Algoritmos
!ete "a#er$
Procure re&a$er o algoritmo paracalcular as ra%$es de uma e#uaodo segundo grau utili$ando agora ocomando de deciso Se...ento)Com a incluso desse comando oalgoritmo &icar! completo)