exatasfepi.com.br Programação Computacional Fundamentos Revisão 1 André Luís Duarte Feliz é o homem que acha sabedoria, e o homem que adquire entendimento; Provérbios 3:13
Programação Computacional Breve histórico da informática Hardware CPU Memórias Periféricos Software Conceitos de informática Lógica de programação Algoritmos 2
Histórico Informática 1956 o cientista da computação alemão Karl Put publicou um artigo intitulado Informática: processamento automático de informação Informação + automática Lida com o tratamento racional da informação por meios automáticos e eletrônicos Computador: máquina que possibilita a existência da informática 3
Histórico Ábaco é considerado o primeiro computador da história pois auxilia a realização rápida de cálculos matemáticos 4
Histórico 5
Histórico Arquitetura de von Neumann Codificar as instruções de forma que pudessem ficar armazenadas (von Neumann sugeriu codificar com zeros e uns) Armazenar instruções e informações na memória Quando processar uma instrução, buscá-la na memória 6
Histórico Arquitetura Von Neumann 7
Conceitos de hardware O que é um computador? O computador é uma máquina que processa dados eletronicamente gerando informações a partir das instruções programadas para as mais diversas tarefas O computador é uma máquina burra! 8
Funcionamento do computador Entrada de dados: momento em que o computador recebe dados a serem processados Processamento: momento em que o computador usa as instruções programadas para transformar os dados em informação Saída de dados: disponibilização da informação 9
Entrada de dados Geralmente os dados de entradas são gerados por dispositivos de entrada como: Teclado Mouse Câmera Scanner Dispositivos de toque 10
Processamento O processamento é realizado pelo computador através dos elementos físicos e lógicos do computador Físico CPU, memórias, placas, etc Lógico Bios, sistema operacional, antivírus, software de rede, etc 11
Hardware CPU Cérebro do computador Excuta as instruções presentes nos programas 12
Hardware CPU Multicore Core Two Duo => possui 2 núcleos i3 => 2 núcleos físicos e 4 lógicos I5 => 4 núcleos físicos i7 => 4 núcleos físicos e 4 lógicos AMD Phenom II X2, AMD Athlom X4, AMD Turion II, AMD Phenom II X6 13
Hardware Memória Cache Está dentro da CPU Acesso muito rápido Processador mantém dados e instruções que são acessados constantemente
Hardware Memória RAM Random Access Memory Memória primária do computador Acesso rápido Volátil 15
Hardware Memória secundária (HD) Podem armazenar grande quantidade de dados Acesso é muito lento Geralmente não necessitam de operações de montagem
Hardware Memória terciárias Podem armazenar grande quantidade de dados Acesso rápido Geralmente necessitam de operações de montagem 17
Hardware 18
Hardware Dispositivos periféricos Saída Fornecem um interface de saída entre a CPU e o usuário Entrada Fornecem uma interface de entrada entre a CPU e o usuário 19
Hardware Dispositivos periféricos de saída 20
Hardware Dispositivos periféricos de entrada 21
Hardware Dispositivos periféricos de entrada e saída 22
Software É a parte lógica (solução) que determina como o computador irá agir na transformação dos dados em informação 23
Software O software é produzido a partir de um programa de computador Geralmente os termos software e programa de computador se confundem na literatura 24
Software Programa: é um conjunto de instruções que deve ser executado pelo computador a fim de solucionar um problema 25
Software Programa Alto nível Compilados: programas gerados em código de máquina (C/C++, Pascal, Fortran) Interpretados: programas gerados em (Java, C#, Python) Baixo nível Linguagem de máquina 26
Software Software proprietário: software que precisa ser comprado para se utilizado Possui direitos de uso e cópia de propriedade intelectual (Copyright) 27
Software Software livre: é um movimento que defende a liberdade de Utilizar Copiar Distribuir Estudar Modificar 28
Software Software gratuito (freeware): software que pode ser usado sem custo da forma como foi concebido pelo autor Não possui restrições Não possui limitações Possui direitos de uso e cópia de propriedade intelectual (Copyright) 29
Software Software shareware: software que pode ser usado sem custo da forma como foi concebido pelo autor Possui restrições Possui limitações Possui direitos de uso e cópia de propriedade intelectual (Copyright) 30
Software Software adware: software que pode ser usado sem custo da forma como foi concebido pelo autor Pode possuir restrições Pode possuir limitações Possui direitos de uso e cópia de propriedade intelectual (Copyright) Possui propagandas que são exibidas em certas ocasiões ao usuário 31
Software Software open source: nasceu para cobrir lacunas deixadas pelo software livre Não ignora a liberdade do software livre mas tenta ser mais flexível 32
Software Quesitos para um software open source Distribuição livre Acesso ao código fonte Permissão para derivar trabalhos Integridade do autor do código fonte Não discriminação contra pessoas ou grupos 33
Software Quesitos para um software open source Não discriminação contra áreas de atuação Distribuição da licença Licença não específica a um produto Licença não restritiva a outros programas Licença neutra em relação à tecnologia 34
Introdução a Lógica Objetivos Noções de lógica Algoritmização da lógica 35
Objetivos Porque aprender a programar? 36
Objetivos Porque aprender a programar? Ajuda a melhorar o raciocínio Permite construirmos uma sequência coerente de ideias Permite ordenarmos nossas ações Nos faz fluentes na linguagem da tecnologia Auxilia na resolução de problemas 37
Objetivos Desenvolver a lógica de programação, suas técnicas e regras Capacitar o aluno a criar algoritmos computacionais que serão utilizados na automatização da resolução de problemas usando computadores 38
O que é lógica? Ciência das formas do pensamento Como filosofia procura saber porque pensamos assim e não de outro jeito Como arte ou técnica, nos ensina a usar corretamente as leis do pensamento Estuda a correção do raciocínio Como seqüênciar nosso raciocínio da melhor forma, a fim de alcançar um determinado objetivo 39
Lógica Um dos objetivos da lógica é o estudo de técnicas de formalização, dedução e análise que permitam verificar a validade de argumentos Também objetiva a criação de uma representação mais formal, que se contrapõe a linguagem natural suscetível a argumentações informais 40
Exemplos a) Todo mamífero é um animal 41
Exemplos a) Todo mamífero é um animal Argumento 1 Argumento 2 42
Exemplos a) Todo mamífero é um animal Todo cavalo é um mamífero Argumento 3 Argumento 4 43
Exemplos a) Todo mamífero é um animal Todo cavalo é um mamífero 44
Exemplos a) Todo mamífero é um animal Todo cavalo é um mamífero Logo, todo cavalo é um animal 45
Exemplos b) Kaiton é um país do planeta Stix Todos os Xinpins são de Kation 46
Exemplos b) Kaiton é um país do planeta Stix Todos os Xinpins são de Kation Logo, todos os Xinpins são Stixianos 47
Exemplos c) A gaveta está fechada A caneta está dentro da gaveta d) Anacleto é mais velho que Felisberto Felisberto é mais velho que Marinalvo 48
Exemplos c) A gaveta está fechada A caneta está dentro da gaveta Para ter acesso à caneta precisamos abrir a gaveta d) Anacleto é mais velho que Felisberto Felisberto é mais velho que Marinalvo Portanto, Anacleto é mais velho que Marinalvo 49
Existe lógica no dia-a-dia? Existe lógica sempre que pensamos Falar, escrever e agir são concretizações de pensamentos Para realizar estas tarefas de maneira correta precisamos colocar ordem no pensamento 50
O que é lógica de programação? É o uso correto das leis do pensamento, da ordem da razão e de processos de raciocínio e simbolização formais na programação de computadores ou dispositivos programáveis 51
O que é lógica de programação? Objetivando o desenvolvimento de técnicas racionais que cooperem para a produção de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que se deseja programar 52
Algoritimização da lógica O que é Para que serve Como é feita 53
O que é algoritmo? Pode ser definido como uma seqüência de passos que visam atingir um objetivo bem definido Esta seqüência de passos deve possuir uma ordem Precisa haver ações claras e precisas, que a partir de um estado inicial, após um período de tempo finito, produzem um resultado final previsível e bem definido 54
Exemplo Receita de bolo Manual de utilização Roteiro de atividade 55
Para que serve o algoritmo? O objetivo principal é o de representar da forma mais fiel possível o raciocínio envolvido na lógica Podemos focalizar nossa atenção, naquilo que é importante, abstraindo assim uma série de detalhes computacionais 56
Descrição narrativa Forma de algoritmo mais simples e intuitiva que existe, pois está baseada na linguagem humana de alto nível É muito imprecisa pois usa palavras que podem ter mais de um sentido Muitos símbolos para descrever poucas ações 57
Exemplo 1 Trocar uma lâmpada 58
Exemplo 1 Trocar uma lâmpada Pegue uma escada Retire a lâmpada queimada Pegue a lâmpada nova Instale a lâmpada nova 59
Exemplo 2 Trocar uma lâmpada (melhorado) Pegue uma escada Posicione a escada no local onde está a lâmpada Suba na escada Retire a lâmpada queimada rodando ela no sentido anti-horário Desça da escada Pegue a lâmpada nova Suba na escada Instale a lâmpada nova rodando ela no sentido horário Desça da escada Guarde a escada Descarte a lâmpada queimada 60
Exercício de fixação Crie um algoritmo usando descrição narrativa para: Somar dois valores escolhidos por uma pessoa e apresentar o resultado Dividir dois valores escolhidos por uma pessoa e apresentar o resultado Verificar se um aluno foi aprovado em uma disciplina Trocar o pneu furado de um carro 61
Representando um algoritmo Como algoritmo é uma linha de raciocínio, pode ser representado de diversas formas (textual ou gráfica) Formas gráficas são mais fiéis ao raciocínio original substituindo um grande número de palavras por símbolos 62
Chapin 63
Fluxograma Inicio Ir para o primeiro soquete F Soquetes testados < 10 V Acionar interruptor Lâmpada não acendeu F V Pegar uma escada Buscar lâmpada nova Acionar interruptor Subir na escada Retirar a lâmpada queimada Colocar lâmpada nova Lâmpada não acendeu F V Retirar a lâmpada queimada Colocar lâmpada nova Ir para o próximo soquete Fim 64
Português Estruturado 65
Os tipos de algoritmos que dominam nosso mundo Busca do Google Feed de noticias do Facebook Combinação de parceiros ideais em sites de relacionamentos Coleta, interpretação e encriptação de dados da NSA 66
Os tipos de algoritmos que dominam nosso mundo Você também pode gostar de... Negociação de ações em alta frequência CRUSH da IBM - Prevendo crimes 67
Codificação Uma vez concebida uma solução algorítmica para um problema, esta pode ser traduzida para qualquer linguagem de programação O processo de transformação é normalmente denominado codificação 68
Algoritmo O algoritmo fixa um padrão de comportamento a ser seguido, uma norma de execução a ser trilhada, garantindo que, sempre que executado, sob as mesmas condições, irá produzir o mesmo resultado final 69
Algoritmo A sequencialização é a convenção com o objetivo de reger o fluxo de execução do algoritmo, determinando qual ação será executada primeiro e qual ação vem a seguir Há muitas formas de resolver um problema, afinal, cada indivíduo possui uma heurística própria Para um problema podemos ter várias soluções diferentes e corretas 70
O bom senso e a prática de lógica de programação é que indicarão qual solução é mais adequada, que com menos esforço e maior objetividade produz o resultado almejado. 71
Conceitos em Programação Técnicas de algoritmos Descrição narrativa Fluxograma Programação em blocos 72
Descrição narrativa A descrição narrativa será usada para dar uma direção geral de como o programa deverá funcionar O fluxograma será usado para descrever em detalhes como certas ações serão implementadas 73
Descrição narrativa A descrição narrativa será usada para dar uma direção geral de como o programa deverá funcionar Ela funciona como um rascunho do roteiros do que queremos que o algoritmo faça Possibilita identificarmos a entrada processamento saída 74
Descrição narrativa Crie um algoritmo que permita ao usuário informar dois números e seu algoritmo exiba o seu dobro e sua metade 75
Descrição narrativa Crie um algoritmo que permita ao usuário informar um número e seu algoritmo exiba o seu dobro 1. Solicitar um número 2. Armazenar o número na memória 3. Calcular o dobro do número armazenado 4. Armazenar o resultado na memória 5. Exibir o resultado 76
Descrição narrativa Após criado o algoritmo usando a descrição narrativa, o fluxograma pode ser construído com muito mais facilidade, principalmente em problemas muito complexos 77
Conceitos em Programação Técnicas de algoritmos Descrição narrativa Fluxograma Programação em blocos 78
Fluxograma Um tipo de diagrama que representa de forma esquemática um processo Também é chamado de diagrama de bloco ou diagrama de fluxo Por ter poucos símbolos básicos, é uma das formas de algoritmo mais simples de ser criada 79
Fluxograma Possui sintaxe e semântica bem definidas Sintaxe: está relacionada ao uso correto dos símbolos Semântica: está relacionada ao significado de cada símbolo empregado Cada ação deve ser construída de forma clara e sem ambiguidades 80
Formas básicas As formas básicas usadas em um fluxograma são: 81
Operadores Aritméticos: +, -, *, /, % (resto), sqrt, pow Exemplos: 1+7, 3 % 2, 12-4, 5/3, sqrt(25), pow(5,2) Relacionais: >, <, =, >=, <=, <> Exemplos: 3>2, 5<>50, 11 <= 4 Lógicos: and, or, not Exemplos: 23 >= 14 and not(1 <> 5) Operador de atribuição: 82
Operadores no Portugol IDE Aritméticos: +, -, *, /, %, raiz, ^ Exemplos: 1+7, 3 % 2, 12-4, 5/3, 5^2, raiz(5) Relacionais: >, <, =, >=, <=, =/= Exemplos: 3>2, 5=/=50, 11 <= 4 Lógicos: E, OU, NAO Exemplos: 23 >= 14 E NAO(1 <> 5) Operador de atribuição: 83
Estrutura Sequencial Uma execução sequencial, indica que o fluxo de execução das ações, ocorrerá de forma linear, de cima para baixo, da esquerda para a direita Indica também que o fluxo não sofrerá alteração na sequencia de execução das ações O fluxo de execução visitará todos os componentes 84
Exemplos 85
Inicio ou término de fluxo Não importa a complexidade ou o tamanho de um fluxograma, mas todo fluxograma deve ter um único inicio e fim O símbolo usado é o mesmo, o que os diferencia semanticamente é a palavra Inicio e Fim adicionada à forma 86
Exemplo 87
Direção de fluxo Durante a execução do fluxograma precisamos saber de forma clara qual a próxima instrução deverá ser executada A seta é usada para mostrar a direção que o fluxo de execução deve tomar para a próxima instrução a ser executada 88
Exemplo 89
Saída de dados Mensagens são enviadas para o dispositivo de saída padrão monitor 90
Saída de dados Digite sua idade: 91
Saída de dados Digite sua idade: 18 92
Saída de dados Digite sua idade: 18 Você já pode votar! 93
Saída de dados Normalmente enviamos mensagens para informar algo ao usuário, por exemplo: Alguma ação a ser realizada Avisando sobre algo que ocorreu no sistema Exibindo resultado de processamento Etc 94
Exibição de mensagem O componente de exibição é um retângulo com o canto superior esquerdo cortado O componente de exibição pode ser usado tanto para exibir dados constantes como caracteres ( a, Dia 09/08, 33 ) ou números (10, 7.45, -2) como variáveis (idade, data_nascimento, salario, nome) 95
Tipos primitivos Tipos primitivos são os tipos usados para representar os dados Podem ser: Inteiro Real Caractere Lógico 96
Exemplos Inteiro..., -189,..., -88,..., -1, 0, 1,..., 34, 896,... Real..., -67.3,..., -54.0,..., -0.345, 0,..., 1.675,... Caractere 1, a, +, etc. Lógico (verdadeiro, falso), (aberto, fechado), (ligado, desligado) 97
Expressão aritmética Uma expressão é considerada aritmética quando temos somente operadores aritméticos, constantes e variáveis numéricas envolvidas nela O resultado de uma expressão aritmética é sempre um número e depende dos tipos básicos envolvidos 98
Operadores aritméticos São os operadores usados para realizar as operações básicas aritméticas da matemática: + - Adição - - Subtração * - Multiplicação / Divisão (envolvendo real) ^ - Potenciação raiz() - Radiciação % - Resto da divisão / - Quociente da divisão (entre inteiros) 99
Expressão relacional Uma expressão é considerada relacional quando temos a presença de operadores relacionais envolvidos na expressão O resultado de uma expressão relacional é sempre um valor lógico verdadeiro (V) ou falso (F) 100
Operadores relacionais São os operadores usados para relacionar valores entre si: = igual a (2 = 3.44, a = 7, x = y) > maior que (8 > 10, x > 7, a > b) < menor que (12.77 < 2, y < 123, n < m) >= maior ou igual a (4,5 >= 2.1, 67 >= z, a >= x) <= menor ou igual a (0 <= -3.5, u <= -2.4, l <= k) =/= diferente de (8 =/= 8, a =/= b, -x =/= 9.6) 101
Expressão lógica Uma expressão é considerada lógica quando temos a presença de operadores lógicos Negação: não (not)(,~) Conjunção: e (and)( ) Disjunção: or (ou)( ) O resultado de uma expressão lógica é sempre um valor lógico verdadeiro (V) ou falso (F) 102
Negação A negação de um valor lógico é o valor contrário A operação de negação é uma operação unária (aplicada sobre um operando) Exemplo não(verdadeiro) = falso não(falso) = verdadeiro 103
Conjunção A conjunção é verdadeira se e somente se os operandos são verdadeiros A operação de conjunção é uma operação binária (aplicada sobre dois operandos) Exemplo verdadeiro e verdadeiro = verdadeiro verdadeiro e falso = falso falso e falso = falso 104
Disjunção A disjunção é falsa se, e somente se ambos os operandos forem falsos A operação de disjunção é uma operação binária (aplicada sobre dois operandos) Exemplo verdadeiro ou verdadeiro = verdadeiro verdadeiro ou falso = verdadeiro falso ou falso = falso 105
Tabela verdade Tabela verdade é um resumo das combinações possíveis para operações lógicas básicas OP VL RS VL OP VL RS VL OP VL RS NÃO V F V E V V V OU V V NÃO F V V E F F V OU F V F E V F F OU V V F E F F F OU F F 106
Expressões compostas As expressões aritméticas, relacionais e lógicas podem ser combinadas entre si para formarem expressões mais complexas Para calcular expressões complexas devemos definir uma regra de precedência de operações 107
Precedência entre expressões Parênteses mais interno Expressões aritméticas Expressões relacionais Expressões lógicas 108
Precedência entre operadores aritméticos Parênteses mais interno ^ raiz * / % + - 109
Precedência entre operadores relacionais Operadores relacionais não possuem precedência uns sobre os outros Estes são resolvidos da esquerda para a direita na medida em que aparecem na expressão Os parênteses mais interno tem precedência sobre qualquer operador relacional 110
Precedência entre operadores lógicos Parênteses mais interno não e ou 111
Exercícios de fixação Calcule o resultados das expressões dados: x = 5, y = -1 e a = F 2 * x y + 3 / (x + (y 1)) 2 + y < x % 2 =/= raiz(16) / y ^ 2 a e (15 / x >= 3) ou (17 % x) * y x =/= y ou não(a) e a ou não(a) não(x + y =/= 5-1) e a 112
Exercícios de fixação Calcule o resultados das expressões dados: x = 2.5, y = -1 e a = V 2 * x (y / 2) = - 4.5 3 > x * y e não(a) a e não(8 / -2 <= -(y + 10 / (x 0.5))) não(raiz(x * 40-9) =/= y^2 * 10) e a ou F não(a) e F ou (a e não(a)) 113
Variável Podemos considerar a memória RAM como uma matriz que armazena informações em suas posições (células) Cada posição da memória pode ser acessada através de seu endereço Logo se queremos saber qual o valor do dado armazenado na posição 0x0DFE devemos ler essa posição 114
Variável 00 01 02... 0A 0B 0C 0D... FA FB FC FD FE FF 01 A 3 25 26 27 28 0 0 0 02 4.5 0 0... 0 0A D N 0B -21 0C F... 1 4.4 FD 1 1 BA FF 43 FE 1 1-10 EA 0A 87 FF 1 1 1 5.8 10 00 115
Variável Sistema manipulam de forma mais rápida números e endereços Pessoas manipulam de forma mais fácil nomes e palavras Imagine ter que guardar onde você armazenou o valor 12 na memória para depois usá-lo? 116
Variável Por isso podemos relacionar à uma posição de memória um nome Suponha que á posição 0x0DFE foi dado o nome idade, logo, para saber o valor armazenado em 0x0DFE basta saber o que está armazenado na posição idade 117
Variável 00 01... 0D... FA FF... A 26 27 28 0 FD 1 43 idade FE 1-10 87 FF 1 5.8 00 118
Formação de identificadores Já que podemos dar nomes para posições de memórias constantes e variáveis, quais nomes são válidos? As regras para formação de identificadores são: Devem começar com uma letra Podem ser seguidos por outras letras, números ou o caractere underline (_) Não devem possui caracteres especiais Não podem ser nomes reservados como pot, rad, div, mod, escreva, leia, etc 119
Diagrama de sintaxe Exemplos: Idade, N1, x, salario_bruto, Media_1, Raiz 120
Exercícios de fixação Dado os seguintes identificadores, assinale válido ou inválido para cada um Andre pot André pot_2 X1 div_a 1X N_#1 _Num1 B22_2 salário_bruto contato@fepi 121
Dica Sempre que possível use nomes nos identificadores que expliquem a sua função dentro do programa Assim, por exemplo, para criar um algoritmo que calcule as raízes da equação de segundo grau qual conjunto de identificadores seria melhor e porque? x, y, z, w, k, j a, b, c, delta, x1, x2 num_1, num_2, num_3, num_4, num_5 num_6 122
Exibição de variáveis Toda palavra sem aspas é considerada pelo comando de exibição uma variável Quando o comando encontra um palavra sem aspas ele procura na memória uma posição que possua o nome passado, lê seu valor e exibe este conteúdo no monitor 123
Exemplo Exibe texto e variável Exibe somente texto Exibe somente variável 124
Entrada de dados manual A entrada de dados manual é representado pelo paralelogramo Permite que dados informados pelo usuário através do dispositivo do entrada padrão, teclado, seja armazenado em uma região na memória para ser processado O nome da variável passada ao comando de entrada de dados é usado para decidir a região que deve armazenar o valor digitado 125
Exemplo 126
Processamento Durante a execução do fluxo devemos processar os dados a fim de obter informações desejadas O processamento é representado pelo retângulo e serve para realizar cálculos aritméticos na maioria da vezes 127
Processamento Podemos usar um retângulo para cada expressão aritmética ou agrupar várias expressões em um único símbolo de processamento colocando uma expressão por linha 128
Exemplo 129
Processamento O processamento possui um único caminho de entrada e um único caminho de saída O processamento pode calcular expressões relacionais e/ou lógicas mas não pode fornecer caminhos para seguir um fluxo condicional 130
Exemplo 131
Exercícios de fixação Crie um fluxograma que dado dois números exiba: A soma A subtração A multiplicação A divisão A média aritmética simples 132
Exercícios de fixação Crie um fluxograma que calcule a soma de três números digitados pelos usuário Crie um fluxograma que permita ao usuário digitar quatro valores e exiba a média entre eles Crie um fluxograma que permita ao usuário digitar seu ano de nascimento e seja exibida a sua idade aproximada 133
Exercícios de fixação Crie um fluxograma que exiba as raízes da equação do segundo grau ax 2 + bx + c dados: a = 2, b = -5 e c = 2 a = 1, b = 8 e c = 3 a = -3, b = 5 e c = -8 134
Exercícios de fixação Dado os seguintes fluxogramas, mostre o que será exibido no dispositivo de saída 135
Exercícios de fixação Dado os seguintes fluxogramas, mostre o que será exibido no dispositivo de saída 136
Exercícios de fixação Crie um fluxograma que exiba a soma dos: 3 primeiros pares positivos 7 primeiros números inteiros 10 primeiros múltiplos de 3 11 números primos a partir do 10 137
Decisão A decisão é representada pelo losango e após avaliar uma expressão relacional ou lógica segue o fluxo em uma de duas opções Fluxo na direção do resultado verdadeiro Fluxo na direção do resultado falso 138
Exemplo 139
Exercício de fixação Crie um fluxograma que se um número é positivo ou negativo Crie um fluxograma que exiba se um determinado número é par ou impar Crie um fluxograma que exiba se um número é múltiplo de 5 140
Exercício de fixação Crie um fluxograma que exiba o maior valor entre 3 valores dados Crie um fluxograma que exiba o maior e o menor valor entre 3 valores dados Crie um fluxograma que exiba se um número está ou não nos intervalos: ]0,10], [0,10], [0,10[ 141
Estrutura de Repetição A estrutura de repetição usa o losango para verificar uma expressão relacional e, de acordo com o resultado da análise, realimenta ou não o fluxo de execução em um ponto já visitado Dependendo da posição do teste podemos classificar a estrutura como: Repetição com teste no início Repetição com teste no final 142
Exemplo 143
Teste de mesa Após desenvolver um algoritmo ele deverá ser testado, este teste é chamado de TESTE DE MESA Consiste na criação de uma tabela com uma coluna para cada variável presente no algoritmo As linhas são atualizadas na medida em que o fluxo do algoritmo é percorrido e altera o conteúdo de uma variável 144
Teste de mesa Execute o teste de mesa no fluxograma e apresente qual será a saída 145
Teste de mesa cont 0 1 2 3 4 5 6 Saída: 0 1 2 3 4 5 146
Exercício cont soma Saída:? 147
Exercício cont soma 0 0 1 1 2 3 3 6 4 10 5 14 6 19 Saída: 0, 1, 2, 3, 4, 5, soma = 19 148
Exercício Execute o teste de mesa no fluxograma e apresente qual será a saída 149
Exercício de fixação Execute o teste de mesa no seguinte fluxograma com os valores: 8,5,2 4,1,2 3,7,1 5,1,7 4,7,9 Exiba as saídas para cada grupo de entradas Indique onde está o laço de repetição 150
Exercício de fixação 151
Exercício de Fixação Crie um fluxograma que: Permita ao usuário entrar com um valor inteiro e seja exibido para ele a tabuada do número Permita ao usuário informar um valor inteiro e seja exibido todos os números entre 0 e o número informado Permita ao usuário informar um valor inteiro e seja exibido a soma, a subtração e a multiplicação de todos os inteiros entre 0 e o número informado 152
Exercício de Fixação Crie um fluxograma que: Permita ao usuário informar um valor inteiro e seja exibido todos os números pares entre 0 e o número informado Permita ao usuário informar um valor inteiro e seja exibido todos os primos entre 0 e o número informado Permita ao usuário informar dois valores inteiros e seja exibida a soma de todos os inteiros no intervalo informado 153
Estrutura de Repetição Podemos classificar as estruturas de repetição em fluxograma, em dois grupos que são: Estrutura de repetição com teste no início Estrutura de repetição com teste no final 154
Repetição com Teste no Inicio Este tipo de estrutura executa o teste lógico antes de entrar no laço de repetição Dependendo da expressão usada no teste lógico, pode acontecer que o loop não seja executado nenhuma vez 155
Exemplo 156
Repetição com Teste no Final Este tipo de estrutura executa o teste lógico após entrar no laço de repetição Independente da expressão usada no teste lógico, o loop será executado pelo menos um vez 157
Exemplo 158
Observações Note que para qualquer estrutura de repetição, 3 elementos são importantes: Inicialização Condição de parada Incremento / decremento ou atualização Obs.: estes elementos devem estar relacionados à variável que controla o loop 159
Observações Inicialização Condição de parada Incremento, decremento ou atualização 160
Exercícios de fixação Identifique os três elementos de uma estrutura de repetição no fluxograma: 161
Exercício de Fixação Execute o teste de mesa nos fluxos com cont valendo: 5 10 15 e exiba a saída e identifique os elementos de loop. 162
Exercícios de Fixação Crie um fluxograma que: Permita ao usuário informar vários valores e seja exibido o maior e o menor valor Permita ao usuário informar vários valores e seja exibida quantidade de valores digitados Permita ao usuário informar vários valores e seja exibida a somatória dos valores digitados Permita ao usuário informar vários valores e seja exibida a média dos valores digitados Permita ao usuário informar vários valores e seja exibido o maior par 163
Exercícios de Fixação Crie um fluxograma que: Permita ao usuário informar vários valores e seja exibido o maior impar Permita ao usuário informar vários valores e seja exibido o maior primo digitado Permita ao usuário informar vários valores e seja exibido o maior par, o maior impar e o maior primo digitado 164
Exercícios de Fixação Crie um fluxograma que resolva as seguintes questões: Exiba a soma de 4 números digitados pelo usuário; Dada a equação 5 x x 3 x + 1, permita ao usuário digitar o valor de x e retorne o resultado Calcule a média aritmética entre 4 números 165