Buscar

AULA 1 ALGORITMOS

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 28 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 28 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 28 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 1
AULA 1: INTRODUÇÃO (Conceitos introdutórios de Algoritmos) 
 
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. 
 
ESTRUTURA DE UM COMPUTADOR DIGITAL 
 
 
 
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: 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 2
 
A ESTRUTURA BÁSICA DE UM COMPUTADOR DIVIDE-SE EM: 
 
Memória Principal – divididas em células, registram dados de forma volátil. De 
alta velocidade é utilizada a todo o momento para fazer armazenagem de 
cálculos e registro dos programas que são utilizados. Isso significa que ao 
executar um programa, ele será, obrigatoriamente, armazenado na memória 
principal para que seja executado. 
 
Memória Secundária – Pode apresentar-se em mídia magnética ou óptica e 
será utilizada para armazenar programas e dados objetivando a reutilização. 
 
Processador – Dividido em ULA e UC processa todas as solicitações oriundas 
dos programas que estão sendo executados. Mantém uma pequena memória, 
chamada cachê, com o objetivo de aumentar a velocidade de processamento. 
 
LÓGICA 
 
• Ciência que estuda as leis do raciocínio. 
• Correção/validação do pensamento. 
• Encadeamento/ordem de idéias. 
• Arte de bem pensar. 
 
Exemplos de aplicaçã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). 
 
 
O que é Programação? = ABSTRAÇÃO! 
 
▓ A realidade é complexa e rica em detalhes! 
 
 
 
 
 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 3
 
Abstração 
 
 
 
O que você abstrai dessa realidade? 
 
 
ABSTRAÇÃO 
 
Abstração = Operação mental que observa a realidade e captura apenas os 
aspectos relevantes para um contexto 
 
 
 
RReeaalliiddaaddee 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 4
 
 
Você pode ver uma cabeça, um homem, uma mulher e um cão ? 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 5
As bolas parecem se movimentar conforme você olha.. 
 
 
Se você acha que estes círculos estão em movimento... 
Você está errado! Olhe fixamente somente para um deles... 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 6
 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 7
 
 
 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 8
 
 
 
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 
ambigüidade, um valor lógico verdadeiro (V) ou falso (F). 
Exemplos de proposições: 
► Ronaldinho Gaucho é jogador de futebol. (V) 
► 3 + 5 == 10 (F) 
► 5 < 8 (V) 
Contra-exemplos 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: 
 
OPERAÇÃO SÍMBOLO SÍMBOLO(C++) SÍMBOLO(PASCAL) SIGNIFICADO 
NEGAÇÃO ~ ! not NÃO 
CONJUNÇÃO ^ && and E 
DISJUNÇÃO v || or OU 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 9
„ Definindo a prioridade: 
„ Usar parênteses Ex: ((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) 
 
„ Exemplos de aplicação das operações lógicas (Cont.) 
Considere: 
p = 7 é primo = (V) 
q = 4 é ímpar = (F) 
 
Então: 
7 é primo OU 4 NÃO é ímpar = p v ~q = (V v (~F)) = (V v V) = (V) 
7 é primo OU 4 é ímpar = p v q = (V v F) = (V) 
4 é ímpar OU 7 é primo = q v p = (F v V) = (V) 
4 é ímpar OU 7 NÃO é primo = q v ~p = (F v (~V)) = (F v F ) = (F) 
 
 
„ Exemplos de aplicação das operações lógicas 
„ Resumindo: 
 
 
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
 
 
„ 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. 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 10
 
„ 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 
 
- Seqüência lógica e não ambígua de instruções que levam à solução de 
um problema num tempo finito. 
- Seqüê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; 
– Ação é um acontecimento que, a partirde 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 
seqüê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: 
 
Seqüência lógica 
As instruções devem ser definidas em uma ordem correta. 
Não ambígua 
A seqüência lógica e as instruções não devem dar margem à dupla 
interpretação. 
Solução de um problema 
A seqüência lógica deve resolver exatamente (nem mais e nem 
menos) o problema identificado. 
Tempo finito 
A seqüência lógica não deve possuir iterações infinitas. 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 11
 
„ Exemplos de algoritmos 
„ Receitas de comidas 
„ Coreografia 
„ Manuais de instalação 
 
„ Contra-exemplos 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 
„ 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 seqüências 
 a) 0,1,4,9,16,25? b) 7,8,10,13,17? 
 
LÓGICA DE PROGRAMAÇÃO 
 
Lógica de Programação = É o encadeamento lógico de instruções para o 
desenvolvimento de programas. 
 
 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 12
PROGRAMA 
 
Programa = É a implementação das instruções 
(codificação+tradução+execução) de um algoritmo em uma linguagem de 
programação. 
 
INSTRUÇÃO 
 
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 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 13
cooperem para a produção de soluções logicamente válidas e coerentes, que 
resolvam com qualidade os problemas que se deseja programar” 
 (Forbellone; Eberspacher, 2000). 
 
 
 
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: 
 
„ Seqüência – Início/Fim 
„ Define uma estrutura onde as instruções serão executadas 
na ordem que aparecem. 
 
„ Seleção – 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, Enquanto ou Para 
„ Define uma estrutura de iteração condicional (V ou F) ou 
contada (predefinida) de instruções. 
 
 
 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 14
 
