Introdução a algorítimos

January 2, 2018 | Autor: Wagner SOARES | Categoria: Algorithms
Share Embed


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

Copyright © 2017 DADOSPDF Inc.