Você está na página 1de 23

INTRODUO a PROGRAMAO de COMPUTADORES

para CURSOS de ENGENHARIA e de AUTOMAO



Pgina

1

Algoritmos

Na bibliografia, encontramos diferentes definies para algoritmo, algumas tratam
uma simples receita de bolo como um algoritmo, outros autores consideram esses
exemplos simplificaes demasiadas do conceito e preferem associar o conceito de
algoritmo a solues computacionais.
Neste aspecto, podemos expressar a soluo de qualquer problema na forma de
algoritmo, desde o mais simples ao mais complexo e independente se solucionveis
no universo real, ou no universo computacional.
No dia-a-dia nos deparamos com diversos problemas que podem ser expressos na
forma de algoritmos, alguns simples rotinas como escovar os dentes, ir a faculdade,
preparar um suco de frutas, uma receita para fazer salada de batatas, as regras para
calcular uma equao de primeiro grau e muitos outros.
Em todos os algoritmos so identificadas caractersticas comuns, que so sries
finitas e bem definidas de passos ou regras que, quando realizadas, produzem um
determinado resultado.
Neste trabalho preferimos a definio de algoritmo como sendo:

Um conjunto de aes com propriedades especiais e especificas
e com algumas estruturas padres para controlar a ordem na
qual as aes so realizadas.

So propriedades de algoritmos:
aes simples e bem definidas (no ambguas);
seqncia ordenada de aes;
seqncia finita de passos.

INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

2

Exemplo de construo de algoritmo:

Neste tpico, introduzimos o conceito de algoritmo, atravs de um problema do dia a
dia. Apesar de parecer simples, o exemplo permite expor de forma progressiva,
detalhada e completa, todas as propriedades e conceitos envolvidos na construo
de algoritmos computacionais por mais complexo que seja a problema a ser
resolvido.
importante que esse exemplo no seja simplesmente lido, mas entendido. A
perfeita compreenso dos conceitos aqui introduzidos, ser fundamental para o
aprendizado da arte de elaborar algoritmos e vai acompanh-lo por toda sua vida
como programador de computador, medite sobre eles.

Vamos ao exemplo:
Imagine que uma dona de casa deseja fazer um jantar para alguns convidados. Como
o prato a ser preparado inclui batatas, ela necessita de batatas descascadas. Para
resolver esse problema, a dona de casa elaborou e entregou a sua secretria uma
folha de papel com o seguinte contedo:
// instrues para descascar batatas para o jantar
In In In In cio cio cio cio
pegue a cesta de batatas no armrio;
pegue uma bacia para colocar as batatas descascadas;
pegue uma faca na gaveta;
descasque uma batata; coloque a batata descascada na bacia;
descasque uma batata; coloque a batata descascada na bacia;
descasque uma batata; coloque a batata descascada na bacia;
descasque uma batata; coloque a batata descascada na bacia;

Fim Fim Fim Fim


A secretria percebeu imediatamente que as instrues tem incio e fim.

INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

3

Chegou tambm a concluso que deveria comear pelo incio e que a primeira ao a
ser realizada deveria ser; pegue a cesta de batatas no armrio. Aps realizar esta
primeira ao, percebeu que deveria seguir executando as aes encontradas linha
aps linha.

Parece lgico e natural, mas ao chegar na quarta linha, a secretria percebe que
existem duas aes na mesma linha:

1. descasque uma batata;
2. coloque a batata descascada na bacia;

Qual delas realizar primeiro? Lendo as duas aes, a secretria conclui que no
poderia colocar a batata descascada na bacia antes de descasca-l e desta forma
deveria fazer primeiro a ao descasque uma batata.

Todavia, a secretria se d conta de que, ler um conjunto de aes para saber a
ordem de execuo das mesmas, alm de no ser prtico, pode no ser
determinante, ou seja, no definir claramente qual a ordem de execuo. Observado
mais atentamente, a secretria percebe que duas aes so sempre separadas pelo
sinal de ; (ponto e virgula). Tambm notou que, a ao que vinha aps o ;,
deveria sempre ser executada depois da ao que aparecia antes do ponto e virgula.

