Buscar

UNIDADE 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

Outros materiais