Buscar

APOSTILA DE ALGORITMO E PROGRAMAÇÃO DE COMPUTADORES

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

Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 1 
 
 
 
 
ALGORITMOS E 
ESTRUTURAS DE DADOS I 
 
 
 
 
 
Tecnologias de Informação e Comunicação na Educação 
Professor Antonio Maria Pereira de Resende 
Tutora Profa Ana Rubélia Mendes de Lima Resende 
 
 
 
 
Lavras/MG 
2011 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 2 
 
 
 
 
 
Espaço a ser preenchido pela biblioteca 
 
 
Ficha catalográfica preparada pela Divisão de Processos 
Técnicos da Biblioteca Central da UFLA 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 3 
ALGORITMO E ESTRUTURAS DE DADOS I 
1 INTRODUÇÃO AO CURSO ..................................................................................................................... 7 
1.1 Algoritmo ...................................................................................................................................... 7 
1.2 Estrutura de Dados ..................................................................................................................... 10 
1.3 Algoritmo e Estrutura de Dados ................................................................................................. 12 
1.4 Orientações para um Melhor Aprendizado de AED ................................................................... 13 
2 CONSTRUÇÃO DE ALGORITMOS ......................................................................................................... 14 
2.1 Notações para Construção de Algoritmos .................................................................................. 14 
2.1.1 Notação em Descrição Narrativa ........................................................................................ 14 
2.1.2 Notação Gráfica .................................................................................................................. 14 
2.1.3 Notação em Pseudocódigo ................................................................................................. 16 
2.1.4 EXERCÍCIOS PROPOSTOS .................................................................................................... 17 
2.2 Teste de Mesa ............................................................................................................................ 18 
2.3 Fases de desenvolvimento de um Algoritmo ............................................................................. 19 
3 ALGORITMOS EM PSEUDOCÓDIGO .................................................................................................... 21 
3.1 Estrutura Básica de um Algoritmo .............................................................................................. 21 
4 DECLARAÇÃO DE VARIÁVEIS E CONSTANTES ..................................................................................... 22 
4.1 Variáveis ..................................................................................................................................... 22 
4.1.1 Tipos de Dados ................................................................................................................... 24 
4.1.2 EXERCÍCIO PROPOSTO ........................................................................................................ 25 
4.2 Constantes .................................................................................................................................. 25 
4.3 Regras para nomear Variáveis, Constantes e Algoritmos .......................................................... 26 
4.3.1 EXERCÍCIOS PROPOSTOS .................................................................................................... 27 
5 COMANDOS SEQUENCIAIS ................................................................................................................. 28 
5.1 Comando de Entrada .................................................................................................................. 28 
5.2 Comando de Saída ...................................................................................................................... 28 
5.3 Comando de Atribuição .............................................................................................................. 29 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 4 
5.4 Boas Práticas para os Comandos Sequenciais ............................................................................ 30 
5.5 Operadores e Funções pré-definidas ......................................................................................... 31 
5.5.1 Operadores Aritméticos ..................................................................................................... 31 
5.5.2 Funções pré-definidas ........................................................................................................ 32 
5.5.3 EXERCÍCIOS PROPOSTOS .................................................................................................... 35 
6 COMANDOS CONDICIONAIS ............................................................................................................... 37 
6.1 Operadores Relacionais e Lógicos .............................................................................................. 37 
6.1.1 Operadores Relacionais ...................................................................................................... 38 
6.1.2 Operadores Lógicos ............................................................................................................ 40 
6.1.3 EXERCÍCIO PROPOSTO ........................................................................................................ 42 
6.2 Comando Condicional Simples SE ... ENTÃO .............................................................................. 42 
6.3 Comando Condicional Composto SE ... ENTÃO ... SENÃO .......................................................... 43 
6.4 Indentação .................................................................................................................................. 46 
6.5 Aninhamento de Comandos SE...ENTÃO...SENÃO ..................................................................... 48 
6.6 Comando Condicional ESCOLHA ... CASO ................................................................................... 52 
6.6.1 EXERCÍCIOS PROPOSTOS .................................................................................................... 57 
7 COMANDOS DE REPETIÇÃO ................................................................................................................ 59 
8 Comando de Repetição: Número Definido de Repetições e Teste de Condição no Início ................ 61 
8.1 Comando de REPETIÇÃO PARA ... FAÇA ..................................................................................... 61 
9 Comando de Repetição: Número Indefinido de Repetições e Teste de Condição no Início .............. 71 
9.1 Comando de REPETIÇÃO ENQUANTO ... FAÇA ........................................................................... 71 
9.1.1 Peculiaridades Importantes do ENQUANTO..FAÇA ............................................................ 72 
9.1.2 Loop Infinito ....................................................................................................................... 74 
10 Comando de Repetição: Número Indefinido de Repetições e Teste de Condição no Final ........... 81 
10.1 Comando de repetição REPITA ... ATÉ ........................................................................................ 81 
10.1.1 Peculiaridades Importantes do REPITA ... ATÉ ................................................................... 82 
10.1.2 Loop Infinito .......................................................................................................................84 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 5 
10.1.3 EXERCÍCIOS PROPOSTOS .................................................................................................... 92 
11 VARIÁVEIS COMPOSTAS HOMOGÊNEAS: VETORES E MATRIZES ................................................... 93 
12 VETORES ......................................................................................................................................... 95 
12.1 Representação Gráfica de um Vetor .......................................................................................... 96 
12.2 Declaração de Vetor ................................................................................................................... 96 
12.3 Manipulação de Dados de um Vetor .......................................................................................... 97 
12.4 Operações de Entrada e Saída de dados em um Vetor .............................................................. 97 
12.5 Processamento dos Dados de um Vetor .................................................................................... 99 
12.5.1 EXERCÍCIOS PROPOSTOS .................................................................................................. 100 
13 MATRIZES ..................................................................................................................................... 101 
13.1 Representação Gráfica de uma Matriz ..................................................................................... 101 
13.2 Declaração de Matriz................................................................................................................ 102 
13.3 Manipulação de Dados de uma Matriz .................................................................................... 104 
13.4 Operações de Entrada e Saída de dados em uma Matriz ........................................................ 104 
13.5 Processamento dos Dados de uma Matriz ............................................................................... 107 
13.5.1 EXERCÍCIOS PROPOSTOS .................................................................................................. 111 
14 VARIÁVEIS COMPOSTAS HETEROGÊNEAS: REGISTROS E VETOR DE REGISTROS ......................... 112 
14.1 Declaração de Registro ............................................................................................................. 112 
14.2 Representação Gráfica de um Registro .................................................................................... 113 
14.3 Manipulação de Dados de Variável de Registro ....................................................................... 113 
14.4 Operações de Entrada e Saída Utilizando Registros ................................................................ 114 
14.5 VETOR DE REGISTROS ............................................................................................................... 115 
14.6 Representação Gráfica de Vetor de Registro ........................................................................... 116 
14.7 Manipulação de Dados do Vetor de Registro ........................................................................... 117 
14.8 Operações de Entrada e Saída Utilizando Vetor de Registros ................................................. 117 
14.8.1 EXERCÍCIOS PROPOSTOS .................................................................................................. 120 
15 MODULARIZAÇÃO: PROCEDIMENTOS E FUNÇÕES ...................................................................... 121 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 6 
15.1 PROCEDIMENTOS ..................................................................................................................... 122 
15.1.1 Declaração de Procedimentos .......................................................................................... 123 
15.1.2 Procedimentos sem Passagem de Parâmetros ................................................................ 125 
15.1.3 Procedimentos com Passagem de Parâmetros ................................................................ 126 
15.2 FUNÇÕES .................................................................................................................................. 127 
15.2.1 Declaração de Funções ..................................................................................................... 128 
15.2.2 Funções sem Passagem de Parâmetros ........................................................................... 129 
15.2.3 Funções com Passagem de Parâmetros ........................................................................... 130 
15.3 ESCOPO DE VARIÁVEIS – VARIÁVEIS LOCAIS E GLOBAIS .......................................................... 135 
15.4 PASSAGEM DE PARÂMETROS POR VALOR E POR REFERÊNCIA ............................................... 136 
15.4.1 Passagem de Parâmetros por Valor ................................................................................. 136 
15.4.2 Passagem de Parâmetros por Referência ........................................................................ 138 
16 RECURSIVIDADE ............................................................................................................................ 141 
16.1.1 EXERCÍCIOS PROPOSTOS ........................................................................................... 145 
17 ÍNDICE DE FIGURAS ...................................................................................................................... 146 
18 ÍNDICE DE TABELAS ...................................................................................................................... 152 
19 RELAÇÃO DE ÍCONES .................................................................................................................... 153 
 
 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 7 
1 INTRODUÇÃO AO CURSO 
O conteúdo de Algoritmo e Estrutura de Dados – AED é ensinado em cursos técnicos e 
universitários como Ciência da Computação, Sistemas de Informação, Engenharias (de Software, 
Elétrica, Civil, Mecânica, Mecatrônica,...), Programação, Analista de Sistemas, Informática, 
dentre outros. A profundidade e abrangência do conteúdo dependem do foco de cada curso. 
Geralmente, o conteúdo de AED divide-se em disciplinas denominadas AED I, AED II e 
AED III nos cursos relacionados à computação. O aprendizado é acumulativo, sendo impossível 
aprender AED II ou AED III sem aprender AED I, ou aprender AED III sem aprender AED I e 
AED II. 
O ensino das disciplinas de AED desenvolve o raciocínio lógico dos alunos, capacitando-os 
para programação de computadores. 
A seguir, o termo Algoritmo e o termo Estrutura de Dados são explicados separadamente, 
facilitando a compreensão de seus significados. 
1.1 Algoritmo 
A primeira palavra relacionada a Algoritmo, algorism, foi criada no século 9 pelo 
matemático persa islão Abu Abdullah Muhammad ibn Musa Al-Khwarizmi. Inicialmente, o termo 
foi criado para nomear regras que ensinavam como realizar cálculos usando números hindu-
arábicos. No século 18, o termo foi traduzido para o Latin Europeu como Algorithm, e seu 
significado passou a abranger todo procedimento definido (claro, preciso) para resolver 
problemas e executar tarefas. 
 
