Buscar

Fluxograma e Pseudocódigo

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 34 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 34 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 34 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

ALGORITMOS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
DEFINIÇÃO. 
 
Algoritmo é a especificação de um conjunto finito, completo e ordenado de 
operações que devem ser executadas a fim de solucionar um problema ou 
realizar uma tarefa. 
 
 
FORMAS DE REPRESENTAÇÃO: 
 
 
- Descrição Narrativa 
- Fluxograma 
- Pseudocógio 
 
 
Descrição Narrativa 
 
Expressão dos algoritimos em uma linguagem humana: português, 
inglês, etc. 
 
Exemplo: Cálculo da média de um aluno 
 
- Obter as notas das duas provas 
- Calcular a média ponderada: 40% da primeira nota e 60% da segunda. 
- Se a média inferior a 7.0, o aluno foi reprovado, senão ele foi 
aprovado. 
 
 
Esta forma é pouco útil para especificar algoritmos inerentes à 
implementação computacional. Por esta forma, não serão objeto de estudo. 
 
- Fluxograma 
 
Os flugramas são representações gráficas de um algoritmo. São compostos 
por um conjunto de símbolos que expressam determinadas operações comuns 
aos algoritmos computacionais. No escopo de nossa abordagem utilizarmos 
inicialmente apenas os símbolos abaixo apresentados: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
= Marcas de Início e Fim do Fluxograma 
 