A partir destas constataes, a secretria adotou ento uma regra para seguir:

sempre observar o ponto e virgula e somente realizar a ao
que vem depois, aps realizar a ao que vem antes


Adotando essa regra e seguindo as instrues da folha de papel deixada pela dona de
casa, a secretria obteve ao chegar a instruo de fim quatro batatas descascadas na
bacia, exatamente como solicitou a dona de casa, concluido ento que:


O ponto e virgula define a ordem na qual as aes devem ser executadas.




momento meditao


medite sobre o ponto e virgula


INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

4

Agora imagine que, em um outro dia, a dona de casa resolva novamente fazer um
jantar para um nmero de convidados maior e necessita 20 batatas descascadas.
notrio que o algoritmo anterior no pode ser utilizado, pois somente produzir 4
batatas descascadas. Deste modo, a dona de casa precisou elaborar um novo
algoritmo.

Para no escrever 20 vezes o par de aes:

descasque uma batata;
coloque a batata descascada na bacia;

a dona de casa elaborou o seguinte algoritmo:

Inicio Inicio Inicio Inicio // Algoritmo para descascar 20 batatas
pegue a cesta de batatas no armrio;
pegue uma bacia para colocar as batatas descascadas;
pegue uma faca na gaveta;
repita repita repita repita
descasque uma batata;
coloque a batata descascada na bacia;
enquanto enquanto enquanto enquanto < nm de batatas descascadas for menor que 20 >;

Fim Fim Fim Fim


A secretria executando o novo algoritmo, percebeu que a dona de casa introduziu
uma nova estrutura. Observando com ateno, e executando esta nova estrutura, a
secretria percebe trata-se de uma forma simplificada de representar um conjunto
de aes, que devem ser repetidas at uma condio ser satisfeita. Desta observao
a secretria concluiu que a especificao formal da estrutura de repetio deveria ser
algo do tipo:

repita repita repita repita
< ao 1 >;
< ao 2 >;
. . . .
enquanto enquanto enquanto enquanto < condio >

INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

5

Entretanto, a dona casa percebe que agora ela tem dois algoritmos, um para
descascar 4 batatas e outro para descascar 20 batatas. Se em outro jantar ela
necessitar um nmero de batatas diferente de 4 ou 20, ter que elaborar um terceiro
algoritmo. Para resolver esse problema, a dona de casa elaborou um algoritmo para
ser utilizado em qualquer ocasio e entregou a secretria:


Inicio Inicio Inicio Inicio // Algoritmo para descascar N batatas
pergunte a dona de casa quantas batatas so necessrias;
pegue a cesta de batatas no armrio;
pegue uma bacia para colocar as batatas descascadas;
pegue uma faca na gaveta;
repita repita repita repita
descasque uma batata;
coloque a batata descascada na bacia;
enquanto enquanto enquanto enquanto < nmero de batatas descascadas for insuficiente >;

Fim Fim Fim Fim


O Algoritmo parecia perfeito para a dona de casa e no jantar seguinte deixou um
bilhete para a secretria comunicando que precisava batatas para o jantar e saiu de
casa confiante que ao voltar encontraria as batatas descascadas, visto que a
secretria tinha o algoritmo para solucionar este problema.

Entretanto ao voltar, ao invs de batatas descascadas, encontrou em cima da mesa a
folha de papel com o algoritmo para descascar batatas. Indignada, no restou a dona
de casa outra alternativa a no ser ela mesma descascar as batatas para o jantar.

No dia seguinte, ao indagar a secretria porque ela no havia descascado as batatas,
recebeu a seguinte resposta:

- Mas patroa, a primeira ao manda lhe perguntar quantas
batatas so necessrias, como a senhora no estava eu no
consegui executar a ao, em consequncia no poderia
executar as outras aes, porque o ; (ponto e virgula)
estabelece que a ao seguinte somente pode ser executada,
aps a ao que vem antes do ; ser executada.

INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

6

Surpresa a dona de casa chega a concluso que a secretria est com a razo e
resolve elaborar um novo algoritmo.

Inicio Inicio Inicio Inicio // Algoritmo para descascar N batatas
Se Se Se Se < a patroa no estiver em casa > ento ento ento ento
ligue para o nmero: 048 8448 4884;
f ff fimse imse imse imse;
pergunte a patroa quantas batatas so necessrias;
pegue a cesta de batatas no armrio;
pegue uma bacia para colocar as batatas descascadas;
pegue uma faca na gaveta;
repita repita repita repita
descasque uma batata;
coloque a batata descascada na bacia;
enquanto enquanto enquanto enquanto < nmero de batatas descascadas for insuficiente >;

Fim Fim Fim Fim


No jantar seguinte, ao executar o novo algoritmo a secretria percebe uma nova
construo que a ajuda a encontrar a dona de casa e pedir a ela quantas batatas so
necessrias. Analisando com detalhe ela percebe que a nova construo nada mais
do que uma estrutura de tomada de deciso, na qual um determinado conjunto de
aes somente deve ser realizado, caso uma determinada condio seja avaliada
como verdadeira.

Se Se Se Se < condio > ento ento ento ento
< ao 1 >;
< ao 2 >;
. . . . .
f ff fi ii imse mse mse mse;


Desta vez, a secretria conseguiu executar o algoritmo at o final com sucesso e
deixar as batatas descascadas para a dona de casa realizar seu jantar.

Diante deste resultado satisfatrio, a dona de casa entendeu que seu algoritmo era
perfeito e resolveu consider-lo definitivo.
INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

7

Todavia a secretria percebeu que para ela responder a pergunta o nmero de
batatas descascadas suficiente, tinha que contar o nmero de batatas na bacia a
cada batata descascada. Para solucionar esse problema a secretria resolve modificar
o algoritmo da dona de casa:


// Algoritmo para descascar N batatas


Inicio Inicio Inicio Inicio

pegue duas folhas de papel em branco;
folha_1 11 1 conter o nmero de batatas descascadas, escreva zero;
Se Se Se Se < a patroa no estiver em casa > ento ento ento ento
ligue para o nmero: 048 8448 4884;
fimse fimse fimse fimse;
pergunte a patroa quantas batatas so necessrias,
escreva esse nmero na folha_2 22 2; ;; ;
pegue a cesta de batatas no armrio;
pegue uma bacia para colocar as batatas descascadas;
pegue uma faca na gaveta;
repita repita repita repita
descasque uma batata;
coloque a batata descascada na bacia;
pegue a folha_1 11 1;
some 1 11 1 ao nmero que est escrito na folha;
escreva o resultado na folha substituindo o valor anterior;
enquanto enquanto enquanto enquanto < nmero nas dias folhas forem diferentes >;

Fim Fim Fim Fim


Com o novo algoritmo produzido pela secretria, finalmente a dona de casa e sua
secretria chegaram ao entendimento e passaram a adotar esse algoritmo como uma
soluo definitiva para o problema de descascar batatas.

INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

8

Neste algoritmo podemos identificar duas caractersticas importantes:

1. A sequncia de aes a serem executadas, que se constituem no algoritmo.


Observe ainda que, entre as aes do algoritmo, encontramos aes com
propriedades especiais, que so consideradas estruturas de controle, so elas:


a. Sequncia: ; (ponto e virgura)

que estabelece a ordem na qual as aes devem ser
executadas, determinando que a ao que vem aps o
ponto e virgula, somente pode ser executada depois
que a ao que vem antes do ponto e virgula ter sido
executada com sucesso.


b. Alternativa: se <condio> ento
<conjunto de aes>
fimse