Um exemplo clássico de algoritmo pertence ao matemático Euclides, pai da geometria 
Euclidiana, que desenvolveu um algoritmo para calcular o Máximo Divisor Comum – MDC, 
replicado a seguir: 
 
 
1. Divida o número a por b, o resto é r; 
2. Troque a pelo valor de b; 
3. Troque b pelo valor de r; 
4. Continue os passos acima até não mais conseguir dividir. 
Neste caso, a é o MDC. 
 
Figura1 - Algoritmo de Euclides para calcular o MDC 
 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 8 
 Executando o algoritmo de Euclides... 
Tabela 1 - Execução do algoritmo de Euclides para calcular o MDC dos números 48 e 30 
a b Resto r Passos do Algoritmo 
48 30 18 Passo 1- Divide-se 48 por 30 e o resto coloca-se na coluna do resto; 
30 18 12 
Passo 2 - Valor de b colocado em a; 
Passo 3 - Valor de r colocado em b;. 
Passo 1- Divide-se novamente a por b colocando o resto em r; 
18 12 6 
Passo 2 - Valor de b colocado em a; 
Passo 3 - Valor de r colocado em b;. 
Passo 1- Divide-se novamente a por b colocando o resto em r; 
12 6 0 
Passo 2 - Valor de b colocado em a; 
Passo 3 - Valor de r colocado em b;. 
Passo 1- Divide-se novamente a por b colocando o resto em r; 
6 0 -X- 
Passo 2 - Valor de b colocado em a; 
Passo 3 - Valor de r colocado em b;. 
Passo 1- Divide-se novamente a por b colocando o resto em r. 
Como não é mais possível dividir, então a (=6) é o MDC de 48 e 30. 
 
Existem outros algoritmos conhecidos na matemática como: 
a) de Arquimedes para calcular uma aproximação do número Pi; e 
b) de Erastótenes para encontrar números primos (Crivo de Erastótenes). 
 
Veja a seguir algoritmo de Erastótenes para encontrar números primos de 2 até N e sua 
execução. 
 
 
1. Definir o valor limite N; 
2. Encontrar a raiz quadrada de N, guardar a parte inteira denominando-a de raiz; 
3. Criar uma lista (vetor) com os números de 2 até N; 
4. Para i de 2 até a raiz faça 
4.1. Se i não estiver riscado na lista, riscar todos os seus múltiplos de i² até N; 
5. Pronto, após finalizar o passo 4, os números não riscados formam a lista de números 
primos de 2 a N. 
 
Figura 2 - Algoritmo Erastótenes para encontrar números primos de 2 até N. 
 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 9 
 Executando o algoritmo de Erastótenes... 
Tabela 2 - Execução do algoritmo de Erastótenes para encontrar os números primos de 2 a 30 
Passo 1) N = 30; 
 
Passo 2) Raiz (30) = 5,477. Para guardar parte inteira então raiz = 5; 
 
Passo 3) Lista de números de 2 até 30 
02 03 04 05 06 07 08 09 10 11 12 13 14 15 
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 
 
Passo 4) Para i de 2 até a raiz faça 
 
Passo 4.1) para i=2, riscar todos os seus múltiplos de i²(=4) até N se não estiver riscado 
02 03 04 05 
06 
07 
08 
09 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
 
 Passo 4.1) i=3, riscar todos os seus múltiplos de i² (=9)até N se não estiver riscado 
02 03 04 05 
06 
07 
08 09 10 
11 
12 
13 
14 15 
16 
17 
18 
19 
20 21 22 
23 
24 
25 
26 27 28 
29 
30 
 
 Passo 4.1) i=4, riscar todos os seus múltiplos de i²(=16) até N se não estiver riscado 
02 03 04 05 
06 
07 
08 09 10 
11 
12 
13 
14 15 
16 
17 
18 
19 
20 21 22 
23 
24 
25 
26 27 28 
29 
30 
 
 Passo 4.1) i=5, riscar todos os seus múltiplos de i² (=25) até N se não estiver riscado 
02 03 04 05 
06 
07 
08 09 10 
11 
12 
13 
14 15 
16 
17 
18 
19 
20 21 22 
23 
24 25 26 27 28 
29 
30 
 
Passo 5) Pronto, os números não riscados formam a lista de números primos de 2 a N. 
02 03 05 07 11 13 
 17 19 23 29 
 
Os números primos de 2 a 30 são: 02, 03, 05, 07, 11, 13, 17, 19, 23 e 29. 
 
 
Portanto, pode-se afirmar que algoritmo é um conjunto de passos (instruções) bem 
definidos e executados em uma sequencia lógica para se produzir um resultado esperado. Assim, 
se alguém deseja calcular o MDC de dois números, basta aplicar o algoritmo de Euclides. Se 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 10 
alguém deseja encontrar os números primos em um intervalo de 2 até N, deve aplicar o algoritmo 
de Erastótenes. 
Outro exemplo prático de algoritmo é uma receita de bolo. 
Uma receita de bolo define os passos a seguir para se fazer um bolo. Há receitas com 
passos bem definidos e quando seguidos obtêm-se o bolo. Estas receitas podem ser chamadas de 
algoritmo. Entretanto, há também receitas escritas de maneira inadequada, ou faltando 
quantidade de um ingrediente, ou faltando o tempo que determinada massa fica no fogo. Tais 
receitas não podem ser chamadas de algoritmo, por não possuírem passos (instruções) bem 
definidos para se atingir o fim esperado. 
Em computação dizemos que instrução é uma informação que indica uma ação a ser 
executada, por exemplo, por um computador. Deve-se considerar que uma instrução executada 
em separado, pode não ter sentido. Para obtermos o resultado desejado precisamos executar um 
conjunto de instruções na ordem correta. 
Exemplificando... 
Para fazer um bolo é preciso executar uma sequencia de instruções, como: separar os 
utensílios e ingredientes a serem utilizados, pré-aquecer o forno e medir os ingredientes, untar a 
forma, bater os ovos etc. 
Entretanto estas instruções devem ser executadas em uma ordem adequada – não se deve 
colocar o fermento após o bolo assado. 
1.2 Estrutura de Dados 
A melhor maneira de explicar uma estrutura de dados é compreender um formulário em 
papel contendo seus campos, tamanho de cada campo e o tipo de dado a ser armazenado. 
Exemplificando... 
Na Figura 3, observa-se um formulário que deve ser preenchido para renovação ou 
assinatura nova de uma revista. Nele, observa-se a necessidade de preencher campos como: 
- Informar se é assinatura nova ou renovação; 
- Informar o código do assinante, se assinante; 
- Informar qual revista e o prazo da assinatura; 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 11 
- Informar o valor a ser pago; dentre outros. 
O usuário sabe que não pode colocar o valor em uma data, nem uma data em um campo de 
nome, por exemplo. E que as informações devem ser preenchidas de acordo com o tamanho do 
campo. Isto é uma estrutura de dados, onde se tem um conjunto de dados com tamanho e tipo de 
dado para cada campo bem definidos. 
 
 
Figura 3 – Formulário de Assinatura de Revista 
 
Um exemplo de uma estrutura de dados para Cliente é: 
 
Cliente { 
 nome [30]: literal; // 
 salario: real; 
 idade: inteiro; 
 } 
Figura 4 – Estrutura de dados Cliente 
 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 12 
Entretanto, dependendo da empresa, a estrutura de dados para Cliente poderia ser: 
 
Cliente { 
 nome [50]: literal; 
 telefone: literal; 
 sexo: caractere; 
 credito: real; 
 } 
Figura 5 – Variação de uma Estrutura de dados Cliente 
De acordo com o problema e necessidade da empresa, as estruturas de dados são planejadas 
e definidas. 
Considerando que o computador é utilizado para informatizar as empresas e seus 
processos, então existe a necessidade de capturar as informações existentes e automatizá-las. 
Para isto, utilizam-se os conceitos de Estrutura de Dados para representar, armazenar, processar 
e recuperar estas informações nos computadores. 
Em AED, ensinam-se várias Estruturas de Dados e o aluno deverá aprender aplicá-las 
corretamente dependendo da finalidade desejada. 
1.3 Algoritmo e Estrutura de Dados 
Sabendo que: 
- Algoritmo é um conjunto de passos bem definidos para se atingir um resultado; e 
- Estrutura de dados define um conjunto de dados, seu tamanho e tipo de dado para cada 
campo; 
Pode-se afirmar então que Algoritmo e Estrutura de Dados é o conjunto de conhecimento 
que permite representar a informação no computador associado a um conjunto de passos bem 
definidosque propiciam realizar operações com estas informações. 
No mercado de trabalho, diariamente, profissionais da área de computação e sistemas de 
informação deparam-se com problemas. Para cada um dos problemas, ele deve definir: 
- a(s) melhor(es) estrutura de dados aplicável na solução do problema (Estrutura de Dados); 
- construir um conjunto de passos para realizar operações com os dados (Algoritmo). 
Após construir o(s) algoritmo(s) e definir a(s) estrutura(s) de dados, o profissional está apto 
para programar o sistema que será entregue ao cliente. 
Portanto, não é possível programar sem saber algoritmos e estrutura de dados. O 
profissional deve ter o raciocínio lógico que o capacita a pensar como o computador. Após muita 
prática, os profissionais conseguem programar o computador sem ter de formalmente definir o 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 13 
algoritmo, pois seu raciocínio já está treinado para observar o problema, desenvolver o algoritmo 
mentalmente e programá-lo no computador. 
Ressalta-se que se o profissional não souber resolver o problema manualmente, ele não 
conseguirá desenvolver o algoritmo, pois não será capaz de definir os passos que descrevem a 
solução. Quando o profissional se encontrar nesta situação, caso comum, ele deve estudar e 
aprender a desenvolver a solução manualmente para depois descreva o algoritmo. Quando estiver 
desenvolvendo um sistema para uma empresa, ele deve procurar as pessoas que realizam aquela 
atividade manualmente, a fim de aprender e passar o conhecimento daquelas pessoas para a 
forma de algoritmo e programá-lo. 
Algoritmo e Estrutura de Dados caracterizam-se por não possuir solução única. Se 30 
pessoas forem convidadas para desenvolver algoritmos para determinado, espera-se 30 soluções 
distintas. 
 
