Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Fernando Almeida UNIDADE I Linguagem e Técnicas de Programação Um algoritmo é uma sequência lógica, finita e bem definida de instruções que devem ser seguidas para resolver um problema ou executar uma tarefa. Introdução Um programa de computador é um conjunto de instruções, escrito por meio de uma linguagem de programação (linguagem computacional). Exemplos: C, C++, C#, Java, Swift (iOS), Pascal, PHP... Programas Técnica de encadear pensamentos para atingir um determinado objetivo. Exemplo: Rotina diária – levantar da cama, escovar os dentes, dirigir um carro, calcular uma média de duas notas, calcular uma conta de luz... Ações que obedecem uma sequência lógica. Lógica de Programação Objetivo O objetivo principal da Lógica de Programação é demonstrar técnicas para resolução de problemas e, consequentemente, para automatização de tarefas. Lógica de Programação O algoritmo é um conjunto finito de instruções, de comandos, de ações, que têm como objetivo uma tarefa ou a resolução de um problema. Algoritmos – conceito básico Descrição narrativa Linguagem, normalmente utilizada no dia a dia. Fluxograma Conjunto de símbolos-padrão. Pseudocódigo ou Portugol Estrutura escrita em português – regras predefinidas para escrever algoritmos. Representação lógica Forma de narrar a solução proposta por meio de linguagem natural, utilizada no dia a dia (português). Linguagem narrativa Exemplo: Uma pessoa está perdida em uma cidade desconhecida e procura a rodoviária; encontra um policial e pede auxílio: – Por favor, como eu chego até a rodoviária? O policial responde (descrição narrativa): – Siga em frente e, na quarta esquina, vire à direita; siga em frente e, de lá, você já vai vê-la. Linguagem narrativa Vantagem: linguagem natural. Desvantagens: ambiguidade e falta de clareza dificultarão o entendimento e a implementação. Receita de bolo 1. Providencie manteiga, ovos, 2 kg de massa 2. Misture os ingredientes 3. Despeje a mistura na forma 4. Leve ao forno 5. Espere 20 minutos 6. Retire da forma Linguagem narrativa Com base na sequência abaixo (sacar dinheiro), qual alternativa melhor representa o processo lógico para executar a atividade de sacar dinheiro? a) 6-10-3-4-8-7-2-9-5-1. b) 9-8-7-1-10-3-4-6-5-2. c) 3-8-6-2-9-7-4-10-5-1. d) 1-8-3-2-10-7-9-4-5-6. e) 6-8-3-2-10-7-4-9-5-1. Interatividade Sacar dinheiro 1. Sair do banco 2. Aguardar a vez de ser atendido 3. Entrar na fila 4. Digitar a senha 5. Conferir o dinheiro 6. Entrar no banco 7. Informar o valor a ser retirado 8. Procurar a fila do caixa 9. Pegar o comprovante, o cartão e o dinheiro 10. Entregar o cartão ao atendente Com base na sequência abaixo (sacar dinheiro), qual alternativa melhor representa o processo lógico para executar a atividade de sacar dinheiro? e) 6-8-3-2-10-7-4-9-5-1. Resposta Sacar dinheiro 1. Entrar no banco 2. Procurar a fila do caixa 3. Entrar na fila 4. Aguardar a vez de ser atendido 5. Entregar o cartão ao atendente 6. Informar o valor a ser retirado 7. Digitar a senha 8. Pegar o comprovante, o cartão e o dinheiro 9. Conferir o dinheiro 10. Sair do banco Conjunto de símbolos-padrão contendo os passos para a resolução de um problema. Fluxograma Fluxograma Início e fim do algoritmo Entrada de dados Saída de dados (Exibir) Cálculos e atribuições Decisão Direção do processo Vantagem: fácil entendimento. Desvantagens: ter conhecimento dos símbolos, modificações e edições difíceis. Fluxograma Início do algoritmo Entrada do número Cálculo do dobro do número Apresentação do resultado Fim do algoritmo Início Leia num dobro num *2 Fim Escreva dobro Estrutura escrita em português, muito próxima à linguagem natural, com foco na lógica e não na sintaxe de linguagem. Pseudocódigo ou Portugol Pseudocódigo ou Portugol Vantagens: uso do Português, solução lógica, define a estrutura dos dados, próximo à linguagem de programação. Desvantagens: linguagem não oficial, não padronizado. Algoritmo CalculaDobro var num, dobro: número início leia num dobro num * 2 escreva dobro fim Pseudocódigo ou Portugol Supondo que se deseja trocar o conteúdo entre duas variáveis inteiras, A e B, fornecidas pelo usuário, para a realização dessa operação, considerando o menor uso de variáveis, será necessária a declaração de: a) Uma variável. b) Duas variáveis. c) Três variáveis. d) Quatro variáveis. e) Cinco variáveis. Interatividade Utilizando as representações narrativa, fluxograma e pseudocódigo; crie um algoritmo que receba o valor de duas e troque o conteúdo entre elas. Supondo que se deseja trocar o conteúdo entre duas variáveis inteiras, A e B, fornecidas pelo usuário, para a realização dessa operação, considerando o menor uso de variáveis, será necessária a declaração de: a) Uma variável. b) Duas variáveis. c) Três variáveis. d) Quatro variáveis. e) Cinco variáveis. Resposta Continuidade da resposta anterior Narrativa 1. Obter o primeiro número 2. Obter o segundo número 3. Trocar o conteúdo entre elas 4. Mostrar o resultado Pseudocódigo Algoritmo TROCA var x, y, aux: número início leia x leia y aux ← x x ← y y ← aux escreva x escreva y fim FLUXOGRAMA início x y aux x X y Y aux x, y início Entender o problema. Conhecer os resultados esperados. Informações disponíveis. Funcionamento do algoritmo. Verificação. Normatização. Objetividade. Simplicidade. Não ambiguidade. Regras para a construção de algoritmos Regras para a montagem de programas – pseudocódigo. Foco na ideia e não na rigidez das regras formais – sintaxe de linguagem. Descreve o raciocínio que será utilizado para criar um programa. Recursos: Tipos de informação. Entrada de dados. Saída de dados. Operações possíveis. Introdução à Programação Entrada Processamento Saída dados Os algoritmos e as linguagens de programação trabalham com dados bem-definidos. Dados são classificados em tipos: Variáveis. Constantes. Operadores. Introdução à Programação Tipos primitivos de dados: Inteiros: 1; 2; 44 Reais: 0,12; 3,14159; 0,000; -1,23 Caracteres (char) e cadeias (String): numéricos: (‘0’...’9’) alfabéticos: (‘A’...’Z’; ‘a’...’z’) cadeias: ‘avião’ Lógicos: valores booleanos (verdadeiro ou falso). Introdução à Programação Uma constante é uma informação que não varia com o tempo, permanece a mesma do início ao fim do algoritmo. Podem ser de qualquer tipo: números, letras e palavras. Exemplo: const PI = 3,141617 (nunca muda). Constantes “ Uma variável é um espaço de memória do computador reservado para guardar informações (dados). Variáveis “ Nomenclatura Iniciar com uma letra. Não conter espaços em branco ou caracteres especiais. Nomes significativos. Declaração var nome, código: Cadeia contador, idade: inteiro Variáveis O computador faz uma série de operações. Operações matemáticas (adição, subtração, multiplicação, divisão). Manipulação de dados 2 + 3 (2 e 3 são operandos; + é o operador) Atribuição: () nome “Aderbal Schmydt” Operadores var nome: Cadeia idade: inteiro início nome “Aderbal Schmydt” idade 19 fim Operador Referência do operador + adição - subtração * multiplicação / divisão DIV quociente MOD resto da divisão ** exponenciação Principais operadores aritméticos Fonte: livro-texto. Operador Referência do operador = igual <> diferente >= maior ou igual <= menor ou igual > maior < menor Operadores relacionais O resultado de uma operação relacional será sempre um valor lógico (V ou F) Fonte: livro-texto. Operadores lógicos Operador E Operador OU Fonte: livro-texto. Operadores lógicos Operador XOR (ou exclusivo) O resultado somente será verdadeiro quando os dois operandos forem diferentes. Operador NÃO Fonte: livro-texto. Sendo X eY variáveis numéricas, Z e W caracteres, T e K variáveis lógicas, quais os valores de T e K ao final da execução da sequência abaixo? a) T=falso e K=falso. b) T=falso e K=verdadeiro. c) T=verdadeiro e K=falso. d) T=verdadeiro e K=verdadeiro. e) T=falso e K=não(falso). Interatividade X 3 Y (3^2) + ((14+4)/2) * 9-10 Z “Lógica” W Z + “Programação” T (X<=Y) E (não(Y<>X)) = (Y>=X) K não T OU (X>Y) Sendo X e Y variáveis numéricas, Z e W caracteres, T e K variáveis lógicas, quais os valores de T e K ao final da execução da sequência abaixo? a) T=falso e K=falso. b) T=falso e K=verdadeiro. c) T=verdadeiro e K=falso. d) T=verdadeiro e K=verdadeiro. e) T=falso e K=não(falso). Resposta X 3 Y (3^2) + ((14+4)/2) * 9-10 Z “Lógica” W Z + “Programação” T (X<=Y) E (não(Y<>X)) = (Y>=X) K não T OU (X>Y) O computador não reconhece as fórmulas matemáticas armadas. Linearização área (base * altura) / 2 S 1+(1/2)+(1/3)+(1/4)+…+(1/20) área = base x altura 2 Forma genérica de escrever um algoritmo utilizando linguagem simples sem conhecer a sintaxe de nenhuma linguagem de programação. Pseudocódigo “ Pseudocódigo Algoritmo CalculoDobro //algoritmo de exemplo var num, dobro: inteiro início leia num dobro num * 2 escreva dobro fim Início Leia NUM DOBRO <- NUM *2 Escreva DOBRO Fim Permite a interação com o usuário: Comando escreva escreva (<lista de variáveis>) Comando leia leia (<lista de variáveis>) Entrada e saída de dados Algoritmo Calculo_Dobro var num, dobro: inteiro início leia número dobro num * 2 escreva dobro fim Realiza a validação do algoritmo. Teste manual dos comandos do algoritmo. Permite verificar se o código está realmente executando a função para o qual foi criado. Teste de mesa Algoritmo CalculoDobro var número, dobro: inteiro início leia número dobro número * 2 escreva dobro fim Analise o algoritmo abaixo e, por meio do teste de mesa, verifique os valores para as variáveis média, P1 e P2, tendo como entrada os valores 8 para n1 e 6 para n2: a) média=5,5, p1=0,4 e p2=0,6. b) média=6,8, p1=0,4 e p2=0,6. c) média=5,6, p1=0,4 e p2=0,6. d) média=6,8, p1=0,6 e p2=0,4. e) média=8,5, p1=0,4 e p2=0,6. Interatividade Algoritmo CalculaMedia var n1, n2, p1, p2, media : real inicio p1 0,4 p2 0,6 escreva(“Digite a nota 1”) leia(n1) escreva(“Digite a nota 2”) leia(n2) media (n1*p1)+(n2*p2) escreva(“A media é: ”, media) fimalgoritmo Analise o algoritmo abaixo e, por meio do teste de mesa, verifique os valores para as variáveis média, P1 e P2, tendo como entrada os valores 8 para n1 e 6 para n2: a) média=5,5, p1=0,4 e p2=0,6. b) média=6,8, p1=0,4 e p2=0,6. c) média=5,6, p1=0,4 e p2=0,6. d) média=6,8, p1=0,6 e p2=0,4. e) média=8,5, p1=0,4 e p2=0,6. Resposta Algoritmo “Calcula_Media” var n1, n2, p1, p2, media : real início p1 0,4 p2 0,6 escreva(“Digite a nota 1”) leia(n1) escreva(“Digite a nota 2”) leia(n2) media (n1*p1)+(n2*p2) escreva(“A media é: ”, media) fimalgoritmo ATÉ A PRÓXIMA!
Compartilhar