Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROPOSTA DE TRABALHO PERÍODO DE SUSPENSÃO DAS AULAS (DUAS SEMANAS) – MARÇO/2020 CURSO(S): ENGENHARIA ELÉTRICA NOME DO COMPONENTE CURRICULAR: ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO CÓDIGO: 12550 TURMA: 21 CARGA HORÁRIA SEMESTRAL: 40h CARGA HORÁRIA DA(S) ATIVIDADE(S) PROPOSTA(S): 8h PROFESSOR (A) RESPONSÁVEL: MARCELO LUCAS Prezado(a) aluno(a). Seja bem-vindo(a) aos estudos da disciplina Algoritmos e Técnicas de Programação! Como estudar requer planejamento e disciplina, e o estudo organizado rende muito mais, este "Roteiro de Estudos" têm por objetivo ajudá-lo(a) a sistematizar seus estudos a partir de leituras obrigatórias, complementares, atividade de fixação de conteúdo, e principalmente por meio de atividades avaliativas, buscando a consolidação, de forma contínua e gradual, com o máximo de aproveitamento, dos conhecimentos adquirido nos estudos aqui propostos. Roteiro de aprendizagem é um instrumento elaborado de forma intencional e planejada pelo professor a fim de orientar o estudo dos alunos. Os roteiros favorecem o engajamento e autonomia do estudante, além de contribuir para que eles desenvolvam estratégias de sistematização de estudo para alcançar os objetivos de aprendizagem propostos pelo professor. Esta tarefa fará parte da sua composição de notas do 1º bimestre dessa disciplina, assim, responda todos os itens de forma clara e organizada. O objetivo é que entenda os conceitos sobre Estruturas Básicas de Controle: sequência, decisão e repetição. Seu aprendizado depende única e exclusivamente da sua dedicação aos estudos! Por meio desse estudo dirigido busca-se auxiliar o aluno nas seguintes ações: ✓ desenvolver autonomia na realização dos estudos; ✓ organizar e consolidar conhecimentos; ✓ desenvolver estratégias individuais de aprendizagem; ✓ e, estabelecer relações entre os conteúdos aprendidos. Este roteiro foi elaborado com o objetivo de orientar 4 (quatro) horas de estudos a distância, ao longo das quais serão desenvolvidas atividades relacionadas à primeira unidade de estudo constante do programa de ensino deste componente curricular. Para que você desenvolva as atividades propostas e vivencie, com proveito, o processo de ensino-aprendizagem, você encontrará, neste roteiro, os seguintes recursos: ✓ texto explicativo, no qual apresentamos o assunto, conceitos, dados e informações necessários para introduzir o estudo do tema, articulando-o aos demais temas do programa; ✓ indicação de textos para leitura obrigatória, selecionados para que você, lendo-os, tenha conhecimento das discussões e reflexões atuais do tema em estudo; ✓ indicação de textos para leituras complementares, para você ampliar a visão do tema, conhecendo o ponto de vista de outros autores; ✓ um conjunto de atividades de aprendizagem, para que você desenvolva habilidades de leitura analítica e crítica, de seleção e análise de dados, de comparação de ideias e sistematização de conhecimentos. OS CONHECIMENTOS CONSTRUÍDOS, A PARTIR DAS ORIENTAÇÕES DE ESTUDO CONTIDAS NESTE ROTEIRO, SERÃO REQUERIDOS TAMBÉM NAS AVALIAÇÕES PRESENCIAIS. É importante que, em seu planejamento de estudos semanal, você inclua as horas, os dias, o local e os materiais necessários para o desenvolvimento das atividades de aprendizagem e as atividades de avaliação a distância. UM LEMBRETE! Ao realizar seus estudos semanais, pergunte-se: ✓ reservei o tempo necessário para as leituras e as atividades programadas? ✓ adquiri os textos indicados como leituras obrigatórias? ✓ estou com todo o material de consulta disponível? ✓ o local onde vou estudar é calmo e silencioso? ✓ a iluminação e a ventilação estão adequadas? ✓ estou bem acomodado na mesa e na cadeira? ✓ sei com quais objetivos vou realizar esse estudo? Assim, com esse roteiro de estudos pretendemos que você desenvolva competências necessárias à construção de algoritmos e programação de computadores, sistemas embarcados, CLPs, ou seja, dispositivos programáveis. IMPORTANTE! Caso não consiga realizar alguma atividade, ou tenha dúvida sobre algum aspecto, estude novamente os materiais (capítulo de livro, artigos, videoaulas etc.) indicados. Sempre que necessário, entre em contato com o professor pela central de mensagens. Não se esqueça da bibliográfica básica recomendada! BONS ESTUDOS! AVALIAÇÃO DAS ATIVIDADES DE APRENDIZAGEM O objetivo dessa atividade de aprendizagem é possibilitar o desenvolvimento das habilidades e competências necessária ao profissional engenheiro eletricista deve adquirir ao final da disciplina. Os exercícios indicados ao final de cada roteiro possibilitarão que vocês possam avaliar sua aprendizagem e seu progresso em cada passo da desse componente. Espera-se, assim, que você se torne autônomo, responsável, crítico e decisivo, capaz, sobretudo, de desenvolver a própria capacidade intelectual. As atividades realizadas deveram ser entregues por meio eletrônico, via diário de bordo, até 10/04/2020 23h:59min. Será avaliado considerando a aplicação da metodologia conforme conteúdo apresentado nas aulas, bibliografia básica e leituras sugeridas. A pontuação atribuída terá valor de 10 pontos e irá compor a nota do 1º momento, juntamente com as avaliações presenciais e outras atividades desenvolvidas em sala de aula. O ROTEIRO deverá ser digitado em arquivo do tipo "pdf", padrão Portable Document Format criado pelo word, papel tamanho A4; fonte Arial, tamanho 14 para o título; fonte Arial, tamanho 11 para o corpo do texto; margens: 3,0 (esquerda) - 2,0 (direita) - 3,0 (superior) - 2,0 (inferior). Valor: 10 pontos Data de entrega: 10/04/2020 23h:59min Forma de entrega: arquivo pdf Local de entrega: diário de bordo (AVA) ATENÇÃO • O trabalho deverá ser feito e entregue individualmente. • A submissão será feita pelo diário e bordo, no AVA. • Não serão aceitos, em hipótese alguma, trabalhos entregues depois dessa data. Uberaba, MG 19 / 03 / 2020 Assinatura do(a)(s) professor (a)(es): MARCELO LUCAS Encaminhado à assistente pedagógica em: ____/____/___ Recebido em: ____/____/_____ Assinatura da assistente pedagógica: ____________________________________ Márcia Beatriz da Silva Assinatura do diretor de curso: ____________________________________ Marcelo Lucas ATIVIDADE TEÓRICA NOME DO ALUNO: RA: COMPONENTE CURRICULAR: ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO PROFESSOR(A) RESPONSÁVEL: MARCELO LUCAS VALOR: 10,0 PONTOS DATA DE ENTREGA: 10 / 04/ 2020 ROTEIRO DE ESTUDO 1 ESTRUTURAS BÁSICAS DE CONTROLE: SEQUÊNCIA, CONDIÇÃO E REPETIÇÃO Esse roteiro de estudo equivale a uma carga horária de 08 horas de estudo. OBJETIVOS Prezado(a) aluno(a) Disciplinas como algoritmo e programação de computadores exigem dos alunos habilidades e competências como: raciocínio lógico, resolução de problemas e a capacidade de abstração da solução em uma representação formal e/ou em uma linguagem computacional. Dessa forma, a partir da leitura do(s) texto(s) indicado(s), você estará preparado, por meio dos conceitos da programação estrutura aqui abordados, a buscar soluções computacionais para os problemas de uma forma geral. Após os estudos aqui propostos, você terá melhores condições de compreender esse conteúdo, participando de forma mais ativa com os colegas e com o professor em sala de aula. TEXTO INTRODUTÓRIO 1. Nesse roteiro, você estudará sobre as estruturas básica de uma programação estruturada. Vimos em sala de aula que Lógica de Programação é a técnica de desenvolver algoritmos (sequências lógicas) para atingir determinados objetivos dentro de certas regras baseadas na Lógica matemática e em outras teorias básicas da Ciência da Computação e que depois são adaptados para a Linguagem de Programação utilizada pelo programador para construir seu aplicativo. Pode-se definir algoritmo como sendo a especificação da sequência ordenada de passosque deve ser seguida para a solução de um problema ou para a realização de uma tarefa, garantindo a sua repetibilidade. Formas de representação de um algoritmo, além da forma com que os algoritmos são expressos em linguagem natural. Os algoritmos são descritos em uma linguagem chamada pseudocódigo. Este nome é uma alusão à posterior implementação em uma linguagem de programação, ou seja, quando formos programar em uma linguagem, por exemplo C++, estaremos gerando código em C++. Por isso os algoritmos são independentes das linguagens de programação. Ao contrário de uma linguagem de programação não existe um formalismo rígido de como deve ser escrito o algoritmo. Dessa forma, os programas de computadores nada mais são do que algoritmos escritos numa linguagem de computador (Pascal, C, Cobol, Fortran, Visual Basic entre outras) e que são interpretados e executados por uma máquina, no caso um computador. Notem que dada esta interpretação rigorosa, um programa é por natureza muito específico e rígido em relação aos algoritmos da vida real. O algoritmo deve ser fácil de se interpretar e fácil de codificar. Ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de programação. 1. ALGORITMOS NÃO COMPUTACIONAIS Um algoritmo é uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. São exemplos de algoritmos instruções de montagem, receitas, manuais de uso, etc. Um algoritmo não é a solução do problema, pois, se assim fosse, cada problema teria um único algoritmo; um algoritmo é um caminho para a solução de um problema. Em geral, existem muitos (senão infinitos) caminhos que levam a uma solução satisfatória. Um algoritmo não computacional é um algoritmo cuja sequência de passos, a princípio, não pode ser executada por um computador. Abaixo é apresentado um algoritmo não computacional cujo objetivo é usar um telefone público. Provavelmente você “executou” o algoritmo deste exemplo diversas vezes. O termo algoritmo está muito ligado à Ciência da Computação, mas, na realidade, ele pode ser aplicado a qualquer problema cuja solução possa ser decomposta em um grupo de instruções. Um outro exemplo típico de algoritmo é uma receita culinária, como no exemplo abaixo. Exemplo: Algoritmo para fritar um ovo 1) Colocar um ovo na frigideira 2) Esperar o ovo ficar frito 3) Remover o ovo da frigideira O algoritmo acima, no entanto, poderia ser mais detalhado e completo. Uma versão mais aceitável seria: Exemplo: Algoritmo para fritar um ovo 1) Retirar um ovo da geladeira 2) Colocar a frigideira no fogo 3) Colocar óleo 4) Esperar até o óleo ficar quente 5) Quebrar o ovo separando a casca 6) Colocar o conteúdo do ovo na frigideira 7) Esperar um minuto 8) Retirar o ovo da frigideira 9) Apagar o fogo Essa segunda versão é mais completa e detalhada que a anterior. Nela, várias ações que estavam subentendidas foram explicitadas. No entanto, para que o algoritmo possa ser útil, é necessário ainda que quem faz uso dele conheça os termos utilizados nas instruções. O algoritmo do exemplo só será útil para alguém que seja fluente na língua portuguesa e conheça o significado dos verbos retirar, colocar, esperar assim como dos substantivos utilizados no contexto de uma receita culinária. Em outras palavras, é preciso que a linguagem utilizada no algoritmo seja conhecida tanto por quem o escreveu quanto por quem vai executá- lo. Para que o algoritmo possa ser executado por uma máquina é importante que as instruções sejam corretas e sem ambiguidades. Portanto, a forma especial de linguagem que utilizaremos é bem mais restrita que o Português e com significados bem definidos para todos os termos utilizados nas instruções. Essa linguagem é conhecida como português Estruturado (às vezes também chamada de Portugol). O português estruturado é, na verdade, uma simplificação extrema do Português, limitada a umas poucas palavras e estruturas que têm um significado muito bem definido. Ao conjunto de palavras e regras que definem o formato das sentenças válidas chamamos sintaxe da linguagem. Durante este texto, a sintaxe do Português Estruturado será apresentada progressivamente e a utilizaremos em muitos exercícios de resolução de problemas. Aprender as palavras e regras que fazem parte dessa sintaxe é fundamental; no entanto, não é o maior objetivo deste curso. O que realmente exigirá um grande esforço por parte do estudante é aprender a resolver problemas utilizando a linguagem. Para isso, há somente um caminho: resolver muitos problemas. O processo é semelhante ao de tornar-se competente em um jogo qualquer: aprender as regras do jogo (a sintaxe) é só o primeiro passo, tornar-se um bom jogador (programador) exige tempo, muito exercício e dedicação. Embora o Português Estruturado seja uma linguagem bastante simplificada, ela possui todos os elementos básicos e uma estrutura semelhante à de uma linguagem típica para programação de computadores. Além disso, resolver problemas com português estruturado, pode ser uma tarefa tão complexa quanto a de escrever um programa em uma linguagem de programação qualquer. Portanto, neste curso, estaremos na verdade procurando desenvolver as habilidades básicas que serão necessárias para adquirir-se competência na programação de computadores. Para praticar nossa sintaxe e testar nossos problemas, utilizaremos o software VisuAlg desenvolvida por Cláudio Morgado de Souza. 2. ALGORITMOS COMPUTACIONAIS O computador, a princípio, não executa nada. Para que ele faça uma determinada tarefa - calcular uma folha de pagamento, por exemplo -, é necessário que ele execute um programa. Um programa é um conjunto de milhares de instruções que indicam ao computador, passo a passo, o que ele tem que fazer. Logo, um programa nada mais é do que um algoritmo computacional descrito em uma linguagem de programação. Uma linguagem de programação contém os comandos que fazem o computador escrever algo na tela, realizar cálculos aritméticos, receber uma entrada de dados via teclado, e milhares de outras coisas, mas estes comandos precisam estar em uma ordem lógica. O termo processamento de dados é muitas vezes utilizado em conjunto com computadores, pois, em geral, é isto o que eles fazem: processar dados. Daí podem extrair os dois componentes básicos de um algoritmo computacional (de agora em diante, esta palavra sempre utilizada no contexto de algoritmos computacionais): dados e código. Dados são os valores (números, nomes etc.) de que precisamos para resolver o problema, e código são os comandos ou instruções que usaremos para manipular e "processar" os dados. Um programa representa uma particular implementação de um algoritmo. Um algoritmo define uma estratégia de resolução de um problema e o programa codificado de acordo com tal algoritmo corresponde a uma implementação específica de tal algoritmo descrita em uma linguagem de programação. Os passos esboçados no algoritmo para resolver o problema são convertidos em comandos da linguagem de programação adotada e acrescidos com declarações suplementares que, entre outros, indicam o uso pretendido de variáveis. Comandos são executados, em princípio, em ordem sequencial, isto é, um após o outro obedecendo a ordem em que são listados no código. A sequência de comandos determina assim o fluxo de execução (também denominado fluxo de controle) padrão dos comandos. Tal fluxo padrão pode ser alterado no nível mais básico com comandos denominados comandos condicionais e comandos repetitivos. Um comando condicional define uma bifurcação no fluxo. A alternativa percorrida a partir da bifurcação é determinada pelo resultado da avaliação de uma condição inserida no comando condicional em questão. Uma vez executada a alternativa, então o fluxo de execução é retomado no comando que sucede tal comando condicional. Um comando repetitivo implementa execuções cíclicas de um comandosimples ou composto. A execução repetitiva é interrompida quando uma determinada condição denominada de parada e integrante de tal comando é satisfeita. O fluxo de execução é, então, retomado no comando que sucede o comando repetitivo cuja execução acaba de ser finalizada. 3. COMANDOS DE E/S (ENTRADA/SAÍDA) Em geral, um programa que faz seu processamento e não tem como mostrar seus resultados é inútil (imagine, por exemplo, uma calculadora que realiza uma infinidade de operações matemáticas, mas não tem um display para mostrar os resultados!). Portanto, em algum ponto do algoritmo geralmente deve ocorrer à exibição de valores, e todas as linguagens de programação têm comandos para este fim. Em português estruturado algoritmos usamos o comando escreva para isto. A sintaxe desse comando tem a seguinte forma: OBS.: No Visualg existem dois comandos escreva com finalidades diferentes quando usado consecutivamente. Nem todos os dados que um algoritmo manipula são gerados por ele. Um algoritmo (programa) de caixa automático, por exemplo, tem que obter do usuário o número da conta, a senha, a opção de serviço desejada etc. Assim, deve haver um meio para que sejam digitados (ou fornecidos de outra maneira) dados para o algoritmo. Mais uma vez, todas as linguagens de programação permitem isto, e no nosso português estruturado usamos o comando leia. A sintaxe deste comando é: 4. ESTRUTURAS BÁSICAS DE CONTROLE: SEQUÊNCIA, CONDIÇÃO REPETIÇÃO. São formas de raciocínio intuitivamente óbvias. A legibilidade e compreensão de cada bloco de código na solução é enormemente incrementada, proibindo o uso irrestrito de comandos de desvio incondicional (GOTO). 4.1. CONSTRUINDO OS PRIMEIROS ALGORITMOS ESTRUTURAS SEQUENCIAIS De forma genérica, a construção de um algoritmo se resume às seguintes etapas: a) entendimento do problema b) elaboração da solução algorítmica c) codificação da solução no português estruturado Geralmente a etapa 2 é a mais complexa, pois depende da engenhosidade e experiência do “construtor”. Exemplo 1 Enunciado: Faça um programa que leia dois valores numéricos, e calcule e exiba a sua média aritmética. Etapa 1 Simples, hein? Dos tempos de escola lembramos que a média aritmética de dois valores é calculada como (a+b)/2, e sendo assim a primeira etapa já está pronta. Etapa 2 Os dados necessários serão os dois valores, que colocaremos em duas variáveis A e B, do tipo numérico, e uma terceira variável, que chamaremos Média, que armazenará a média aritmética calculada. Etapa 3 A obtenção dos dados neste programa é simples e direta. Basta pedir ao usuário que digite os valores. Etapa 4 O processamento aqui é o cálculo da média, usando o método citado acima, na etapa O resultado do cálculo será armazenado na variável Média. Etapa 5 Basta exibir o conteúdo da variável Média. Figura 1 – Implementação do algoritmo Média em VisualG. Figura 2 – Resposta do programa Média. Comentários Você deve ter notado que colocamos na tela instruções para o usuário usando o comando escreva(). Esta é uma boa técnica de programação, mesmo hoje em dia, com o ambiente do Windows etc. Da mesma forma, ao imprimir o resultado, não mostramos simplesmente a média, mas explicamos ao usuário o que aquele valor significa. 4.2. ESTRUTURA CONDICIONAL SIMPLES (SE…ENTÃO) Na vida real tomamos decisões a todo o momento baseadas em uma situação existente. Em um algoritmo, chamamos esta situação de condição. Associada a uma condição, existirá uma alternativa possível de ações. Observe a seguinte afirmativa: “se tiver R$ 10,00 sobrando então irei ao cinema hoje à noite.” A condição nesta frase é "tiver R$ 10,00 sobrando". Ela é uma expressão lógica, pois a pergunta "Tenho R$ 10,00 sobrando?" Pode (tem que) ser respondida com "Sim" ou "Não". Lembre-se, então: em um algoritmo, toda condição tem que ser uma expressão lógica, algo que se possa pensar como “isto é verdadeiro” ou “isto é falso”. Se a condição for verdadeira, a ação a ser executada é "irei ao cinema", se a resposta à pergunta "Tenho dinheiro suficiente?" for "Sim". Então, em um algoritmo, as ações são um ou mais comandos que serão realizados apenas se a avaliação da condição resulta verdadeiro. Vamos colocar agora a frase do exemplo anterior em outra forma, mais parecida com nosso português estruturado: Veja que grifamos três palavras: se, entao e fimse. Elas são muito importantes na estrutura dos comandos de decisão. Como próximo passo, vamos generalizar a estrutura que criamos acima: Para terminar a nossa comparação, devemos lembrar que os comandos de um algoritmo são sempre indispensáveis, e que o computador só lida com quantidades definidas (ou seja, ele não sabe o que é "ter R$ 10,00 sobrando"). Para aproximar mais nossa frase de um algoritmo, poderemos ter a seguinte forma: O funcionamento deste comando obedece a seguinte regra: SINTAXE FLUXOGRAMA 4.3. ESTRUTURA CONDICIONAL COMPOSTO (SE…ENTÃO…SENÃO) O desvio condicional composto tem por finalidade tomar decisões de acordo com o resultado de uma condição (teste lógico), da mesma forma que o desvio condicional simples que estudamos na aula anterior. Porém, enquanto o condicional simples somente executa instruções quando o teste condicional retorna verdadeiro, o condicional composto permite criar dois blocos de código. Se o teste lógico retornas verdadeiro, as instruções contidas entre os comandos então e senão serão executadas (como no condicional simples). Entretanto, se o teste lógico retornar falso, as instruções contidas entre os comandos senao e fimse serão executadas. O funcionamento deste comando obedece a seguinte regra: SINTAXE FLUXOGRAMA 4.4. ESTRUTURA CONDICIONAL ANINHADA (SE…ENTÃO…SENÃO…SE) Existem situações nas quais é necessário verificar condições de teste sucessivas, onde uma ação será executada caso um conjunto anterior de ações seja satisfeito. Podemos usar para resolver esse tipo de problemas uma estrutura denominada Desvio Condicional Aninhado, que nada mais é do que o encadeamento de estruturas de decisão compostas em um algoritmo. Também chamamos a esse tipo de estrutura de desvio condicional encadeado, por este motivo. O funcionamento deste comando obedece a seguinte regra: SINTAXE FLUXOGRAMA 4.5. ESCOLHA...CASO Em algumas situações é necessário termos várias soluções ligadas a respostas diferentes, neste caso o comando de alternativa simples ou composta não é uma solução prática, isto porque obrigará o programador a escrever muitas linhas de programa, além de ter que criar vários comandos de alternativas compostas e verificar a validade de suas condições para que o comando execute o caminho correto para uma determinada condição. Temos então o comando de alternativa de múltipla escolha. O funcionamento deste comando obedece a seguinte regra: SINTAXE FLUXOGRAMA Veja o exemplo a seguir, que ilustra bem o que faz este comando: 4.6. TESTANDO O ALGORITMO (TESTE DE MESA) Um algoritmo, depois de ser elaborado, pode (e deve) ser testado. Para tal, utilizamos um método conhecido como teste de mesa. O teste de mesa é como uma simulação de todos os passos, ou seja, entradas, comandos e instruções do algoritmo, a fim de saber se ele chega ao resultado a que se propõe e se a lógica está correta. Para tal, preenche-se uma tabela com valores para as variáveis e segue-se o fluxo de execução do algoritmo, simulando a execução de cada instrução, ou seja, refazendo o que o computador faria ao executar cada instrução. A cada comando simulado (executado), o valor das variáveis na tabela deve ser atualizado. Se, para uma instrução executada, uma ou mais variáveis não ficaram com os valores esperados, há um erro na lógica do algoritmo. Tabela I – Exemplo de teste de Mesa. 4.7. ESTRUTURA DE REPETIÇÃONos exemplos e exercícios que vimos até agora sempre foi possível resolver os problemas com uma sequência de instruções onde todas eram necessariamente executadas uma única vez. Nas estruturas estudadas até agora viu-se apenas uma sequência linear de operações. Em muitos casos é necessário repetir um trecho de um programa diversas vezes. Nessa situação podemos usar um “loop” que efetue essa repetição de código quantas vezes forem necessárias. Os loops são chamados também de laços de repetição. Existem várias estruturas que podem ser utilizadas para criar loops em programação. A seguir iremos tratar da estrutura enquanto. 4.8. ESTRUTURA DE REPETIÇÃO ENQUANTO Essa estrutura realiza um teste lógico no início do loop, e cada vez que o teste retorna o valor verdadeiro, os comandos associados ao laço são executados. Quando o teste retornar falso, o laço é encerrado e o processamento volta para o fluxo principal do programa. O funcionamento deste comando obedece a seguinte regra: SINTAXE FLUXOGRAMA 4.9. ESTRUTURA DE REPETIÇÃO REPITA ATÉ Continuando, temos a estruturas de repetição REPITA ATÉ. Trata-se de uma estrutura que efetua um teste lógico no final do loop, em vez de no início, como a estrutura enquanto. Essa estrutura lembra a estrutura enquanto, porém, executa o conjunto de instruções programado ao menos uma vez antes de verificar a condição testada; no laço enquanto, a condição é testada antes de executar o bloco de códigos, o que significa que há a chance desse bloco nunca ser executado – se a condição de teste retornar falso logo no primeiro teste. Com o REPITA ATÉ o conjunto de instruções é executado enquanto a condição testada retornar FALSO. SINTAXE FLUXOGRAMA 4.10. ESTRUTURA DE REPETIÇÃO PARA Prosseguindo nosso estudo sobre estruturas de repetição em lógica de programação, abordaremos nesta lição a estrutura PARA. O comando PARA permite construir estruturas de loop para casos onde se conhece de antemão o número de repetições que devem ser realizadas (ou seja, número finito de laços). Por exemplo, quando sabemos de antemão que o laço deve se repetir 10 vezes; portanto, neste caso podemos usar a estrutura para. Caso não haja como saber previamente o número de repetições necessárias, use preferencialmente as estruturas de repetição enquanto ou repita até. SINTAXE onde: variável: variável contadora início: valor inicial atribuído à variável fim valor final que a variável armazenará incremento: valor para incrementar variável a cada loop (valor padrão: 1) FLUXOGRAMA LEITURAS OBRIGATÓRIAS Objetivando um melhor acompanhamento de nossas aulas, você deverá para as duas próximas semanas, ler e anotar em caderno as ideias centrais dos tópicos: TEXTO 1 Capítulo 3, intitulado Estruturas de Controle, págs 30 a 67 do livro Lógica de Programação: A construção de algoritmos e estruturas de dados, 3ed., do autor Andre Luiz Villar Forbellone que faz parte da bibliografia básica e está disponível no drive virtual Microsoft OneDrive, e na biblioteca virtual Pearson. Link de acesso: https://1drv.ms/b/s!Alj8IX7eeWMCiWtFKvhXgnJmUX_K TEXTO 2 Apostila A Linguagem de Programação do VisuAlg: Universidade Federal de Uberlândia págs 8 a 11 disponível no drive virtual Microsoft OneDrive. Link de acesso: https://1drv.ms/b/s!Alj8IX7eeWMCgY991CxJYxmEjnkIvA https://1drv.ms/b/s!Alj8IX7eeWMCiWtFKvhXgnJmUX_K A partir da leitura indicada, você se preparará para acompanhar as aulas sobre o conteúdo abordado, familiarizando-se com os termos, conceitos, princípios, pressupostos, fundamentos, e, desta forma, ter melhores condições de compreender esse conteúdo, participando de forma mais ativa com os colegas e com o professor em sala de aula. Além das leituras indicadas, para aprofundar um pouco mais no assunto, assista aos vídeos: “Lógica de Programação com VisualG - Estrutura de Seleção ou Decisão – 02”, disponível no link https://www.youtube.com/watch?v=mmHfui8nenw&list=PL9kG3mxAhzQVDLxToTD2rWrUzxj FGmqvt&index=2 “Lógica de Programação com VisualG - Estrutura de Seleção ou Decisão Pt.2 – 03”, disponível no link https://www.youtube.com/watch?v=s477n6NpxAE&list=PL9kG3mxAhzQVDLxToTD2rWrUzxj FGmqvt&index=3 “Lógica de Programação com VisualG - Estrutura de Repetição - Para – 04”, disponível no link https://www.youtube.com/watch?v=lQjGDLSRUDo&list=PL9kG3mxAhzQVDLxToTD2rWrUzx jFGmqvt&index=4 “Lógica de Programação com VisualG Estrutura de Repetição - Enquanto – 05”, disponível no link https://www.youtube.com/watch?v=8-JWuzb- gIE&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=5 “Lógica de Programação com VisualG Estrutura de Repetição - Repita – 06”, disponível no link https://www.youtube.com/watch?v=cgfe08eg85o&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjF Gmqvt&index=6 VisuALG (5 exercícios resolvidos), disponível no link https://www.youtube.com/watch?v=tMThV7CQ_1c LEITURAS COMPLEMENTARES Para uma melhor compreensão dos assuntos aqui abordados, faça a leitura de itens referente ao livro da bibliografia complementar Algoritmos: Lógica para Desenvolvimento de Programação de Computadores, 22ª ed., isso irá aumentar seu conhecimento sobre programação estruturada, e consequentemente, sua participação nas aulas teóricas presencias. Você deverá ler, nas duas próximas semanas, os itens 5.1 Repetição do tipo: Teste lógico no início do looping a 5.5 Estruturas de Controle Encadeadas, capítulo 5, intitulado Estruturas de Controle: Laços ou Malhas de Controle, disponível no Drive virtual OneDrive. Link de acesso: https://1drv.ms/b/s!Alj8IX7eeWMCiWwBSq1FUuk2dHna https://www.youtube.com/watch?v=mmHfui8nenw&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index= https://www.youtube.com/watch?v=mmHfui8nenw&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index= https://www.youtube.com/watch?v=s477n6NpxAE&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=3 https://www.youtube.com/watch?v=s477n6NpxAE&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=3 https://www.youtube.com/watch?v=lQjGDLSRUDo&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=4 https://www.youtube.com/watch?v=lQjGDLSRUDo&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=4 https://www.youtube.com/watch?v=8-JWuzb-gIE&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=5 https://www.youtube.com/watch?v=8-JWuzb-gIE&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=5 https://www.youtube.com/watch?v=cgfe08eg85o&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=6 https://www.youtube.com/watch?v=cgfe08eg85o&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=6 https://www.youtube.com/watch?v=tMThV7CQ_1c https://1drv.ms/b/s!Alj8IX7eeWMCiWwBSq1FUuk2dHna ORIENTAÇÕES Primeiramente, faça uma leitura completa dos textos indicados. Essa primeira leitura irá permitir que você tenha uma ideia geral da informação que esse texto traz. Em seguida, faça uma segunda leitura dos trechos ou parágrafos que julgar mais importantes e que mais lhe interessaram. Isso fará com que você absorva melhor essas informações. Nesse momento, você poderá anotar/registrar/identificar o que julga mais relevante. Essa segunda leitura é extremamente importante e fará com que você retorne àquilo que realmente interessa. Durante a leitura, anote suas possíveis dúvidas para discussão em aula. Após a leitura, assista ao vídeo indicado, primeiramente, para ter uma visão geral do que está sendo abordado. Depois, assista-o procurando relacionar o que é apresentado nos vídeos com o conteúdo Estruturas Básicas de Controle: sequência, decisão e repetição, que será abordado nas próximas semanas. Obs.: As leituras (e/ou vídeos) servirão de fundamento teórico para a participação nas aulas e realização das atividades. Farão parte da avaliação continuada do componente. QUESTÕES PARA AVALIAÇÃO DA APRENDIZAGEM 1) Enunciado: Algoritmo que lê o nome de um aluno, as notas de suas três provas e calcule e exibe a média harmônicadas provas. Etapa 1: a média harmônica de três provas a, b e c é dada pela fórmula: 3 1 1 1 Mh a b c = + + Etapa 2: os dados necessários serão o nome do aluno e os valores das provas. O algoritmo limita-se basicamente à própria fórmula. REFERENCIAL DE RESPOSTA 2) Enunciado: Um algoritmo que lê o valor do raio e calcule a área do círculo correspondente. Etapa 1: o cálculo da área do círculo é 2r . Etapa 2: o dado necessário é o valor do raio, que será lido (colocado) na Variável Raio. REFERENCIAL DE RESPOSTA 3) Enunciado: Faça um Algoritmo para calcular a área de um círculo, fornecido o valor do raio, que deve ser positivo. REFERENCIAL DE RESPOSTA 4) Enunciado: Algoritmo que peça ao usuário a quantia em dinheiro que tem sobrando e sugira, caso ele tenha 10 ou mais reais, que vá ao cinema, e se não tiver, fique em casa vendo TV. REFERENCIAL DE RESPOSTA 5) Um determinado clube de futebol pretende classificar seus atletas em categorias e para isto ele contratou um programador para criar um programa que executasse esta tarefa. Para isso o clube criou uma tabela que continha a faixa etária do atleta e sua categoria. A tabela está demonstrada abaixo: IDADE CATEGORIA • De 05 a 10 Infantil • De 11 a 15 Juvenil • De 16 a 20 Junior • De 21 a 25 Profissional 6) Construa um programa que solicite o nome e a idade de um atleta e imprima a sua categoria. REFERENCIAL DE RESPOSTA 7) Algoritmo que lê os nomes dos alunos de uma turma de três alunos e as notas de suas três provas; o algoritmo calcula e exibe as médias harmônicas das provas de cada aluno. REFERENCIAL DE RESPOSTA 8) Faça um programa que some número reais diferentes. Condição de parada: número = 0. REFERENCIAL DE RESPOSTA 9) Dado três valores reais X, Y, Z, verificar se eles podem ser os comprimentos dos lados de um triângulo, e se forem, verificar se é um triângulo equilátero, isósceles ou escaleno. Se eles não formarem um triângulo, escrever uma mensagem. Antes da elaboração do algoritmo, torna-se necessária a revisão de algumas propriedades e definições. Faça um algoritmo que leia N conjuntos de dados (X, Y e Z), que representam o comprimento dos lados de um triângulo, verifique se os dados inseridos pelo usuário formam correspondes aos lados de um triângulo. Se corresponder a uma figura triangular, identifique qual o tipo do triângulo conforme exemplos a seguir. Caso algum valor (X, Y, ou Z) seja negativo o programa deverá converter positivo. Utilize X = 0 como condição de parada, e nesse caso informe ao usuário que o programa foi finalizado. Propriedade: O comprimento de cada lado de um triângulo é menor do que a soma dos comprimentos dos outros dois lados. Definição 1: Chama-se triângulo equilátero os que tem os comprimentos dos três lados iguais, Definição 2: Chama-se triângulo isósceles ao triângulo que tem os comprimentos de dois lados iguais. Definição 3: Chama-se triângulo escaleno ao triângulo que tem os comprimentos dos três lados diferentes. REFERENCIAL DE RESPOSTA Algoritmo "Triangulo" // Disciplina : ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO Var // Seção de Declarações das variáveis X, Y, Z: real IsTri: logico tTipo: Caracter Inicio // Seção de Comandos, procedimento, funções, operadores, etc... escreval("Entrada de dados:") escreval escreva("Entre com o valor de X: ") leia(X) enquanto X <> 0 faca escreva("Entre com o valor de Y: ") leia(Y) escreva("Entre com o valor de Z: ") leia(Z) escreval escreval escreval X <- abs(X) Y <- abs(Y) Z <- abs(Z) IsTri <- ((X+Y) > Z) E ((X+Z) > Y) E ((Y+Z) > X) Se IsTri entao se (X = Y) E (X = Z) entao tTipo <- "EQUILÁTERO" senao se ((X = Y) E (X <> Z)) OU ((X = Z) E (X <> Y)) OU ((Y = Z) E (Y <> X)) entao tTipo <- "ISÓSCELES" senao tTipo <- "ESCALENO" fimse fimse escreval("Resultado:") escreval escreval("Os lados inseridos correspondem aos de um triângulo") escreval("TRIÂNGULO: ",tTipo) senao escreval("Resultado:") escreval escreval("Os lados inseridos não correspondem aos de um triângulo") fimse escreval escreval escreval escreval("Entrada de dados:") escreval escreva("Entre com o valor de X: ") leia(X) fimenquanto escreval escreval escreval escreval("Programa finalizado com sucesso.") escreval escreval escreval Fimalgoritmo 10) Fazer um algoritmo que calcule escreva a soma dos N primeiros termos da seguinte série, sendo 1≤N≤1000: 1000 1 997 2 994 3 991 4 − + − +... REFERENCIAL DE RESPOSTA QUESTÕES PARA AVALIAÇÃO DA APRENDIZAGEM 1) Elabore um algoritmo que leia um número. Se positivo, armazene-o em A. Se negativo, armazene-o em B. No final, mostre os valores de A e B. 2) Escreva um algoritmo para determinar se um número é par, ou ímpar. 3) Tendo como dados de entrada a altura e sexo de uma pessoa, construa um algoritmo que calcule o peso ideal, utilizando as seguintes fórmulas: • Para homens: (72*h)-58 • Para mulheres: (62.1*h)-44.7 onde h=altura 4) Uma determinada empresa só contrata secretárias que preencham os seguintes requisitos: • Ter idade igual ou superior a 19 anos • Falar com fluência dois (02) ou mais idiomas Conforme as características da candidata, escreva uma das seguintes mensagens: “Você tem as características necessárias para ser uma secretária” ou “Você não tem as características necessárias para ser uma secretária”. 5) O departamento que controla o índice de poluição do meio ambiente monitora três grupos de indústrias altamente poluidoras. O índice de poluição aceitável varia de 0 (zero) à 0,25 miligramas de poluentes por metro cúbico de ar. Se o índice sobe para 0,3 mg/m3 as indústrias do primeiro grupo são intimadas a suspender suas atividades. Se o índice sobre para 0,4 mg/m3 as do primeiro e segundo grupos devem paralisar as atividades. E se o índice atingir 0,5 mg/m3, os três grupos devem paralisar as atividades. Escrever um algoritmo que leia o índice de poluição medido (geral para os três grupos de empresas) e mostre a notificação na forma de uma frase: “grupo 1 deve parar”, ou “grupo 1 e 2 devem parar”, ou “os três grupos devem parar 6) Uma empresa irá oferecer um reajuste salarial, cujo percentual será decidido através das seguintes situações: • Funcionários do sexo masculino, com tempo de casa superior ou igual a 10 anos, terão direito a reajuste de 5% • Funcionários do sexo masculino, com tempo de casa inferior a 10 anos, terão direito a reajuste de 3% • Funcionários do sexo feminino, com tempo de casa superior ou igual a 8 anos, terão direito a reajuste de 5% • Funcionários do sexo feminino, com tempo de casa inferior a 8 anos, terão direito a reajuste de 3% • Funcionários em qualquer uma das situações acima, porém com mais de um dependente, terão ainda um reajuste de 2% sobre o salário reajustado anteriormente Faça um algoritmo que, dado o sexo, o salário sem reajuste, o tempo de casa e o número de dependentes de um funcionário, mostre seu reajuste e os salários bruto e liquido, atualizados. Utilize a tabela abaixo para determinar o valor de desconto do imposto de renda cobrado. 7) Escreva um programa para imprimir uma Progressão Aritmética (PA), sendo que serão fornecidos o primeiro termo, a razão e a quantidade de termos desejada. Por exemplo, para primeiro termo = 13, razão = 5 e quantidade de termos = 8 o programa deverá exibir: 13, 18, 23, 28, 33, 38, 43, 48 8) A série de Fibonacci é formada pela seguinte sequência; 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ..., etc. Escreva um algoritmo que gere a série de Fibonacci até o enésimo termo. O valor de N (enésimo) deverá ser solicitado pelo usuário e deverá ser maior que 10. 9) Escreva um algoritmopara informar se um número N é primo ou não. Faça a validação de dados de forma que N seja sempre positivo. 10) Escreva um algoritmo que calcule N! (fatorial de N), sendo que o valor inteiro de N é fornecido pelo usuário. Faça a validação de dados de forma que N seja positivo. Sabe-se que: 5! = 5 x 4 x 3 x 2 x 1 = 120 0! = 1, por definição REFERÊNCIAS ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de. Fundamentos da Programação de Computadores. 3ª edição. Editora Pearson Prentice Hall, 2012. FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de programação: a construção de algoritmos e estruturas de dados. 3 ed. São Paulo: Prentice Hall, 2005. MANZANO, J.A.N.G. e OLIVEIRA, J. F. Algoritmos: Lógica para Desenvolvimento de Programação de Computadores. Editora Erica. 22ª Edição, 2009.
Compartilhar