Apostila Algoritmos
19 pág.

Apostila Algoritmos


DisciplinaAlgoritmos e Estrutura de Dados I706 materiais7.917 seguidores
Pré-visualização4 páginas
algoritmosalgoritmos
P r o f ª . M a r i a n g e l a G o m e s S e t t iP r o f ª . M a r i a n g e l a G o m e s S e t t i
P r o f . R i c h a r d D u a r t e R i b e i r oP r o f . R i c h a r d D u a r t e R i b e i r o
C E F E T - P RC E F E T - P R
D A I N FD A I N F
C u r i t i b a - 2 0 0 2C u r i t i b a - 2 0 0 2
R e v i s a d o p e l o p r o f . R o b s o n R i b e i r o L i n h a r e sR e v i s a d o p e l o p r o f . R o b s o n R i b e i r o L i n h a r e s
1. Tipos Básicos e Comandos Básicos em Pseudocódigo
1.1. Constantes
Uma constante é um determinado valor fixo que não se modifica ao longo do tempo, durante 
a execução de um programa. Constantes podem ser do tipo numérica, lógica ou literal.
1.1.1.Constantes Numéricas 
Exemplos:
a) 25;
b) 3,14;
c) 7,8 x 103;
d) -15;
e) 0,342;
f) \u201310-9.
1.1.2.Constantes Lógicas 
É um valor lógico, isto é, que só pode ser falso ou verdadeiro.
1.1.3.Constante Literal 
Exemplos:
a) \u201cJosé da Silva\u201d;
b) \u201c1234\u201d; (note que isto não é uma constante numérica)
c) \u201cX1Y2W3\u201d;
d) \u201c*A!B?-/\u201d.
1.2. Variáveis
No Pseudocódigo, temos quatro tipos básicos de dados que podem ser utilizados:
Inteiro: qualquer número inteiro, negativo, nulo ou positivo.
Ex.: -5; 0; 235
Real: qualquer número real, negativo, nulo ou positivo.
Ex.: -5; 30,5; 0; 40
Caractere: qualquer conjunto de caracteres alfanuméricos.
Ex.: \u201cAB\u201d; \u201cxyz\u201d
Lógico: conjunto de valores falso ou verdadeiro em proposições lógicas.
1.2.1.Declaração de variáveis 
Toda variável deve ser declarada conforme a sintaxe abaixo:
l ó g i c a a p l i c a d a - P r o f . R i c h a r d p á g . ( 2/19)
a r q . : A l g o r i t m o s . d o c
inteiro
real
caractere
identificador
,
;
Identificador é o nome da variável que 
está sendo declarada.
OBS.: Os nomes de variáveis devem começar com letra (maiúscula ou minúscula e podem ser 
seguidos por números, letras , \u201c-\u201c ou \u201c_\u201d.
\u2022 Exemplos de declaração de variáveis:
inteiro x1;
real A, B;
caractere frase, NOME;
lógico TEM;
\u2022 Exemplos de nomes de variáveis inválidos:
Variável 1;
3x;
x + y.
REGRA: Dê nomes significativos para variáveis. Para identificar, por exemplo, uma variável que 
receberá a média aritmética de notas de provas utilize o nome media (sem acento) ao invés de 
z, x ou k.
1.3. Comentários
Para melhorar a clareza do algoritmo deve-se fazer uso dos comentários . Eles podem ser 
inseridos dentro de chaves.
Ex.: {Isto é um comentário em pseudocódigo}
Os mesmos podem ser colocados em qualquer ponto do algoritmo.
1.4. Comando de Atribuição
Para a atribuição de um valor a uma variável, usaremos o símbolo de atribuição \u201c \u2190 \u201c.
Sintaxe :
Exemplos:
k \u2190 1; (a variável k recebe o inteiro 1)
COR \u2190 \u201cverde\u201d;
TESTE \u2190 falso;
A \u2190 B;
MÉDIA \u2190 SOMA/N;
1.5. Operadores Aritméticos
Além os símbolos das quatro operações básicas (+, \u2013 (unário ou binário), *, /) usaremos 
símbolos para raiz quadrada e exponenciação, por exemplo:
a ou raiz(a)
(a + b)n ou (a + b) ** n
l ó g i c a a p l i c a d a - P r o f . R i c h a r d p á g . ( 3/19)
a r q . : A l g o r i t m o s . d o c
lógico
identificador ;expressão\u2190
acb 42 \u2212
Além disso, usaremos os nomes das funções matemáticas comuns. Por exemplo:
sen(x); cos(x); tg(x); exp(x) \uf0ef ex, etc...
abs(x) ou |x|; sinal (x) \uf0ef fornece \u20131, +1 ou zero conforme x
int(x) \uf0ef inteiro de x
Usaremos também como nomes de operadores:
\u2022 mod, por exemplo: m mod i é: resto (módulo) da divisão de m por i
\u2022 resto (m,i): idem
\u2022 div ou \u201c/\u201d, por exemplo, n div m: quociente da divisão inteira de n por m
\u2022 quociente (n,m): idem
1.6. Operadores Lógicos
Dentro das relações lógicas, usaremos os conectivos usuais:
\u201ce\u201d ou \u201c \u2227\u201d para a conjunção
\u201cou\u201d ou \u201c\u2228\u201d para a disjunção (não exclusiva)
\u201cnão\u201d ou \u201c~\u201d ou \u201c¬\u201d para a negação
1.7. Operadores Relacionais
Analogamente, usaremos os conectivos relacionais =, \u2260 ( ou !=, ou <>), \u2265 (ou >=), <, \u2264 (ou <=) 
de significado óbvio.
1.8. Hierarquia das Operações
As prioridades para as operações mistas são dada pela tabela a seguir:
1° Parênteses e funções
2° Expressões aritméticas:
1) +, \u2013 (unários)
2) * *
3) *, /
4) +, \u2013 (binários)
3° Comparações:
<, \u2264, =, \u2265, >, \u2260
4° não (~)
5° e (\u2227)
6° ou (\u2228)
1.9. Comandos de entrada e saída
\uf071 Entrada 
l ó g i c a a p l i c a d a - P r o f . R i c h a r d p á g . ( 4/19)
a r q . : A l g o r i t m o s . d o c
leia identificador ;
,
 