„ Algoritmo para ligar de um telefone público – Seqüência: 
Início 
1. Tirar o fone do gancho; 
Este algoritmo usa uma 
estrutura de sequência 
“Inicio/Fim” 
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. 
 
 
„ 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; 
Este algoritmo usa uma 
estrutura de decisão 
“Se-então/senão” 
2.2 Teclar o número desejado; 
2.3 Conversar; 
2.4 Desligar; 
2.5 Retirar o cartão; 
1. 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 
Este algoritmo usa uma 
estrutura de repetição 
“Repita/Até” 
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; 
1. Senão 
3.1 Desligar; 
4. Continua(S/N) 
1. Até Continua=‘N’ 
Fim. 
 
 
 
 
 
 
CURSO: SISTEMASDE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 15
 
„ Algoritmo para ligar de um telefone público – Repetição 
„ 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) 
 
 
 
SISTEMA COMPUTACIONAL 
 
 
 
 
Hardware 
Sistema 
Computacional 
Software 
 Peopleware 
 
 
 
 
 
Programação de Sistema Computacional 
 
„ A programação de um sistema computacional pode ser resumida em 3 
passos básicos 
„ Arquitetura de Von Newman 
 
 
 
 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 16
 
 
 Processamento Entrada Saída
Dispositivo 
de Entrada 
Memória
UCP
Dispositivo
de Saída
 
„ Exemplo 1 – Exibir a média de dois números 
„ Arquitetura de Von Newman 
 
 
 
 
 Processamento Entrada Saída
Dispositivo 
de Entrada 
Dispositivo 
de Saída
Memória 
UCP 
6 , 8 
(6 + 8) / 2
7
 
„ Exemplo 2 – Exibir se o aluno está aprovado ou reprovado 
„ Arquitetura de Von Newman 
 
 
 
 Processament 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
 
 
 
 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 17
 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 
„ Tipos de Linguagens de Programação 
„ 1 - Totalmente codificadas em binário (0´s e 1´s) 
„ 2 - Usa instruções simbólicas para representar os 0´s e 1´s 
„ 3 - Voltadas para facilitar o raciocínio humano 
 
 
 
 
 
„ Problema da Torre de Hanói - Edouard Lucas em 1883 
„ Seja a seguinte situação: 
„ deve-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 nunca poderá ser sobreposto por outro maior 
 
 
 
 
 
Alto Nível
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Baixo Nível
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 18
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. 
 
Um algoritmo é “uma solução” e não “a solução” de um problema. 
Um problema pode ser resolvido por mais de um algoritmo! 
 
 
Exemplos de representação de um algoritmo 
 
 
 
Diagrama de Blocos 
 
 
 
 
 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 19
 
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. 
 
 
„ Fluxograma (Diagrama de Módulos) 
„ Seus principais símbolos gráficos são: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 20
Fluxograma do algoritmo Fahrenheit-Celsius 
 
 
 
 
 
„ Linguagem algorítmica (pseudo-código) 
„ A forma geral de um algoritmo em pseudo-có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>] 
„ Parte opcional onde são declaradas as variáveis usadas 
no algoritmo e, eventualmente, nos sub-
algoritmos(partes deum algoritmo). 
 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 21
„ 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. 
 
„ Pseudo-código do algoritmo Fahrenheit-Celsius 
 
 
 
programa Fahrenheit-Celsius 
var 
Real Fahrenheit, Celsius; 
Início 
Leia (Fahrenheit); 
Celsius ← 5 /9 * (Fahrenheit – 32); 
Escreva (Celsius); 
Fim 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 22
 
 
 
 
 
Tarefas que possuem “padrão de comportamento” podem ser descritas por um 
algoritmo. 
Ex: Qual será o próximo número da seqüência 
0,1,4,9,16,25? 
 
 
PSEUDOCÓDIGO 
 
Início 
 real NOTA1, NOTA2, MÉDIA; 
 Leia (NOTA1, NOTA2); 
 MÉDIA := (NOTA1 + NOTA2) / 2; 
 SE MÉDIA >= 5 
 escreva ( “Aprovado” ); 
 SENÃO 
 escreva ( “Reprovado”); 
Fim 
 
 
 
 
 
 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 23
 
FLUXOGRAMA 
 
 
 
 
 
 
 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. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 24
 
TIPOS DE DADOS PRIMITIVOS 
 
• Numéricos 
– Inteiros: dados númericos positivos e negativos pertencentes ao 
conjuntode números inteiros, excluindo qualquer valor numérico 
fracionário. Ex. 10, 0, -3, etc; 
 
– Reais: dados númericos 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). 
 
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. Exs.: 
 
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) 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 25
 
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; 
 
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 inteira 
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. 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 26
 
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 
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. 
 
 
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.
 
 
 
 
 
 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 27
 
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 temos: 
 
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 
 
 
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. 
 
 
„ 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. 
 
 
 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 28
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. 
 
Op. Lóg. de Disjunção .e. 
Cond.1 Cond.2 Resultado 
F F F 
V F F 
F V F 
V V V 
 
Op. Lóg. de Conjunção .ou. 
Cond.1 Cond.2 Resultado 
F F F 
 
V F V 
F V V 
V V V 
 
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