= Entrada de Dados (obtém os dados necessários à execução do 
algoritmo – Ex. teclado 
= Saída de Dados (enviam informação para o dispositivo de saída. Ex. 
monitor ) 
= Comando de atribuição (ou chamada de módulo/função) 
 
= Decisão (permitem condicionar o fluxo de execução das operações) 
= Setas (indicam o fluxo de execução das operações) 
 
 
 
Exemplo: Cálculo da média de um aluno 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.F. 
 
Início 
 
N1, N2 
 
Média = 
N1*0,4+N2*0,6 
 
Média 
< 7,0 
 
“Aprovado” 
 
“Reprovado” 
 
Fim 
 
.V. 
 
- Pseudocódigo 
 
Forma de reprentação muito próxima do formato clássico das linguagens de 
programação de alto nível. Há duas vantagens básicas nesse tipo de 
representação: (1) menos provável surgimento de ambiguidade em 
comparação com a “descrição narrativa” e; (2) tradução facilitada para 
linguagens de programação. 
 
 
Estrutura Básica do Pseudocódigo. 
 
Algoritmo <nome do algoritmo> 
 
Var <nome ou lista de variáveis > : <tipo> 
 
Início 
 <conteúdo do algoritmo> 
Fim. 
 
 
 
Exemplo: Cálculo da média de um aluno 
 
Algoritmo Média 
 
Var N1, N2, Média : real 
 
Início 
 LER N1, N2 
 Média = N1*0,4 + N2*0,6 
 SE Média < 7.0 
 Então 
 ESCREVER “Reprovado” 
 Senão 
 ESCREVER “Aprovado” 
 FSE 
Fim. 
 
 
 
VARIÁVEIS: 
 
- Tipos de Variáveis 
 
1. Inteiras: representam valores que pertencem ao conjunto dos 
número inteiros. 
 
2. Reais: representam valores numéricos fracionários. 
 
3. Alfanuméricos: variáveis cujo conteúdo são letras, palavras ou 
cadeia de caracteres alfanuméricos. Também conhecidas como 
“strings”. Importante que o seu conteúdo é delimitado por aspas. 
Ex.: Nome <- “Ana” 
 
4. Lógicos: representam os valores lógicos “verdadeiro” ou “falso”. 
Por vezes representados como valores inteiros onde zero é o valor 
falso e um é o valor verdadeiro. 
 
 
 
- Variáveis e Armazenamento na Memória 
 
Memória é o conjunto células onde se armazenam os dados de um 
programa (e não só). Cada célula possui um endereço (numérico) específico. 
Pode-se fazer uma analogia entre entre uma qualquer coluna de dados do 
Excel e um segmento de memória, onde cada célula pode assumir um valor e a 
localização da célula é dada pelo número da linha onde se encontra 
 
A capacidade de armazenamento de cada uma dessas células depende da 
arquitetura da memória: cada célula pode armazenar uma quantidade “0”s e 
“1” de acordo como quantidade de bits que são acessados. Vamos estudar o 
caso geral: cada célula “contém” 8 bits. Esse conjunto de 8 bits é chamado de 
byte. O byte é a menor porção acessível de memória. 
 
Um byte de 8 bits é numerado em ordem decrescente de 7 a 0, onde o bit 7 
é o mais significativo (MSB – Most Significant Bit) e o bit 0 é o menos 
significativo (LSB – Least Significant Bit) 
 
Cada bit armazena uma informação binária, 0 ou 1, então esse byte possui 
2
8
 =256 estados possíveis. 
 
No correr deste documento, cada posição de memória terá 8 bits. 
 
Armazenamento de Dados do Tipo Alfanúmérico (texto) 
 
Para armazenar um valor alfanumérico, será suficiente reservar-se uma 
posição de memória para cada letra/dígito desse tipo de variável. 
 
Senão vejamos: imagine que a variável chamada objeto recebe o valor “casa”, 
ou objeto <- “casa”; 
 
Mas, se as posições de memória só guardam uma sequência de “0”s e “1”s, 
como representar esse valor na memória ? 
 
Veja a tabela a seguir: 
 
end Conteúdo base 10 ASCII 
15 0 1 1 0 0 0 1 1 99 C 
16 0 1 1 0 0 0 0 1 97 A 
17 0 1 1 1 0 0 1 0 115 S 
18 0 1 1 0 0 0 0 1 97 A 
 
Existe a chamada Tabela ASCII (American Standard Code for Information 
Interchange), onde cada caractere é associado a um número (código) que pode 
variar de 0 a 255, portanto 256 possibilidades. 
 
Armazenamento de Dados do Tipo Inteiro 
As linguagens de programação permitem a definição de diversos tipos de 
variáveis, como por exemplo: short int (inteiros entre -32.768 a +32.767); 
short unsigned integer (0 a 65.535); ou integer (-2.147.483.648 a 
+2.147.483.647). O dois primeiro tipos apresentados necessitam de 2 bytes 
(ou seja, duas posições de memória para serem armazenados). O tipo integer 
necessita de 4 bytes. 
 
Não é difícil perceber: quantos mais bytes disponíveis para se armazenar um 
número, maior a faixa de valores que poderão ser representados. 
 
Para ilustrar, vamos analisar um tipo de variável hipotético que armazena 
valores inteiros em apenas um byte: 
 
Assim, há 8 posições disponíveis para uma representação em binário de um 
número. Vamos analisar o maior e menor número possível: 
 000000002 = 010 
 111111112 = 25510 
 
Como ser constata acima com um byte seria possível armazenar qualquer 
valor inteiro entre 0 e 255. Mas como representar inteiros menores que zero ? 
 
Para isso será necessário “sacrificar” 1 bit que passará a representar o sinal. 
Assim é possível o seguinte: 
 011111112 => 0 (-) 11111112 = -12710 
 111111112 => 1(+) 11111112 = 12710 
 
Acima, o bit mais sinificativo (mais à esquerda) foi utilizado para representar 
o sinal. 
 
Com 2 bytes teríamos: 
 11111111 111111112 => 65.53510 
M(32) M(33) 
 
Veja que, não por acaso, o valor acima calculado é o valor máximo do tipo 
“short unsigned integer” anteriormente citado. 
M(32) e M(33) acima são exemplos de possíveis posições de memória onde as 
duas sequências de 8 bits estariam armazenadas. 
 
 
 
 
 
 
 
 
 
 
 
- Atributos de Variáveis 
 
A uma variável estão sempre associados: 
 Nome: definido pelo programador e que deve: (1) iniciar com 
uma letra e; (2) não deve conter símbolos especiais, exceto a 
sublinha ( _ ). 
 Endereço de Memória: posição do primeiro byte onde a 
variável começa a ser armazenada. 
 Tipo: tipo de informação que será armazenada (número inteiro, 
número real, texto, etc). O tipo determina o número de bytes 
necessários para armazenar a variável na memória. 
 Informação: valor da variável em um momento específico. 
 
O Nome, Endereço e Tipo são fixos durante a execução de um programa, o 
Informação varia durante a execução do programa. 
 
 
- Definição de Variáveis em Algoritmos 
 
Todas as variáveis utilizadas nos algoritmos devem ser definidas no início dos 
mesmos, de uma das seguintes formas: 
 
VAR <nome_da_variável> : <tipo_da_variável> 
ou 
VAR <lista_de_variáveis> : <tipo_das_variáveis> 
 
Variáveis de tipos diferentes devem ser declaradas em linhas diferentes.Exemplo: 
 
VAR nome: : literal[10] 
 Idade, Nfilhos, : inteiro 
 Salario, : real 
 Gerente : lógico 
 
 
 
 
- Expressões 
 
O armazenamento de valores na memória é fundamental, mas não 
suficiente para as tarefas executadas em um algoritmo. É necessário 
também mecanismos que permitam utilizar essas variáveis de maneira que 
possam ser alteradas ou sirvam de base para cálculos específicos, que 
resultam na atualização de outras variáveis. 
As variáveis podem ser manipuladas através de expressões. As expressões 
permitem combinar variáveis, constantes e operadores de maneira a calcular 
um resultado. 
As constantes são valores que, durante a execução de um programa, não 
tem o seu valor alterado em nenhum momento. Por exemplo, quando se 
deseja criar um algoritimo para calculo de áreas, o valor de PI (PI =3,1415…) 
deve ser armanezado na memória de maneira a ser utilizado, por exemplo, 
no cálculo da área do círculo. Note que o valor nessa posição de memória, 
não sofrerá qualquer alteração, pois o valor de PI é constante. 
Os operadores são os elementos que determinam a maneira pela qual os 
dados serão processados, determinando o resultado obtido. 
 
Tipos de Operadores 
Os tipos de operadores distinguem-se pelo tipo de dados sobre os quais 
operam e pelo valor resultante de sua avaliação, são eles: 
 Operadores Aritméticos 
 Operadores Lógicos 
 Operadores Relacionais 
 Alfanuméricos 
 
 
Operadores Aritméticos 
 
 São operadores que incidem sobre variáveis numéricas e o resultado 
produzido é também numérico. 
 Existe relação de precedência de execução entre esses operadores que 
se apresenta na tabela abaixo. 
Operador (Operação) Prioridade 
+ (Manutenção de Sinal) 
- (Inversão de Sinal) 
1º 
 ** (Exponenciação) 2º 
* (Multiplicação), / (Divisão), % (Resto 
da Divisão Inteira) 
3º 
+ (Adição), - (Subtração) 4º 
 
 A ordem de execução de uma operação numa expressão é: primeiro os 
operadores de maior prioridade. Para operadores de mesma prioridade 
executa-se primeiro o que estiver mais a esquerda na expressão. 
Exemplo: 
 Var n1, n2, n3, total : inteiro 
 Início 
 Ler n1, n2, n3 (imagine-se que o utilizador introduz 4, 3, 2) 
 total = n1 + n2 * n3 / n1 – n2**n3 * n1 
 Escreva total 
 Fim 
 No exemplo anteriror, é a seguinte a ordem das operações 
(prioridade): 
total = n1 + n2 * n3 / n1 – n2**n3 * n1 
 n2**n3 = 3**2 = 9 (chamaremos de r1 a este resultado) 
total = n1 + n2 * n3 / n1 – r1 * n1 
 n2 * n3 = 3 * 2 = 6 (r2) 
total = n1 + r2 / n1 – r1 * n1 
 r2 / n1 = 6 * 4 = 24 (r3) 
total = n1 + r3 – r1 * n1 
 r1 * n1 = 9 * 4 = 36 (r4) 
total = n1 + r3 – r4 
 n1 + r3 = 4 + 24 = 28 (r5) 
total = r5 – r4 
 r5 – r4 = 28 – 36 = -8 (total) 
 
Os operadores aritméticos usam números inteiros e reais. Operações 
entre números inteiros resulta número inteiro. Qualquer operação que 
inclua números reais resulta número real. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Operadores Lógicos 
 
São operadores que incidem sobre variáveis lógicas, cujos valores 
possíveis são: verdadeiro ou falso. O resultado produzido é também um 
valor lógico. 
 Os operadores lógicos básicos são: NOT; OR; AND (ou, em português: 
NEGAÇÃO; OU; E). 
 O operador lógico NOT é unário, ou seja, incide apenas sobre uma 
variável lógica. Os operadores OR e AND operam sobre duas (ou mais) 
variáveis lógicas. O resultado produzido por esses operadores é apresentado 
na tabela a seguir: 
Variáveis NOT OR AND 
L1 L2 ! L2 L1 || L2 L1 && L2 
.F. .F. .V. .F. .F. 
.F. .V. .F .V. .F. 
.V. .F. .V. .V. .F. 
.V. .V. .F. .V. .V. 
 
 Também esses operadores existe prioridade entre esses operadores da 
seguinte maneira: 
Operador Prioridade 
.NOT. 1º 
.AND. 2º 
.OR. 3º 
 
Operadores Relacionais 
São operadores que incidem sobre variáveis tanto sobre variáveis 
numéricas, lógicas ou alfanuméricas. Esses operadores efetuam operações de 
comparações entre dois conjuntos de expessões e retornam o resultado 
verdadeiro ou falso, conforme os valores comparados. 
 
Operador Símbolo Exemplo Resultado 
maior > n1 > n2 1 (verdadeiro) se 
o “teste” ao lado 
for verdade, 0 
(falso) caso 
contrário 
menor < n1 < n2 
maior ou igual >= n1 >= n2 
menor ou igual <= n1 <= n2 
igual == n1 == n2 
diferente != n1 != n2 
 
 
Operadores Alfanuméricos 
 
 Manipulam variáveis com conteúdo texto. Os tipos de operadores 
variam bastante de uma linguagem para outra. 
 Como exemplo de um operador alfanumérico tem-se a “concatenação” 
 Exemplo: v1 = “Fim”; v2 = “de”; v3 = “semana” 
 Frase <= v1 & “-“ & v2 & “-“ & v3 
 Frase = “Fim-de-semana” 
 
Avaliação de Expressões 
 
As expressões podem conter vários tipos de operadores dos tipos 
apresentados. Assim é necessário definir também a prioridade de execução 
entre os todos os tipos de operadores. 
 
 
Prioridade (Símbolo) 
1º (!) (-) (++) (--) 
2º (*) (/) (%) 
3º (+) (-) 
4º (<) (>) (<=) (>=) 
5º (==) (!=) 
6º (&&) 
7º (||) 
8º (=) 
 
Obs: 
(1) Operadores de maior prioridade devem ser avaliados primeiro. 
Quando a prioridade for igual, deve-se avaliar da esquerda para a 
direita. 
(2) As subexpressões entre parênteses devem ser avaliadas primeiro. 
(3) Muito cuidado na utilização do operador relacional igual (==) e 
variáveis reais. Muitas vezes dois números reais podem ser iguais, mas, 
devidos a arredondamentos nos cálculos, diferem de maneira residual. 
Assim uma expressão do tipo nr1 == nr2, pode ser falsa ainda que os 
dois números reais sejam iguais. 
 
 
INSTRUÇÕES BÁSICAS 
 
É o conjunto de comandos disponíveis para a realização de tarefas 
computacionais. 
Possibilitam a comunicação com o usuário (comandos de entrada e saída), 
processamento dos dados (comando de atribuição) e controle do fluxo de 
execução das instruções (comandos de decisão). 
Cada um dos comandos possui uma sintaxe e uma semântica: 
- sintaxe – é a forma como os comandos devem ser escritos para que 
possam ser entendidos pelo programador. 
 
- semântica – ação propriamente dita que será executada pelo 
comando. 
 
 
 
- Instrução de Atribuição 
 
 
Forma pela qual é possível armazenar, numa variável, o valor calculado 
em uma expressão. 
 
Sintaxe em Pseudocódigo: < Variável > = < Expressão > 
 
 
 
Sintaxe em Fluxogramas: 
 
 
 
 
Semântica: O valor calculado na expressão é armazenado na posição 
de memória da variável que aparece à esquerda do comando. 
IMPORTANTE: O tipo de dado resultante do cálculo da expressão deve ser 
compatível com o tipo de dado da variável. 
 
 
 
 
 
< Variável > = 
< Expressão > 
 Exemplo de aplicação da ATRIBUIÇÃO: 
- Construa um algoritmo que calcule a área de um retângulo com lados 
medindo 10 e 15 cm. O resultado deve ser colocado numa variável 
chamada “area_ret”. 
 
- Pseudocódigo: 
 
Algoritmo Calc_Area_Retangulo 
Var L1, L2, area : real 
Início 
L1 = 10 
L2 = 15 
Area = L1 * L2 
Fim 
 
 
 
 
- Fluxograma: 
 
 
 
 
 
 
 
 
 
L1 = 10; L2 = 15 
 
 
Area = L1 * L2 
 
Início 
Fim Fim Fim 
Area = L1 * L2 
 
Fim 
Area = L1 * L2 
 
Fim 
L1 = 10; L2 = 15 
 
 
Area = L1 * L2 
 
Fim 
Início 
L1 = 10; L2 = 15 
 
 
Area = L1 * L2 
 
Fim 
IMPORTANTE 
Avalie o seguinte conjunto de intruções de atribuição: 
VL1 = 10 
VL1 = VL1 * 2 
VL2 = VL1 / 4 
Qual o valor assumido por VL2? 
Resposta: 5 …. POR QUE ? 
 
 
Vamos avaliar como é processado este comando de atribuição: 
VL1 = VL1 * 2 
A ordem em que a operação primitiva de atribuição a seguinte: 
1. EFETUAM-SE TODOS OS CÁLCULOS QUE ESTÃO A DIREITA DO 
COMANDO DE ATRIBUIÇÃO. 
Ou seja, VL1 * 2 = 10 * 2 = 20 
 
2. O RESULTADO OBTIDO NO PONTO ANTERIOR É COLOCADO NA 
VARIÁVEL QUE ESTÁ A ESQUERDA DO COMANDO DE ATRIBUIÇÃO. 
VL1 = 20 
 
- Instruçãode Entrada de Dados 
 
 
Forma pela qual é possível obter os dados necessários para se executar a 
tarefa descrita pelo algoritmo. 
 
Sintaxe em Pseudocódigo: LER < lista de variáveis > 
 
 
 
Sintaxe em Fluxogramas: 
 
 
 
Semântica: Através de um dispositivo de entrada são fornecidos dados 
que são colocados nas posições de memória das variáveis apresentadas em 
<lista de variáveis>. 
 
 
 
 
 
 
<lista de 
variáveis> 
Exemplo de aplicação da ENTRADA DE DADOS: 
- Construa um algoritmo que leia os dois valores dos comprimentos dos 
lados necessários para o cálculo da área de um retângulo. O resultado 
deve ser colocado numa variável chamada “area_ret”. 
 
- Pseudocódigo: 
 
Algoritmo Calc_Area_Retangulo 
Var L1, L2, area : real 
Início 
LER L1, L2 
Area = L1 * L2 
Fim 
 
 
 
 
- Fluxograma: 
 
 
 
 
 
 
 
 
 
 
Area = L1 * L2 
 
Início 
Fim Fim Fim 
Area = L1 * L2 
 
Fim 
Area = L1 * L2 
 
Fim 
Area = L1 * L2 
 
Fim 
Início 
Area = L1 * L2 
 
Fim 
L1, L2 
- Instrução de Saída de Dados 
 
 
Forma pela qual é possível apresentar o resultado produzido pela 
execução do algoritmo. 
 
Sintaxe em Pseudocódigo: ESCREVER < lista de variáveis > e/ou 
< texto> 
 
 
 
Sintaxe em Fluxogramas: 
 
 
 
Semântica: Os valores (variáveis ou texto) presentes no comando são 
enviados para o dispositivo de saída e apresentados ao usuário. 
 
 
 
 
 
 
<lista de 
variáveis> 
e/ou <texto> 
Exemplo de aplicação da SAÍDA DE DADOS: 
- Construa um algoritmo que leia os dois valores dos comprimentos dos 
lados necessários para o cálculo da área de um retângulo. O resultado 
deve ser colocado numa variável chamada “area_ret” e deve ser 
apresentado ao usuário. 
 
- Pseudocódigo: 
 
Algoritmo Calc_Area_Retangulo 
Var L1, L2, area : real 
Início 
LER L1, L2 
Area = L1 * L2 
ESCREVA area 
Fim 
 
 
 
 
- Fluxograma: 
 
 
 
 
 
 
 
 
 
Fim 
Início 
Area = L1 * L2 
 
L1, L2 
“Área =”, Area 
CONTROLE DO FLUXO DE EXECUÇÃO DO 
ALGORITMO 
 
 A execução de um algoritmo é uma sequência ordenada de passos bem 
definidos e não ambíguos que conduzem a resolução de um problema. 
Entretanto, na maioria das vezes, a execução das intruções é condicionada 
a algum resultado lógico prévio. Por exemplo, escrever o se um aluno foi 
ou não “aprovado” numa disciplina. Existirá uma instrução ‘ESCREVER 
“Aprovado” ‘, entretanto essa instrução só deverá ser executada se a 
média do aluno não for inferior a 7,0. Ou, seja o fluxo de execução do 
algoritmo poderá ou não “passar” por essa instrução. 
 
A ordem de execução das instruções é determinado por três tipos de 
estruturas básicas de controle do fluxo de instruções de um algoritmo: 
 Estruturas Seqüenciais 
 Estruturas de Decisão 
 Estruturas de Repetição 
 
Associado ao conceito de “fluxo de execução do algoritmo” está 
associado o conceito de “bloco de comandos”. Um bloco de comandos é o 
conjunto de intruções que será executado consoante o resultado das 
condições expressas nas Estruturas de Decisão ou que estejam contidos no 
“laço” associado às Estruturas de Repetição. Esse conceito só se tornará 
claro, após o entendimento dessas Estruturas que serão apresentadas de 
seguida. 
 
- Estruturas Seqüenciais 
 
Os comandos são executados em fila. Um comando só é executado 
após o término do comando anterior. 
 A representação dessa estrutura é apresentada a seguir: 
 
 
 
 
 Fluxograma: 
 
Pseudocódigo: 
 
... 
<Comando 1> 
<Comando 2> 
<Comando 3> 
... 
 
 
 
 
 
 
 
 
 Todos os exemplos apresentados previamente neste documento são 
exemplo de estrutura sequenciais. 
 
<Comando 1> 
<Comando 2> 
<Comando 3> 
 
 
 
 
- Estruturas de Decisão 
 
 
O fluxo de execução das instruções é determinado pela avaliação de 
uma ou mais condições. Essas condições são apresentas no formato de 
expressões lógicas. Seguindo o exemplo anterior temos algo como: 
... 
SE nota >= 7,0 ENTÃO 
 ESCREVER “Aprovado” 
SENÃO 
 ESCREVER “Reprovado” 
FSE 
... 
 
 Observe que quando o fluxo de execução atravessa essa parte do 
algoritmo, apenas uma das instruções “ESCREVER” é que será executada. 
Qual delas será executada é determinada pela expressão lógica “nota >= 
7,0”. Caso isso seja uma “verdade” então a instrução a ser executada será 
a que escreve “Aprovado”, senão, será a outra. 
Existem dois subtipos desta estrutura: 
 Estrutura de decisão do tipo SE 
 Estrutura de decisão do tipo ESCOLHA 
 
Estruturas de Decisão Tipo SE 
Nessa estrutura é avaliada uma expressão lógica, chamda condição, 
que poderá ser simples ou composta de expressões e variáveis de 
todos os tipos. 
Exemplo de uma condição: 
status = “Inscrito” && Nota >= 7 && Freq >= 0,75 
Essa condição será verdadeira se (1) o aluno estiver com a sua 
inscrição na disciplina regularizada, (2) se a sua nota final for superior a 
7,0 e (3) se compareceu a pelo menos 75% das aulas 
Há dois comandos que implementam estrutura de decisão do tipo 
SE: 
 SE ... {SENÃO} ... FSE 
 SE ... SENÃO-SE (n) ... {SENÃO} ... FSE 
 
 
 
 
 COMANDO: SE ... {SENÃO} ... FSE 
 
Sintaxe em Pseudocódigo: SE <condição> ENTÃO 
 <bloco de comandos 1> 
SENÃO 
 <bloco de comandos 2> 
FSE 
 
 
Sintaxe em 
Fluxogramas: 
 
 
 
 
Semântica: Na execução do comando “SE”, em primeiro lugar a 
“condição” é avaliada, desta avaliação resulta ser “verdadeira” ou “falsa”. 
Caso seja verdadeira são executados os comando incluídos no “bloco de 
comandos 1”. Caso contrário há duas possibilidades: (1) executam-se os 
comandos chamados “bloco de comandos 2” (ver o 1º diagrama acima), 
ou (2) nada é executado (2º diagrama). Note que a sintaxe do 
pseudocódigo contém um trecho em azul, isso indica que essa parte do 
comando é opcional. IMPORTANTE: apenas 1 dos blocos é executado !!! 
Feito o descrito acima o algoritmo segue o fluxo normal, 
executando o próximo comando após o FSE. 
 
 <condição> 
<bloco 
com 2> 
.V. 
<bloco 
com 1> 
.F. 
ou 
 <condição> 
<bloco 
com 1> 
.F. 
.V. 
 
Exemplo 1: Algoritmo para informar se uma pessoa é menor de idade: 
Pseudocódigo Fluxograma 
Algortimo “Menor de Idade” 
Var idade: inteiro; 
Início 
 LER idade 
 SE idade < 18 ENTÃO 
 ESCREVER “Menor” 
 FSE 
Fim. 
 
 
Exemplo 2: Algoritmo para informar se uma pessoa é menor ou maior de idade: 
Pseudocódigo Fluxograma 
Algortimo “Menor ou Maior” 
Var idade: inteiro; 
Início 
 LER idade 
 SE idade < 18 ENTÃO 
 ESCREVER “Menor” 
 SENÃO 
 ESCREVER “Maior” 
FSE 
Fim. 
 idade 
 
 
Início 
 
Fim 
“Menor
nor” 
.F. 
.V. 
 idade<18 
 
Início 
 
Fim 
 idade 
 “Menor
nor” 
 “Maior 
.F. .V. 
 idade<18 
 COMANDO: SE ... SENÃO-SE {n} ... {SENÃO} ... FSE 
Sintaxe em Pseudocódigo: Sintaxe em Fluxograma:
 
 
SE <condição 1> ENTÃO 
 <bloco de comandos 1> 
SENÃO-SE <condição 2> 
 <bloco de comandos 2> 
... 
SENÃO-SE <condição n+1> 
 <bloco de comandos n+1> 
SENÃO 
<bloco de comandos n+2> 
FSE 
 
Semântica: Ao chegar se neste comando (que neste parágrafo 
chamaremos de “C-SE-SENÃO”), inicialmente a “condição 1” é avaliada. 
Caso seja verdadeira, “executa-se o bloco de comandos 1” e segue para o 
próximo comando (estará terminado“C-SE-SENÃO”). Caso essa “condição 
1” seja falsa então a “condição 2” é avaliada e, caso seja verdadeira, 
“executa-se o bloco de comandos 2” e o comando “C-SE-SENÃO” está 
finalizado. Caso “condição 2” seja falsa, avalia-se a próxima condição e 
continua-se de forma análoga ao que foi feito para condições 1 e 2 até a 
última condição. Se todas as condições já foram avaliadas e todas são 
falsas, então executa-se o “bloco de comandos n+2” e ocomando “C-SE-
SENÃO” está finalizado. 
Importante: tudo o que está escrito em azul acima é opcional. 
 
 
.F. 
.V. 
 <cond2> <blc com 2> 
.F. 
.V. 
 <cond n+1> <blc com n+1> 
<blc com n+2> 
.F. 
.V. 
 <cond1> <blc com 1> 
 
Exemplo: Algoritmo para indicar se 5 número inteiros estão ordenados: 
 
Pseudocódigo Fluxograma 
 
Algortimo “O Maior de 5 inteiros” 
Var n1, n2, n3, n4, n5, Mn: inteiro; 
Início 
 LER n1, n2, n3, n4, n5 
 SE n1 > n 2 ENTÃO 
 ESCREVER “Seq. NÃO ord.” 
 SENÃO-SE n2 > n 3 ENTÃO 
 ESCREVER “Seq. NÃO ord.” 
 SENÃO-SE n3 > n 4 ENTÃO 
 ESCREVER “Seq. NÃO ord.” 
 SENÃO-SE n4 > n 5 ENTÃO 
 ESCREVER “Seq. NÃO ord.” 
 SENÃO 
 ESCREVER “Seq. ORDENADA” 
 FSE 
Fim. 
 
 
 
 
 
.F. 
.V. 
 n1 > n2 
 
“Seq N Ord” 
 
.F. 
.V. 
 n2 > n3 
 
“Seq N Ord” 
 
.F. 
.V. 
 n3 > n4 
 
“Seq N Ord” 
 
.F. 
.V. 
 n4 > n5 
 
“Seq N Ord” 
“Seq ORD” 
 
 
Início 
 
Fim 
 
n1,n2,n3,n4,n5 
 
Estruturas de Decisão Tipo ESCOLHA 
Nessa estrutura o valor de uma variável é avaliado e executar-se-á 
o bloco de comandos associado ao valor que a variável possui no 
momento. 
 
Sintaxe em Pseudocódigo: Sintaxe em Fluxograma: 
 
ESCOLHA <variável v> 
 CASO < valor 1 > 
 < bloco de comandos 1> 
 FC 
 CASO < valor 2> 
 < bloco de comandos 2> 
 FC 
 ... 
CASO < valor n> 
 < bloco de comandos n> 
 FC 
 SENÃO 
 < bloco de comandos n+1> 
FESCOLHA 
 
 
... 
.F. 
.V. 
<blc com 1> < v=vl 1> 
.F. 
.V. 
<blc com 2> < v=vl 2> 
.F. 
.V. 
<blc com n> < v=vl n> 
... 
<blc com n+1> 
Semântica: Este comando permite selecionar a execução de um ou 
mais dentre diversos blocos de comando disponíveis conforme o valor da 
< variável E>. 
O comando percorre sequencialmente, de cima para baixo, cada um 
dos “CASO” até encontrar o que tem o valor igual ao da “variável v”. Uma 
vez encontrado esse valor, serão executados todos os blocos de 
comandos daí para baixo até uma de duas situações se verifica: (1) 
chegar-se ao “FESCOLHA” ou (2) encontra o primeiro “FC”. 
Importante: O “FC” é opcional, assim, a linhas tracejadas no fluxograma 
representam as possíveis opções de fluxo de execução do algoritmo. Ou seja, 
se associado a condição <v= vl1> estiver associado o “FC”, então o fluxo que 
se deve usar é o que está representado mais à direita no fluxograma (ou seja, 
liga-se diretamente à saída do comando). Caso não exista o “FC”, então após 
a execução do <blc com 1>, será executado o <blc com 2> e todos os outros 
posteriores até que se chegue ao fim do comando ou que se encontre o 
primeiro “FC”. 
 A seguir, o exemplo do pseudocódigo e fluxograma onde só existe um 
“FC” associado ao CASO <valor 2>, note a diferença no fluxograma. 
 
ESCOLHA <variável v> 
 CASO < valor 1 > 
 < bloco de comandos 1> 
 CASO < valor 2> 
 < bloco de comandos 2> 
 FC 
 CASO < valor 3> 
 < bloco de comandos 3> 
SENÃO 
 < bloco de comandos 4> 
FESCOLHA 
 
<blc com 4> 
<blc com 1> 
<blc com 2> 
.V. 
.F. 
 < v=vl 1> 
.V. 
.F. 
 < v=vl 2> 
<blc com 3> 
.V. 
 < v=vl 3> 
.F.

Outros materiais