1.4 Orientações para um Melhor Aprendizado de AED 
1. Treine - Quanto mais exercícios o aluno resolver, maior será sua capacidade na resolução de 
novos problemas. Deve-se exercitar algoritmos diariamente, resolvendo, pelo menos, 2 ou 3 
problemas, pois somente a prática propiciará o aprendizado; 
2. Teste - Sempre realize o teste de mesa para verificar se o algoritmo está correto; 
3. Relembre - Não vá para a aula sem leia/revisar o conteúdo de aulas anteriores. O 
conhecimento é acumulativo, é imprescindível saber os conceitos anteriores para aprender a 
aplicar os novos; 
4. Seja responsável - Faça você mesmo os exercícios e busque exercícios complementares em 
livros na biblioteca. Lembre-se que cada um possui a sua própria lógica, produzindo 
algoritmos distintos. Só aprende quem faz por si mesmo, não há outra forma de aprendizado. 
Evite resolver uma grande lista de exercícios em apenas um dia; e 
5. Aprenda - Enquanto você não souber resolver um problema manualmente, você será incapaz 
de descrever o algoritmo. Se pedir para um aluno, que cozinha, construir um algoritmo para 
fritar um bife, ele o fará. Porém, se pedir a ele para calcular a derivada dupla de uma equação 
ordinária de 3ª ordem e ele não souber resolver, então o aluno deverá estudar para aprender 
como se faz o cálculo para depois desenvolver um algoritmo. 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 14 
2 CONSTRUÇÃO DE ALGORITMOS 
Para começar a construir algoritmos, deve-se primeiro aprender as notações mais utilizadas 
para descrevê-los e conhecer as fases para seu desenvolvimento. 
2.1 Notações para Construção de Algoritmos 
Os três tipos de notações utilizadas para construir algoritmos são: descrição narrativa, 
gráfica e pseudocódigo. O profissional deve escolher uma das três formas, sendo o pseudocódigo 
o mais utilizado na computação. 
2.1.1 NOTAÇÃO EM DESCRIÇÃO NARRATIVA 
Consiste em descrever os passos de uma solução utilizando linguagem natural. 
Exemplificando... 
Algoritmo para fritar um ovo: 
Passo 1 – Pegar a frigideira e colocar óleo; 
Passo 2 – Levar a frigideira ao fogo; 
Passo 3 – Pegar o ovo, quebrá-lo e colocar seu conteúdo na frigideira; 
Passo 4 – Esperar a clara ficar branca e virar o ovo; e 
Passo 5 – Se preferir, você pode estourar a gema para deixá-la firme. 
Figura 6 - Exemplo de algoritmo usando Descrição Narrativa 
2.1.2 NOTAÇÃO GRÁFICA 
Consiste em descrever os passos de uma solução utilizando a forma gráfica. Existem 
diferentes formas de representar um algoritmo graficamente, sendo o fluxograma, também 
conhecido como diagrama de blocos, a mais difundida. 
O conjunto de símbolos descritos a seguir é utilizado para representar uma seqüência lógica 
(algoritmo) denominada Fluxograma. 
Tabela 3 – Simbologia utilizada em Fluxogramas 
 Indica o início e o fim de um algoritmo. 
 Indica a direção do processamento. Utiliza-se para conectar os símbolos. 
 
Representa um processo a ser executado, cálculos e atribuição de 
valores. 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 15 
 
Indica entrada de dados. No interior devem constar informações de 
variáveis a serem lidas. 
 
Símbolo utilizado para representar saída de dados. 
 
Indica decisão segundo uma condição e possibilidade de desvio. Deve 
haver uma entrada, uma pergunta e duas saídas, conhecidas por 
VERDADEIRO ou FALSO. 
 
Indica uma conexão entre pontos distantes de um algoritmo. 
 
Indica uma rotina a ser chamada. No final da rotina (subprograma) a 
execução continua do ponto onde foi realizada a chamada. 
 
Exemplificando... 
 
 
Figura 7 - Fluxograma Fritar um ovo 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 16 
 
 
Figura 8 - Fluxograma Média 
 
2.1.3 NOTAÇÃO EM PSEUDOCÓDIGO 
Consiste em descrever os passos de uma solução utilizando um conjunto de instruções pré-
definidas. 
O pseudocódigo utilizado no Brasil denomina-se portugol e possui um conjunto de 
instruções utilizáveis para a descrição da solução do problema. A seguir, utiliza-se o portugol 
para leia duas notas de um aluno, calcular a média e responder se ele está aprovado ou 
reprovado, considerando média mínima de 60% para aprovação. 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 17 
Exemplificando... 
 
Algoritmo media; 
Declare N1,N2 : inteiro; 
 media : real; 
Inicio 
 Leia (N1); 
 Leia (N2); 
 media  (N1+N2) / 2; 
 SE (media >= 60) ENTÃO 
 Escreva (“Aluno aprovado com média: ”, media); 
 SENÃO 
 Escreva (“Aluno reprovado com média: ”, media); 
 FIMSE; 
Fim. 
Figura 9 - Algoritmo Média em Pseudocódigo 
 
 
2.1.4 EXERCÍCIOS PROPOSTOS 
1) Elabore um algoritmo, usando descrição narrativa: 
i. para alguém sair da faculdade e chegar até sua casa. 
ii. para trocar uma lâmpada. 
 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 18 
2.2 Teste de Mesa 
Após desenvolver um algoritmo ele deverá sempre ser testado. Este teste é chamado de 
Teste de Mesa e implica em seguir as instruções do algoritmo de forma precisa para verificar se 
o procedimento utilizado está correto ou não. 
 
Exemplificando... 
 
# Algoritmo x y z Saída 
1. algoritmo soma; 
2. Declare x, y, z : inteiro; 
3. Inicio 
4. Leia(x); 8 
5. Leia(y); 7 
6. z  x + y; 15 
7. Escreva(z); 15 
8. Fim. 
Figura 10 – Execução de Teste de Mesa do Algoritmo Soma 
Cria-se uma tabela sendo que: na primeira coluna insere-se o programa, na segunda coluna 
até a penúltima inserem-se os dados de entrada (x e y) e processamento (z), e na última coluna os 
dados de saída. Após montar a tabela, basta leia cada uma das linhas do programa e fazer o que 
se pede. 
A primeira linha apenas determinao nome do programa (soma). A segunda linha determina 
os dados de entrada e processamento. A terceira linha informa onde o corpo principal do 
algoritmo começa. Na quarta linha, o comando leia(x) implica em se determinar o valor de x que, 
neste caso, foi atribuído o valor 8. Na quinta linha, o comando leia(y) implica em se determinar o 
valor de y que, neste caso, foi atribuído o valor 7. Na sexta linha, o comando z x + y implica 
em somar os dois números e guardar o resultado em z. O valor guardado foi 15. Na sétima linha, 
o comando ESCREVA determina que o valor z deve ser escrito na tela do computador. E a 
última linha encerra o algoritmo. 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 19 
2.3 Fases de desenvolvimento de um Algoritmo 
Um algoritmo é uma seqüência lógica de instruções que podem ser executadas, portanto, 
qualquer tarefa que siga determinado padrão pode ser descrita por um algoritmo. 
 
Por exemplo: - Como fazer Arroz Doce ou então - Calcular o Saldo de um 
Estoque. 
 
Para evitar erros no desenvolvimento de um algoritmo, deve-se conhecer algumas fases 
fundamentais para sua construção. 
 
 
1ª Fase) Compreensão do problema: Compreenda o problema a ser resolvido, destacando 
os pontos principais; 
2ª Fase) Definição das Entradas: Identificar os dados que devem ser solicitados e lidos 
pelo computador para a resolução do problema; 
3ª Fase) Definição do Processamento: Definir quais operações devem ser realizadas nos 
dados de entrada, gerando os dados de saída; 
4ª Fase) Definição das Saídas: Identificar quais dados o usuário espera receber do 
computador após ter fornecido os dados de entrada; 
5ª Fase) Construção do algoritmo: Escolher a notação descritiva, gráfica ou pseudocódigo 
e construir o algoritmo; e 
6ª Fase) Teste do algoritmo: Executar o algoritmo passo a passo, aplicando, por exemplo, o 
teste de mesa. 
 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 20 
Exemplificando... 
 
Problema: Calcule e mostre a média aritmética simples das notas de um aluno, sabendo que foram 
realizadas 4 provas P1, P2, P3 e P4. 
 
1ª Fase – Compreensão do Problema: Devo obter as 4 notas do aluno, somá-las e dividir a soma por 4. 
O resultado é a média. Logo, eu conheço a solução do problema e se é possível resolve-lo manualmente, 
então deve-se buscar um algoritmo para ele. 
 
2ª Fase – Definição das Entradas: Os dados de entrada são P1, P2, P3 e P4. 
 
3ª Fase – Definição do Processamento: O procedimento será somar os 4 dados de entrada (P1, P2, P3, 
P4) e dividir seu resultado por 4. 
 
4ª Fase – Definição das Saídas: O dado de saída será a média final. 
 
5ª Fase – Construção do Algoritmo: Será utilizada a notação em Pseudocódigo e o algoritmo é: 
 