Ex.: leia NOTA,NUM;
\uf071 Saída 
 
Onde:
Identificador = variável;
Expressão = expressão matemática;
Caractere = conjunto de caracteres.
Ex.: 
escreva \u201cNOME:\u201d, N;
escreva A, X, 35;
escreva \u201cValor Lido:\u201d, N, \u201cResultado =\u201d, N**2+5;
\uf0ab Fluxograma
Fundamentalmente é uma ferramenta de codificação. Apresenta de forma gráfica a seqüência na 
qual os comandos ou blocos de processo são executados e a lógica de controle de execução. 
Tradicionalmente têm servido para dois propósitos. Primeiro, têm sido usados como uma 
ferramenta de projeto de programa para planejar a lógica detalhada e complicada do programa. 
Segundo, têm sido usados como documentação do programa.
Como os fluxogramas fornecem uma representação seqüencial de programa e não uma 
representação hierárquica, não podem apresentar a estrutura do programa e as inter-relações entre 
componentes procedurais.
Símbolos de Fluxograma
l ó g i c a a p l i c a d a - P r o f . R i c h a r d p á g . ( 5/19)
a r q . : A l g o r i t m o s . d o c
escreva
;
identificador ;
,
expressão
caractere
Processo Terminação Decisão Entrada/Saída
Documento
Conector
ExibiçãoMemória de 
Disco
1.10.Blocos
Podem ser definidos como um conjunto de comandos com uma função bem definida. Eles 
servem também para definir os limites onde as variáveis declaradas em seu interior são conhecidas. 
São delimitados pelas palavras início e fim.
1.11.Estrutura Seqüencial
É um conjunto de comandos, separados por ponto e vírgula (;) que serão executados em uma 
seqüência linear de cima para baixo.
1.12.Estrutura Condicional 
A estrutura condicional permite a escolha do grupo de ações e estruturas a ser executado 
quando determinadas condições, representadas por expressões lógicas, são ou não satisfeitas. Estas 
estrutura é delimitada pelo comando se e pela expressão fim se.
l ó g i c a a p l i c a d a - P r o f . R i c h a r d p á g . ( 6/19)
a r q . : A l g o r i t m o s . d o c
início
<declaração de 
variáveis>
<inicialização de 
variáveis>
<comandos>
fim
início
fim
Pseudocódigo Fluxograma 
C1;
C2;
C3;.....
Cn;
Pseudocódigo Fluxograma 
C1;
C2;
Cn;
.
.
.
Onde Ci são 
comandos
1.12.1.Estrutura Condicional Simples 
Neste caso, a seqüência só é executada se a condição for verdadeira.
1.12.2.Estrutura Condicional Composta 
Neste caso, a seqüência a ser executada (dentre duas seqüências) dependerá do resultado da 
condição.
l ó g i c a a p l i c a d a - P r o f . R i c h a r d p á g . ( 7/19)
a r q . : A l g o r i t m o s . d o c
se <condição>
então
C1;
C2;
C3;...
Cn;
fim se
Pseudocódigo Fluxograma 
C1;
C2;
Cn;
.
.
.
Onde Ci são 
comandos
F
V
se <condição>
então
C1;
C2;
C3;...
Cn;
senão
D1;
D2;
D3;...
Dn;
fim se
Pseudocódigo Fluxograma 
D1;
D2;
Dn;
.
.
.
Onde Ci e Di 
são 
comandos
F
C1;
C2;
Cn;
.
.
.
V
1.13.Estrutura de Repetição
1.13.1.Enquanto-faça 
Usado quando um conjunto de ações é executado repetidamente enquanto uma determinada 
condição permanece válida. (Expressão cujo resultado é o valor lógico verdadeiro)
Enquanto o valor da <condição> for verdadeiro, as ações dos comandos são executadas. 
Quando for falso, o comando é abandonado. Se já da primeira vez o resultado é falso, os comandos 
não são executados nenhuma vez.
1.13.2.Interrupção 
Caso seja necessária uma interrupção durante a execução da repetição, pode-se fazê-la através 
do comando interrompa. O mesmo fará a execução da repetição ser interrompida, sendo executada 
a seqüência de comandos que vier