trata-se de uma estrutura de tomada de deciso, na
qual um conjunto de aes executado, caso uma
determinada condio seja avaliada como verdadeira.


c. Repetio: repita
<conjunto de aes>
Enquanto <condio>

tratando-se de uma forma simplificada de representar
um conjunto de aes, que devem ser repetidas
enquanto uma condio for satisfeita.


Importante perceber, e entender, que essas trs estruturas de controles, ainda que
paream simples, representam os conceitos bsicos da elaborao de algoritmos, ou
seja; todo e qualquer algoritmo, por mais complexo que seja, ser elaborado
utilizando essas trs estruturas de controle, ou variantes delas.


INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

9


2. A segunda caracterstica importante a existncia de uma memria.

a. Folha 1 :: representa o nmero de batatas descascadas
b. Folha 2 :: representa o nmero de batatas necessrias


Observer que a memria, no caso as folha de papel, representa na verdade a
informao (tambm chamado de dado) relevante que existe no problema, e muitas
vezes necessria para viabilizar a contruo do algoritmo e controlar sua execuo.



INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

10

Exerccios Resolvidos

1. Exerccios com uso apenas de sequncial simples
Observe, nos exerccios resolvidos abaixo, nossa recomendao de metodologia para
soluo de problemas. Ainda que a soluo de alguns exerccios possa parecer
simples, importante entender a metodologia de soluo para utilizao da mesma
em problemas complexos mais adiante.

Exerccio resolvido 1.01
Dado um nmero inteiro positivo, deseja-se conhecer o inteiro positivo que
represente o quadrado do nmero. Faa um algoritmo para expressar a soluo.

Passo 1: Analisando e Entendendo o problema conclui-se que:
desejado N
2
, ou seja a operao matemtica N elevado ao expoente 2
Passo 2: Encontrar e definir uma soluo:
O quadrado de um nmero pode ser obtido pela multiplicao do
nmero por ele mesmo, ou seja; Quadrado de N igual N x N.
Passo 3: Expressar a soluo na forma de algoritmo:
inicio
pegar 2 folhas de papel em branco;
conhea o nmero desejado e escreva na folha 1;
pegue o valor da folha 1;
multiplique o valor por ele mesmo;
escreva o resultado na folha 2;
fim

INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

11

Exerccio resolvido 1.02

Faa um algoritmo para calcular o IMC de uma pessoa.

Passo 1: Analisando e Entendendo o problema conclui-se que:
desejado o indce de massa corporal de uma pessoa.

Passo 2: Encontrar e definir uma soluo:
O IMC obtido, dividindo-se o peso da pessoa, por sua altura elevada
ao quadrado.

Passo 3: Expressar a soluo na forma de algoritmo:
Inicio

pegar 4 folhas de papel em branco;
conhea o peso da pessoa e escreva na folha 1;
conhea a altura da pessoa e escreva na folha 2;
pegue o valor da folha 2;
multiplique o valor por ele mesmo,
escreva o resultado na folha 3;
divida o valor da folha 1 pelo valor da folha 3;
escreva o resultado na folha 4;
fim

INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

12

Exerccio resolvido 1.03
Seu amigo vai viajar para o exterior e necessita aprender a converter moeda
extrangeira para REAIS. Faa um algoritmo para ajudar seu amigo.

Passo 1: Analisando e Entendendo o problema conclui-se que:
Meu amigo vai desejar converter uma quantia de dinheiro de uma
determinada moeda estrangeira para o REAL, moeda brasileira.

Passo 2: Encontrar e definir uma soluo:
Valor em R$, igual, ao valor em ME * ndice de converso
Em outras palavras, a converso de moeda obtida multiplicando-se o
valor do montante em Moeda Estrangeira, pelo equivalente unitrio
desta moeda para com o REAL, ou seja, pelo ndice de converso da
moeda para o REAL, que equivalente a saber quantos REAIS so
necessrios para comprar uma unidade da moeda estrangeira.

