Baixe o app para aproveitar ainda mais
Prévia do material em texto
Curso de Redes de Computadores Lógica de Programação Unidade 1 : Introdução a Lógica de Programação Profª Esp. Kércia Maria Clementino Santos LÓGICA A lógica é o ramo da filosofia que cuida das regras do bem pensar, ou do pensar correto. Meio de garantir que nosso pensamento proceda corretamente a fim de chegar a conhecimentos verdadeiros. A lógica pode nos orientar em direção à verdade. Sem a lógica, ficamos reféns dos "Donos da verdade", dos dogmas absolutos que não podem jamais ser questionados. ALGORITMO É uma sequência de passos que visa a atingir um objetivo definido. Um algoritmo poderia ser grosseiramente comparado a uma receita culinária. Uma receita é um programa de atividades que deve ser respeitada e cumprida passo-a-passo. Caso um dos passos seja desconsiderado, a receita não dará certo. ALGORITMO Para se ter um algoritmo é necessário: 1. Que se tenha um número finito de passos; 2. Que cada passo esteja precisamente definido, sem possíveis ambigüidades; 3. Que existam zero ou mais entradas tomadas de conjuntos bem definidos; 4. Que exista(am) uma ou mais saídas; 5. Que exista uma condição de fim sempre atingida para quaisquer entradas e num tempo finito. Existem diversas formas de representação de algoritmos, mas não há um consenso com relação à melhor delas. Dentre as formas de representação de algoritmos mais conhecidas, sobressaltam: Descrição Narrativa, Fluxograma Convencional, Diagrama de Chapin e Pseudocódigo(Português Estruturado ou Portugol) Descrição Narrativa Nesta forma de representação os algoritmos são expressos diretamente em linguagem natural. Para isso devemos obedecer algumas regras básicas: • Usar somente um verbo por frase; • Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com informática; • Usar frases curtas e simples; • Ser objetivo; • Procurar usar palavras que não tenham sentido dúbio. Esta representação é pouco usada na prática porque o uso de linguagem natural muitas vezes dá oportunidade a más interpretações, ambigüidades e imprecisões. Como exemplo, têm-se o algoritmo para trocar um pneu furado: Afrouxar ligeiramente as porcas. 2. Suspender o carro. 3. Retirar as porcas e o pneu. 4. Colocar o pneu reserva. 5. Apertar as porcas. 6. Abaixar o carro. 7. Dar o aperto final nas porcas. Fluxograma É uma representação gráfica de algoritmos onde formas geométricas diferentes implicam ações distintas.O objetivo é facilitar o entendimento das idéias contidas nos algoritmos. Principais símbolos usados em Fluxogramas: Exemplo de Fluxograma Cálculo da média de duas notas de um aluno: – Obter as notas da primeira e da segunda prova; – Calcular a média aritmética entre as duas notas; – Se a média for maior ou igual a 7,0 aluno foi aprovado, senão ele foi reprovado Diagrama de Chapin Diagrama criado por Ned Chapin a partir de trabalhos de Nassi-Shneiderman, para substituição do fluxograma tradicional por um diagrama que apresenta uma visão hierárquica e estruturada da lógica do programa. Representa as estruturas que tem um ponto de entrada e um ponto de saída e são compostas pelas estruturas básicas de controle de seqüência, seleção e repetição. Enquanto é difícil mostrar o embutimento e a recursividade com o fluxograma tradicional, torna-se mais simples mostrá-lo com o diagrama de Chapin, bem como codificá-lo futuramente em pseudocódigo Exemplo de Diagrama de Chapin: Pseudocódigo Também conhecido como português estruturado ou portugol. É Bastante rico em detalhes e, por assemelhar-se bastante à forma em que os programas são escritos, encontra muita aceitação. É uma representação suficientemente geral para permitir que a tradução de um algoritmo nela representado para uma linguagem de programação específica seja praticamente direta. Sintaxe de um Pseudocódigo no Visualg Algoritmo <nome_do_algoritmo> <declaração_de_variáveis> <subalgoritmos> Inicio <corpo_do_algoritmo> FimAlgoritmo Exemplo de um Pseudocódigo //Pseudocódigo para ler um valor, calcular e mostrar o seu triplo. Algoritmo "CalculoTriplo" Var N,Triplo: real Inicio Escreva(“Digite um número é: “) Leia N Triplo <- N*3 Escreva ("O triplo do número é ", Triplo) FimAlgoritmo. Manipulação de dados Tipos de Dados Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que comandam o funcionamento da máquina e determinam a maneira como devem ser tratados os dados. Os dados propriamente ditos, que correspondem à porção das informações a serem processadas pelo computador. A classificação apresentada a seguir não se aplica a nenhuma linguagem de programação específica, pelo contrário, ela sintetiza os padrões utilizados na maioria das linguagens. Tipos Inteiros Tipos Reais Tipos Caracteres Tipos Lógicos Tipos de Dados Tipos Inteiros Correspondem aos números inteiros positivos ou negativos. O conjunto desse tipo de dados pode ser definido como Z = { ..., -3, -2, -1, 0 , 1, 2, 3 , ...} Ex: 35, 0, -56, 1024 entre outros. Tipos Reais Correspondem aos números que possuem parte decimal ou são números fracionários, e podem ser positivos, negativos ou zero. O conjunto desse tipo de dados inclui o conjunto dos números inteiros, dos fracionários e dos irracionais . Ex: 3.20(real positivo),0.00 (zero real) e -19.76 (real negativo). Tipos Caracteres São caracterizados como tipos caracteres, as seqüências contendo letras, números e símbolos especiais. Uma seqüência de caracteres deve ser indicada entre aspas (“”). Este tipo de dado também é conhecido como alfanumérico, string, literal ou cadeia. Ex: “Rua Alfa, 52 Apto 1”, “Fone 574-9988” Tipos Lógicos Os dados deste tipo somente podem assumir dois valores: verdadeiro e falso. Dado booleano, devido a George Boole, matemático inglês, que deu ao nome à álgebra (álgebra booleana) que manipula este tipo de dados. Computadores tomam decisões, durante o processamento de um algoritmo, baseados nestes dois valores. Variáveis Têm-se como definição de variável tudo aquilo que é sujeito a variações, que é incerto, instável ou inconstante. E quando se fala de computadores, temos que ter em mente que o volume de informações a serem tratadas é grande e diversificado. Desta forma, os dados a serem processados serão bastante variáveis. Basicamente, uma variável possui três atributos: um nome, um tipo de dado associado à mesma e a informação por ela guardada. Toda variável possui um nome que tem a função de diferenciá-la das demais. Cada linguagem de programação estabelece suas próprias regras de formação de nomes de variáveis. Todavia a maioria delas adota as seguintes regras: um nome de variável deve necessariamente começar com uma letra; um nome de variável não deve conter nenhum símbolo especial, exceto a sublinha ( _ ) e nenhum espaço em branco; um nome de variável não poderá ser uma palavra reservada a uma instrução de programa. Definição de Variáveis em Algoritmos Nos algoritmos, todas as variáveis utilizadas serão definidas no início do mesmo, por meio de um comando de uma das seguintes formas: VAR <nome_da_variavel> : <tipo_da_variavel> ou VAR <lista_de_variaveis> : <tipo_das_variaveis> A palavra-chave VAR deverá estar presente sempre e será utilizada uma única vez na definição de um conjunto de uma ou mais variáveis; Numa mesma linha poderão ser definidas uma ou mais variáveis do mesmo tipo; Para tal, deve-se separar os nomes das mesmas por vírgulas; Variáveis de tipos diferentes devem ser declaradas em linhas diferentes. Exemplo de definição de variável: VAR idade: inteiro Tipos de Variáveis As variáveis podem ser basicamente de quatro tipos: Numéricas, Caracteres, Alfanuméricas ou Lógicas. Numéricas: Específicas para armazenamento de números, que posteriormente poderão ser utilizados paracálculos. Podem ser ainda classificadas como Inteiras ou Reais. As variáveis do tipo inteiro são para armazenamento de números inteiros e as do tipo real são para o armazenamento de números que possuam casas decimais. Caracteres: Específicas para armazenamento de conjunto de caracteres que não contenham números (literais). Ex: nomes. Alfanuméricas:Específicas para dados que contenham letras e/ou números. Pode em determinados momentos conter somente dados numéricos ou somente literais. Se usado somente para armazenamento de números, não poderá ser utilizada para operações matemáticas. Lógicas: Armazenam somente dados lógicos que podem ser Verdadeiro ou Falso. Constantes Constante é um determinado valor fixo que não se modifica ao longo do tempo, durante a execução de um programa. Conforme o seu tipo, a constante é classificada como sendo Numérica, Caractere, Alfanumérica ou Lógica. As constantes são muito utilizadas na programação principalmente em situações nas quais temos de referenciar um mesmo valor várias vezes ao longo do programa. Para esses casos, podemos definir um nome de constante e atribuir-lhe um valor. Definições de Constantes em Algoritmos Nos algoritmos, todas as constantes utilizadas serão definidas no início do mesmo, por meio de um comando da seguinte forma: CONST <nome_da_constante> = <valor> Exemplo de definição de constantes: CONST PI = 3.14159 nome_da_empresa = “Enxuga Gelo SA” Operadores Operadores são símbolos que indicam a operação que deve ser realizada entre os operandos (constantes e/ou variáveis), produzindo um determinado resultado. Ex: + e - De acordo com o número de operandos sobre os quais os operadores atuam, os últimos podem ser classificados em: binários, quando atuam sobre dois operandos. Ex.: os operadores das operações aritméticas básicas (soma, subtração, multiplicação e divisão). unários, quando atuam sobre um único operando. Ex.: o sinal de (-) na frente de um número, cuja função é inverter seu sinal. Outra classificação dos operadores é feita considerando-se o tipo de dado de seus operandos e o valor resultante de sua avaliação. Segundo esta classificação, os operadores dividem-se em aritméticos, lógicos e relacionais. Um caso especial é o dos operadores relacionais, que permitem comparar pares de operandos de tipos de dados iguais, resultando sempre num valor lógico. Operador de Atribuição Um operador de atribuição serve para atribuir um valor a uma variável. Em nossos algoritmos usaremos o operador de atribuição: <- A sintaxe de uma atribuição é: NomedaVariavel <- expressao Operadores Aritméticos Os operadores aritméticos se relacionam às operações aritméticas básicas. OPERADOR TIPO OPERAÇÃO PRIORIDADE + Binário Adição 4ª - Binário Subtração 4ª * Binário Multiplicação 3ª / Binário Divisão 3ª % Binário Resto da divisão entre dois inteiros 3ª \ Binário Quociente da divisão de dois inteiros 3ª ^ Binário Exponenciação 2ª + Unário Manutenção de sinal 1ª - Unário Inversão de Sinal 1ª Operadores Relacionais Os operadores relacionais são operadores binários que devolvem os valores lógicos verdadeiro e falso. Estes operadores são somente usados quando se deseja efetuar comparações. Comparações só podem ser feitas entre objetos de mesma natureza, isto é variáveis do mesmo tipo de dado. Operadores Lógicos Operadores lógicos ou booleanos são usados para combinar expressões relacionais e resultam nos valores lógicos verdadeiro ou falso. Operador Lógico – E : Só produz o resultado verdadeiro se os dois operando forem verdadeiros Operador Lógico – OU: Produz o resultado verdadeiro se pelo menos um dos operandos for verdadadeiro Operador Lógico - NÃO Expressões combinam variáveis, operadores e constantes para produzir um resultado. Variáveis são nomes usados para representar posições na memória onde estão dados que serão processados. Constantes são símbolos usados para representar dados. Operadores são usados para combinar as variáveis e constantes fornecendo um valor como resposta. Avaliação de Expressões Avaliar primeiro os operadores de maior prioridade. Se temos de escolher entre operadores de mesma prioridade então escolher primeiro o que está mais à esquerda. Ex. 4/2*3 -- primeiro divide-se 4 por 2 e em seguida multiplica-se o resultado por 3, dando como resultado 6 Os parênteses usados em expressões têm o poder de “roubar” prioridade dos demais operadores, forçando a avaliação da subexpressão em seu interior. Não são permitidos outros símbolos para esta função tais como { } e [ ]. Expressões Prioridade dos Operadores Em expressões podemos misturar vários tipos de operadores. A tabela abaixo mostra a prioridade relativa dos operadores estudados. Operador Tipo Prioridade não ,- ,+ Unário 1ª ^ Binário 2 ª * ,/ ,%, \ ,e Binário 3ª + ,- ,ou Binário 4ª = ,<>, >=, <= ,>, < Binário 5ª
Compartilhar