INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com
Objetivos Entender a necessidade de se utilizar uma linguagem formal para construir algoritmos a serem interpretados por computadores Compreender os conceitos de variáveis, constantes e tipos de dados Conhecer os conceitos de comandos de atribuição, entrada e saída de dados Conhecer os operadores aritméticos e a ordem de precedência Construir nossos primeiros algoritmos em Portugol
Lógica Ramo da filosofia que estuda o fundamento, a estrutura e as expressões humanas do conhecimento Criada por Aristóteles no século IV a.c. para estudar o pensamento humano e distinguir interferências e argumentos certos e errados Contribuem para a validade e a força da argumentação, distinguindo-se dos aspectos psicológicos, históricos, sociológicos ou outros Auxilia na detecção de verdades e falsidades
Exemplos Exemplo 01 Sei que sou mais velho que João. Sei que João é mais velho que José. Logo, eu sou mais velho que José. Exemplo 02 Sei que o livro está no armário. Sei que o armário está fechado. Logo, tenho de abrir o armário para pegar o livro. Exemplo 03 Todo homem é mortal Sócrates é homem Logo, Sócrates é mortal.
Exemplos Atividade 04 Todos os filhos de João são mais altos do que Maria. Antônio é filho de João. Então, o que podemos concluir logicamente? Atividade 05 José é aluno da FUNAM. Para ser aprovado, um aluno da FUNAM precisa obter nota maior ou igual a 70 e comparecer a mais de 75% das aulas. José compareceu a todas as aulas e obteve nota igual a 80. Então, o que podemos concluir?
Lógica e Computadores A Lógica é amplamente utilizada na computação Semelhança na execução ordenada de uma sequência de ordens De um estado inicial, em um determinado período de tempo finito, são produzidos resultados Os resultados produzidos são esperados e bem definidos
Lógica de Programação Essencial para o desenvolvimento de programas para computadores Conjunto de técnicas para concatenar pensamentos afim de atingir determinado objetivo Tem como objetivo a construção de algoritmos
Algoritmo É a sequência de passos finitos (sistemáticos) para atingir um objetivo específico Processo sistemático para a resolução de um problema Uma sequência de passos computacionais que transformam a entrada na saída. As soluções para os problemas cotidianos mais simples podem ser descritas por sequências lógicas de atividades
Algoritmo com receita Um algoritmo é uma receita para se resolver um determinado problema É um plano a ser executado (lista de atividades) para alcançar determinado objetivo Sendo assim, a execução da lista de atividades de forma coerentemente, conforme estipulado na receita (algoritmo), leva sempre à resposta desejada
Algoritmo Uma sequência de passos computacionais que transformam a entrada na saída. Entrada Processamento Saída Entrada São os dados de entrada do algoritmo. Hardwares para entradas de dados: teclado, mouse, microfone, scanner Processamento São os procedimentos utilizados para chegar ao resultado final. Saída São os dados já processados. Hardwares para saída de dados: impressora, monitor, caixa de som
Algoritmo que soma dois números Problema: somar dois números Entrada: os números n1 e n2 Processamento: somar n1 a n2 Saída: o resultado de n1 + n2
Formas de representação Diversas formas de representação Mais comuns: Descrição narrativa Fluxograma convencional Pseudocódigo, também conhecido como Linguagem Estruturada (Português estruturado) ou Portugol.
DESCRIÇÃO NARRATIVA Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com
Descrição Narrativa Os algoritmos são expressos diretamente em linguagem natural Vantagens O português é bastante conhecido por nós; Desvantagens Imprecisão; Pouca confiabilidade (a imprecisão acarreta a desconfiança); Extensão (normalmente, escreve-se muito para dizer pouca coisa). Exemplos: Trocar Lâmpada Tomar um banho
Trocar Lâmpada 1. Pegar uma escada; 2. Posicionar a escada embaixo da lâmpada; 3. Pegar uma lâmpada nova; 4. Subir na escada; 5. Retirar a lâmpada velha; 6. Colocar a lâmpada nova. OBS: O exemplo acima é apenas uma das muitas soluções possíveis para o problema em questão.
Tomar um banho 1. Entrar no banheiro e tirar a roupa 2. Abrir a torneira do chuveiro 3. Entrar na água 4. Ensaboar-se 5. Sair da água 6. Fechar a torneira 7. Enxugar-se 8. Vestir-se
FLUXOGRAMA Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com
Fluxograma Representação gráfica de algoritmos Formas geométricas diferentes implicam ações (instruções, comandos) distintos. Facilita o entendimento das ideias contidas nos algoritmos e justifica a sua popularidade Intermediária da descrição narrativa com o pseudocódigo Menos imprecisa que a descrição narrativa Não se preocupa com detalhes da implementação do programa
Fluxogramas Vantagens: Ferramenta bastante conhecida; Figuras dizem muito mais que palavras; Padrão mundial. Desvantagens: Faz com que a solução do problema já esteja amarrada a dispositivos físicos; Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou representá-los; Complica-se à medida que o algoritmo cresce.
Simbologia Terminal indica início e/ou fim do fluxo de um programa ou sub-programa. Seta de Fluxo de dados indica o sentido do fluxo. Serve para conectar os símbolos. Entrada operação de entrada de dados. Lê os dados necessários do programa Processamento operação de atribuição. Indica os cálculos a efetuar, ou atribuições de valores Saída operação de saída de dados. Apresenta os dados no monitor (ou algum outro dispositivo de saída) Decisão (a ser tomada) indicando os desvios para outros pontos do fluxo, dependendo do resultado da comparação Preparação grupo de operações não incluídas na diagramação (chave que modificará a execução de um determinado programa) Conector ao receber duas Setas de Fluxo de dados, normalmente após o fechamento dos processos decorrentes de uma decisão Conector de seção quando for necessário particionar o fluxograma. Coloca um número idêntico em ambas as seções / páginas, indicando a sua continuação.
Algoritmo de cálculo da média
Fluxograma Convencional
PSEUDOCÓDIGO Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com
Pseudocódigo Semelhante aos programas escritos Também chamado de Portugol ou Português Estruturado A linguagem de Programação mais próxima é o Pascal Possui maiores detalhes (contempla os tipos de variáveis)
Pseudocódigo Vantagens: Independência física da solução (solução lógica apenas); Usa o português como base; Pode-se definir quais e como os dados vão estar estruturados; Passagem quase imediata do algoritmo para uma linguagem de programação qualquer. Desvantagens: Exige a definição de uma linguagem não real para trabalho; Não padronizado. Pode ter certas diferenças dependo do autor / programador.
Estrutura de um Algoritmo ALGORITMO <Nome_do_Algoritmo> <declarações_de_variáveis> INÍCIO <corpo_do_algoritmo> FIM <Nome_do_Algoritmo> é um nome simbólico dado ao algoritmo com a finalidade de distingui-los dos demais. <declaração_de_variáveis> consiste em uma porção opcional onde são declaradas as variáveis globais usadas no algoritmo principal e, eventualmente, nos subalgoritmos. Início e Fim são respectivamente as palavras que delimitam o início e o término do conjunto de instruções do corpo do algoritmo.
Algoritmo de calculo de média ALGORITMO CalculoMedia var n1, n2, media: real INICIO LEIA(n1) LEIA(n2) media ((n1 + n2) / 2) SE (media >= 7) ENTAO ESCREVA( aprovado ) SENAO ESCREVA( reprovado ) FIMSE FIM
Diferentes representação de um algoritmo
Algoritmos com estruturas de decisão Cumprem a necessidade decisão a ser tomada a depender de algum passo Um fato indica se um ou mais passos do algoritmo serão executados ou não Estabelece uma condição necessária para a execução
Trocar Lâmpada 1. Ligue o interruptor 2. Se a lâmpada não acender: 1. Pegue uma escada; 2. Posicione a escada embaixo da lâmpada; 3. Pegue uma lâmpada nova; 4. Suba na escada; 5. Retire a lâmpada velha; 6. Coloque a lâmpada nova
Algoritmos com estruturas de repetição Define um fluxo de ações que se repete enquanto uma determinada situação acontece Permite executar a mesma ação de forma repetida sem a necessidade de aumentar o código escrito para realizar a ação novamente
Trocar Lâmpada Ligue o interruptor; Se a lâmpada não acender: Pegue uma escada; Posicione a escada embaixo da lâmpada; Pegue uma lâmpada nova; Suba na escada; Retire a lâmpada velha; Coloque a lâmpada nova. Enquanto a lâmpada não acender: Retire a lâmpada; Coloque uma outra lâmpada.
Resumo Nesta aula você conheceu o conceito de algoritmo Começou a desenvolver sua lógica de programação a partir de exemplos de algoritmos presentes em nosso cotidiano. Este é o primeiro passo para o aprendizado da programação
Exercício 1. Escreva um algoritmo (sequência de passos) para trocar um pneu de um carro. Utilize os três tipos de representação apresentados. 2. Descreva um algoritmo que defina como preparar um ovo frito. Utilize os três tipos de representação apresentados.
Exercício 3. Elabore um algoritmo que indique como fazer uma prova. Faça o algoritmo pensando que o aluno não deve deixar questões em branco; assim, deve continuar fazendo a prova enquanto existir questão em branco e o tempo de prova não tiver acabado. Além disso, o aluno só deve resolver uma questão se souber resolvê-la, senão pula para a próxima. 4. Suponha que você tenha uma caixa cheia de bolas. Nessa caixa existem bolas azuis e bolas vermelhas. Além disso, você tem também duas caixas vazias. Vamos chamar a caixa que contém as bolas de caixa 1 e as duas caixas vazias de caixa 2 e caixa 3. Neste contexto, escreva um algoritmo que defina como tirar todas as bolas da caixa 1, colocando as bolas azuis na caixa 2 e as bolas vermelhas na caixa 3.