Algoritmo em Pseudocódigo 
Algoritmo media; 
Declare P1, P2, P3, P4, media: real; 
Inicio 
 Leia(P1); 
 Leia(P2); 
 Leia(P3); 
 Leia(P4); 
 Media  (P1+ P2+P3+ P4) / 4; 
 Escreva(“Média: ”, media); 
Fim. 
 
 
6ª Fase – Teste do Algoritmo: 
Realizando o teste de mesa do algoritmo construído: 
 
 
 
 
 
 
 
 
 
 
 
 
 
# Algoritmo P1 P2 P3 P4 Media Saída 
1 Algoritmo media; 
2 Declare P1, P2, P3, P4, media: real; 
3 Inicio 
4 Leia(P1); 8 
5 Leia(P2); 7 
6 Leia(P3); 5 
7 Leia(P4); 10 
8 Media  (P1+ P2+P3+ P4) / 4; 7,5 
9 Escreva(“Média: ”, media); Média: 7,5 
10 Fim. 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 21 
3 ALGORITMOS EM PSEUDOCÓDIGO 
3.1 Estrutura Básica de um Algoritmo 
Um algoritmo possui a estrutura básica representada a seguir. As representações indicadas 
pela notação < > implicam que devem ser substituídas e o programador deve determinar o valor. 
As representações indicadas pela notação [ ] implicam em estrutura facultativa, podendo-se fazer 
um algoritmo sem utilizá-la. 
Utiliza-se duas barras “//” para comentar uma linha. Para comentar um bloco que possua 
mais de uma linha, utiliza-se barra e asterisco “/*” para abrir o comentário de bloco e asterisco e 
barra “*/” para fechar o comentário de bloco. 
 
 
Algoritmo <nome do algoritmo>; 
[Const <declare uma constante>;] 
[Declare <declare uma variável>;] 
Início 
 <comandos>; 
 Fim. 
 /*Este algoritmo calcula a área de um círculo 
qualquer e imprime o resultado */ 
Algoritmo AreaCirculo; // π*r2 
Declare area, R: real; 
Início 
 R  2; // raio recebe o valor 2 
 area  3,1415 * (R * R); 
 Escreva (area); // mostra na tela a área 
Fim. 
Figura 11 - Estrutura básica de um algoritmo Figura 12 - Exemplo de um algoritmo 
 
O detalhamento para se construir o algoritmo e quais comandos podem ser usados consiste 
no objetivo do restante deste livro. 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 22 
4 DECLARAÇÃO DE VARIÁVEIS E CONSTANTES 
Declaração de variáveis e constantes é utilizada para informar ao computador quais dados 
serão utilizados e necessários para resolver-se um problema. 
 
Para um computador calcular o salário de um funcionário, ele precisa de dados como 
salário base do funcionário, número de horas extras, total de adiantamentos, dentre outros 
créditos e descontos que compõem uma folha de pagamento. Cada um desses valores representa 
um dado a ser armazenado e processado no computador, o qual os transforma em salário bruto e 
líquido. 
Algoritmos podem possuir dados declarados como variáveis ou constantes, explicados a 
seguir. 
4.1 Variáveis 
Declara-se uma variável para determinar seu nome (salário, data, idade, nome, ...) e o tipo 
de dado (número inteiro, número real, um caractere, texto, ...) a ser fornecido pelo usuário ou 
calculado pelo algoritmo. 
 
Se o algoritmo precisa armazenar a idade de uma pessoa, então é preciso declarar no 
algoritmo uma variável chamada idade do tipo inteiro. Se é preciso armazenar o salário de um 
funcionário, então deve-se declarar no algoritmo a variável salário do tipo real. A declaração das 
variáveis idade e salário é exemplificada a seguir. 
 
Algoritmo teste; 
Declare idade : inteiro; 
 salario : real; 
INICIO 
 <comandos>; 
FIM. 
Figura 13 - Exemplo de declarações de variáveis 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 23 
Uma variável está associada a uma posição de memória, e seu conteúdo pode ser alterado 
durante a execução de um programa. Embora uma variável possa assumir diferentes valores, ela 
só pode armazenar um valor por vez. 
 
 
Algoritmo teste2; 
Declare salario, comissao: real; 
Início 
 salario  1200,00; 
 Escreva (“Entre com valor da comissão: “); 
 Leia (comissao); 
 salario  salario + comissao; 
 Escreva (“O salário atual é:”, salario); 
Fim; 
Figura 14 - Exemplo Alteração de valor de variável 
 
 Representação de criação de variáveis na memória do computador e armazenamento 
das informações. 
 1 2 3 4 5 6 7 
1 700,00 
2 
3 1200,00 
4 
 
 
 
Após a execução da instrução: salario  salario + comissao; 
 
 
 
 1 2 3 4 5 6 7 
1 700,00 
2 
3 1900,00 
4 
 
Figura 15 – Representação de criação de variáveis na memória do computador 
salario 
comissao 
Nome da variável 
Valor da variável 
Alterando o valor 
da variável 
salario 
comissao 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 24 
4.1.1 TIPOS DE DADOS 
O computador processa dados de vários tipos, podendo realizar as mais diferentes 
operações com dados, inteiros, reais, irracionais, racionais, etc. O programador deve saberquais 
os dados e tipos de dados ele precisa para resolver um problema. Para conseguir estas 
informações, pode-se consultar o cliente que solicitou o programa e leia os formulários utilizados 
na empresa. Por meio destes formulários é possível determinar os campos importantes e seus 
tipos de dados. 
Em um formulário, não se deve escreva uma data em um campo que se pede um valor 
monetário. Não se deve escreva um número no campo que pede o nome da pessoa. Não se deve 
escreva um valor monetário onde pede-se uma idade. Isto gera erro no preenchimento de 
formulários porque o tipo de dado esperado possui um formato e o usuário escreve outro. 
No computador não é diferente. Deve-se definir o tipo de dado para cada um dos campos. 
O computador acusará erro, por exemplo, se você tentar escreva 12/03/2017 em uma idade. 
Idade não aceita barras e é composto por apenas um número inteiro, ao contrário da data que 
possui 2 números inteiros. O contrário também gera erro, pois um número inteiro não satisfaz a 
necessidade de 3 números inteiros. 
 Algoritmos e programas de computadores exigem que o programador estabeleça (defina) 
cada um dos dados e o Tipo de Dado que ele utiliza para resolver um problema. Os Tipos de 
Dados utilizados para construção de algoritmos são inteiro, real, literal, caractere e lógico. Cada 
um deles explicado a seguir. 
Tabela 4 – Tipo de Dados 
Tipo Descrição Exemplo 
Inteiro Armazena um número inteiro 1; 345; -237; 91; 125874; 
Real Armazena um número real 2,0; 21,987; - 237,2; 0,9854; 
Caractere 
Armazena um único (1) caractere podendo ser letras 
maiúsculas, minúsculas, números (não utilizados 
para cálculos) e caracteres especiais como (&, #, $, 
@, [, {, dentre outros). O caractere sempre é 
representado entre aspas simples. 
„1‟; „L‟; „a‟; „!‟; „%‟; „~‟ 
Literal 
Armazena um conjunto de caracteres como um nome 
de pessoa, data, cor, descrição de um produto, etc. 
Uma literal sempre é representado entre aspas 
simples ou dupla. 
“PEDRO”; “Rua das Flores”; 
“São Paulo”; “Amarelo”; “Pacote 
de Macarrão 500gr”; “21/12/2011” 
Lógico Armazena o valor verdadeiro ou falso 
V; F; Verdadeiro; Falso 
 
 
Podem-se fazer operações com os tipos de dados. Os números podem ser somados, 
subtraídos dentre outras operações aritméticas. Literais podem ter parte de seus caracteres 
retirados, outros inseridos etc. 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 25 
 
4.1.2 EXERCÍCIO PROPOSTO 
1) Relacione o Tipo de Dado e o valor armazenável nele. Utiliza-se a vírgula para separar as 
casas decimais e o ponto a casa de milhares: 
1-Inteiro 
2-Real 
3-Caractere 
4-Literal 
5-Lógico 
( ) „K‟ 
( ) V 
( ) „V‟ 
( ) 2,1345 
( ) „mecanismo de destruição‟ 
( ) 325.472 
( ) „21/02/2548‟ 
( ) „02/02/22‟ 
( ) „*‟ 
( ) -352,254 
( ) „Roxo‟ 
( ) falso 
( ) -95 
( ) „-95‟ 
( ) „6‟ 
( ) „234‟ 
( ) „a‟ 
( ) „aaaa‟ 
( ) „$‟ 
( ) „UFLA‟ 
( ) „325.654.387,35987412569874521‟ 
( ) 325.654.387,35987412569874521 
 
4.2 Constantes 
Denomina-se como constante dados que não se modificam no decorrer do algoritmo, por 
isto o nome de constante. 
 
Exemplos clássicos de constantes são número Pi, número de Euler (e), aceleração da 
gravidade, dentre outros. Qualquer dado que possua um valor que não varie deve ser declarado 
como uma constante. A declaração das constantes Pi e „e‟ (número de Euler) é exemplificado no 
algoritmo a seguir. 
 
 
Algoritmo teste; 
Const pi = 3,1415; 
 e = 2,71828; 
Declare idade : inteiro; 
 salario : real; 
Início 
 <comandos>; 
Fim. 
Figura 16 - Exemplo de declarações de constantes 
nome da constante 
valor da constante 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 26 
 
A representação de constantes e variáveis na memória do computador é idêntica e segue a 
forma mostrada na Figura 15. 
 
4.3 Regras para nomear Variáveis, Constantes e Algoritmos 
As regras para nomear variáveis, constantes e algoritmos são apresentadas a seguir: 
 O nome deve estar relacionado ao conteúdo armazenado (idade, nome, sexo); 
 Devem começar com uma letra ou sublinhado “_“; 
 O restante pode ser letra ou número ou sublinhado; 
 Não usar espaços em brancos; 
 Não usar caracteres especiais do tipo @, +, -, %, !, #, $, &, *, (, ^ , }, dentre outros; 
 Não usar palavras reservadas da linguagem de programação; e 
 O uso de letras maiúsculas ou minúsculas é indiferente no algoritmo. Entretanto, 
dependendo da linguagem de programação utilizada, maiúsculo ou minúsculo determinam 
variáveis e constantes distintas. 
 
Tabela 5 - Exemplo de nomes válidos e inválidos 
Nomes Válidos Nomes Inválidos 
TOTAL 3ARQUIVO - começa com dígito 
UMNOMEMUITOCOMPRIDOEDIFICILDELER X+Y - não permitido 
lado2 For - palavra reservada para comando 
UM_NOME_MUITO_COMPRIDO_MAS_FACIL_DE_LEIA Until - palavra reservada para comando 
L123 Media(76) - não é permitido parênteses 
duas_palavras Data de nascimento - não é permitido espaço 
 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 27 
 
4.3.1 EXERCÍCIOS PROPOSTOS 
1) Diferencie constantes de variáveis. Exemplifique a declaração de uma constante e de 
uma variável: 
2) Deseja-se armazenar nota, nome, número da matrícula, sexo, data de nascimento, valor da 
mensalidade de um aluno e se ele é bolsista. Declare as variáveis em portugol. 
3) Assinale com C os nomes CORRETOS para algoritmos, variáveis e constantes e com I os 
INCORRETOS. Explique o que está errado nos incorretos. 
 
