Buscar

Algoritmo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
 
Página 
 
1 
 
Módulo 2: 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 
 
2 
 
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 o problema a ser 
resolvido. 
É 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 
Início 
 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; 
 
Fim 
 
 
A secretária percebeu imediatamente que as instruções tem início e fim. 
 
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 
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
 
Página 
 
3 
 
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 
 
4 
 
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 
 descasque uma batata; 
 coloque a batata descascada na bacia; 
 enquanto < número de batatas descascadas for menor que 20 >; 
 
Fim 
 
 
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 enquanto uma condição é 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 
 
5 
 
Entretanto, a dona casa percebe que agora ela tem dois algoritmos, um para 
descascar 4 batatas e outro para descascar 20 batatas. Desta forma, 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 
 descasque uma batata; 
 coloque a batata descascada na bacia; 
 enquanto < número de batatas descascadas for insuficiente >; 
 
Fim 
 
 
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 solucionareste 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. 
 
Surpresa a dona de casa chega a conclusão que a secretária está com a razão e 
resolve elaborar um novo algoritmo. 
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
 
Página 
 
6 
 
 
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 
 descasque uma batata; 
 coloque a batata descascada na bacia; 
 enquanto < número de batatas descascadas for insuficiente >; 
 
Fim 
 
 
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 1 >; 
 < ação 2 >; 
 . . . . . 
 fimse; 
 
 
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. 
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: 
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
 
Página 
 
7 
 
 
 
 // Algoritmo para descascar N batatas 
 
 
 Inicio 
 
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 
 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 >; 
 
Fim 
 
 
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”. 
 
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: 
 
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
 
Página 
 
8 
 
 
a. Sequência: “ ; ” (ponto e virgura) 
 
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. 
 
 
b. Alternativa: se <condição> então 
 <conjunto de ações> 
 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. 
 
 
c. Repetição: repita 
 <conjunto de ações> 
Enquanto <condição> 
 
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. 
 
 
 
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 
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
 
Página 
 
9 
 
 
 
Observe 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 
 
10 
 
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 
 
11 
 
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 folha2; 
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 
 
12 
 
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 
 
13 
 
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 
 
Exercício resolvido 2.02 
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
 
Página 
 
14 
 
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 
 
 
Exercício resolvido 2.03 
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
 
Página 
 
15 
 
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 
3. Exercícios com uso de sequência simples e repetição 
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
 
Página 
 
16 
 
 
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 <valor da Folha 1 for <= ao valor da Folha 2> 
 fim 
 
Exercício resolvido 3.02 
Deseja-se conhecer o somatório dos número de 1 (um) a N 
 
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
 
Página 
 
17 
 
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 escrevao resltado na 
folha 2, substituindo o valor; 
 enquanto < valor da Folha 2 for menor ou igual a Folha 1 > 
 fim 
 
Exercício resolvido 3.03 
 
Deseja-se conhecer o fatorial de um número de N qualquer 
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
 
Página 
 
18 
 
 
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 
 
 
4. Exercícios com uso de sequência simples, alternativa e repetição 
 
Exercício resolvido 4.01 
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
 
Página 
 
19 
 
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 igual a 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 
 
 
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é 
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
 
Página 
 
20 
 
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 
 
21 
 
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 
 
22 
 
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: aX2 + bX + c = 0, dados a, b e c 
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 gerar as séries. 
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 
Obs: Não pode ser utilizadas fórmulas para cálculo do i-ésimo elemento 
 
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 
 
23 
 
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 observaras 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 é 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 
 
24 
 
15. Uma sequência de inteiros positivos é k-alternante se for composta alternadamente 
por segmentos de números pares de tamanho k e segmentos de números ímpares de 
tamanho k. 
 
1. Analisar e entender o problema no universo REAL, 
2. Encontrar e definir uma solução, 
Para o problema acima, apresente solução para os itens 1 e 2. 
Exemplos: 
A sequência 1 3 6 8 9 11 2 4 1 7 6 8 é 2-alternante. 
A sequência 2 1 4 7 8 9 12 é 1-alternante. 
A sequência 1 3 5 4 6 8 é 3-alternante. 
A sequência 4 2 3 1 6 4 2 9 3 não é alternante. 
 
Dado n > 1 e uma sequência com n inteiros, faça um algoritmo para verificar se existe 
um inteiro k > 1 tal que a sequência é k-alternante. Caso a sequência seja alternante, 
diga o valor de k. 
 
 
16. Em um Restaurante Universitário, com auto atendimento, deseja-se conhecer o perfil 
do consumidor quanto a preferência pelo tipo e quantidade de comida servida. Para 
tanto foram colocados observadores, onde cada observador deveria responder uma 
característica do consumidor. Elabore algoritmos para os seguintes observadores. 
 
a. Observador do consumo de carne. 
Deseja-se saber qual o percentual de consumidores que não consome carne 
e, entre estes, qual o sexo predominante. 
 
b. Observador do consumo de verduras. 
Deseja-se saber qual o percentual de consumidores de verduras e, entre 
estes, que percentual consome somente um tipo de verdura. 
 
 
17. Em uma determinada rua da cidade, deseja-se saber o maior intervalo existente 
entre os números de duas residências vizinhas no lado ímpar. Faça um algoritmo para 
fazer este levantamento. 
 
 
18. Em uma peça de teatro, desejava-se saber características da plateia. Para tanto foi 
colocado um assistente na entrada do teatro, observando o sexo da pessoa que 
passava na catraca de acesso. Faça um algoritmo para esse observador, de modo que 
ao final do espetáculo, possa ser conhecido o percentual de expectadores homens. 
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES 
para CURSOS de ENGENHARIA e de AUTOMAÇÃO 
 
Página 
 
25 
 
19. Dada uma sequência aleatória com N números de inteiros positivos, faça um 
algoritmo para verificar quantas vezes um número impar sucedeu um número par. 
 
20. Dada uma sequência aleatória com N números de inteiros positivos, faça um 
algoritmo para verificar quantas vezes ouve alternância entre pares e impares dentro 
da sequência. 
 
21. Dada uma sequência crescente com N números de inteiros positivos, faça um 
algoritmo para verificar a maior diferença entre dois números adjacentes na 
sequência. 
 
22. Dois números A e B são amigos se a soma dos divisores de A, excluindo A, é 
igual a B e a soma dos divisores de B, excluindo B, é igual a A. 
Faça um algoritmo para verificar se dois números dados são amigos. 
Exemplo: 220 e 284 são amigos, pois 
220: 1+2+4+5+10+11+20+22+44+55+110 = 284 
284: 1+2+4+71+142 = 220

Outros materiais