Módulo 2: Algoritmos. Neste trabalho preferimos a definição de algoritmo como sendo:

Documentos relacionados
Algoritmos Computacionais ( Programas )

Estruturas de Controle A Tomada de Decisões

VisuALG Estruturas de Repetição. Professores: Vilson Heck Junior Felipe Schneider Costa

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Contagem I. Figura 1: Abrindo uma Porta.

Dadas a base e a altura de um triangulo, determinar sua área.

Exercícios de Fixação Pseudocódigo e Estruturas Básicas de Controle

Matemática - UEL Compilada em 18 de Março de Prof. Ulysses Sodré Matemática Essencial:

2. ALGORITMOS. Unesp Campus de Guaratinguetá. Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro

CAPÍTULO 6 - ESTRUTURA DE SELEÇÃO

Simulado OBM Nível 2

É possível que cada pacote tenha: ( ) 2 ( ) 3 ( ) 4 ( ) 5 ( ) 6 ( ) 7 ( ) 9 ( ) Circule as frações equivalentes: 03- Escreva:

Módulo 1: Contextualização

Capítulo 7 Medidas de dispersão

Grupo C Vetores e Matrizes

RESOLUÇÃO DAS QUESTÕES DE RACIOCÍNIO LÓGICO-MATEMÁTICO

Introdução a Algoritmos Parte 04

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

CURSO BÁSICO DE PROGRAMAÇÃO AULA 7

Sumário. Volta às aulas. Vamos recordar? Grandezas e medidas: tempo e dinheiro Números Regiões planas e seus contornos...

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Programação I. Serie de Problemas 1. Resolva os problemas usando descrição narrativa, fluxograma e o pseúdo-código.

Tópico 2. Conversão de Unidades e Notação Científica

Estruturas de Repetição

2ª Lista de Exercícios

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Lição 1 - Criação de campos calculados em consultas

Resoluções comentadas de Raciocínio Lógico e Estatística - SEPLAG EPPGG

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

Solução da prova da 1 a fase OBMEP 2015 Nível 1. QUESTÃO 1 ALTERNATIVA E Como 2 x 100,00 126,80 = 200,00 126,80 = 73,20, o troco foi de R$ 73,20.

Simulado OBM Nível 1. Gabarito Comentado

Material Teórico - Módulo de Divisibilidade. MDC e MMC - Parte 1. Sexto Ano. Prof. Angelo Papa Neto

Prof. Paulo Henrique Raciocínio Lógico

Nome: N.º: endereço: data: Telefone: PARA QUEM CURSA A 2 ạ SÉRIE DO ENSINO MÉDIO EM Disciplina: MaTeMÁTiCa

Terceira Avaliação Visualg & Pascal

36ª OLIMPÍADA BRASILEIRA DE MATEMÁTICA Primeira Fase Nível 3 Ensino Médio

ALGORITMOS E FLUXOGRAMAS

Principais Conceitos CAPÍTULO 1

REVISÃO E AVALIAÇÃO DA MATEMÁTICA

Este material traz a teoria necessária à resolução das questões propostas.

Estrutura de Dados Básica

FRAÇÕES TERMOS DE UMA FRAÇÃO NUMERADOR 2 TRAÇO DE FRAÇÃO DENOMINADOR. DENOMINADOR Indica em quantas partes o todo foi dividido.

2. Representação Numérica

6+3=2 8+2= = 3. Nesses exemplos, os resultados podem ser facilmente confirmados pela multiplicação, que é a operação inversa da divisão.

Lista de Exercícios 03b Algoritmos Repetição

( y + 4) = = 0 y + 4 = 0 y = 4

Algoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva

1. Estrutura de seleção. Seleção: algumas etapas (passos) do algoritmo são executadas dependendo do resultado de uma condição

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

EXERCÍCIOS. 2. Faça um algoritmo que receba dois números e ao final mostre a soma, subtração, multiplicação e a divisão dos números lidos.

Algoritmos e Programação de Computadores I. Prof. Eduardo

Introdução à Lógica de Programação

Algoritmos com VisuAlg

Equações do segundo grau