( ) 34 - 23 
( ) nome aluno 
( ) _d20 
( ) Minimo 
( ) aula_03 
( ) SALARIO 
( ) nota*final 
( ) km/h 
( ) “nota” 
( ) cia3a3 
( ) xyz 
( ) Data_Nascimento 
( ) achou! 
( ) A + B 
( ) 3notas 
( ) nota_bimestral 
( ) e-mail 
( ) estado_civil( ) 
( ) comissao% 
( ) nota_bimestral 
( ) 360hs 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 28 
5 COMANDOS SEQUENCIAIS 
Os comandos sequenciais são as estruturas mais simples utilizadas na construção de 
algoritmos e subdividem-se em comandos de entrada, saída e atribuição. 
Ela é formada por um conjunto de instruções (ou comandos) que executadas em uma 
seqüência linear de cima para baixo e da esquerda para a direita, ou seja, da mesma forma como 
foram escritas. 
5.1 Comando de Entrada 
Em diversas soluções de problemas necessita-se de dados informados pelo usuário para 
serem processados pelo algoritmo, sendo o teclado a entrada padrão do computador. 
O Comando de Entrada permite obter estes dados externos ao algoritmo e armazená-los em 
variáveis. 
Em pseudocódigo o comando de entrada é representado pela palavra Ler ou Leia. 
Exemplificando... 
 
... 
 leia (raio); // O valor digitado pelo usuário será armazenado na variável raio. 
... 
 leia (nome); // Os caracteres digitados pelo usuário serão armazenados na variável nome. 
... 
 
5.2 Comando de Saída 
O Comando de Saída é utilizado para apresentar dados e mensagens ao usuário. 
Em pseudocódigo o comando de saída é representado pela palavra Escrever ou Escreva. 
Exemplificando... 
 
 
Escreva (“Digite um valor:”); // Mostra uma mensagem ao usuário. 
 
Escreva (x); // Mostra o valor armazenado na variável x. 
 
Escreva (“O aluno “, nome, “está aprovado”); /*Mostra a mensagem “O aluno “, logo depois o valor 
armazenado na variável nome e em seguida o restante da mensagem “está aprovado” */ 
 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa.Ana Rubélia 29 
5.3 Comando de Atribuição 
O Comando de Atribuição é utilizado para atribuir valor ou operações a uma variável, 
sendo representado pelo símbolo “”. 
Exemplificando... 
 
x  “José”; 
y  2.5; 
y  y + 1; 
teste  falso; 
media  (N1 + N2 + N3 + N4) / 4; 
raio  2; 
area  PI * (raio * raio); 
perimetro  3* PI * raio; 
Utilizamos as palavras INÍCIO e FIM para delimitar o bloco de sequência, conforme 
sintaxe a seguir. 
Exemplificando... 
 
Algoritmo Comandos_Sequenciais; 
Declare 
X, Y : inteiro; 
A, B : real; 
nome : literal; 
INÍCIO 
Escreva (“Entre com o valor de X: ”) ; 
Leia (X); 
Escreva (“Entre com o valor de A: ”); 
Leia (A); 
Escreva (“Entre com o seu nome: ”); 
Leia (nome); 
Y  X * 3; 
B  (A * 2,4) / 3; 
Escreva (nome “, os valores de X e A agora valem: “,Y, B); 
FIM. 
Figura 17 – Exemplo de Comandos Sequenciais 
 
Observe que todos os comandos entre INÍCIO e FIM estão com a margem mais a direita, 
para facilitar a visualização. Isto se chama indentação e será explicada em mais detalhes em 
outra seção. O mesmo pode ser observado com 3 linhas de declaração de variáveis, cuja margem 
foi empurrada para a direita, sendo um subnível de Declare. 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 30 
 
5.4 Boas Práticas para os Comandos Sequenciais 
1) SEMPRE Escreva uma mensagem ao usuário antes de qualquer comando de entrada, informando o 
dado a ser fornecido e a unidade de medida. Caso contrário, o usuário verá o cursor piscando na tela e 
não saberá o que fazer. 
ERRADO CERTO 
// Cursor fica piscando e usuário não sabe o que 
fazer 
// pois não foi enviada mensagem a ele 
Leia(nome); 
// Envia mensagem e lê o nome 
Escreva(“Nome: ”); 
Leia(nome); 
 
// Usuário não sabe se temperatura é C, F ou K. 
Escreva(“Digite a temperatura: ”); 
Leia(temp); 
// Envia mensagem e lê o salário 
Escreva(“Digite a temperatura em Celsius: ”); 
Leia(temp); 
 
2) Ao imprimir o resultado de um processamento na tela do computador, SEMPRE mande uma mensagem 
informando a unidade de medida e o que o dado representa. Caso contrário, o usuário verá um dado na 
tela e não saberá do que se trata. 
ERRADO CERTO 
// Usuário sabe que o dado é sobre altura, mas 
não 
// sabe se é em metros, centímetros etc. 
Escreva(“Altura: ”, altura); 
// Informar a unidade de medida e o que o dado 
// representa 
Escreva(“Altura: “, altura, “ (metros)”); 
// Usuário vê um número na tela e não sabe do 
que se trata. 
Escreva(temperatura); 
// Informar a temperatura explicitando ser em 
Celsius. 
Escreva(“A temperatura atual é: ”, temp, “C”); 
 
3) O computador trabalha com dados numéricos sem conhecer a unidade de medida ou o dado 
representado. Assim, quando você digita 30 no teclado, o computador não sabe se 30 é a idade (anos), 
a temperatura (C,F, K), a dimensão (mm, cm, m, km,...), pressão etc. Se você pedir para ele subtrair a 
idade da pressão, ele o fará, pois para ele tudo é número. Cabe ao programador gerenciar e fazer 
corretamente as contas, ficando atento as unidades de medida. 
 
 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 31 
5.5 Operadores e Funções pré-definidas 
Os operadores são meios pelo qual incrementamos, decrementamos, comparamos e 
avaliamos dados dentro do computador. Temos três tipos de operadores: Aritméticos, 
Relacionais e Lógicos. 
Os Operadores Relacionais e Lógicos serão apresentados na seção 6.1.1 e 6.1.2 
respectivamente. 
Vejamos agora os operadores Aritméticos. 
 
5.5.1 OPERADORES ARITMÉTICOS 
Os Operadores Aritméticos são utilizados para obter resultados numéricos. Além da adição, 
subtração, multiplicação e divisão, podem utilizar também o operador de multiplicação para 
exponenciação. 
 
Os símbolos para os Operadores Aritméticos são: 
Tabela 6 – Operadores Aritméticos 
+ Adição 
- Subtração 
* Multiplicação 
/ Divisão 
* * ou ^ Exponenciação 
 
5.5.1.1 Hierarquia das Operações Aritméticas 
Na resolução das operações aritméticas os operadores possuem uma hierarquia de 
prioridade ou regra de precedência. 
Tabela 7 – Hierarquia das Operações Aritméticas 
1º ( ) parênteses 
2º Exponenciação 
3º Multiplicação ou divisão (o que vier primeiro) 
4º Adição ou subtração (o que vier primeiro) 
 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 32 
Exemplificando... 
 
area_triangulo  (Base * Altura) / 2; 
X  5*(7-9)+3*7; 
Z  1 + 7 * 2 ** 3 –1; 
media  (P1+ P2) / 2; 
 
 
5.5.2 FUNÇÕES PRÉ-DEFINIDAS 
Uma função tem por objetivo retornar um valor ou informação. As funções pré-definidas ou 
bibliotecas de funções armazenam um conjunto de funções que podem ser usadas pelos 
programas. 
A Tabela 8 apresenta alguns tipos de funções pré-definidas para a utilização na construção 
de algoritmos. 
Entretanto, cada linguagem possui suas próprias funções pré-definidas e como veremos 
adiante no tópico 15.2 o programador pode criar funções conforme necessidade. 
Tabela 8 – Funções pré-definidas 
ABS(x) Retorna o valor absoluto de x 
TRUNC(x) ou INT(x) Retorna a parte inteira de x 
FRAC(x) Retorna a parte fracionária de x 
SQRT(x) Retorna a raiz quadrada de x 
ROUND(x) Retorna o valor arredondado de x 
SQR(x) Eleva o valor de x ao quadrado 
x MOD y Retorna o resto da divisão entre x e y 
x DIV y Retorna o valor inteiro do resultado da divisão de x por y 
CONCAT(x) Concatena (junta) uma sequencia de caracteres 
SIN(x) Retorna o Seno de x 
COS(x) Retorna o Coseno de x 
TAN(x) Retorna a Tangente de x 
 
