Baixe o app para aproveitar ainda mais
Prévia do material em texto
LÓGICA DE PROGRAMAÇÃO Unidade I – INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PROFESSORA GELLARS TAVARES gellarstavares@yahoo.com.br 2014 LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 2 CURSO: ENGENHARIA DISCIPLINA: LÓGICA DE PROGRAMAÇÃO PROFESSORA: GELLARS TAVARES Entendendo o Computador COMPUTADORES Dispositivo capaz de executar cálculos e tomar decisões lógicas em velocidades milhões, e até bilhões, de vezes mais rápidas do que os seres humanos; Computadores processam dados sob o controle de conjunto de instruções chamado de programas de computador; Estes programas de computador guiam o computador através de conjuntos ordenados de ações especificados por pessoas chamadas de programadores de computador. ARQUITETURA BÁSICA DO COMPUTADOR Modelo de Von Neumann ► Dispositivos de entrada – São dispositivos que captam dados, convertendo-os em sinais elétricos para que possam ser armazenados na Memória Principal. Exemplos: teclado, mouse, unidades de disco, scanner, unidade de DVD, pen drive, modem, etc. ► Dispositivos de saída – São dispositivos que convertem sinais elétricos para formas que possam ser entendidas pelo usuário, exibindo-os, quando for o caso, sob a forma de textos, imagens ou som. Exemplos: impressora, monitor, unidades de disco, unidade de DVD, plotter, pen drive, modem, etc. ► CPU (Central Processing Unit) – Unidade Central de Processamento: Formada pela Unidade de Controle (ULA – Unidade Aritmética e Lógica) e registradores. LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 3 Unidade de Controle – Gerencia as instruções de controle de fluxo de dados entre todos os componentes e é responsável pela busca e decodificação das instruções e por gerar sinais que possibilitam a execução da instrução. ULA – Responsável por qualquer operação aritmética, lógica ou de deslocamentos. Registradores – São áreas especiais de memória que podem, ou não, serem manipulados pelo programador. Geralmente, de alta velocidade para aumentar o fluxo entre a MP (memória principal) e os demais componentes. Memória Principal – É um dispositivo capaz de armazenar dados e programas que está associado à CPU. Sistemas de Barramento – Todos os componentes, CPU, Memória Principal e os dispositivos de E/S são interligados através de três barramentos: Dado/Endereço/Controle. • O computador só entende números! • Dispositivos de Entrada: convertem informações externas (usualmente fornecidas pelo usuário) em números para o computador. • Dispositivos de Saída: convertem números fornecidos pelo computador em informações para o usuário. Funcionamento da CPU Busca Instrução: CPU lê a memória em busca do que deve fazer. Lê entrada: Supondo que a instrução indica a leitura de um dado de entrada, CPU lê entrada. Busca Instrução: CPU lê a memória em busca do que deve fazer com dado lido. Cálculos: Supondo uma instrução de cálculo, a CPU realiza a operação Busca Instrução: CPU lê a memória em busca do que deve fazer Armazena dado: Supondo que a instrução solicitava armazenamento do dado na memória, guarda o mesmo na memória Busca Instrução: CPU lê a memória em busca do que deve fazer Apresenta saída: Supondo que a instrução indica que um dado deve ser apresentado ao usuário, CPU escreve na saída E assim sucessivamente... A Memória Principal • A Memória Principal é formada por células, sendo cada célula endereçável. • O tamanho da célula é expresso em bits. Logo, se uma célula é formada por n bits, teremos 2n possibilidades de valores, isto é, se a célula for formada por 8 bits, poderemos representar valores de 0 a 255. LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 4 Suponha que a memória seja um arquivo com várias gavetas: • Cada gaveta é chamada posição de memória • Cada gaveta possui um número que a identifica, chamado endereço de memória • Em cada uma das gavetas, cabe um único número A memória principal (RAM) é... O Que o Computador Entende? • O computador entende apenas números... • ...em um dialeto chamado “binário” 0101001010111b • O que significa isso? • Pode significar várias coisas, depende da interpretação! – Música, imagem, números... • Comecemos com os números! – Mas para entender os números do computador, precisamos primeiro entender os nossos! Os Números Decimais LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 5 • Temos DEZ dedos, contando ambas a mãos • Como consequência, lidamos com números DECIMAIS • Isso significa que cada um dos dígitos de um número pode ser preenchido com um de 10 símbolos diferentes: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 • Quando precisamos representar um número maior que 9, acrescentamos um dígito 1 à esquerda... E o dígito da direita volta a zero: Os Números Binários • Para representar números, o computador conta apenas com sinais elétricos • Por motivo de precisão, apenas DOIS estados elétricos são usados para indicar números: ligado e desligado. • Cada “fio” do computador – pelo qual pode estar passando corrente elétrica ou não – representa um dígito para ele – chamado bit • Sendo assim, os números são compostos por apenas dois “símbolos”: 0, 1 • Quando precisamos representar um número maior que 1, acrescentamos um dígito 1 à esquerda... E o dígito da direita volta a zero: 0 1 10 11 100 REPRESENTAÇÃO DA INFORMAÇÃO O bit (BInary digiT) é a menor unidade de informação existente em um computador, podendo assumir os valores 0 (zero) e 1 (um), o que tem relação com a arquitetura do processador; Para cada dado, o computador utiliza diversos 0 e 1 seguidos: 0011010101001011. Podemos dizer então que o computador tem como base o sistema binário; A unidade padrão de medida na Informática é o Byte (BinarY TErm), que é o conjunto de 8 (oito) Bits. A um caractere (letra, número, ou símbolo especial) associamos um byte, como ilustrado abaixo: INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO LÓGICA MATEMÁTICA – Descreve as formas, as propriedades e as relações das preposições, graças à construção de um simbolismo regulado e ordenado que permite diferenciar linguagem cotidiana e linguagem formalizada. A linguagem formal nada tem a ver com a linguagem cotidiana, pois se trata de uma linguagem inteiramente construída por ela mesma, baseada no modelo da matemática. (CHAUÍ, 2000). LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 6 LÓGICA DE PROGRAMAÇÃ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, objetivando racionalidade e o desenvolvimento de técnicas que cooperem para a produção de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que se deseja programar. (FORBELLONE, A.; EBERSPACHER, H., 2000). DESAFIO Problema da Torre de Hanói - Eduard Lucas em 1883 Seja a seguinte situação: Devem-se mover todos os discos do primeiro eixo para o terceiro mantendo-se a ordem original. Em cada movimento, pode-se mover apenas um disco. Um disco maior nunca poderá ser sobreposto por outro menor. LÓGICA Ciência que estuda as leis do raciocínio. Correção/validação do pensamento. Encadeamento/ordem de ideias. Arte de bem pensar. Modo de raciocinar: as soluções dos problemas utilizam a lógica para serem criadas, ou seja, elas são ordenadas de uma forma que sejam possíveis de ser realizadas e de uma maneira que essa forma seja a mais adequada para o que se deseja obter. Exemplos deaplicação da lógica: O quarto está fechado e meu livro está no quarto. Então, preciso primeiro abrir o quarto para pegar o livro. Rosa é mãe de Ana, Paula é filha de Rosa, Júlia é filha de Ana. Então, Júlia é neta de Rosa e sobrinha de Paula. Todo mamífero é animal e todo cavalo é mamífero. Então, todo cavalo é animal. Todo mamífero bebe leite e o homem bebe leite. Então, todo homem é mamífero e animal (mas não é um cavalo). PROGRAMAÇÃO O que é Programação? = ABSTRAÇÃO! A realidade é complexa e rica em detalhes! LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 7 Abstração O que você abstrai dessa realidade? Abstração = Operação mental que observa a realidade e captura apenas os aspectos relevantes para um contexto NOÇÕES DE LÓGICA Em Lógica um conceito importante é o de “Proposição” Proposição: é um enunciado verbal, ao qual deve ser atribuído, sem ambiguidade, um valor lógico verdadeiro (V) ou falso (F). Exemplos de proposições: ► Ronaldinho Gaúcho é jogador de futebol. (V) ► 3 + 5 == 10 (F) ► 5 < 8 (V) Contraexemplos de Proposições: ► Onde você vai ? ► 3 + 5 ► Os estudantes jogam vôlei. (Quais ?) OPERAÇÕES LÓGICAS: São usadas para formar novas proposições a partir de proposições existentes. – Considerando p e q duas proposições genéricas, podem-se aplicar as seguintes operações lógicas básicas sobre elas: LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 8 Definindo a prioridade: Usar parênteses Exemplo: ((p v q)^(~q)) ou Obedecer (~) > (^) > (v) Exemplos de aplicação das operações lógicas Considere: p = 7 é primo = (V) q = 4 é ímpar = (F) Então: 4 NÃO é ímpar = ~q = (~F) = (V) 7 NÃO é primo = ~p = (~V) = (F) 7 é primo E 4 NÃO é ímpar = p ^ ~q = (V ^ (~F)) = (V ^ V) = (V) 7 é primo E 4 é ímpar = p ^ q = (V ^ F) = (F) 4 é ímpar E 7 é primo = q ^ p = (F ^ V) = (F) 4 é ímpar E 7 NÃO é primo = q ^ ~p = (F ^ (~V)) = (F ^ F) = (F) – Resumindo: – Ou seja: – Não (~) troca o valor lógico. Se for F passa a ser V e vice-versa. – E (^) só tem valor V quando as duas proposições forem V. Basta uma proposição ser F para o resultado ser F. – OU (v) só tem valor F quando as duas proposições forem F. Basta uma proposição ser V para o resultado ser V. ALGORITMO Um procedimento passo a passo para a solução de um problema. Sequência lógica e não ambígua de instruções que levam à solução de um problema num tempo finito. Sequência lógica de instruções que devem ser seguidas para a resolução de um problema ou para a execução de uma tarefa. Algoritmo é a descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações; p q p ^ q p v q V V V V V F F V F V F V F F F F ~p F F V V pp qq p ^ qp ^ q p v qp v q VV VV VV VV VV FF FF VV FF VV FF VV FF FF FF FF ~p~p FF FF VV VV LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 9 – Ação é um acontecimento que, a partir de um estado inicial, após um período de tempo finito, produz um estado final previsível e bem definido; A construção de algoritmo consiste na primeira fase de resolução de problemas utilizando-se recursos computacionais. Somente após a sua construção, verificação de sua correção e codificação, tem-se um programa; – Um programa é a formalização de um algoritmo em uma determinada linguagem de programação, segundo suas regras de sintaxe e semântica, de forma que o computador possa entender a sequência de ações; A base da boa programação consiste na construção de bons algoritmos. Alguns passos: – Compreender o problema identificando as suas entradas e saídas; – Desenvolver um procedimento para a solução do problema; – Verificar manualmente a sua correção; – Codificar o algoritmo; – Executá-lo e testá-lo; – Refinar se necessário, o algoritmo e documentá-lo. CARACTERÍSTICAS BÁSICAS DE UM ALGORITMO: Sequência lógica As instruções devem ser definidas em uma ordem correta. Não ambígua A sequência lógica e as instruções não devem dar margem à dupla interpretação. Solução de um problema A sequência lógica deve resolver exatamente (nem mais e nem menos) o problema identificado. Tempo finito A sequência lógica não deve possuir iterações infinitas. Exemplos de algoritmos – Receitas de comidas – Coreografia – Manuais de instalação Contraexemplos de algoritmos – Listas de compras – Dança informal – Índice remissivo de um livro Algoritmo Textual Informal Modo de preparo de um bolo: – Bata a margarina, as gemas e o açúcar até ficar cremoso – Junte o leite, o coco e a farinha e continue batendo – Acrescente o fermento e, por último, as claras em neve – Unte uma forma com manteiga e leve ao forno para assar Algoritmo Textual Informal Refinado Modo de preparo: – Bata a margarina, as gemas e o açúcar por 15 minutos – Junte o leite, o coco e a farinha e continue batendo por mais 15 minutos – Acrescente 20 g de fermento e, por último, às claras em neve – Unte uma forma com manteiga e leve ao forno para assar por 30 minutos LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 10 Atenção: – Um algoritmo é “uma solução” e não “a solução” de um problema. Um problema pode ser resolvido por mais de um algoritmo! – Tarefas que possuem “padrão de comportamento” podem ser descritas por um algoritmo. Ex: Qual será o próximo número das sequências a) 0,1,4,9,16,25? b) 7,8,10,13,17? Lógica de Programação = É o encadeamento lógico de instruções para o desenvolvimento de programas. Programa = É a implementação das instruções (codificação+tradução+execução) de um algoritmo em uma linguagem de programação. Estes programas podem ser escritos em Linguagem de máquina, ou ainda em linguagens de programação tais como: C, C++, Cobol, VB, dentre outros. Instrução = Informação que representa uma ação elementar que deve ser executada. Atenção O “;” (ponto-e-vírgula) indica o fim de uma instrução! RESUMINDO Algoritmo – sequência de etapas que visam atingir um objetivo específico. Por exemplo, resolver um determinado problema; Programa - conjunto de comandos específicos que traduzem para o computador o que um algoritmo determinou que deva ser realizado. Existe a necessidade da construção de modelos do mundo real, de forma que seja possível traduzir isso para a linguagem de computadores. Os principais problemas encontrados no desenvolvimento de algoritmos são: • Dificuldade na resolução de problemas; • Dificuldade na interpretação de enunciados; e • Dificuldade em abstrair e formalizar informações. Dessa forma, é necessário desenvolver essas habilidades, começando pela solução de problemas sem a necessidade do uso de ferramentas computacionais. Lógica - Modo de raciocinar: As soluções dos problemas utilizam a lógica para serem criadas, ou seja, elas são ordenadas de uma forma que sejam possíveis de ser realizadas e de uma maneira que essa forma seja a mais adequada para o que se deseja obter (a ordenação do procedimento da solução segue uma lógica de raciocínio; a formalização dos procedimentos de resolução de problemas precisa ser refinada para aproximar-se do que será aplicado na prática: a lógica de programação); Lógica de programaçã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, objetivando racionalidade e o desenvolvimento de técnicas que cooperempara a produção LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 11 de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que se deseja programar”. (Forbellone; Eberspacher, 2005). POR QUE APRENDER ALGORITMOS? Para desenvolver o raciocínio lógico e conceber uma solução a um dado problema, independente de uma linguagem de programação (Ex: Pascal, C e Java). Porque, a partir do algoritmo desenvolvido, fica mais fácil implementar o respectivo programa. Segundo grandes pesquisadores... – “A noção de algoritmo é básica para toda a programação de computadores”. KNUTH KNUTH - Professor da Universidade de Stanford e autor da coleção “The art of computer programming”. – “O conceito central da programação e da ciência da computação é o conceito de algoritmo”. WIRTH WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área e responsável pela criação de linguagens de programação como ALGOL, PASCAL e MODULA -2. Estruturas básicas de um algoritmo: – Sequência – Início/Fim Define uma estrutura onde as instruções serão executadas na ordem que aparecem. – Seleção (ou Condicional)– Se-Então/Senão Define uma estrutura condicional que, dada a sua avaliação (V ou F), determina qual “caminho” do algoritmo será executado. – Repetição – Repita (Faça/enquanto), Enquanto ou Para Define uma estrutura de iteração condicional (V ou F) ou contada (predefinida) de instruções. Algoritmo para ligar de um telefone público – Sequência Início 1- Tirar o fone do gancho; 2-Ouvir o sinal de linha; 3- Introduzir o cartão; 4- Teclar o número desejado; 5- Conversar; 6- Desligar; 7- Retirar o cartão; Fim. Este algoritmo usa uma estrutura de sequência “Inicio/Fim” LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 12 Algoritmo para ligar de um telefone público – Seleção Início 1- Tirar o fone do gancho; 2- Se ouvir o sinal de linha, então 2.1 Introduzir o cartão; 2.2 Teclar o número desejado; 2.3 Conversar; 2.4 Desligar; 2.5 Retirar o cartão; 3- Senão 3.1 Ir para o próximo telefone; Fim. Algoritmo para ligar de um telefone público – Repetição Início {o telefone precisa estar funcionando} 1- Repita 1- Tirar o fone do gancho; 2- Se ouvir o sinal de linha então 2.1 Introduzir o cartão; 2.2 Teclar o número desejado; 2.3 Conversar; 2.4 Desligar; 2.5 Retirar o cartão; 3- Senão 3.1 Desligar; 4. Continua(S/N) 2- Até Continua=‘N’ Fim. E se o telefone chamado estiver com defeito? E se o telefone chamado estiver ocupado? E se acabarem os créditos do cartão telefônico? E se...? É normal que um algoritmo sofra melhorias sucessivas. (Técnica de refinamentos sucessivos) Este algoritmo usa uma estrutura de decisão “Se-então/senão” Este algoritmo usa uma estrutura de repetição “Repita/Até” LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 13 SISTEMA COMPUTACIONAL A programação de um sistema computacional pode ser resumida em 3 passos básicos: Entrada, Processamento e Saída. Arquitetura de Von Newman Exemplo 1 – Exibir a média de dois números Exemplo 2 – Exibir se o aluno está aprovado ou reprovado Processamento Entrada Saída Dispositivo de Entrada Dispositivo de Saída Memória UCP 6 , 8 (6 + 8) / 2 7 LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 14 LINGUAGENS DE PROGRAMAÇÃO O conjunto de instruções, que será executado pelo processador, é chamado de linguagem de máquina. As linguagens de programação são classificadas de acordo com a similaridade que esta linguagem tem com a linguagem de máquina. Tipos de Linguagens de Programação 1 - Totalmente codificadas em binário (0´s e 1´s) 2 - Usam instruções simbólicas para representar os 0´s e 1´s 3 - Voltadas para facilitar o raciocínio humano Um computador compreende apenas linguagens compostas por números 0’s e 1’s. Então imagina criar um programa utilizando apenas esses números, isso seria extremamente complicado. Por esse motivo foi necessário a criação de um código que relacionasse a linguagem de máquina a uma linguagem mais fácil de ser compreendida. Linguagem Assembly ( Mnem ô nica ) LOAD R1, val1 LOAD R2, val2 ADD R1, R2 STORE R1, val2 Linguagem de M á quina 0010 0001 1110 0010 0010 1111 0001 0001 0010 0011 0001 1111 Linguagem de Alto N í vel val2 = val1+val2 Processament o Entrada Saída Dispositivo de Entrada Dispositivo de Saída Memória UCP Ana, 5, 3 Se (5+3)/2>=7 aprovado Senão reprovado Ana, reprovado Baixo Nível Alto Nível LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 15 Dessa forma, foi criada uma linguagem de montagem (chamada Assembly) que é um código que tem uma instrução alfanumérica para cada instrução numérica em linguagem de máquina. FORMAS DE REPRESENTAR UM ALGORITMO Algoritmos podem ser representados, dentre outras maneiras, por: PSEUDOCÓDIGO – Também chamado de PORTUGUÊS ESTRUTURADO DESCRIÇÃO NARRATIVA – Linguagem natural para especificar os passos de uma tarefa FLUXOGRAMA – Também chamado de DIAGRAMA DE BLOCOS, representação gráfica dos passos de uma tarefa. DIAGRAMA DE CHAPIN – Também chamado de DIAGRAMA DE NASSI- SHNEIDERMAN, diagrama com visão hierárquica e estruturada. Exemplos de representação de um algoritmo Diagrama de Blocos Exemplo: Algoritmo para converter uma temperatura em Fahrenheit para Celsius Descrição narrativa do algoritmo Fahrenheit-Celsius: - solicite a temperatura em Fahrenheit; - transforme a temperatura em Fahrenheit para Celsius; - informe a temperatura em Celsius. Antes, veremos os símbolos para elaborar um fluxograma (Diagrama de Módulos) Seus principais símbolos gráficos são: Um algoritmo é “uma solução” e não “a solução” de um problema. Um problema pode ser resolvido por mais de um algoritmo! LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 16 Agora voltaremos ao exemplo: Fluxograma do algoritmo Fahrenheit-Celsius Linguagem algorítmica (pseudocódigo) A forma geral de um algoritmo em pseudocódigo: Algoritmo <nome_do_algoritmo> [<declaração_de_variáveis>] Início <corpo_do_algoritmo> Fim. LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO) Onde: Algoritmo Indica o início da definição do algoritmo. <nome_do_algoritmo> Nome dado ao algoritmo para distingui-lo dos demais. [<declaração_de_variáveis>] LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 17 Parte opcional onde são declaradas as variáveis usadas no algoritmo e, eventualmente, nos sub-algoritmos (partes de um algoritmo). LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO) Onde: [<subalgoritmos>] Parte opcional onde são definidos os sub-algoritmos (quebra do algoritmo em partes: modularização). Início Palavra que delimita o início do corpo do algoritmo. <corpo_do_algoritmo> Conjunto de instruções do algoritmo. Fim Palavra que delimita o término do corpo do algoritmo. Pseudocódigo do algoritmo Fahrenheit-Celsius programa Fahrenheit-Celsiusvar real Fahrenheit, Celsius; início leia (Fahrenheit); Celsius ← 5 /9 * (Fahrenheit – 32); escreva (Celsius); fim Tarefas que possuem “padrão de comportamento” podem ser descritas por um algoritmo. LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 18 PSEUDOCÓDIGO Início real NOTA1, NOTA2, MEDIA; Leia (NOTA1, NOTA2); MEDIA := (NOTA1 + NOTA2) / 2; SE MEDIA >= 5 escreva ( “Aprovado” ); SENÃO escreva ( “Reprovado”); Fim VANTAGENS E DESVANTAGENS TIPOS DE DADOS PRIMITIVOS • Numéricos – Inteiros: dados numéricos positivos e negativos pertencentes ao conjunto de números inteiros, excluindo qualquer valor numérico fracionário. Ex. 10, 0, -3, etc.; – Reais: dados numéricos positivos e negativos pertencentes ao conjunto de números inteiros, incluindo qualquer valor numérico fracionário e inteiro. Ex. 10, 0, -34.435, etc.; • Não-numéricos – Caracteres: seqüência de valores delimitados por aspas (“ “) formados por letras (de A até Z), números (0 até 9) e símbolos (%,@,$,...). Este tipo também é conhecido como alfanumérico, string, literal ou cadeia. Ex. “q”, “linguagem c++”; – Lógicos: dados que sugerem uma única opção entre duas possibilidades existentes: verdadeiro ou falso, sim ou não, 1(um) ou 0 (não). Vantagens Desvantagens Descrição Narrativa O português é bastante conhecido por nós. Imprecisão. Pouca confiabilidade (a imprecisão acarreta a desconfiança). Extensão (normalmente, escreve-se muito para dizer pouca coisa). Fluxograma Padrão mundial. Ferramenta bem conhecida. Figuras dizem muito mais que palavras. Complica-se à medida que o algoritmo cresce. Pouca atenção aos dados, não oferecendo recursos para declará-los. Linguagem Algorítmica Independência de linguagem de programação. Usa o português como base. Define-se melhor quais e como os dados vão estar estruturados. Passagem quase imediata do algoritmo para uma linguagem de programação qualquer. Exige a definição de uma linguagem não real para trabalho. Não é padronizada. FLUXOGRAMA LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 19 CONSTANTES • Tudo que é fixo, estável, inalterável, imutável, contínuo, invariável, de valor fixo; • As constantes não sofrem alterações ao longo do programa. Exemplos: pi = 3.14159265 resultado = “aprovado” situacao = .falso. VARIÁVEIS • Variável é tudo aquilo que é sujeito a variações, que é incerto instável ou inconstante; • As informações variáveis são armazenadas na memória do computador; • A memória pode ser vista como um conjunto de gavetas. Para utilizar uma gaveta é preciso identificá-la com uma etiqueta. A identificação é feita pelo nome da variável; • Cada variável guarda uma informação de cada vez, sendo sempre do mesmo tipo. • Todo valor atribuído a uma variável será feito por meio do símbolo de atribuição: em algoritmo: ← (uma seta) em C++: = (igual) em Pascal: := (dois pontos igual) Ex. de declaração de variável: real nota; Ex. de atribuição em uma variável: nota = 5.7; REGRAS DE DEFINIÇÃO DE IDENTIFICADORES • Constantes e variáveis são identificadores. As regras de definição de nomes devem ser observadas: – O primeiro caractere do identificador deve ser sempre alfabético. Os demais podem ser alfanuméricos; – Não podem ser utilizados espaços em branco para formação de identificadores com nomes compostos. Os nomes deverão ser separados por sublinhado (_); – Não podem ser utilizados caracteres especiais; – Não podem ser utilizadas palavras reservadas; – Os nomes devem refletir o conteúdo do identificador; • Exs. Válidos: nome, nome_usuario, fone1; • Exs. Inválidos: 1X, fone#, inteiro, nome usuario; LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 20 OPERADORES ARITMÉTICOS: são as operações aritméticas básicas Símbolo Significado / Divisão * Multiplicação + Adição - Subtração % ou mod Resto da divisão de inteiros div Quociente da divisão de inteiros Soma - Na matemática, representada pelo sinal + e, em expressões em termos computacionais, pelo mesmo sinal. A + B Expressão que simboliza a soma do valor de duas variáveis. 2 + 3 Nesta expressão, o valor retornado é a soma dos valores dados, isto é, 5. Subtração - Na matemática, representada pelo sinal - e, em expressões em termos computacionais, pelo mesmo sinal. A - B Expressão que simboliza a subtração do valor de duas variáveis. 3 - 2 Nesta expressão, o valor retornado é o resto, isto é, 1. Multiplicação - Na matemática, representada pelos sinais x ou. e, em expressões em termos computacionais, pelo sinal * . B * D Expressão que simboliza a multiplicação do valor de duas variáveis. 3 * 2 Nesta expressão, o valor retornado é o produto dos valores dados, isto é, 6. Divisão - Na matemática, representada pelo sinal e, em expressões computacionais, pelo sinal /. A / B Expressão que simboliza a divisão do valor de duas variáveis. 6 / 2 Nesta expressão, o valor retornado é a divisão dos valores dados, que, no caso, será equivalente a 3. 5 / 2 Nesta expressão, o valor retornado é a divisão dos valores dados, que no caso será equivalente a 2,5. % - Resto (em outras linguagens, conhecido como mod). É usado em expressões em termos computacionais quando se deseja encontrar o resto da divisão de dois números inteiros. K % Y Expressão que simboliza a intenção de achar o valor do resto da divisão do valor da variável K pelo valor da variável Y. 5 % 2 Nesta expressão, o valor retornado é o resto da divisão do primeiro pelo segundo número que, no caso, será equivalente a 1. 7 % 4 Nesta expressão, o valor retornado é o resto da divisão do primeiro LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 21 pelo segundo número que, no caso, será equivalente a 3. Observação: Normalmente, as linguagens de programação assumem que a divisão é uma operação que retorna um valor REAL. Atenção especial, portanto, para variáveis que receberão o resultado de uma divisão. Em algumas linguagens, quando se divide dois números inteiros, o resultado será um inteiro. PRIORIDADE OPERADORES RELACIONAIS: são operadores binários (de mesma prioridade) que somente retornam os valores lógicos V ou F. Símbolo Significado == ou = Igual a > Maior que < Menor que >= Maior ou igual a <= Menor ou igual a != ou <> Diferente Como exemplos de Expressões relacionais têm: A != B X == 1 7 > 6 8 < 9 1 <= Y 4 >= W A diferente de B X é igual a 1 7 maior que 6 8 menor que 9 1 é menor ou igual ao valor da variável Y 4 é maior ou igual ao valor da variável W PRIORIDADE Operador Precedência () Calculados em primeiro lugar da esq. p/ dir. *, / ou % Calculados em segundo lugar da esq. p/ dir. + ou - Calculados em terceiro lugar da esq. p/ dir. <, <=, > ou >= Calculados em quarto lugar da esq. p/ dir. == ou != Calculados em quinto lugar da esq. p/ dir. = Calculados em último lugar da dir.p/ esq. Operador Precedência ( ) Calculados em primeiro lugar da esq. p/ dir. *, / ou % Calculados em segundo lugar da esq. p/ dir. + ou - Calculados por último da esq. p/ dir. LÓGICA DE PROGRAMAÇÃO – Professora Gellars Tavares – ano 2014 Página 22 Estes somente são usados para efetuar comparações, as quais só podem ser feitas entre dados do mesmo tipo. O resultado de uma comparação é sempre um valor lógico. OPERADORES LÓGICOS OU BOOLEANOS: são usados para combinar expressões relacionais e lógicas. Também retornam como resultado valores lógicos V ou F. Operador lógico de disjunção ( e ) Op. Lóg. de Disjunção .e. Cond.1 Cond.2 Resultado F F F V F F F V F V V V Operador lógico de conjunção ( ou ) Op. Lóg. de Conjunção .ou. Cond.1 Cond.2 Resultado F F F V F V F V V V V V Operador lógico de negação ( não ) Op. Lóg. de Negação .não. Condição Resultado V F F V ORDEM DE PRIORIDADES Operador Prioridade Aritméticos 1 Relacional 2 Lógico 3
Compartilhar