XXXVI OLIMPÍADA PAULISTA DE MATEMÁTICA Prova da Primeira Fase (11 de agosto de 2012) Nível (6 o e 7 o anos do Ensino Fundamental)

RESOLUÇÃO DAS QUESTÕES DE RACIOCÍNIO LÓGICO-MATEMÁTICO

Organização e Arquitetura de Computadores I

Fórmula versus Algoritmo

Múltiplos e Divisores- MMC e MDC

OBI2014 Caderno de Tarefas

Compilado pela Prof a Sílvia Moraes Organizado por Stewart Unger

37ª OLIMPÍADA BRASILEIRA DE MATEMÁTICA PRIMEIRA FASE NÍVEL 1 (6º e 7º anos do Ensino Fundamental) GABARITO

Instruções para se fazer o estágio obrigatório

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v /15

Lista de Exercícios 4: Soluções Sequências e Indução Matemática

OFICINA DE JOGOS APOSTILA DO PROFESSOR

Exercícios Teóricos Resolvidos

b) Cheguei à conclusão de que o Kodu é uma ferramenta desajustada aos meus alunos

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

Manual SAGe Versão 1.2 (a partir da versão )

Matemática Financeira II

PROJETO DE RECUPERAÇÃO EM MATEMÁTICA Manual do Professor Módulo 2 Números Racionais, Operações e Resolução de Problemas

Revisão de combinatória

Lista de Exercícios 10 Matemática Financeira

Lista de Exercícios. Vetores

¹CPTL/UFMS, Três Lagoas, MS,Brasil, ²CPTL/UFMS, Três Lagoas, MS, Brasil.

Lista de Exercícios 03b Repetição. 63) Escreva um programa que receba números do usuário enquanto eles forem positivos e

INE 5111 Gabarito da Lista de Exercícios de Probabilidade INE 5111 LISTA DE EXERCÍCIOS DE PROBABILIDADE

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

08 Capital de giro e fluxo de caixa

Figura 1 Busca Linear

Este documento visa facilitar e viabilizar a introdução ao módulo de Manufatura no Sistema

quociente razão. mesma área a partes de um tablete de chocolate

Contagem II. Neste material vamos aprender novas técnicas relacionadas a problemas de contagem. 1. Separando em casos

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO

Sistema de Numeração e Aritmética Básica

Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em um projeto.

Calculando probabilidades

César Cruz Proprietário [18/04]

Documento Explicativo

Denominando o preço das caixas tipo 2B de C e as caixas flex por F, pode-se escrever um sistema:

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

CAIXA ECONOMICA FEDERAL

BearingNet Bem-vindo Contenuto

COMO INVESTIR PARA GANHAR DINHEIRO

Exercícios Resolvidos sobre probabilidade total e Teorema de Bayes

Programas C com Repetição

Prova do Nível 1 (resolvida)

Soluções Nível 1 5 a e 6 a séries (6º e 7º anos) do Ensino Fundamental

Transcrição:

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. 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 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 para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 2

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 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 descasque uma batata; coloque a batata descascada na bacia; Fim enquanto < número 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 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 > 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. 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 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. Surpresa a dona de casa chega a conclusão que a secretária está com a razão e resolve elaborar um novo algoritmo. para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 5

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: para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 6

// 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: para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 7

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 para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 8

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. 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 N 2, 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 fim 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; 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 fim 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; 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 fim 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; 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 fim 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 Exercício resolvido 2.02 para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 13

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 fim 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 Exercício resolvido 2.03 para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 14

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, h 2 = a 2 + b 2. Passo 3: Expressar a solução na forma de algoritmo: Inicio fim 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; 3. Exercícios com uso de sequência simples e repetição para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 15

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 fim 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> Exercício resolvido 3.02 Deseja-se conhecer o somatório dos número de 1 (um) a N para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 16

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 fim 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 > Exercício resolvido 3.03 Deseja-se conhecer o fatorial de um número de N qualquer para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 17

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 fim 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) > 4. Exercícios com uso de sequência simples, alternativa e repetição Exercício resolvido 4.01 para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 18

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é para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 19

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, 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 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 2 + 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. 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 é 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. para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 23

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. para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 24

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 para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 25