X=11 
Z=56 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 33 
Exemplificando... 
 
A  ABS (-4); // A  4 
A  TRUNC (2,78); // A  2 
A  INT (4,15); // A  4 
A  INT (-4,15); // A  - 4 
A  FRAC (3.65); ;// A  0.65 
A  FRAC (-3.65); // A  - 0.65 
A  SQRT(9); // A  3; 
A  ROUND (2.78); // A  3 
A  ROUND (-1,4); // A  -1 
A  SQR(2); // A  4; 
A  7 MOD 2 ; // A  1; 
A  6 MOD 2 ; // A  0; 
A  7 DIV 2; // A 3,5; 
A  18 DIV 3; // A 6; 
A  CONCAT(“abc”, “def”) ; // A  abcdef; 
A  CONCAT(“ana”, “rubelia”) ; // A  anarubelia; 
 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 34 
 Exercícios Resolvidos: 
1) Elabore um algoritmo para calcular o perímetro de um círculo dado o seu raio, considerando 
que Perímetro = 2 * π * Raio. 
Algoritmo perimetro_circulo; 
Const pi = 3,1415; 
Declare peri, raio : real; 
INÍCIO 
Escreva (“Programa para calcular o perímetro de um círculo dado seu raio”); 
Escreva (“Entre com o valor do raio: ”); 
Leia (raio); 
peri  2 * pi * raio; 
Escreva (“O perímetro do círculo segundo o raio “, raio, “informado é: ”, peri); 
FIM. 
Figura 18 – Algoritmo para calcular o perímetro de um círculo 
2) Elabore um algoritmo para calcular consumo médio de um veículo, conhecidos a distância 
total e a quantidade de combustível consumido para percorrer tal distância. 
Algoritmo calc_consumo; 
Declare consumo, distancia, qde_comb: real; 
INÍCIO 
Escreva (“Programa para calcular o consumo médio de combustível”); 
Escreva (“Informe a distancia em Km percorrida pelo veiculo: ”); 
Leia (distancia); 
Escreva (“Informe a quantidade em litros de combustível gasto: ”); 
Leia (qde_comb); 
consumo  qde_comb/ distancia; 
Escreva (“O consumo médio de combustível para a distância de”, distancia, “km foi 
de:” , consumo, “litros/km.”); 
Escreva (“O carro fez ”, distancia/qde_comb, “ km por litro!”); 
 
FIM. 
Figura 19 – Algoritmo para calcular o consumo de combustível3) Elabore um algoritmo para leia uma quantidade de chuva dada em polegadas e apresente o 
equivalente em milímetros, considerando que 1 polegada = 25,4 milímetros (mm). 
Algoritmo chuva_em_mm; 
Declare pol, mm: real; 
INÍCIO 
Escreva (“Programa para converter um volume de chuva de polegadas para milímetros.”); 
Escreva (“Informe a quantidade de chuva em polegadas: ”); 
Leia (pol); 
mmpol * 25,4; 
Escreva (“volume de chuva em milímetros é: “, mm, “mm”); 
FIM. 
Figura 20 – Algoritmo para calcular o consumo de combustível 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 35 
 
5.5.3 EXERCÍCIOS PROPOSTOS 
1) Para as variáveis a seguir e seus respectivos valores, B  2; X  3 determine o resultado 
das expressões aritméticas a seguir: 
a) X * B 
b) - (X ** B) 
c) (-X) ** B 
d) (2*B)/X^X 
 
2) Escreva em linguagem algorítmica as expressões aritméticas: 
 
 
3) Dada a declaração de variáveis: 
Declare A, B, C : inteiro; 
 X, Y, Z : real; 
 NOME, RUA : literal; 
 L1, L2 : lógico; 
Classifique as expressões a seguir segundo o tipo de dado resultante da(s) operação(ões), em I 
(inteiro), R (real), L (literal), B (lógico) ou ND (quando não for possível definir): 
( ) A + B + C 
( ) A + B + Z 
( ) NOME + RUA 
( ) A B 
( ) A Y 
( ) NOME RUA 
( ) A + B / C 
( ) A + X / Z 
( ) A + Z / A 
( ) A B = L1 
( ) (A = B) 
( ) X + Y / Z 
 ( ) X = Z / A 
( ) L1 ** L2 
( ) A + B / L2 
( ) X < L1 / RUA 
 
4) Elabore um algoritmo para calcular o estoque médio de uma peça, considerando que 
EstoqueMedio = (QuantidadeMínima + QuantidadeMáxima) /2. Faça um Teste de Mesa 
com dados definidos por você. 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 36 
5) Elabore um algoritmo para leia uma temperatura em graus Fahrenheit, calcule e exiba a 
temperatura convertida em graus Centígrados, considerando que C = (F - 32) * ( 5 / 9 ). 
6) Elabore um algoritmo que leia o salário base de um funcionário, o número de horas extras 
feitas, o valor de cada hora extra e o auxilio refeição. Imprima na tela o valor do salário 
bruto (sem descontos). Na sequencia calcule o desconto do INSS de 10% sobre o salário 
bruto e mostre o total a receber. 
7) Elabore um algoritmo que leia três números e apresente o resultado da soma das 
combinações destes números. 
8) Elabore um algoritmo para leia uma temperatura em graus Celsius, calcule e exiba a 
temperatura convertida em graus Kelvin, considerando que K = C + 273. 
9) Elabore um algoritmo que dada a cotação do dólar e um valor em dólares, converta este 
valor em Real e mostre o resultado. 
10) Elabore um algoritmo que leia valores para X e Y respectivamente e calcule: 
a) O resto da divisão de X / 3 
b) X
3 
– 4 
c) (X * Y)
 2
 
d) X
Y 
+ 2 
e) Raiz quadrada de Y
 
 
 
 
 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 37 
6 COMANDOS CONDICIONAIS 
Os comandos condicionais (decisão ou desvio) permitem a escolha de uma instrução ou 
grupo de instruções a ser executado quando determinada condição é ou não satisfeita como 
exemplificado na figura a seguir. 
 
 
 
 
Figura 21 – Fluxograma de Comando Condicional SE ENTÃO SENÃO 
 
... 
se (tiver dinheiro suficiente) então 
 almoçarei em um bom restaurante; 
senão 
 comerei um lanche; 
fim-se; 
... 
Figura 22 – Exemplo de Comando Condicional SE ENTÃO SENÃO 
 
Neste capítulo, apresentam-se Operadores Relacionais, Operadores Lógicos e Comandos 
Condicionais “SE ... ENTÃO”, “SE ... ENTÃO ... SENÃO” e “ESCOLHA ... CASO”. 
 
6.1 Operadores Relacionais e Lógicos 
Os Operadores Relacionais e Lógicos são utilizados para comparar e avaliar dados 
utilizados nos comandos condicionais. Desta forma, será possível criar algoritmos que 
representem regras do mundo real como: 
- Se salário for maior que 2400 reais então desconte 15% do imposto de renda na fonte; 
- Se salário menor que 3 salários mínimos então salário família por dependente será 30 
reais, senão 10 reais. 
- Se comprador é de Minas Gerais então aplique 18% ICMS, senão aplique 12% de ICMS. 
Escrever ( “ X é maior ou igual a 10”) 
Escrever ( “ X é ,menor a 10” ) 
 X >= 10 ? 
sim 
não 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 38 
6.1.1 OPERADORES RELACIONAIS 
Os Operadores Relacionais são utilizados para comparar caracteres e números. Estes 
operadores sempre retornam valores lógicos (Verdadeiro ou Falso / True ou False). 
Os símbolos para os Operadores Relacionais são: 
Tabela 9 – Operadores Relacionais 
= Igual a 
<> ou # Diferente de 
> Maior que 
< Menor que 
> = Maior ou igual a 
< = Menor ou igual a 
Exemplificando... 
Tabela 10 – Operadores Relacionais aplicados ao tipo INTEIRO 
Dados os valores das variáveis do tipo INTEIRO X = 3 e Y = 7, vide os 
resultados das expressões a seguir: 
Expressão Resultado 
X = Y FALSO 
X <> Y VERDADEIRO 
X > Y FALSO 
X < Y VERDADEIRO 
X > = Y FALSO 
X < = Y VERDADEIRO 
. 
 
Analogamente, o raciocínio é aplicado para variáveis do tipo reais, caractere e lógico. 
Tabela 11 – Operadores Relacionais aplicados ao tipo REAL 
Dados os valores das variáveis do tipo REAL X = 4.52 e Y = 4.60, vide os 
resultados das expressões a seguir: 
Expressão Resultado 
X = Y FALSO 
X <> Y VERDADEIRO 
X > Y FALSO 
X < Y VERDADEIRO 
X > = Y FALSO 
X < = Y VERDADEIRO 
. 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 39 
Tabela 12 – Operadores Relacionais aplicados ao tipo CARACTERE 
Dados os valores das variáveis do tipo CARACTERE X = „a‟ e Y = „d‟, 
vide os resultados das expressões a seguir: 
Expressão Resultado 
X = Y FALSO 
X <> Y VERDADEIRO 
X > Y FALSO 
X < Y VERDADEIRO 
X > = Y FALSO 
X < = Y VERDADEIRO 
. 
 
Para saber se um caractere é maior que outro, consideram-se os caracteres em ordem 
alfabética e que os caracteres minúsculos são maiores que os maiúsculos. Além disto, „a‟ é 
diferente de „A‟, implicando que caracteres maiúsculos são diferentes de caracteres minúsculos, 
ainda que represente a mesma letra no alfabeto. 
 