Passo 3: Expressar a soluo na forma de algoritmo:
inicio
pegar 3 folhas de papel em branco;
conhea o montante do valor em moeda estrangeira que deseja
converter e escreva na folha 1;
conhea o ndice de converso da moeda estrangeira para o
REAL, escreva na folha 2;
pegue o valor da folha 1 e multiplique pelo valor da folha 2,
escreva o resultado na folha 3;
fim

INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

13

2. Exerccios com uso de sequncia simples e alternativa

Exerccio resolvido 2.01
Dado um nmero, inteiro positivo maior que zero, Faa um algoritmo capaz de
deterninar se o nmero PAR ou IMPAR.

Passo 1: Analisando e Entendendo o problema conclui-se que:
desejado verificar se um determinado N PAR ou IMPAR

Passo 2: Encontrar e definir uma soluo:
Um nmero PAR se for divisvel por 2. Desta forma a diviso do
nmero N por 2, deve ter como resto ZERO.

Passo 3: Expressar a soluo na forma de algoritmo:
Inicio

pegar 2 folhas de papel em branco;
conhea o nmero a ser verificado e escrever na folha 1;
pegue o valor da folha 1 e calcule o resto da diviso por 2;
escreva o resto da diviso na folha 2;
se ( o valor da folha 2 for igual a zero ) entao
o nmero PAR
seno
o nmero IMPAR ;
fimse
fim

INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

14

Exerccio resolvido 2.02
Para ser aprovado na disciplina, o aluno necessita nota 6,0 como nota mnina na
mdia das provas. Sabendo que so realizadas 2 provas, faa um algoritmo para
mostrar se o aluno esta APROVADO ou REPROVADO.

Passo 1: Analisando e Entendendo o problema conclui-se que:
desejado calcular a mdia das aprova e ao final, mostrar se o aluno foi
aprovado na disciplina
Passo 2: Encontrar e definir uma soluo:
So informadas as notas das provas, prova 1 e 2.
Deve calcular a mdia final, sendo a mdia calculada como a soma da
nota na prova_1 + nota na prova_2 e o resultado dividido por 2.
Caso a mdia seja igual ou superior a 6,0 o aluno est aprovado.

Passo 3: Expressar a soluo na forma de algoritmo:
Inicio

pegar 3 folhas de papel em branco;
conhea a nota da prova 1 e escreve na folha 1;
conhea a nota da prova 2 e escreva na folha 2;
ao valor folha_1, some o valor folha_2 e divida a soma por 2;
escreva o resultado na folha 3;
se ( o valor da folha 3 for menor que 6,0 ) entao
o aluno esta REPROVADO ;
seno
o aluno esta APROVADO ;
fimse
fim


INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

15

Exerccio resolvido 2.03
Dados dois lados de um tringulo Pitagrico, e a informao de qual a classe de
lado cada um representa, isto ; se cateto ou hipotenusa. Faa um algoritmo
para determinar o valor do terceiro lado.

Passo 1: Analisando e Entendendo o problema conclui-se que:
desejado calcular o terceiro lado de um tringulo de Pitagoras, sendo
dado dois lados. Sabe-se ainda, para cada lado informado, se o lado
cateto ou hipotenusa.
Passo 2: Encontrar e definir uma soluo:
Conhecidos dois lados, e sendo identificados se cateto ou hipotenusa,
aplica-se a frmula matemtica do tringulo Pitagrico, h
2
= a
2
+ b
2
.
Passo 3: Expressar a soluo na forma de algoritmo:
Inicio
Pegue 6 folhas de papel;
conhea tipo e valor do lado a, escreva nas folha_1 e folha_2;
conhea tipo e valor do lado b, escreva nas folha_3 e folha_4;
escreva cateto na folha_5;
se ( folha_1 hipotenusa ) entao
folha_6 = folha_2 * folha_2 - folha_4 * folha_4;
fimse
se ( folha_3 hipotenusa ) entao
folha_6 = folha_4 * folha_4 - folha_2 * folha_2;
fimse
se ( folha_1 cateto e folha_3 cateto ) entao
folha_6 = folha_2 * folha_2 + folha_4 * folha_4;
escreva hipotenusa na folha_5;
fimse;
extraia raiz quadrada do valor escrito na folha_6;
escreva resultado na folha_6;
fim
INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

