Prévia do material em texto
Algoritmos e Lógica de Programação Elementos de algoritmos Giancarlo Michelino Gaeta Lopes • Unidade de Ensino: Elementos de algoritmos • Competência da Unidade: Construção de algoritmos e programação e a sua importância para o universo do desenvolvimento de sistemas. • Resumo: Trabalharemos com estruturas de algoritmos (condicional, repetição), vetores, matrizes, registro para a solução de problemas. • Palavras-chave: decisão, repetição, vetores, matizes • Título da Teleaula: Elementos de algoritmos • Teleaula nº: 02 Contextualização • Como aplicar uma condição dentro de um programa? • É possível criar uma estrutura condicional com mais de duas opções? • O que é um “laço” de execução e como monta- lo no programa? Fonte: https://images.app.goo.gl/hHMkV385KBxoFytf8 Estruturas de decisão Estruturas de decisão • Na construção de algoritmos, podemos usar os operadores matemáticos relacionais, por exemplo, maior (>) e menor (<), para fazer comparações. • Estruturas de decisões possibilitam incluir nos algoritmos condições de controle através de uma decisão certos passos podem ou não ser feitos. • A estrutura de decisão no algoritmo normalmente possui a lógica binária o resultado do teste será verdadeiro (1) ou falso (0). SE...ENTÃO SE...ENTÃO...SENÃO CASO Estrutura condicional simples • Possui apenas um teste, e caso esse teste seja verdadeiro, existe uma ação a ser feita, mas, caso contrário, o bloco dos comandos é ignorado. Fonte das imagens: Artero(2018,pg.59) Fluxograma Pseudocódigo • Exemplo: algoritmo para um estabelecimento, que todo dia 10 concede um desconto de 25% a seus clientes; Fluxograma Pseudocódigo Estrutura condicional composta • Possui dois conjuntos de ações, um para o verdadeiro e outro para o falso da condição. Fonte das imagens: Artero(2018,pg.60) Fluxograma Pseudocódigo • Exemplo: Uma empresa padronizou o tamanho de suas peças em 16 cm². Após fabricada, caso a peça possua essa dimensão ela pode ser liberada para venda, caso contrário, deve ser descartada; Fluxograma Pseudocódigo Fonte das imagens: Artero(2018,pg.61) Estruturas de decisão complexas Estrutura condicional com combinação de operadores • É possível, combinar vários operadores utilizando um operador lógico para verificar várias condições em um único “SE”. Fonte das imagens: Artero(2018, pg.62) Fluxograma Pseudocódigo • Exemplo: calcular a velocidade média de uma esteira de escoamento de produtos antes do cálculo, verificar se o deslocamento é positivo e se foi utilizado o tempo de 30 ou 60 s; Fluxograma Pseudocódigo Fonte das imagens: Artero(2018, pg.62) • No mesmo exemplo, também é possível montar o algoritmo utilizando várias estruturas condicionais aninhadas, fazendo comparações individuais; Fluxograma Pseudocódigo Fonte das imagens: Artero(2018, pg.62) Estrutura de seleção de casos • A partir de uma série de casos, um é escolhido um teste é feito e, caso falso, faz-se o segundo teste, e assim por diante; Fluxograma Pseudocódigo Fonte das imagens: Artero(2018, pg.62) • Ainda dentro do exemplo anterior, suponha que a cada hora do dia fosse utilizado um tempo diferente para o calculo da velocidade da esteira; Fluxograma Pseudocódigo Fonte das imagens: Artero(2018, pg.62) Algoritmo para validação de dados • Você é o funcionário responsável por desenvolver algoritmos para validar os dados de entrada que alimentam alguns subsistemas de cálculo da empresa onde trabalha; • No projeto que está trabalhando, as entradas serão as unidades de comprimento, tempo e massa no Sistema Internacional; • Você terá que verificar no algoritmo se o usuário escolheu a opção metro para inserir o comprimento e, caso não tenha escolhido, você terá de informá-lo que a opção escolhida não é mais válida. • Para o tempo foi padronizado o segundo (s), e para massa foi padronizado o quilograma (kg). Fonte: Artero(2018, pg.67) Fonte das imagens: Artero(2018, pg.67) Resolvendo a situação-problema Fluxograma Pseudocódigo Estruturas de repetição Estruturas de repetição • Permite que certos trechos de códigos sejam executados de forma repetida. • Usar com atenção pois o sistema pode entrar em loop infinito utilizar teste para determinar quando a repetição deve parar. • O trecho do algoritmo em repetição pode se chamar laço ou loop. • Iteração é cada vez que as instruções do bloco do loop são executadas; Estrutura de repetição com teste no início • Uma condição é testada antes de o ciclo de repetição começar caso a condição seja verdadeira, o ciclo inicia-se e só para quando a condição não for mais verdadeira. Fonte das imagens: Artero(2018, pg.76) Fluxograma Pseudocódigo Estrutura de repetição com teste no final • Garante a execução do laço ao menos uma vez, já que a verificação da condição é feita no final Fonte das imagens: Artero(2018, pg.80) Fluxograma Pseudocódigo Estrutura de repetição com variável de controle • Estrutura utilizada sempre que se sabe previamente quantas vezes o bloco deve repetir a sua execução. Fonte das imagens: Artero(2018, pg.82) Fluxograma Pseudocódigo É possível que diferentes estruturas de repetição cheguem no mesmo resultado, então a escolha de qual usar depende do que você possui de informação antes de iniciar a repetição, e como a repetição pode ser mais bem controlada! Atenção! Você conhece algum software para montar fluxogramas? Software DIA • Download: http://dia-installer.de/index.html.en Fonte: https://goo.gl/images/xjj1C6 . Acesso em: 25 jun. 2021. Algoritmo para validação de dados avançada • Você deve montar um algoritmo de validação de dados para empresa onde trabalha; • A empresa possui 15 carros que ficam à disposição de seus funcionários, e ao final do dia é feito um controle da quantidade de quilômetros que os carros percorreram naquele dia. • O sistema permite que os dados sejam inseridos em quilômetros, metros ou, ainda, em milhas porém o cálculo do controle de combustível é feito usando a unidade de quilômetro necessidade de conversão; Fonte: Artero(2018, pg.74) • Você deve montar um algoritmo que: • Faça a validação dos dados de entrada das unidades de comprimento (quilômetro, metros ou milhas); • Converta unidades de acordo com o padrão adotado pela empresa que é o quilômetro; • Calcule o total de quilômetros percorridos por todos os carros durante o dia; Fonte: Artero(2018, pg.74) Fonte: Artero(2018, pg.87) Vetores, matrizes e funções Variáveis primitivas e compostas • Variáveis primitivas para cada variável existe um endereço que a torna única e identificável; • Variável composta variável que permite o armazenamento de vários valores; Fonte das imagens: Artero(2018, pg.93) Variável composta unidimensional - Vetor • Se divide em apenas uma dimensão (tabela de uma linha e N colunas); • Na hora de criarmos o vetor devemos informar apenas a quantidade de colunas que desejamos; Atribuindo valores em um vetor: Fonte: Artero(2018, pg.97) Variável composta multidimensional - Matriz • Variável composta que se divide em duas dimensões, ou seja, é “uma tabela” de M linhas e N colunas. • Exemplo: criar uma matriz do tipo inteiro com três linhas e duas colunas (M = 3 e N = 2); Fonte: Artero(2018, pg.97) Variável composta heterogênea - Registro • Permite armazenar valores de diferentes tipos dentro da mesma estrutura se cria um novo tipo de variável; Fonte: Artero(2018, pg.100) Rotinas de algoritmos – Funções • Podemos dividir os comandos de um algoritmo em sub-rotinas (funções), assim, além de organizarmos melhor o algoritmo, dividimos os comandos em funções específicas e evitamos repetir códigos. Fonte: Artero(2018, pg.103) Algoritmo de ordenação • A empresa X lhe contratou para escrever um algoritmo para ordenar os registrosda quantidade de calor medido por um sensor a cada dia durante todo o mês; • Com os dados a empresa irá mapear se houve alguma anomalia durante o mês. • Como desenvolver esse algoritmo? Resolvendo a situação problema • Para resolver o problema, você precisa desenvolver um algoritmo de ordenação de um vetor de 31 valores (dias do mês); • Algoritmo BubbleSort: Fonte: https://commons.wikimedia.org/ wiki/File:Sorting_bubblesort_anim.gif Fonte: https://commons.wikimedia.org/wiki/File:Bubble-sort.gif Fonte: Artero(2018, pg.112) Exemplos de algoritmos Exemplo 1 • Algoritmo que soma a quantidade de horas trabalhadas por um funcionário nos quinze primeiros dias do mês; Fonte: Artero(2018, pg.79) Exemplo 2 • Exemplo para calcular o fatorial de um número; Fonte: Artero(2018, pg.81) Exemplo 3 • Algoritmo para armazenar a quilometragem percorrida em cada dia do mês por 15 carros; Fonte: Artero(2018, pg.99) Você já conhecia o VisuAlg? • O VisuAlg é um interpretador de pseudocódigo em portugol, que permite a execução do algoritmo; • Download: https://visualg3.com.br/baixe-o-visualg-3-0-7/ Fonte: https://visualg3.com.br/ Recapitulando • Estruturas de decisão: se-então, se-então-senão e caso; • Estruturas de repetição: enquanto-faça, faça-enquanto e para; • Estrutura de dados: Vetores, matrizes, registros e funções.