Veja exemplo a seguir: 
Tabela 13 – Operadores Relacionais aplicados a CARACTERES maiúsculo e minúsculo 
Dados os valores das variáveis do tipo CARACTER X = „A‟ e Y = „a‟, vide 
os resultados das expressões a seguir: 
Expressão Resultado 
X = Y FALSO 
X <> Y VERDADEIRO 
X > Y FALSO 
X < Y VERDADEIRO 
X > = Y FALSO 
X < = Y VERDADEIRO 
. 
 
Tabela 14 – Operadores Relacionais aplicados ao tipo LITERAL 
Dados as variáveis do tipo LITERAL X = „Ana‟ e Y = „antonio‟, vide os 
resultados das expressões a seguir: 
Expressão Resultado 
X = Y FALSO 
X <> Y VERDADEIRO 
X > Y FALSO 
X < Y VERDADEIRO 
X > = Y FALSO 
X < = Y VERDADEIRO 
. 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 40 
Para comparar literais, usa-se as mesmas regras de caracteres, seguindo um processo 
análogo a procura de palavra em um dicionário. Assim compara-se a primeira letra de X, „A‟, 
com a primeira letra de Y, „a‟, assume-se que X é menor que Y, pois letras maiúsculas são 
menores que as minúsculas. 
 
Outro exemplo para melhor compreensão seria comparar X=‟Ana‟ e Y=‟Antonio‟. 
Compara-se a primeira letra das duas palavras. Observa-se que elas são idênticas e representam a 
letra „A‟ maiúscula. Portanto, deve-se comparar a segunda letra das duas palavras. Observa-se 
que também são idênticas e representam a letra „n‟ minúscula. Na sequência,deve-se comparar a 
terceira letra das duas palavras. Observa-se que a terceira letra de X é „a‟ e a terceira letra de Y é 
„t‟, como as duas são minúsculas e „a‟ aparece primeiro que „t‟ no alfabeto, então pode-se 
afirmar que X é menor que Y. 
 
6.1.2 OPERADORES LÓGICOS 
Quando se escreve expressões lógicas, elas podem ser simples ou compostas. Seu programa 
pode utilizar expressões simples como “Se salário >2400 então...”. Porém, existem problemas 
que exigem expressões lógicas mais complexas como: “Se salário < 2400 E dependentes > 3 
então...”. 
 
Outro exemplo seria “Se (matrícula=‟12345‟ OU matricula=‟23156‟ então...”. Observe que 
existem casos que várias condições com operadores relacionais precisam ser inseridas na mesma 
condição. 
Para fazer isto, necessita-se dos operadores lógicos E, OU e NÃO. 
Os Operadores Lógicos são utilizados para combinar resultados de expressões, retornando 
se o resultado final é verdadeiro ou falso. 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 41 
 
Tabela 15 – Operadores Lógicos 
E Uma expressão E é verdadeira se todas as 
condições forem verdadeiras 
OU Uma expressão OU é verdadeira se pelo menos 
uma condição for verdadeira 
NÃO Uma expressão NÃO inverte o valor da expressão 
ou condição, se verdadeira inverte para falsa e 
vice-versa 
 
6.1.2.1 Tabela verdade genérica... 
 
Dados os valores de x e y, observe os resultados: 
Operador E - a resposta da operação é verdade se x e y forem verdadeiras. 
x y x E y 
V V V 
V F F 
F V F 
F F F 
 
Operador OU - a resposta da operação é verdade se pelo menos um dos 
elementos for verdadeiro. 
x y x OU y 
V V V 
V F V 
F V V 
F F F 
 
Operador NÃO - Se ela for verdade, torna-se falsa, e vice-versa. 
x NÃO x 
V F 
F V 
. 
 
 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 42 
 
6.1.3 EXERCÍCIO PROPOSTO 
Dados X2, A5, B4 e C3 e D6, determine os resultados lógicos das expressões, 
indicando se são VERDADEIRAS ou FALSAS: 
 
a) (X >= 2) 
b) (X < 1) E (B >=D) 
c) (A + B) > 10 OU (A + B) = (C + D) 
d) (A >= C) E (D >= C) 
e) NÃO (X > 3) 
f) (X < 1) E NÃO (B > D) 
g) NÃO (D < 0) E (C > 5) 
h) NÃO (X > 3) OU (C < 7) 
i) (A > B) OU (C > B) 
6.2 Comando Condicional Simples SE ... ENTÃO 
No SE ... ENTÃO determinada que se uma condição for satisfeita então o bloco de 
comando(s) é executado. 
 
... 
SE (condição) ENTÃO 
 comando 1; 
 comando 2; 
 comando 3; 
FIMSE; 
... 
 
Figura 23 – Sintaxe do Comando Condicional Simples 
 
Exemplificando... 
Faça um algoritmo que leia a média de um aluno e escreva na tela “Aluno Aprovado” caso 
a média dele seja igual ou superior a 6. 
 
... 
SE (media>=6) ENTÃO 
 escreva (“Aluno Aprovado”); 
FIMSE; 
... 
Figura 24 – Exemplo de Algoritmo usando Comando Condicional Simples 
; (ponto e vírgula) marca o 
fim deste comando. 
 ; (ponto e vírgula) marca o 
fim do comando SE. 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 43 
O trecho do algoritmo mostrado na Figura 1 apresenta a utilização do comando 
SE...ENTÃO... para o enunciado apresentado. Se a média for maior ou igual a 6 então o 
comando escreva é executado. Caso a média seja menor que 6, o comando escreva não é 
executado. 
 
6.3 Comando Condicional Composto SE ... ENTÃO ... SENÃO 
No SE/ENTÃO/SENÃO se a condição for verdadeira o bloco referente aos comandos 1 e 
2 será executado. Caso contrário serão executados os comandos 3 e 4. 
 
... 
SE (condição) ENTÃO 
 comando 1; 
 comando 2; 
SENÃO 
 comando 3; 
 comando 4; 
FIMSE; 
... 
Figura 25 – Sintaxe do Comando Condicional Composto 
 
 
Exemplificando... 
 
Faça um algoritmo que leia a média de um aluno e escreva na tela se ele foi aprovado ou 
reprovado. 
 
... 
SE (media>=6) ENTÃO 
 escreva (“Aluno Aprovado”); 
SENÃO 
 escreva (“Aluno Reprovado”); 
FIMSE; 
... 
Figura 26 – Exemplo de Algoritmo usando Comando Condicional Composto 
 
Na condição exemplificada, se for verdadeira, executa o comando APROVADO, caso 
contrário executa o comando REPROVADO. 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 44 
Veja na sequencia, exemplos utilizando os Operadores Lógicos E, NÃO e OU. 
 
... 
SE (media >= 6) E ( frequencia > 75% ) 
ENTÃO 
 escreva (“Aluno Aprovado”) 
SENÃO 
 escreva (“Aluno Reprovado”); 
FIMSE; 
... 
Figura 27 – Exemplo de Algoritmo usando Comando Condicional Simples 
 
 
... 
SE (NÃO tiver dinheiro) ENTÃO 
 almoçarei em casa; 
SENÃO 
 irei a um restaurante; 
FIMSE; 
... 
Figura 28 – Exemplo de Comando Condicional SE ENTÃO SENÃO, usando operador NÃO 
 
... 
SE (tiver dinheiro suficiente) OU (terminado o trabalho) 
ENTÃO 
 irei ao cinema; 
SENÃO 
 ficarei em casa; 
FIMSE; 
... 
Figura 29 – Exemplo de Comando Condicional SE ENTÃO SENÃO, usando operador OU 
 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 45 
 Exercícios Resolvidos: 
 
1) Elabore um algoritmo para calcular as raízes de uma equação de segundo grau, dados os 
fatores a, b e c, Considerando , se d menor que zero as raízes não podem ser 
calculadas (não existem raízes reais). Senão, é possível calcular as duas raízes. 
 
 
... 
leia (a); 
leia (b); 
leia (c); 
d  b * b – 4 * a * c; 
 
SE (d < 0) ENTÃO 
 Escreva (“Não existem raízes reais”); 
SENÃO 
 raiz1  ( -b + SQRT(d) ) / (2 * a ); 
 raiz2  ( -b – SQRT(d) ) / (2 * a ); 
 Escreva ( raiz1 ); 
 Escreva ( raiz2 ); 
FIMSE; 
... 
 
2) Faça um algoritmo que receba um número inteiro e verifique se esse número é par ou 
ímpar. 
 
algoritmo par_impar; 
declare num, r : inteiro; 
 
INICIO 
 escreva (“Este algoritmo verifica se um número é par ou ímpar.”); 
 escreva (“Digite um número inteiro: ”); 
 leia (num); 
 r  num MOD 2; 
 
 SE (r = 0) ENTÃO 
 escreva(“Este número é par”); 
 SENÃO 
 escreva(“Este número é ímpar”); 
 FIMSE; 
 
FIM. 
 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 46 
6.4 Indentação 
Indentação (palavra adaptada do inglês, indentation) é uma técnica de recuo que aplicada 
ao código de um programa facilita a visualização da organização dos comandos e sua estrutura. 
Seu uso iniciou-se antes da programação com o nome de “tabulação de texto”, sendo utilizada 
rotineiramente na escrita de livros, panfletos, cartazes etc. 
Exemplificando... 
 
INSTITUTO PARA PROMOÇÃO DA FAMÍLIA 
As inscrições no curso de Maturidade Familiar devem ser feitos na secretaria do Instituto 
Para Promoção da Família de 3 a 11 de março. Os documentos necessários são: 
 PAI 
 Cópia do RG 
 Cópia do título de reservista 
 Cópia do último holerite 
 MÃE 
 Cópia do Certificado do Curso “A Arte De Ser Mãe” 
 Cópia do RG 
 Comprovantes Médicos com menos de 1 ano: 
 Papa Nicolau 
 Mamografia 
 FILHOS 
 Certidão de nascimento 
 