16

3. Exerccios com uso de sequncia simples e repetio

Exerccio resolvido 3.01
Deseja-se conhecer a sequncia de nmeros inteiros positivos de 1 (um) a N

Passo 1: Analisando e Entendendo o problema conclui-se que:
A sequncia desejada : 1, 2, 3, 4, ..., N

Passo 2: Encontrar e definir uma soluo:
Definir o primeiro nmero da sequncia 1;
Somar 1 ao primeiro nmero, obtendo o segundo 2;
Somar 1 ao segundo nmero, obtendo o terceiro 3;
Assim sucessivamente, at N, obtendo-se toda a sequncia;

Passo 3: Expressar a soluo na forma de algoritmo:

inicio
pegar 3 folhas de papel em branco;
na Folha 1 escreva 1, primeiro nmero da sequncia;
descubra N, escreva na Folha 2;
repita
escreva na Folha 3 o contedo da Folha 1;
some 1 ao nmero da Folha 1;
escreva o resultado na Folha 1, substituindo o valor;
enquanto <valor da Folha 1 for menor que valor da Folha 2>
fim

INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

17

Exerccio resolvido 3.02
Deseja-se conhecer o somatrio dos nmero de 1 (um) a N

Passo 1: Analisando e Entendendo o problema conclui-se que:
O resultado desejado : 1 + 2 + 3 + 4 + ... + N

Passo 2: Encontrar e definir uma soluo:
Somar 1 + 2;
Ao resultado de 1 + 2, somar 3;
Ao resultado de 1 + 2 + 3, somar 4
Ao resultado de 1 + 2 + 3 + 4, somar 5;
assim sucessivamente, at somar o valor N, obtendo o somatrio;

Passo 3: Expressar a soluo na forma de algoritmo:

inicio
pegar 3 folhas de papel em branco;
descubra N, escreva na Folha 1;
na Folha 2 escreva 1, primeiro nmero a ser somado ;
na Folha 3 escreva zero, conter o resultado do somatrio;
repita
pegue o valor da Folha 3 e some ao valor da Folha 2;
escreva o resultado na folha 3, substituindo valor;
ao contedo da folha 2, some 1 e escreva o resltado na
folha 2, substituindo o valor;
enquanto < valor da Folha 2 for menor ou igual a Folha 1 >
fim

INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

18

Exerccio resolvido 3.03

Deseja-se conhecer o fatorial de um nmero de N qualquer

Passo 1: Analisando e Entendendo o problema conclui-se que:
O resultado desejado : N * (N-1) * (N-2) * ... * 3 * 2 * 1

Passo 2: Encontrar e definir uma soluo:
Define-se N como sendo o resultado fatorial desejado;
Ao N, diminuimos 1, obtendo N-1 e multiplicamos ao fatorial;
Ao N-1, diminuimos 1, obtendo N-2 e multiplicamos ao fatorial;
Assim sucessivamente, enquanto N-k seja maior que 0 (zero);

Passo 3: Expressar a soluo na forma de algoritmo:

inicio
pegar 2 folhas de papel em branco;
descubra N, escreva na Folha 1;
Na folha 2 escreva 1, conter o fatorial;
repita
pegue o valor da Folha 2, multiplique pelo valor da Folha 1;
escreva o resultado na folha 2, substituindo o valor;
peqgue o conteudo da folha 1, diminua 1;
escreva o resultado na folha 1, substituindo o valor;
enquanto < valor da Folha 1 for maior que 0 (zero) >
fim


INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

19

4. Exerccios com uso de sequncia simples, alternativa e repetio

