Introdução a algorítimos
Descrição do Produto
Algoritmos
Na bibliografia, encontramos diferentes definições para algoritmo, algumas tratam
uma simples receita de bolo como um algoritmo, outros autores consideram esses
exemplos simplificações demasiadas do conceito e preferem associar o conceito de
algoritmo a soluções computacionais.
Neste aspecto, podemos expressar a solução de qualquer problema na forma de
algoritmo, desde o mais simples ao mais complexo e independente se solucionáveis
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 equação de primeiro grau e muitos outros.
Em todos os algoritmos são identificadas características comuns, que são séries
finitas e bem definidas de passos ou regras que, quando realizadas, produzem um
determinado resultado.
Neste trabalho preferimos a definição de algoritmo como sendo:
Um conjunto de ações com propriedades especiais e especificas
e com algumas estruturas padrões para controlar a ordem na
qual as ações são realizadas.
São propriedades de algoritmos:
ações simples e bem definidas (não ambíguas);
seqüência ordenada de ações;
seqüência finita de passos.
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
1
Exemplo de construção de algoritmo:
Neste tópico, introduzimos o conceito de algoritmo, através 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 construção
de algoritmos computacionais por mais complexo que seja a problema a ser
É importante que esse exemplo não seja simplesmente lido, mas entendido. A
perfeita compreensão 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 secretária uma
folha de papel com o seguinte conteúdo:
// instruções para descascar batatas para o jantar
pegue a cesta de batatas no armário;
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;
A secretária percebeu imediatamente que as instruções tem início e fim.
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
2
Chegou também a conclusão que deveria começar pelo início e que a primeira ação a
ser realizada deveria ser; "pegue a cesta de batatas no armário". Após realizar esta
primeira ação, percebeu que deveria seguir executando as ações encontradas linha
após linha.
Parece lógico e natural, mas ao chegar na quarta linha, a secretária percebe que
existem duas ações na mesma linha:
1. descasque uma batata;
2. coloque a batata descascada na bacia;
Qual delas realizar primeiro? Lendo as duas ações, a secretária conclui que não
poderia colocar a batata descascada na bacia antes de descasca-lá e desta forma
deveria fazer primeiro a ação "descasque uma batata".
Todavia, a secretária se dá conta de que, ler um conjunto de ações para saber a
ordem de execução das mesmas, além de não ser prático, pode não ser
determinante, ou seja, não definir claramente qual a ordem de execução. Observado
mais atentamente, a secretária percebe que duas ações são sempre separadas pelo
sinal de ";" (ponto e virgula). Também notou que, a ação que vinha após o ";",
deveria sempre ser executada depois da ação que aparecia antes do ponto e virgula.
A partir destas constatações, a secretária adotou então uma regra para seguir:
"sempre observar o ponto e virgula e somente realizar a ação
que vem depois, após realizar a ação que vem antes"
Adotando essa regra e seguindo as instruções da folha de papel deixada pela dona de
casa, a secretária obteve ao chegar a instrução de fim quatro batatas descascadas na
bacia, exatamente como solicitou a dona de casa, concluido então que:
"O ponto e virgula define a ordem na qual as ações devem ser executadas".
momento meditação
medite sobre o ponto e virgula
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
3
Agora imagine que, em um outro dia, a dona de casa resolva novamente fazer um
jantar para um número de convidados maior e necessita 20 batatas descascadas. É
notório que o algoritmo anterior não pode ser utilizado, pois somente produzirá 4
batatas descascadas. Deste modo, a dona de casa precisou elaborar um novo
algoritmo.
Para não escrever 20 vezes o par de ações:
descasque uma batata;
coloque a batata descascada na bacia;
a dona de casa elaborou o seguinte algoritmo:
Inicio // Algoritmo para descascar 20 batatas
pegue a cesta de batatas no armário;
pegue uma bacia para colocar as batatas descascadas;
pegue uma faca na gaveta;
repita repita
descasque uma batata;
coloque a batata descascada na bacia;
enquanto < núm de batatas descascadas for menor que 20 >;
A secretária executando o novo algoritmo, percebeu que a dona de casa introduziu
uma nova estrutura. Observando com atenção, e executando esta nova estrutura, a
secretária percebe trata-se de uma forma simplificada de representar um conjunto
de ações, que devem ser repetidas até uma condição ser satisfeita. Desta observação
a secretária concluiu que a especificação formal da estrutura de repetição deveria ser
algo do tipo:
repita
< ação 1 >;
< ação 2 >;
. . . .
enquanto < condição >
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
4
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 número 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 ocasião e entregou a secretária:
Inicio // Algoritmo para descascar N batatas
pergunte a dona de casa quantas batatas são necessárias;
pegue a cesta de batatas no armário;
pegue uma bacia para colocar as batatas descascadas;
pegue uma faca na gaveta;
repita repita
descasque uma batata;
coloque a batata descascada na bacia;
enquanto < número de batatas descascadas for insuficiente >;
O Algoritmo parecia perfeito para a dona de casa e no jantar seguinte deixou um
bilhete para a secretária comunicando que precisava batatas para o jantar e saiu de
casa confiante que ao voltar encontraria as batatas descascadas, visto que a
secretária tinha o algoritmo para solucionar este problema.
Entretanto ao voltar, ao invés de batatas descascadas, encontrou em cima da mesa a
folha de papel com o algoritmo para descascar batatas. Indignada, não restou a dona
de casa outra alternativa a não ser ela mesma descascar as batatas para o jantar.
No dia seguinte, ao indagar a secretária porque ela não havia descascado as batatas,
recebeu a seguinte resposta:
- Mas patroa, a primeira ação manda lhe perguntar quantas
batatas são necessárias, como a senhora não estava eu não
consegui executar a ação, em consequência não poderia
executar as outras ações, porque o ";" (ponto e virgula)
estabelece que a ação seguinte somente pode ser executada,
após a ação que vem antes do ";" ser executada.
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
5
Surpresa a dona de casa chega a conclusão que a secretária está com a razão e
resolve elaborar um novo algoritmo.
Inicio // Algoritmo para descascar N batatas
Se < a patroa não estiver em casa > então
ligue para o número: 048 8448 4884;
fimse;
pergunte a patroa quantas batatas são necessárias;
pegue a cesta de batatas no armário;
pegue uma bacia para colocar as batatas descascadas;
pegue uma faca na gaveta;
repita repita
descasque uma batata;
coloque a batata descascada na bacia;
enquanto < número de batatas descascadas for insuficiente >;
No jantar seguinte, ao executar o novo algoritmo a secretária percebe uma nova
construção que a ajuda a encontrar a dona de casa e pedir a ela quantas batatas são
necessárias. Analisando com detalhe ela percebe que a nova construção nada mais é
do que uma estrutura de tomada de decisão, na qual um determinado conjunto de
ações somente deve ser realizado, caso uma determinada condição seja avaliada
como verdadeira.
Se < condição > então
< ação 2 >;
. . . . .
fimse;
< ação 1 >;
Desta vez, a secretária 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 satisfatório, a dona de casa entendeu que seu algoritmo era
perfeito e resolveu considerá-lo definitivo.
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
6
Todavia a secretária percebeu que para ela responder a pergunta "o número de
batatas descascadas é suficiente", tinha que contar o número de batatas na bacia a
cada batata descascada. Para solucionar esse problema a secretária resolve modificar
o algoritmo da dona de casa:
// Algoritmo para descascar N batatas
pegue duas folhas de papel em branco;
folha_1 conterá o número de batatas descascadas, escreva zero;
Se < a patroa não estiver em casa > então
ligue para o número: 048 8448 4884;
fimse;
pergunte a patroa quantas batatas são necessárias,
escreva esse número na folha_2;
pegue a cesta de batatas no armário;
pegue uma bacia para colocar as batatas descascadas;
pegue uma faca na gaveta;
repita repita
descasque uma batata;
coloque a batata descascada na bacia;
pegue a folha_1;
some 1 ao número que está escrito na folha;
escreva o resultado na folha substituindo o valor anterior;
enquanto < número nas dias folhas forem diferentes >;
Com o novo algoritmo produzido pela secretária, finalmente a dona de casa e sua
secretária chegaram ao entendimento e passaram a adotar esse algoritmo como uma
solução definitiva para o problema de "descascar batatas".
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
7
Neste algoritmo podemos identificar duas características importantes:
1. A sequência de ações a serem executadas, que se constituem no algoritmo.
Observe ainda que, entre as ações do algoritmo, encontramos ações com
propriedades especiais, que são consideradas estruturas de controle, são elas:
a. Sequência: " ; " (ponto e virgura)
b. Alternativa: se então
c. Repetição: repita
que estabelece a ordem na qual as ações devem ser
executadas, determinando que a ação que vem após o
ponto e virgula, somente pode ser executada depois
que a ação que vem antes do ponto e virgula ter sido
executada com sucesso.
fimse
trata-se de uma estrutura de tomada de decisão, na
qual um conjunto de ações é executado, caso uma
determinada condição seja avaliada como verdadeira.
Enquanto
tratando-se de uma forma simplificada de representar
um conjunto de ações, que devem ser repetidas
enquanto uma condição for satisfeita.
Importante perceber, e entender, que essas três estruturas de controles, ainda que
pareçam simples, representam os conceitos básicos da elaboração de algoritmos, ou
seja; todo e qualquer algoritmo, por mais complexo que seja, será elaborado
utilizando essas três estruturas de controle, ou variantes delas.
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
8
2. A segunda característica importante é a existência de uma memória.
a. Folha 1 :: representa o número de batatas descascadas
b. Folha 2 :: representa o número de batatas necessárias
Observer que a memória, no caso as folha de papel, representa na verdade a
informação (também chamado de dado) relevante que existe no problema, e muitas
vezes necessária para viabilizar a contrução do algoritmo e controlar sua execução.
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
9
Exercícios Resolvidos
1. Exercícios com uso apenas de sequêncial simples
Observe, nos exercícios resolvidos abaixo, nossa recomendação de metodologia para
solução de problemas. Ainda que a solução de alguns exercícios possa parecer
simples, é importante entender a metodologia de solução para utilização da mesma
em problemas complexos mais adiante.
Exercício resolvido 1.01
Dado um número inteiro positivo, deseja-se conhecer o inteiro positivo que
represente o quadrado do número. Faça um algoritmo para expressar a solução.
Passo 1: Analisando e Entendendo o problema conclui-se que:
É desejado N2
, ou seja a operação matemática N elevado ao expoente 2
Passo 2: Encontrar e definir uma solução:
O quadrado de um número pode ser obtido pela multiplicação do
número por ele mesmo, ou seja; Quadrado de N é igual N x N.
Passo 3: Expressar a solução na forma de algoritmo:
inicio
pegar 2 folhas de papel em branco;
conheça o número 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
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
10
Exercício resolvido 1.02
Faça um algoritmo para calcular o IMC de uma pessoa.
Passo 1: Analisando e Entendendo o problema conclui-se que:
É desejado o indíce de massa corporal de uma pessoa.
Passo 2: Encontrar e definir uma solução:
O IMC é obtido, dividindo-se o peso da pessoa, por sua altura elevada
ao quadrado.
Passo 3: Expressar a solução na forma de algoritmo:
Inicio
pegar 4 folhas de papel em branco;
conheça o peso da pessoa e escreva na folha 1;
conheça 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
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
11
Exercício resolvido 1.03
Seu amigo vai viajar para o exterior e necessita aprender a converter moeda
extrangeira para REAIS. Faça 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 solução:
Valor em R$, é igual, ao valor em ME * índice de conversão
Em outras palavras, a conversão de moeda é obtida multiplicando-se o
valor do montante em Moeda Estrangeira, pelo equivalente unitário
desta moeda para com o REAL, ou seja, pelo índice de conversão da
moeda para o REAL, que é equivalente a saber quantos REAIS são
necessários para comprar uma unidade da moeda estrangeira.
Passo 3: Expressar a solução na forma de algoritmo:
inicio
pegar 3 folhas de papel em branco;
conheça o montante do valor em moeda estrangeira que deseja
converter e escreva na folha 1;
conheça o índice de conversão 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
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
12
2. Exercícios com uso de sequência simples e alternativa
Exercício resolvido 2.01
Dado um número, inteiro positivo maior que zero, Faça um algoritmo capaz de
deterninar se o número é 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 solução:
Um número é PAR se for divisível por 2. Desta forma a divisão do
número N por 2, deve ter como resto ZERO.
Passo 3: Expressar a solução na forma de algoritmo:
Inicio
pegar 2 folhas de papel em branco;
conheça o número a ser verificado e escrever na folha 1;
pegue o valor da folha 1 e calcule o resto da divisão por 2;
escreva o resto da divisão na folha 2;
se ( o valor da folha 2 for igual a zero ) entao
' o número é PAR '
senão
' o número é IMPAR ';
fimse
fim
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
13
Exercício resolvido 2.02
Para ser aprovado na disciplina, o aluno necessita nota 6,0 como nota mínina na
média das provas. Sabendo que são realizadas 2 provas, faça um algoritmo para
mostrar se o aluno esta 'APROVADO' ou 'REPROVADO'.
Passo 1: Analisando e Entendendo o problema conclui-se que:
É desejado calcular a média das aprova e ao final, mostrar se o aluno foi
aprovado na disciplina
Passo 2: Encontrar e definir uma solução:
São informadas as notas das provas, prova 1 e 2.
Deve calcular a média final, sendo a média calculada como a soma da
nota na prova_1 + nota na prova_2 e o resultado dividido por 2.
Caso a média seja igual ou superior a 6,0 o aluno está aprovado.
Passo 3: Expressar a solução na forma de algoritmo:
Inicio
pegar 3 folhas de papel em branco;
conheça a nota da prova 1 e escreve na folha 1;
conheça 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 ';
senão
' o aluno esta APROVADO ';
fimse
fim
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
14
Exercício resolvido 2.03
Dados dois lados de um triângulo Pitagórico, e a informação de qual a classe de
lado cada um representa, isto é; se cateto ou hipotenusa. Faça 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 triângulo 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 solução:
Conhecidos dois lados, e sendo identificados se cateto ou hipotenusa,
aplica-se a fórmula matemática do triângulo Pitagórico, h2
= a2
+ b2
.
Passo 3: Expressar a solução na forma de algoritmo:
Inicio
Pegue 6 folhas de papel;
conheça tipo e valor do lado a, escreva nas folha_1 e folha_2;
conheça 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
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
15
3. Exercícios com uso de sequência simples e repetição
Exercício resolvido 3.01
Deseja-se conhecer a sequência de números inteiros positivos de 1 (um) a N
Passo 1: Analisando e Entendendo o problema conclui-se que:
A sequência desejada é: 1, 2, 3, 4, ..., N
Passo 2: Encontrar e definir uma solução:
Definir o primeiro número da sequência 1;
Somar 1 ao primeiro número, obtendo o segundo 2;
Somar 1 ao segundo número, obtendo o terceiro 3;
Assim sucessivamente, até N, obtendo-se toda a sequência;
Passo 3: Expressar a solução na forma de algoritmo:
inicio
pegar 3 folhas de papel em branco;
na Folha 1 escreva 1, primeiro número da sequência;
descubra N, escreva na Folha 2;
repita
escreva na Folha 3 o conteúdo da Folha 1;
some 1 ao número da Folha 1;
escreva o resultado na Folha 1, substituindo o valor;
enquanto
fim
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
16
Exercício resolvido 3.02
Deseja-se conhecer o somatório dos número 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 solução:
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 somatório;
Passo 3: Expressar a solução na forma de algoritmo:
inicio
pegar 3 folhas de papel em branco;
descubra N, escreva na Folha 1;
na Folha 2 escreva 1, primeiro número a ser somado ;
na Folha 3 escreva zero, conterá o resultado do somatório;
repita
pegue o valor da Folha 3 e some ao valor da Folha 2;
escreva o resultado na folha 3, substituindo valor;
ao conteúdo 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
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
17
Exercício resolvido 3.03
Deseja-se conhecer o fatorial de um número 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 solução:
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 solução 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
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
18
4. Exercícios com uso de sequência simples, alternativa e repetição
Exercício resolvido 4.01
Deseja-se saber se um determinado número é primo
Passo 1: Analisando e Entendendo o problema conclui-se que:
Um número é primo se for divisivel somente por 1 e por ele mesmo
Passo 2: Encontrar e definir uma solução:
Dividir N (número a ser analisado) por todos os números entre 2 e N-1;
Caso N seja divisível por algum destes números, conclue-se que o
número não é primo.
Passo 3: Expressar a solução na forma de algoritmo:
Inicio
pegar 4 folhas de papel em branco;
descubra N, escreva na Folha 1;
na Folha 2 escreva 2, primeiro número 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 divisão e escreva na folha 4;
se ( o valor da folha 4 for diferente de zero ) entao
' escreva 'NÃO PRIMO ' na folha 3;
fimse;
some 1 ao conteúdo da folha 2, substitua na folha 2;
enquanto < folha 3 for = 'PRIMO' e folha 2 for menor que N >;
fim
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
19
Exercício resolvido 4.02
Em um jogo de bola ao cesto, ganha o jogador que alcançar 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 responsável 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 adversário,
- Caso a diferença seja menor que 2 pontos, a partida deve continuar
enquanto um jogador não tiver 2 pontos a mais que o outro.
Passo 2: Encontrar e definir uma solução:
A cada ponto marcado;
- verificar qual jogador fez ponto,
- anotar 1 ponto a mais para o jogador que marcou ponto,
- verificar se o jogador alcançou 11 pontos ou mais, sendo afirmativo, verificar
se o jogador tem 2 pontos a mais que o adversário,
- caso ambas as condições aconteçam a partida termina,
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
20
Passo 3: Expressar a solução na forma de algoritmo:
Inicio
pegar 3 folhas de papel em branco;
na folha1 escreva 0, número de pontos do jogador 1;
na folha2 escreva 0, número 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
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
21
Exercícios Propostos
1. Dados X e Y, dizer se X é divisível por Y
2. Conversão de grandezas e unidades de medidas, ex: metros para polegadas.
3. Calcular as raizes da equação: aX
4. Dados dois número X e Y, implementar uma calculadora com as 4 operações
5. Decompor um número em unidades, dezenas, centenas e milhares
6. Faça um programa para encontrar os divisores de um número.
7. Verificar quantos números 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: Não pode ser utilizadas fórmulas para cálculo 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 séries acima
2
+ bX + c = 0, dados a, b e c
10. Sua turma resolveu organizar uma festa para arrecadar fundos. Você foi escolhido(a)
para organizar e treinar os colegas que irão trabalhar na festa. Para tanto você deve
elaborar algoritmos, para entregar a esses colegas em cada tarefa.
Tarefa 1. Supervisão de venda de ingressos.
No caixa, irão trabalhar dois colegas, um para entregar e cobrar ingressos e outro
para supervisionar. Os Ingressos são 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 número de
ingressos vendidos e o valor arrecadado, por tipo de ingresso. Elabore o algoritmo
para ser entregue ao colega supervisor.
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
22
Tarefa 2. Supervisão da entrada na festa.
Na portaria, irão 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 são 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 número 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á vários postos espalhados para entrega de bebidas, onde irão
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 número 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 alcançar 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 responsável pela contagem de pontos da partida.
12. Em uma pesquisa realizada sobre alunos egressos na universidade, desejava-se saber
a média de idade dos alunos oriundos do segundo grau em escola pública e dos
alunos oriundos da escola privada. A ficha dos alunos continha, entre outras
informações, data de nascimento e escola de origem, se pública 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 adição de pigmentos. Neste equipamento somente pode ser
adicionado uma porção unitária de um pigmento por vez e de uma cor aleatória. Um
observador deve acompanhar, anotando o tipo de pigmento adicionado de modo a
suspender a adição dos mesmo quando satisfatória. Faca o algoritmo para o
observador, sabendo que sao necessárias três tipos de pigmentos; 55% do pigmento
A, 30% do B e 15% do C.
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO
Página
23
Lihat lebih banyak...
Comentários