Baixe o app para aproveitar ainda mais
Prévia do material em texto
14/09/2016 1 Introdução à Lógica de Programação MKT-MDL-05 Versão 00 Lógica de Programação • No desenvolvimento de um sistema, quanto mais tarde um erro é detectado, mais dinheiro e tempo se gasta para repará-lo. • A responsabilidade do programador é maior na criação dos algoritmos do que na sua própria implementação, pois quando bem projetados não se perde tempo tendo que refazê-los, reimplantá-los e retestá-los, assegurando assim um final feliz e no prazo previsto para o projeto. 14/09/2016 2 Algoritmos • Os algoritmos estão presentes no nosso dia-a-dia sem que saibamos, pois uma receita culinária, as instruções de uso de um equipamento ou as indicações de um instrutor sobre como estacionar um carro, por exemplo, nada mais são do que algoritmos. Algoritmos • Um algoritmo pode ser definido como um conjunto de regras (instruções), bem definidas, para solução de um determinado problema. • Segundo o dicionário Michaelis, o conceito de algoritmo é a "utilização de regras para definir ou executar uma tarefa específica ou para resolver um problema específico." 14/09/2016 3 Linguagem de Programação • Na informática, o algoritmo é o "projeto do programa", ou seja, antes de se fazer um programa (software) na Linguagem de Programação desejada (Pascal, C, Delphi, etc.) deve-se fazer o algoritmo do programa. • Já um programa, é um algoritmo escrito numa forma compreensível pelo computador (através de uma Linguagem de Programação), onde todas as ações a serem executadas devem ser especificadas nos mínimos detalhes e de acordo com as regras de sintaxe da linguagem escolhida. Algoritmo • Um algoritmo não é a solução de um problema, pois, se assim fosse, cada problema teria um único algoritmo. Um algoritmo é um 'caminho' para a solução de um problema e, em geral, existem muitos caminhos que levam a uma solução satisfatória, ou seja, para resolver o mesmo problema pode-se obter vários algoritmos diferentes. 14/09/2016 4 Algoritmos Algoritmos não se aprende Algoritmo se aprende Copiando algoritmos Construindo algoritmos Estudando algoritmos prontos Testando algoritmos Formas de representação de Algoritmos a) Através de uma língua (português, inglês, etc.): forma utilizada nos manuais de instruções, nas receitas culinárias, bulas de medicamentos, etc. b) Através de uma linguagem de programação (Pascal, C, Delphi, etc.): esta forma é utilizada por alguns programadores experientes, que "pulam" a etapa do projeto do programa (algoritmo) e passam direto para a programação em si. c) Através de representações gráficas: são bastante recomendáveis, já que um "desenho" (diagrama, fluxograma, etc.) muitas vezes substitui, com vantagem, várias palavras. 14/09/2016 5 Algoritmo – Português coloquial • ALGORITMO 1: • pegar uma escada; • posicionar a escada embaixo da lâmpada; • buscar uma lâmpada nova; • subir na escada; • retirar a lâmpada velha; • colocar a lâmpada nova. Noção de Problema • Como fazer um bolo? • Uma receita é uma descrição de um conjunto de passos ou ações que fazem a combinação de um conjunto de ingredientes com vista a obter um produto gastronômico particular. 14/09/2016 6 Algoritmo • Um algoritmo opera sobre um conjunto de entradas (farinha, ovos, fermento, etc. no caso do bolo) de modo a gerar uma saída que seja útil (ou agradável) para o utilizador (o bolo pronto). • Assim, os passos ou ações de um algoritmo para confeccionar um bolo são os seguintes: 1. Bater duas claras em neve; 2. Adicionar duas gemas; 3. Adicionar um xícara de açúcar; 4. Adicionar duas colheres de manteiga; 5. Adicionar uma xícara de leite de coco; 6. Adicionar farinha e fermento; 7. Colocar numa forma e levar ao forno brando. Desenho ou Concepção de Algoritmo • Um algoritmo é uma descrição, passo-a-passo, de uma metodologia que conduz à resolução de um problema ou à execução de uma tarefa. • A programação consiste na codificação precisa desse algoritmo, segundo uma linguagem de programação específica. 14/09/2016 7 Desenho ou Concepção de Algoritmo • Há, pois, que levar em consideração que existem três fases distintas na elaboração de programas: – a análise do problema (especificação do problema, análise de requisitos, pressupostos, etc.) – a concepção do algoritmo – a tradução desse algoritmo na linguagem de programação Passos na Concepção e Construção de Algoritmos • Compreender o problema • Identificar os dados de entrada • Identificar os dados de saída • Determinar o que é preciso para transformar dados de entrada em dados de saída: – usar a estratégia do dividir-para-conquistar – observar regras e limitações – identificar todas as ações a realizar – eliminar ambiguidades • Construir o algoritmo • Testar (manualmente) o algoritmo • Executar o algoritmo 14/09/2016 8 Características Fundamentais de um Algoritmo • Finitude: um algoritmo deve sempre terminar após um número finito de passos. • Definição: cada passo de um algoritmo deve ser precisamente definido. As ações devem ser definidas rigorosamente e sem ambiguidades. • Entradas: um algoritmo deve ter zero ou mais entradas, isto é quantidades que lhe são fornecidas antes do algoritmo iniciar. Características Fundamentais de um Algoritmo • Saídas: um algoritmo deve ter uma ou mais saídas, isto é quantidades que tem uma relação específica com as entradas. • Eficiência: um algoritmo deve ser eficiente. Isto significa que todas as operações devem ser suficientemente básicas de modo que possam ser em princípio executadas com precisão em um tempo finito por um ser humano usando papel e lápis. 14/09/2016 9 Representações de Algoritmos • Linguagem Natural - Os algoritmos são expressos diretamente em linguagem natural (português como no exemplo do bolo). • Fluxograma (ou Diagrama de Fluxo) - Esta é um representação gráfica que emprega formas geométricas padronizadas para indicar as diversas ações e decisões que devem ser executadas para resolver o problema. • Pseudo-linguagem - Emprega uma linguagem intermediária entre a linguagem natural e uma linguagem de programação para descrever os algoritmos. Codificação em Linguagem Natural • Problema: – Cálculo da média aritmética de dois valores reais? • Entradas: – dois valores reais, X e Y • Saídas: – a média M=(X+Y)/2 • Algoritmo: 1. Início 2. Ler X, Y 3. Calcular a média M de X e Y 4. Escrever M 5. Fim 14/09/2016 10 Codificação em Fluxograma • Problema: – Cálculo da média aritmética de dois valores reais? • Entradas: – dois valores reais, X e Y • Saídas: – a média M=(X+Y)/2 • Algoritmo: Codificação em Código C • Problema: – Cálculo da média aritmética de dois valores reais? • Entradas: – dois valores reais, X e Y • Saídas: – a média M=(X+Y)/2 • Algoritmo: 14/09/2016 11 Programação Visual com Fluxogramas • Um fluxograma é uma representação gráfica de um algoritmo. • Programação visual: é a utilização de diagramas na programação. • Descrevem o fluxo de um algoritmo através de um conjunto de figuras geométricas padronizadas ligadas por setas de fluxo. 14/09/2016 12 Tipos Primitivos Tipos Primitivos • Inteiros: toda e qualquer informação numérica que pertença ao conjunto dos número inteiros relativos (negativa, nula ou positiva) • Exemplos: a) Ela tem 15 irmãos. b) A escada possui 8 degraus. c) Meu vizinho comprou dois carros novos. 14/09/2016 13 Tipos Primitivos • Real: toda e qualquer informação numérica que pertença ao conjunto dos números reais (negativa, positiva ou nula). • Exemplos: a) Ela tem 1,73 m de altura. b) Meu saldo bancário é de $215,20. c) No momento estou pesando 82,5 kg. Tipos Primitivos • Caractere: toda e qualquer informação composta de um conjuntode caracteres alfanumérico: numéricos (0,1,..., 9), alfabéticos (A...Z, a...z) e especiais (#, ?, !, @, etc.) • Exemplos: a) Constava na prova: “Use somente caneta!” b) O parque municipal estava repleto de placas: “Não pise na grama”. c) O nome do vencedor é Felisberto Laranjeira. 14/09/2016 14 Tipos Primitivos • Lógico: toda e qualquer informação que pode assumir apenas duas situações (biestável). • Exemplos: a) A porta pode estar aberta ou fechada. b) A lâmpada pode estar acesa ou apagada. Tipos Primitivos – Exercício • Determine qual é o tipo primitivo de informação presente nas sentenças a seguir: a) A placa “Pare!” tinha 2 furos de bala. b) Josefina subiu 5 degraus para pegar uma maçã boa. c) Alberta levou 3,5 horas para chegar ao hospital onde concebeu uma garota. d) Astrogilda pintou em sua camisa: “Preserve o meio ambiente”, e ficou devendo $100,59 ao vendedor de tintas. e) Felisberto recebeu sua 18ª medalha por ter alcançado a marca de 57,3 segundos nos 100 metros rasos. 14/09/2016 15 Constante • Entendemos que um dado é constante quando não sofre nenhuma variação no decorrer do tempo, ou seja, seu valor é constante desde o início até o fim da execução do algoritmo assim como é constante para execuções diferentes no tempo. Variável • Dados que tem a possibilidade de ser alterado em algum instante no decorrer do tempo, ou seja, durante a execução do algoritmo em que é utilizado, o valor do dado sofre alteração ou o dado é dependente da execução em um certo momento ou circunstância. 14/09/2016 16 Formação de Identificadores • São nomes de informações de caráter variável, os quais devem acompanhar as seguintes regras de formação: 1. Devem começar por um caractere alfabético. 2. Podem ser seguidos por mais caracteres alfabéticos ou numéricos. 3. Não devem ser usados caracteres especiais. Declaração de Variáveis 14/09/2016 17 Identificadores Válidos – Exercícios • Assinale os identificadores válidos: Identificadores Válidos – Exercícios 14/09/2016 18 Operadores Aritméticos • Chamamos de operadores aritméticos o conjunto de símbolos que representa as operações básicas da matemática, a saber: Operadores Aritméticos • Para representar as operações de radiciação e potenciação, usaremos as palavras-chave red e pot. 14/09/2016 19 Operações Aritméticas • Usaremos outras operações matemáticas não-convencionais, porém muito úteis na construção de algoritmos, que são o resto da divisão e o quociente da divisão inteira. Operações Aritmétricas • Na resolução das expressões aritméticas, as operações guardam uma hierarquia entre si. 14/09/2016 20 Operadores Aritméticos - exemplos Operadores Aritméticos – Exercícios 14/09/2016 21 Expressões Lógicas • Denominamos expressão lógica aquela cujos operadores são lógicos ou relacionais e cujos operandos são relações ou variáveis ou constantes do tipo lógico. Operadores relacionais • São usados para realizar comparações entre dois valores de mesmo tipo primitivo. Tais valores são representados por constantes, variáveis ou expressões aritméticas. • São comuns para construirmos equações. 14/09/2016 22 Operadores Relacionais - exemplos Operadores Lógicos • Utilizaremos três operadores básicos para a formação de novas proposições lógicas compostas a partir de outras proposições lógicas simples. 14/09/2016 23 Tabelas-verdade • É o conjunto de todas as possibilidades combinatórias entre os valores de diversas variáveis lógicas, as quais se encontram em apenas duas situações (V ou F), e um conjunto de operadores lógicos. • Abaixo, uma tabela-verdade que dispõe de uma maneira os valores lógicos envolvidos em uma expressão lógica. Tabelas-verdade • Operação de Negação 14/09/2016 24 Tabelas-verdade • Operação de Conjunção Tabelas-verdade • Operação de Disjunção não-exclusiva 14/09/2016 25 Tabelas-verdade – Exemplos Tabelas-verdade - exemplos 14/09/2016 26 Propriedades entre Operadores Lógicos • Precedência entre os operadores lógicos: Propriedades entre Operadores Lógicos • Precedência entre todos os operadores: 14/09/2016 27 Propriedades entre Operadores Lógicos - exemplos Operadores Lógicos – Exercícios 14/09/2016 28 Comando de Atribuição • Um comando de atribuição permite-nos fornecer um valor a uma variável, em que o tipo de dado deve ser compatível com o tipo de variável. Comandos de Atribuição 14/09/2016 29 Comandos de Entrada e Saída • Para que um algoritmo possa receber os dados de que necessita, adotaremos um comando de entrada de dados denominado leia, cuja finalidade é atribuir o dado a ser fornecido à variável identificada. Comandos de Entrada e Saída • Para que o algoritmo possa mostrar os dados que calculou, como resposta ao problema que resolveu, adotaremos o comando saída de dados denominado escreva, cuja finalidade é exibir o conteúdo da variável identificada. 14/09/2016 30 Blocos • Conjunto de ações com uma função definida; nesse caso, um algoritmo pode ser visto como um bloco. Ele serve também para definir os limites nos quais as variáveis declaradas em seu interior são conhecidas. Comandos de Entrada e Saída - Exercícios • Utilizando o seguinte trecho de algoritmo, explique o que está acontecendo em cada linha e qual é o resultado de cada ação executada. 14/09/2016 31 Comandos – Exercícios . . inteiro: X, Y; real: Z; leia (X); escreva (X, “elevado ao cubo =“, pot (x,3)); leia (Y); escreva (X + Y); Z ← X/Y; Escreva (Z); Z ← Z + 1; X ← (Y + X) mod 2; Escreva (x); . .
Compartilhar