Figura 30 – Exemplo de Indentação em Texto Comum 
Na Figura 30, nota-se que a margem do primeiro parágrafo não é seguida em todo texto. Há 
dois níveis de indentação, além do alinhamento natural da margem esquerda do primeiro 
parágrafo. O primeiro nível refere-se às palavras PAI, MÃE E FILHOS, o qual foi empurrado 
para a direita, não seguindo o alinhamento original da margem esquerda. O segundo nível, 
empurrado mais para a direita do primeiro nível, refere-se aos comprovantes médicos a serem 
entregues pela MÃE. Observa-se que as palavras “Papa Nicolau” e “Mamografia” estão em um 
alinhamento mais interno da folha. A indentação auxiliando no entendimentode quais 
documentos devem ser entregues por cada um dos participantes segundo seu papel na família 
(pai, mãe ou filho). 
Um texto pode ter vários níveis de indentação e deve-se garantir uniformidade da margem 
para os textos de mesmo nível. Portanto, os textos selecionados para compor o segundo nível de 
indentação devem seguir o mesmo alinhamento de margem, sendo proibida variação de margem 
para o mesmo nível. 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 47 
Quando se deseja criar um novo nível de indentação, basta empurrar um pouco mais a 
margem para a direita. Na prática, a técnica de indentação permite associar visualmente 
informações específicas as informações genéricas. 
Os conceitos de indentação aprendidos no comando SE...ENTÃO...SENÃO serão 
utilizados em outros comandos e estruturas. 
Exemplificando... 
 
Faça um algoritmo que leia um número e responda se ele é maior que 10. 
 
Algoritmo Maior10; 
declare x: inteiro; 
INÍCIO 
 Escreva (“Digite um número: ”); 
 Leia (x); 
 
 SE (x>10) ENTÃO 
 escreva (x, “ é maior que 10”); 
 escreva (“Os comandos da indentação do ENTÃO foram executados”); 
 escreva(“A indentação facilita visualizar quais comandos estão dentro do ENTÃO”); 
 SENÃO 
 escreva (x, “ é menor que 10”); 
 escreva (“Os comandos da indentação do SENÃO foram executados”); 
 escreva(“A indentação facilita visualizar quais comandos estão dentro do SENÃO”); 
 FIMSE; 
 
FIM. 
Figura 31 – Exemplo de Indentação 
 
Adote o hábito de utilizar a técnica de indentação mesmo que ela pareça difícil no início. 
Após dominar seu uso, o programador observará que sua utilização facilita o trabalho, aumenta a 
produtividade, facilita o entendimento do código, além de ser exigido nas empresas. 
 
As 3 linhas de comando do 
ENTÃO foram indentadas para 
facilitar a visualização. E o 
mesmo foi feito para o SENÃO. 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 48 
6.5 Aninhamento de Comandos SE...ENTÃO...SENÃO 
A técnica de aninhamento de comando refere-se ao ato de utilizar um comando dentro de 
outro comando. Portanto, diz-se que há aninhamento de comandos SE...ENTÃO...SENÃO, 
quando utiliza-se um comando SE...ENTÃO...SENÃO dentro de outro comando 
SE...ENTÃO...SENÃO. Não há limite de aninhamentos, podendo-se ter vários comandos 
SE...ENTÃO...SENÃO um dentro do outro quantas vezes forem necessárias para se implementar 
o algoritmo solicitado. 
Até o momento, explicou-se aninhamento para o comando SE...ENTÃO...SENÃO, porém 
este conceito também é válido para outros diversos outros comandos que ainda serão ensinados. 
 
Exemplificando... 
 
Faça um algoritmo que leia dois números inteiros e responda qual deles é o maior ou se 
eles são iguais. 
 
Algoritmo Maior; 
declare x, y: inteiro; 
INÍCIO 
 escreva (“Este algoritmo apresenta qual de 2 números inteiros, lidos do teclado, é o maior.”); 
 escreva (“Digite o primeiro número: ”); 
 leia (x); 
 escreva (“Digite o segundo número: ”); 
 leia (y); 
 
 SE (x>y) ENTÃO 
escreva (x,“ é maior que “, y); 
 SENÃO 
 SE (x<y) então 
escreva (y,“ é maior que “, x); 
SENÃO 
escreva (x,“ é igual a “, y); 
 FIMSE; 
 FIMSE; 
 
FIM. 
Figura 32 – Exemplo de Aninhamento de Comandos SE...ENTÃO...SENÃO, Algoritmo Maior 
 
A Figura 32 apresenta um algoritmo contendo 1 aninhamento. Nela observa-se que há um 
comando SE...ENTÃO...SENÃO dentro do bloco de um SENÃO. Assim, se há um comando 
Comando SE...ENTÃO...SENÃO dentro 
de outro comando SE...ENTÃO...SENÃO 
denomina-se aninhamento. 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 49 
SE...ENTÃO...SENÃO dentro de outro comando SE...ENTÃO...SENÃO, diz-se ter 
aninhamento. 
O aninhamento pode ocorrer apenas com SE...ENTÃO e dentro dele outro SE...ENTÃO. 
Outra forma seria ter um comando SE...ENTÃO dentro de um bloco SENÃO, bem como 
outras variações. Havendo um comando dentro do outros, afirma-se ter aninhamento. 
 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 50 
Exercícios Resolvidos: 
1) Faça um algoritmo que leia a média final e frequencia de um aluno e imprima na tela se o 
aluno está REPROVADO POR FREQUENCIA, APROVADO, RECUPERAÇÃO ou 
REPROVADO POR NOTA, sabendo que: 
 Aluno precisa ter 75% ou mais de frequencia nas aulas, caso contrário ele está 
reprovado por falta, independente da nota. 
 Aluno está aprovado se a Média for maior ou igual a 60 pontos. 
 Aluno está de recuperação se a média for maior ou igual a 30 e menor que 60. 
 Aluno está reprovado por nota se a média for menor que 30 pontos. 
 
 
Algoritmo Aprovacao_Aluno; 
Declare media, frequencia: real; 
INÍCIO 
 leia(frequencia); 
 leia (media); 
 
 SE ( frequencia >= 0.75 ) ENTÃO 
 SE (media >= 60) ENTÃO 
 escreva("Aluno APROVADO!") 
 SENÃO 
 SE ( media >= 30 ) ENTÃO 
 escreva( "Aluno deve fazer RECUPERAÇÃO!"); 
 SENÃO 
 escreva( "Aluno REPROVADO POR NOTA INSUFICIENTE!" ); 
 FIMSE; 
 FIMSE; 
 SENÃO 
 escreva("Aluno REPROVADO POR FALTAS!"); 
 FIMSE; 
FIM. 
 
Figura 33 – Exemplo de Aninhamento de Comandos SE...ENTÃO...SENÃO, Algoritmo Aprovacao_Aluno 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 51 
2) Faça um algoritmo para leia três números inteiros X, Y e Z e verificar se eles formam um 
triângulo, imprimindo na tela "X, Y e Z não formam um triângulo" ou "X, Y e Z formam um 
triângulo". Se as medidas formarem um triângulo, imprimir na tela se o triângulo é 
equilátero, isósceles ou escaleno. 
 
 
Algoritmo triangulo; 
Declare 
 x, y, z: inteiro; 
INICIO 
 leia ( x, y, z ); 
 
 SE ( x+y>z ) E ( x+z>y ) E ( y+z>x ) ENTÃO 
 escreva (“X, Y e X formam um triângulo“ ); 
 SE( x=y ) E ( y=z ) E (x=z) ENTÃO 
 escreva (“Triângulo Equilátero“); 
 SENÃO 
 SE ( x=y ) OU ( x=z ) ou ( y=z ) ENTÃO 
 escreva (“Triângulo Isósceles“); 
 SENÃO 
 SE ( x<>y ) E ( y<>z ) E ( x<>z ) ENTÃO 
 escreva (“Triângulo Escaleno“); 
 FIMSE; 
 FIMSE; 
 FIMSE; 
 SENÃO 
 escreva (“X, Y e X não formam um Triângulo”); 
 FIMSE; 
 
FIM. 
 
Figura 34 – Exemplo de Aninhamento de Comandos SE...ENTÃO...SENÃO, Algoritmo triangulo 
 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 52 
6.6 Comando Condicional ESCOLHA ... CASO 
O comando condicional ESCOLHA ... CASO possibilita comparar o valor de uma 
variável/expressão em várias opções. 
A Figura 35 representa que <variável> assumirá um valor e caso o valor seja igual ao valor 
em opção1, então os comandos1 serão executados. Caso contrário, <variável> será comparada 
com o valor em opção2 e, no caso de ser igual, executará comandos2, senão comparará com as 
demais opções existentes. Se uma opção for satisfeita, então os comandos referente aquela opção 
é executada e todas as demais opções são ignoradas. 
 
 
 
 
Figura 35 – Fluxograma de Comando Condicional ESCOLHA CASO 
Algoritmos e Estruturas de Dados I 
Prof. Antônio Maria e Profa. Ana Rubélia 53 
 
ESCOLHA <variável> 
 CASO 1: < comandos >; 
 CASO 2: < comandos >; 
 CASO 3: < comandos >; 
 ... 
 CASO n: < comandos >; 
 CASO CONTRÁRIO: < comandos >; 
FIMESCOLHA; 
Figura 36 – Sintaxe do Comando Condicional ESCOLHA CASO 
O comando ESCOLHA...CASO, em algumas situações, pode ser usado para simplificar a 
utilização do SE ... ENTÃO ... SENÃO, facilitando a leitura do algoritmo. Na Figura 37, 
apresenta-se um trecho de algoritmo aplicando o comando SE...ENTÃO...SENÃO e, em seguida, 
na Figura 38, apresenta-se a mesma lógica escrita com o comando ESCOLHA...CASO. 
 
 ...

Continue navegando