Exerccio resolvido 4.01
Deseja-se saber se um determinado nmero primo
Passo 1: Analisando e Entendendo o problema conclui-se que:
Um nmero primo se for divisivel somente por 1 e por ele mesmo
Passo 2: Encontrar e definir uma soluo:
Dividir N (nmero a ser analisado) por todos os nmeros entre 2 e N-1;
Caso N seja divisvel por algum destes nmeros, conclue-se que o
nmero no primo.
Passo 3: Expressar a soluo na forma de algoritmo:

Inicio

pegar 4 folhas de papel em branco;
descubra N, escreva na Folha 1;
na Folha 2 escreva 2, primeiro nmero a dividir N;
na Folha 3 escreva PRIMO, assume-se que o N primo;
repita
pegue o valor da folha 1, divida pelo valor da folha 2,
encontrando o resto da diviso e escreva na folha 4;
se ( o valor da folha 4 for diferente de zero ) entao
escreva NO PRIMO na folha 3;
fimse;
some 1 ao contedo da folha 2, substitua na folha 2;
enquanto < folha 3 for = PRIMO e folha 2 for menor que N >;
fim


INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

20

Exerccio resolvido 4.02

Em um jogo de bola ao cesto, ganha o jogador que alcanar 11 pontos primeiro.
Entretanto se a vantagem de pontos for menor que 2 pontos, o jogo deve continuar at
que um dos jogadores tenha 2 pontos a mais o outro. Escreva o algoritmo para ser
entregue ao juiz responsvel pela contagem de pontos da partida.

Passo 1: Analisando e Entendendo o problema conclui-se que:
- Jogador ganha 1 ponto a cada bola que acerta o cesto,
- A partida termina quando um dos jogadores fizer 11 pontos e desde que
tenha 2 pontos de vantagem sobre o jogador adversrio,
- Caso a diferena seja menor que 2 pontos, a partida deve continuar
enquanto um jogador no tiver 2 pontos a mais que o outro.

Passo 2: Encontrar e definir uma soluo:
A cada ponto marcado;

- verificar qual jogador fez ponto,
- anotar 1 ponto a mais para o jogador que marcou ponto,
- verificar se o jogador alcanou 11 pontos ou mais, sendo afirmativo, verificar
se o jogador tem 2 pontos a mais que o adversrio,
- caso ambas as condies aconteam a partida termina,

INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

21

Passo 3: Expressar a soluo na forma de algoritmo:

Inicio

pegar 3 folhas de papel em branco;
na folha1 escreva 0, nmero de pontos do jogador 1;
na folha2 escreva 0, nmero de pontos do jogador 2;
repita
se ( ponto foi do jogador 1 ) entao
some 1 ao numero da folha1,
escreva o resultado na folha1, substituindo o valor;
fimse
se ( ponto foi do jogador 2 ) entao
some 1 ao numero da folha2,
escreva o resultado na folha2, substituindo o valor;
fimse
diminua do valor da folha2 o valor da folha1, escreva na folha3;
se ( valor folha3 for negativo ) entao
escreva na folha3, valor da folha1 valor da folha2;
fimse
enquanto ( ( folha1 < 11 ) e ( folha2 < 11 ) ou ( folha3 < 2 ) );

fim


INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

22

Exerccios Propostos

1. Dados X e Y, dizer se X divisvel por Y
2. Converso de grandezas e unidades de medidas, ex: metros para polegadas.
3. Calcular as raizes da equao: aX
2
+ bX + c = 0, dados a, b e c
4. Dados dois nmero X e Y, implementar uma calculadora com as 4 operaes
5. Decompor um nmero em unidades, dezenas, centenas e milhares
6. Faa um programa para encontrar os divisores de um nmero.
7. Verificar quantos nmeros inteiros existem entre 13 e 247, multiplos de 3
8. Para as series abaixo, elabore algoritmos e implemente programas para determinar o
i-simo elemento.
Obs: No pode ser utilizadas frmulas para clculo do i-simo elemento
01: 1, 4, 7, 10, 13, 16, 19, ...
02: 20, 12, 4, -4, -12, -20, -28, ...
03: 1, 2, 3, 5, 8, 13, 21, ...
04: invente series
9. Determine o i-simo elemento das sries acima


10. Sua turma resolveu organizar uma festa para arrecadar fundos. Voc foi escolhido(a)
para organizar e treinar os colegas que iro trabalhar na festa. Para tanto voc deve
elaborar algoritmos, para entregar a esses colegas em cada tarefa.

Tarefa 1. Superviso de venda de ingressos.

No caixa, iro trabalhar dois colegas, um para entregar e cobrar ingressos e outro
para supervisionar. Os Ingressos so simples papeis em branco onde o colega que
entrega os ingressos coloca uma das letras F ou M, para indicar o tipo de ingresso,
cobrando R$ 5,00 e R$ 10,00 respectivamente. O colega que supervisiona, deve
observar as vendas e anotar de modo a ter sempre o controle do nmero de
ingressos vendidos e o valor arrecadado, por tipo de ingresso. Elabore o algoritmo
para ser entregue ao colega supervisor.





INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO

Pgina

23

Tarefa 2. Superviso da entrada na festa.

Na portaria, iro trabalhar dois colegas, um para receber os ingressos e conferir se a
pessoa que est ingressando, est entregando o ingresso correto e outro para
supervisionar. Os Ingressos so simples papeis em branco contendo uma das letras
G ou B, para indicar o tipo de ingresso, valendo R$ 6,00 e R$ 8,00 respectivamente.
O colega que supervisiona, deve observar os ingressos recebidos e anotar de modo
a ter sempre o controle do nmero de pessoas que ingressaram na festa e o valor
arrecadado, por tipo de ingresso. Elabore o algoritmo para ser entregue ao colega
supervisor.

Tarefa 3. Postos de entrega de bebidas.

Na festa haver vrios postos espalhados para entrega de bebidas, onde iro
trabalhar dois colegas, um para entregar bebida e outro para supervisionar. O
colega que entrega bebidas, trocar um copo de gua por uma ficha Verde e uma
lata de cerveja por uma ficha Vermelha. O colega que supervisiona, deve observar
as fichas recebidas e anotar de modo a ter sempre o controle do nmero e tipo de
bebidas entregues. Elabore os algoritmos para serem entregues aos dois colegas.

11. Em um jogo de ping pong, ganha o jogador que alcanar 21 pontos primeiro.
Entretanto se a vantagem de pontos for menor que 2 pontos, o jogo deve continuar
at que um dos jogadores tenha 2 pontos a mais o outro. Escreva o algoritmo para
ser entregue ao juiz responsvel pela contagem de pontos da partida.

12. Em uma pesquisa realizada sobre alunos egressos na universidade, desejava-se saber
a mdia de idade dos alunos oriundos do segundo grau em escola pblica e dos
alunos oriundos da escola privada. A ficha dos alunos continha, entre outras
informaes, data de nascimento e escola de origem, se pblica ou privada. Elabore
o algoritmo para ser entregue as pessoas que fazem o levantamento, supordo que
cada pessoa recebe uma quantidade limitada de ficha para analisar.

13. Dado N elabore um algoritmo para calcular Z, sabendo-se que:
Z = 1 / 1! + 1 / 2! + 1 / 3! + 1 / 4! + . . . + 1 / N!
14. Um equipamento misturador e' utilizado para gerar novas cores de tinta a partir de
uma cor base e da adio de pigmentos. Neste equipamento somente pode ser
adicionado uma poro unitria de um pigmento por vez e de uma cor aleatria. Um
observador deve acompanhar, anotando o tipo de pigmento adicionado de modo a
suspender a adio dos mesmo quando satisfatria. Faca o algoritmo para o
observador, sabendo que sao necessrias trs tipos de pigmentos; 55% do pigmento
A, 30% do B e 15% do C.