Buscar

Apostila Introducao a Programacao UAB

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Introdução à Programação
Prof. Raimundo Osvaldo Vieira 
Introdução à Programação | 3
Sumário
 
UNIDADE 01 - Introdução à Programação de Computadores
1. Conceitos Básicos em Programação .................................................................................11
1.1 O que é um Computador e como ele está organizado ................................................ 11
1.2 A Programação e o Conceito de Algoritmo .................................................................... 20
1.3 Formas de Representação de Algoritmos ........................................................................ 28
2. Pseudocódigo: Conceitos Básicos .......................................................................................41
2.1 Estrutura da Nossa Linguagem Algorítmica ...................................................................... 41
2.2 O Bloco de Variáveis ............................................................................................................ 42
2.3 O Bloco de Comandos ........................................................................................................ 50
3. Pseudocódigo: Estruturas de Controle – Visão Geral......................................................... 69
3.1 Estruturas de Controle Dinâmico da Execução de um Algoritmo ................................. 69
3.2 Estrutura Sequencial ............................................................................................................. 72
3.3 Uma Ferramenta para Desenvolver e Testar Algoritmos: Visualg .................................. 83
UNIDADE 02 - Estruturas de Seleção e Estruturas de Repetição
4. Estruturas de Seleção ou Decisão ........................................................................................ 93
4.1 Estrutura de Seleção Simples .............................................................................................. 95
4.2 Estrutura de Seleção Composta ......................................................................................... 96
4.3 Estruturas de Seleção Aninhadas ....................................................................................... 99
4.4 Estrutura de Seleção escolha ........................................................................................... 107
5. Estruturas de Repetição ou Iteração .................................................................................113
5.1. Estrutura de Repetição Contada: Comando para ...................................................... 114
5.2. Estrutura de Repetição Condicional: Comando enquanto ........................................ 129
5.3. Estrutura de Repetição Condicional: Comando repita ............................................... 135
5.4. Observações Finais Sobre as Estruturas de Repetição Condicional ........................... 141
 
UNIDADE 03 - Algoritmos Baseados em Estruturas de Dados Homogêneas
6. Estruturas de Dados Homogêneas Unidimensionais ........................................................151
6.1. Conceito de Vetor ............................................................................................................ 153
6.2. Atribuindo Valores a um Vetor ......................................................................................... 154
6.3. Preenchendo um Vetor .................................................................................................... 155
6.4. Percorrendo um Vetor ...................................................................................................... 156
6.5. Aplicações das Estruturas de Dados Homogêneas Unidimensionais ......................... 157
7. Estruturas de Dados Homogêneas Multidimensionais ....................................................163
7.1. Conceito de Matriz............................................................................................................ 163
7.2. Atribuindo Valores a um Elemento de uma Matriz ....................................................... 165
7.3. Preenchendo uma Matriz ................................................................................................. 165
7.4. Percorrendo uma Matriz ................................................................................................... 166
7.5. Aplicações das Estruturas Homogêneas Bidimensionais .............................................. 168
7.6. Particularidades sobre Matrizes ....................................................................................... 171
Referências .................................................................................................................................. 178
Introdução à Programação | 4
Introdução à Programação | 5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Caro aluno, 
Você tem em mãos o material didático de Introdução à Programação. Ele foi 
cuidadosamente elaborado para ser seu companheiro de estudos. 
Este material está dividido em três unidades, compondo os conceitos e estruturas 
básicas para o aprendizado de programação de computadores. A primeira unidade é 
voltada para a apresentação dos conceitos básicos ligados ao desenvolvimento de 
algoritmos computacionais. A segunda introduz as estruturas de controle dinâmico 
da execução de um algoritmo e a terceira aborda o uso de estruturas de dados 
homogêneas na resolução de problemas. 
Programar não é uma tarefa simples. É preciso horas de dedicação, paciência e 
muito esforço, além de boa dose de raciocínio lógico-matemático. Para ajudá-lo 
nesta empreitada, cada capítulo foi pensando para abordar os conceitos de uma 
forma muito simples. Para isso, foram inseridos exemplos de aplicações e sugeridas 
atividades de auto-avaliação, que devem ser resolvidos na proporção em que o texto 
é lido. Ao final de cada unidade ou dos capítulos principais são propostas atividades 
complementares, cujo objetivo é sedimentar os conhecimentos adquiridos. 
Este material é seu roteiro e seu ponto de partida para uma viagem extraordinária 
rumo ao mundo da programação de computadores. 
Bons Estudos, 
O Autor 
 
Introdução à Programação | 6
Introdução à Programação de 
Computadores 
 
 
 
 
Objetivos 
 Descrever a estrutura e o funcionamento de um computador 
 Conceituar algoritmo, descrevendo suas características e elementos 
 Escrever algoritmos simples em diversos formatos 
 Utilizar comandos de entrada, saída e atribuição. 
 Utilizar a estrutura sequencial para escrever algoritmos simples. 
 
Conteúdo 
 Conceitos básicos em programação 
 Pseudocódigo: conceitos básicos 
 Pseudocódigo: estruturas de controle – visão geral 
 
Unidade 01 
Introdução à Programação de 
Computadores 
 
 
 
 
Objetivos 
 Descrever a estrutura e o funcionamento de um computador 
 Conceituar algoritmo, descrevendo suas características e elementos 
 Escrever algoritmos simples em diversos formatos 
 Utilizar comandos de entrada, saída e atribuição. 
 Utilizar a estrutura sequencial para escrever algoritmos simples. 
 
Conteúdo 
 Conceitos básicos em programação 
 Pseudocódigo: conceitos básicos 
 Pseudocódigo: estruturas de controle – visão geral 
 
Unidade 01 
 
 
 
O homem, desde a pré-história, tem buscado desenvolver equipamentos que 
o auxiliem em seu trabalho, a fim de diminuir esforços e economizar tempo. Dentre 
todos os equipamentos que ele já inventou, merece destaque, pela versatilidade, 
rapidez e segurança, o computador. 
Ele é capaz de auxiliar o homem na execução das mais difíceis atividades, 
tendo por finalidade a tarefa de processar dados, que consiste na recepção, 
manipulação e armazenamento dos dados. Isto só é possivel graças à existência de 
um conjunto
de instruções que são executadas pelo equipamento. Esse conjunto de 
instruções, chamado de programa, é escrito pelo homem para finalidades 
específicas de processamento. 
Neste capítulo, aprenderemos como funciona um computador e como 
proceder para escrever conjuntos de instruções que poderão ser transformados em 
programas de computador. Inciaremos nosso estudo pelos conceitos básicos em 
computação e, em seguida, aprofundaremos os conceitos da programação de 
computadores. 
 
1.1. O que é um computador e como ele está organizado? 
 
 
 
 
 
 
 
 
 
 
 
Capítulo 01 
Conceitos Básicos em Programação 
 
Você sabe o que é um computador? Você tem noção de 
como ele está organizado? 
 
 
 
O homem, desde a pré-história, tem buscado desenvolver equipamentos que 
o auxiliem em seu trabalho, a fim de diminuir esforços e economizar tempo. Dentre 
todos os equipamentos que ele já inventou, merece destaque, pela versatilidade, 
rapidez e segurança, o computador. 
Ele é capaz de auxiliar o homem na execução das mais difíceis atividades, 
tendo por finalidade a tarefa de processar dados, que consiste na recepção, 
manipulação e armazenamento dos dados. Isto só é possivel graças à existência de 
um conjunto de instruções que são executadas pelo equipamento. Esse conjunto de 
instruções, chamado de programa, é escrito pelo homem para finalidades 
específicas de processamento. 
Neste capítulo, aprenderemos como funciona um computador e como 
proceder para escrever conjuntos de instruções que poderão ser transformados em 
programas de computador. Inciaremos nosso estudo pelos conceitos básicos em 
computação e, em seguida, aprofundaremos os conceitos da programação de 
computadores. 
 
1.1. O que é um computador e como ele está organizado? 
 
 
 
 
 
 
 
 
 
 
 
Capítulo 01 
Conceitos Básicos em Programação 
 
Você sabe o que é um computador? Você tem noção de 
como ele está organizado? 
Introdução à Programação | 10
Existem muitas definições do que venha ser computador. O primeiro 
desses conceitos nos informa que a palavra computador vem do latim computare, 
significando calcular. 
Observe estes outros conceitos: 
 
“Um computador é um dispositivo capaz de fazer cálculos e tomar decisões 
lógicas a velocidades milhões (e até bilhões) de vezes mais rápidas que os 
seres humanos” (DEITEL, 2005). 
 
“Computador é uma máquina que recebe e trabalha os dados de maneira a 
obter um resultado” (MARÇULA; BENINI, 2005). 
 
“Computador é uma máquina capaz de variados tipos de tratamento automático 
de informações ou processamento de dados” (WIKIPEDIA, 2009) 
 
 
 
Figura 1: Um Computador 
Fonte: http://www.techclube1.dominiotemporario.com/blog/?p=264 
 
Você deve ter notado que nas definições apresentadas fica claro que um 
computador realiza as tarefas para o qual foi criado (processamento de dados) por 
meio da realização de cálculos matemáticos. Entretanto, esses cálculo precisam ser 
realizados de forma organizada e ordenada. 
 
Introdução à Programação | 11
 
 
 
 
 
 
 
 
 
 
Todo computador, para cumprir sua função, é programável. Ou seja, 
trabalha executando um conjunto de comandos específicos, também chamados de 
instruções. São essas instruções que orientam o computador em sua tarefa de 
processamento de dados. Para que os resultados obtidos sejam os esperados, as 
instruções são agrupadas e ordenadas, constituindo o que chamamos de 
programas de computador. A definição de quais instruções irão compor o 
programa e a ordem em que serão executadas é determinada pelos 
programadores de computador. 
Assim, concluímos que um computador pode ser definido como uma 
“máquina que pode ser programada para receber dados, processá-los em 
informação útil e armazená-los para proteção ou reutilização” (CAPRON. JOHNSON, 
2004). 
 
 
 
 
 
 
 
 
 
 
 
 
 
Agora que você já sabe o que é um computador, vamos aprender 
como ele está organizado e como ele trabalha com os dados que 
recebe para processar. 
 
 
Você sabe como se consegue essa organização? Você 
tem noção de quais cálculos devem ser realizados e em 
que momento? 
 
Introdução à Programação | 12
Todo sistema de computação é formado por três componentes: hardware, 
software e usuário. 
 
 
Figura 2: Componentes de um Sistema de Computação 
 
O hardware representa a parte material do computador, ou seja, os 
componentes físicos do sistema. O software representa todo o conjunto de 
instruções organizadas logicamente e que são entendidas pelo computador. Em 
outras palavras, podemos dizer que o software são todos os programas que 
compõem o sistema de computação. O usuário e toda pessoa que utiliza o 
computador para algum propósito. 
Cada um desses componentes possui uma relação de interdependência com 
os demais. De nada nos serviria ter o melhor equipamento se não possuíssemos os 
programas que possibilitariam o funcionamento da máquina. Do mesmo modo, para 
nada serviriam os melhores programas sem que houvesse uma máquina capaz de 
executá-los. E mesmo que tivessemos a melhor máquina com os mais modernos 
programas, se não houvesse quem os manipulasse e deles tirasse proveito, não 
teriam nenhuma utilidade. 
A seguir, vamos aprender como o hardware de um computador está 
organizado. O entendimento desta organização é importante para que você 
compreenda como um programa é executado. 
Observe a figura: 
Introdução à Programação | 13
 
 
Figura 3: Organização de um Computador e o Ciclo de Processamento 
 
A Figura 3 mostra a organização básica de um computador associada a 
cada uma das etapas do ciclo de processamento: entrada, processamento e saída. 
Os dispositivos de entrada são responsáveis pela entrada de dados no sistema. A 
Unidade Central de Processamento (CPU) é responsável pelo processamento dos 
dados. Os dispositivos de saída realizam a apresentação dos resultados ao usuário. 
O fluxo de dados obedece ao que está representado na figura. Os dados 
quando “entram” no sistema são armazenados na memória principal, sendo enviado 
um sinal de controle para a CPU. Quando a CPU executa uma instrução que 
necessita dos dados que estão armazenados na memória principal, estes são lidos e 
armazenados temporariamente em registradores do processador. Os dados no 
registrador são então manipulados e os resultados são guardados também em 
registradores e, em seguida são escritos na memória principal. A partir da memória 
principal estes resultados são enviados para os dispositivos de saída, a fim de que o 
usuário possa ter acesso a eles. 
Consideremos a seguinte situação: realizar em meio computacional a 
seguinte operação 2 + 3. Note que temos aqui uma instrução (soma) e dois valores 
(dados externos). Inicialmente, os dados e a operação a ser realizada serão 
fornecidas ao sistema através do teclado (dispositivo de entrada), os dados seguem 
Introdução à Programação | 14
para a memória principal, onde serão armazenados. Um sinal de controle 
informando a operação a ser realizada e a localização dos dados é enviado para a 
CPU (Unidade de Controle). Em seguida, a CPU realiza a leitura dos dados e copia 
seus valores para os registradores internos. A operação é então realizada pela CPU 
(Unidade Lógica e Aritmética) e o valor 5 é armazenado em um registrador. Por fim, 
este resultado é escrito na memória principal para, na sequência, ser enviado ao 
monitor de vídeo (dispositivo de saída) de modo que possa ser visualizado pelo 
usuário. 
Perceba neste pequeno exemplo a presença dos três componentes do 
sistema:
o equipamento (dispositivos de entrada e saída, CPU, memória), as 
instruções (ler os dados do teclado, armazenar na memória, calcular a soma, 
apresentar os dados no monitor) e o usuário (que digitou os dados e visualizou os 
resultados na tela). 
Antes de prosseguir, vamos fazer uma pequena obervação sobre a memória 
principal. Quando um dado é guardado na memória, é preciso que seja possível 
localizá-lo posterioremente. Para isso, a memória é dividida em pequenas porções, 
normalmente correspondentes a um byte. Cada porção de memória possui um 
endereço, através do qual é possível ter acesso aos dados ali armazenados. 
Podemos imaginar a memória conforme a Figura 4. 
 
 
0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 
0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 
0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 
0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 
 
Figura 4: Esquema de Memória Principal 
 
 
Os endereços de cada porção de memória na Figura 
3 foram expressos em números decimais apenas 
para fins didáticos. Na prática, esses valores são 
expressos na base binária. 
Introdução à Programação | 15
Nosso objetivo nesta disciplina é escrever instruções que serão executadas 
pelo computador, a fim de que um dado problema seja resolvido. Ou seja, vamos 
nos concentrar no desenvolvimento de programas. Para exemplificar alguns 
conceitos básicos de desenvolvimento de programas, e antes de apresentar a 
formalização desses conceitos, vamos considerar a existência de um computador 
hipotético simples, proposto por Celes e Ierusalimschy (2007). Para efeito de 
simplificação, este computador hipotético trabalha na base decimal. Tenha claro 
que, na prática, os computadores trabalham com o sistema de numeração binário. 
Nosso computador é capaz de realizar um conjunto de poucas instruções 
básicas. Desse modo, um programa para ser executado neste computador, deve ser 
composto por uma sequêncial dessas instruções. A memória só armazena valores 
numéricos e cada posição é rotulada por um número inteiro não negativo. Nossa 
CPU obedece ao esquema já apresentado: possui registradores, uma unidade para 
controlar a execução das instruções e o fluxo de dados e uma unidade para realizar 
operações lógicas e aritméticas. A seguir, apresentamos o set de instruções deste 
computador hipotético. 
 
 
Tabela 1: Set de Instruções do Computador Hipotético 
Instruções Descrição 
read pos captura o valor digitado pelo usuário e armazena na memoria na posição especificada pelo valor pos. 
write pos mostra na tela do monitor o valor armazenado na memória na posição de valor pos. 
storeconst num pos armazena o valor de uma constante numérica (num) na posiçaõ de memória especificada pelo valor pos. 
add pos1 pos2 soma os valores armazenados na memória em pos1 e pos2, guardando o resultado no registrador. 
sub pos1 pos2 subtrai os valores armazenados na memória em pos1 e pos2, guardando o resultado no registrador. 
mul pos1 pos2 multiplica os valores armazenados na memória em pos1 e pos2, guardando o resultado no registrador. 
div pos1 pos2 divide o primeiro pelo segundo valores armazenados na memória em pos1 e pos2, guardando o resultado no registrador. 
store pos armazena o valor do registrador na posição de memória identificada pelo valor pos 
 
Conjunto de instruções que uma CPU 
reconhece e consegue executar. 
Introdução à Programação | 16
Com esse conjunto de instruções, é possível escrever pequenos programas 
que podem ser virtualmente executados neste nosso computador hipotético. Por 
exemplo, considere um programa que captura um valor fornecido pelo usuário e 
mostra na tela o resultado da soma desse valor com 3. Já sabemos que um 
programa é um conjunto de instruções que o computador reconhece e consegue 
executar. Assim, o código abaixo representa o programa deste exemplo para o 
nosso computador hipotético. 
 
 
 
A execução deste programa em nosso computador consiste inicialmente na 
leitura de valor a partir do teclado e armazenamento deste dado na posição de 
memória 0 (read 0). Em seguida, será guardada na posição 1 da memória o valor 
constante 3, definido pelo programa (storeconst 3 1). Na sequência, os valores 
que estão armazenados nas posições de memória 0 e 1 são lidos e copiados para o 
registrador, a Unidade Lógica e Aritmética então realiza a soma e guarda o resultado 
no registrador (add 0 1). A seguir, o resultado guardado no registrador é escrito na 
posição 2 da memória (store 2). Por fim, o valor guardado na posição 2 é 
mostrado no monitor de vídeo (write 2). Assim, no final da execução, teríamos o 
valor digitado pelo usuário armazenado na posição de memória rotulada por 0. A 
posição 1 foi utilizada para armazenar a constante 3, a fim de que a soma pudesse 
ser realizada. Na posição 2, teríamos o valor fornecido pelo usuário adicionado de 3. 
O programa apresentado pode ser escrito de outras formas, o que não 
modificaria o resultado final. Acompanhe: 
 
read 0 
storeconst 3 1 
add 0 1 
store 2 
write 2 
 
Introdução à Programação | 17
 
 
Neste caso, o resultado mostrado no monitor de vídeo é exatamente o 
mesmo. O que diferencia este programa do analisado anteriormente é o fato de 
serem utilizadas apenas duas posições de memória (0 e 1). Ao término da 
execução, teremos o valor 3 armazenado na posição 1 e o valor da soma 
armazenado na posição 0, sobrescrevendo o valor anteriormente armazenado. 
 
 
 
 
Vamos agora analisar o seguinte programa: 
 
 
 
Este programa não está correto, pois tenta exibir no monitor de vídeo um 
valor armazenado na posição 2, que não foi definido. Nesta situação seria mostrado 
um valor indefinido e desconexo do contexto do programa. A este valor atribuímos o 
nome “lixo”. 
 
 
read 0 
storeconst 3 1 
add 0 1 
store 0 
write 2 
 
É possível sobrescrever valores na memória. 
Quando isto acontece, o valor anterior é perdido, a 
menos que seja feita uma cópia e armazenada em 
outra posição. 
read 0 
storeconst 3 1 
add 0 1 
store 0 
write 0 
 
Introdução à Programação | 18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1.2. A Programação e o Conceito de Algoritmo 
 
 
Tomando por base os exemplos apresentados anteriormente, podemos 
afirmar que um programa é uma sequência de instruções a serem executadas pelo 
computador que visa atingir um objetivo (resolver um problema). Para que possam 
ser executadas pela CPU, essas instruções devem estar codificadas em linguagem 
de máquina. 
Nos primórdios da computação, os programas eram escritos diretamente em 
linguagem de máquina, o que era uma tarefa penosa, pois exigia atenção do 
programador em trabalhar diretamente em notação binária. Com o passar do tempo, 
surgiram as Linguagens de Programação de alto nível, que consistem em 
Auto Avaliação 1.1 
 
1. Explique o que é um computador, citando suas principais características. 
2. Quais são os componentes de um sistema de computação? Explique cada um. 
3. Descreva o funcionamento de um computador. 
Após ter aprendido como o computador está organizado e como os 
programas são executados, podemos iniciar o nosso estudo sobre o 
desenvolvimento de programas. Esteja atento, pois cada detalhe é de 
fundamental importância. 
 
Introdução à Programação | 19
linguagens mais fáceis de serem manipuladas pelo programador e que podem ser 
traduzidas em linguagem de máquina. 
Uma linguagem de programação, assim como toda linguagem, deve ser 
rigorosamente definida, ou seja, deve apresentar sintaxe e semântica próprias. 
Chamamos sintaxe a estrutura da linguagem, ou seja, as regras que regem a forma 
como se expressam ideias nessa linguagem.
A semântica trata do significado 
daquilo que foi expresso. Por exemplo, consideremos a seguinte frase escrita 
conforme as regras da Língua Portuguesa: 
 
A manga está madura. 
 
Para escrever uma frase normalmente seguimos a regra: primeiro vem o 
sujeito, em seguida um verbo e seu complemento. Isto é parte da sintaxe da língua 
portuguesa, pois especifica como expressar uma ideia. A semântica nos possibilita 
entender que a frase diz respeito ao estado de uma fruta (madura), pois trata do 
significado do que foi expresso. 
Com as linguagens de programação não é diferente. Cada uma tem regras 
que definem como as instruções devem ser escritas (sintaxe) e também semântica, 
que indica o significado de cada instrução. 
Atualmente, um programa de computador deve ser escrito numa linguagem 
de programação e depois traduzido para a linguagem de máquina, a fim de que seja 
executado pelo computador. O processo de traduzir um programa da linguagem de 
programação para a linguagem de máquina é chamado de compilação. Essa tarefa 
é executada por um software chamado de compilador. 
A criação de um programa não é uma tarefa simples. Exige muita paciência, 
dedicação e uma forte dose de raciocínio lógico-matemático. O Quadro 1 resume as 
etapas que devem ser seguidas para a construção de um programa. 
 
 
 
 
 
 
 
Introdução à Programação | 20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A partir da análise do Quadro 1 é imediato concluir que um programa 
constitui-se de um algoritmo escrito em uma linguagem de programação. Por isso, o 
conceito de algoritmo é fundamental para a Ciência da Computação, visto que 
desenvolver programas de computador nada mais é senão criar algoritmos que 
solucionem um dado problema. 
A literatura apresenta inúmeras definições para o termo Algoritmo das quais 
selecionamos as seguintes. Leia-as atentamente. 
 
“Algoritmo é uma sequência de passos que deve ser seguida para a 
realização de uma tarefa” (ASCENCIO; CAMPOS, 2007) 
 
“Algoritmos são regras formais para a obtenção de um resultado ou da 
solução de um problema, englobando fórmulas de expressões aritméticas” 
(MANZANO, 1997) 
 
Essas definições, apresentam de forma simples a visão geral do conceito de 
algoritmo, entendido como um conjunto sequencial de instruções que, quando 
executadas, solucionam um problema. Nesse contexto, podemos facilmente 
exemplificar o uso de algoritmos para resolver problemas da nossa vida cotidiana 
como, por exemplo, um saque num terminal de auto atendimento. 
 
Etapas para a Construção de um Programa 
 
1. Análise: esta etapa consiste na compreensão do problema e 
identificação da entrada, das operações de processamento e da 
saída. 
2. Elaboração do Algoritmo: nesta etapa, são descritos 
formalmente o problema e sua solução. 
3. Codificação: consiste na tradução do algoritmo para uma 
linguagem de programação. 
 
Quadro 1: Etapas para a Construção de um Programa (Fonte: ASCENCIO; CAMPOS, 2007) 
Introdução à Programação | 21
Imagine que você deseja sacar uma quantia de R$ 500,00 num caixa 
eletrônico. Normalmente, deve ser seguida uma sequência ordenada de passos para 
que esta tarefa seja realizada. Quais sejam: 
 
 
Figura 5: Terminal de caixa eletrônico 
 
1. Inserir o cartão; 
2. Retirar o cartão; 
3. Escolher a opção saque; 
4. Escolher o tipo de conta (corrente ou poupança); 
5. Digitar o valor (R$ 500,00); 
6. Selecionar um conjunto de três letras (uma de cada vez); 
7. Inserir o cartão; 
8. Retirar o cartão; 
9. Retirar o dinheiro. 
 
Este é um algoritmo para a operação saque num terminal de caixa 
eletrônico. Observe que é necessário executar todos os passos na ordem em que 
são definidos para que a operação seja realizada. 
Consideremos agora que desejamos comer um ovo frito. Quais são os 
passos a serem seguidos para a tarefa de transformar “um ovo cru” em “ovo frito” ? 
Acompanhe: 
 
 
ht
tp
://
w
w
w
.c
am
ac
ar
in
ot
ic
ia
s.
co
m
.b
r/u
pl
oa
d/
77
/7
81
59
29
67
.jp
g 
Introdução à Programação | 22
 
 
 
 
 
 
Fonte das Imagens: http://dietacerta.files.wordpress.com 
 
1. Pegar um ovo cru; 
2. Pegar uma frigideira e colocar sobre o fogão; 
3. Acender o fogo; 
4. Colocar gordura na frigideira; 
5. Aguardar a gordura esquentar; 
6. Quebrar o ovo e colocá-lo na frigideira; 
7. Colocar sal sobre o ovo; 
8. Aguardar o tempo de fritura; 
9. Desligar o fogo; 
10. Retirar o ovo da frigideira. 
11. Colocar o ovo em um prato. 
 
Note que para transformar o ovo cru em ovo frito foi demandado certo tempo 
e utilizados alguns utensílios. Fazendo uma analogia com o problema do 
processamento de dados, podemos imaginar que o ovo cru são os dados brutos 
(dados de entrada) e o ovo frito os dados processados (dados de saída). Os 
utensílios utilizados para realizar a transformação de ovo cru em ovo frito podem ser 
entendidos como os recursos computacionais utilizados para processar os dados. O 
ato de quebrar o ovo na frigideira representa a entrada de dados e sua retirada 
representa a saída de dados. 
Diante do exposto, apresentamos uma definição mais completa de algoritmo, 
proposta por Holloway (2007). 
 
Introdução à Programação | 23
 
 
Nesta definição é preciso destacar alguns aspectos importantes para a 
compreensão do conceito de algoritmo. 
 
1. Expressão Finita: um algoritmo é um conjunto finito de instruções. Note 
que não seria possível estabelecer, por exemplo, uma quantidade infinita 
de passos para sacar R$ 500,00 ou para fritar um ovo. 
2. Execução por Mecanismo: é obrigatória a existência de uma máquina 
que seja capaz de executar as etapas definidas no algoritmo. 
3. Execução Finita: todo algoritmo deve obrigatoriamente ser executado 
num intervalo de tempo finito. Por exemplo, não é possível estabelecer 
um passo que realize a contabilização de todos os números naturais, 
pois a execução ficaria nesta instrução infinitamente. 
 
Estas características podem ser identificadas claramente nos algoritmos 
apresentados anteriormente. Por exemplo, no algoritmo para realizar um saque de 
R$ 500,00 através de um terminal de caixa eletrônico, é simples notar que o 
algoritmo consiste num conjunto finito de passos (9 passos). Além disso, existe 
“alguém” (o usuário) para executar os passos e, uma vez iniciado o saque, ele é 
concluído após um determinado intervalo de tempo. De forma semelhante, é 
possível identificar essas características no algoritmo que determina como fritar um 
ovo. 
O quadro a seguir, resume as características de um algoritmo. 
 
“Um algoritmo é uma lista de instruções que, quando executadas, 
transformam dados de entrada até a saída. As instruções são um 
conjunto finito de etapas que podem ser executadas, numa ordem 
precisa, por um mecanismo determinista. Quando estas etapas são 
efetivamente executadas, a execução deve terminar após um 
tempo finito.” 
Introdução à Programação | 24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Características de um Algoritmo 
 
1. Ter fim. 
2. Não dar margem a dupla interpretação. 
3. Capacidade de receber dados do mundo exterior. 
4. Pode gerar informações de saída para o mundo externo ao ambiente 
do algoritmo. 
5. Ser efetivo, ou seja, após um intervalo de tempo finito, o algoritmo 
apresenta a saída esperada, de acordo com a entrada. 
 
Quadro 2: Características de um Algoritmo (Fonte: ASCENCIO; CAMPOS, 2007) 
 
 
Acabamos de aprender o que é um algoritmo e quais são as
suas 
características. Que tal conhecermos um método que estabeleça como 
proceder para, dado um problema, construir um algoritmo que 
represente sua solução?. 
 
Introdução à Programação | 25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Para melhor compreender o método apresentado, vamos considerar o 
seguinte problema: “pegar duas notas de um aluno e apresentar sua média”. 
Segundo o método, devemos inicialmente compreender o problema. Neste 
caso, o problema consiste na determinação da média aritmética de um aluno, a 
partir de suas duas notas. 
Em seguida, vamos proceder à identificação dos dados de entrada e de 
saída: neste caso é simples detectar que os dados de entrada (matéria-prima para a 
execução do algoritmo) são as duas notas do aluno e o dado de saída é a média 
dessas notas. 
 O próximo passo consiste em definir o processamento. Ou seja, de que 
forma é possível obter a saída a partir dos dados de entrada. Para o problema 
estudado, basta pegar as duas notas, somá-las e dividir o total da soma por dois. 
Uma vez que o problema foi entendido e foram destacados entrada, 
processamento e saída, é preciso escrever o algoritmo. Mas, como o algoritmo será 
representado? Para representar um algoritmo, existem diversas formas, algumas 
padronizadas e outras não. Dentre as várias técnicas de representação de 
algoritmos, escolhemos três para abordarmos em nosso curso: descrição narrativa, 
fluxograma e pseudocódigo ou linguagem algorítmica. Estas técnicas serão 
detalhadas a seguir. 
 
Método para a Construção de Algoritmos 
 
1. Ler atentamente e compreender o problema a ser solucionado. 
2. Identificar os dados de entrada. 
3. Identificar os dados de saída. 
4. Determinar o processamento, ou seja, definir como obter os dados 
de saída a partir dos dados de entrada. 
5. Escrever o algoritmo. 
6. Testar o algoritmo, simulando sua execução. 
 
Quadro 3: Método para Construção de Algoritmos 
Introdução à Programação | 26
Uma vez escrito o algoritmo, devemos testá-lo, simulando sua execução, a 
fim de verificar se os resultado apresentados são corretos ou não. Mais adiante, 
veremos detalhes de como testar nossos algoritmos. 
 
1.3. Formas de Representação de Algoritmos 
 
1.3.1. Descrição Narrativa 
 
Esta técnica para escrever algoritmos consiste na escrita do passo a passo 
em linguagem natural, conforme já o fizemos no início desta unidade quando 
determinamos os algoritmos para sacar um valor em dinheiro a partir de um terminal 
de caixa eletrônico e para fritar um ovo. 
A vantagem de utilizar esta notação para representar um algoritmo é que 
não é necessário aprender nenhum conceito novo, basta numerar cada passo e 
detalhá-lo em Língua Portuguesa. Entretanto, existem algumas desvantagens na 
adoção desta técnica, dentre as quais destacamos: a imprecisão, a pouca 
confiabilidade e a extensão. 
Por exemplo, imagine que foi solicitado a duas pessoas que fosse construído 
um algoritmo que representasse os passos para assistir a um filme a partir de um 
aparelho de DVD. As soluções apresentadas foram as seguintes: 
 
 
 
 
 
 
 
 
 
 
 
 
Note que ambas as descrições estão corretas, entretanto o nível de 
detalhamento de cada uma é diferente. Escrever um algoritmo mais enxuto pode 
1. Ligar o aparelho de DVD na tomada. 
2. Colocar o disco no aparelho de DVD. 
3. Pressionar play. 
4. Assistir ao filme. 
5. Retirar o disco do aparelho de DVD. 
6. Desligar o aparelho de DVD. 
1. Ligar o aparelho de DVD na tomada. 
2. Conectar o aparelho de DVD na TV. 
3. Abrir a bandeja para inserir o disco. 
4. Colocar o disco na bandeja. 
5. Fechar a bandeja. 
6. Pressionar play. 
7. Assistir ao filme. 
8. Abrir a bandeja. 
9. Retirar o disco da bandeja. 
10. Fechar a bandeja. 
11. Desconectar o aparelho de DVD. 
12. Desligar o aparelho de DVD. 
Introdução à Programação | 27
gerar imprecisão no momento em que ele for executado. Por outro lado, detalhar o 
passo a passo tornará o algoritmo muito extenso. 
Utilizando esta forma de representação para escrever nosso algoritmo que 
informa a média de uma aluno, temos: 
 
Algoritmo Calcula Média 
 
1. Solicite a primeira nota. 
2. Anote a primeira nota. 
3. Solicite a segunda nota. 
4. Anote a segunda nota. 
5. Some a primeira nota com a segunda e divida o resultado por 2. 
6. Anote o resultado do cálculo. 
7. Informe o resultado. 
 
 
 
 
 
 
Auto Avaliação 1.2 
 
1. Conceitue Algoritmo e dê exemplos de algoritmos que você percebe no seu dia a 
dia. 
 
2. Por que um algoritmo não pode conter um comando que represente a leitura de 
todos os números naturais? 
 
3. Escreva um algoritmo em descrição narrativa para cada um dos seguintes 
problemas: 
a) Trocar uma lâmpada no teto de sua casa. 
b) Tomar um banho. 
c) Um homem quer atravessar um rio com um barco que pode carregar ele mesmo 
e apenas mais uma de suas três cargas: um lobo, um carneiro e um maço de 
alfafa. O que o homem deve fazer para atravessar o rio sem perder nenhuma de 
suas cargas, sabendo que se estando juntos, o lobo devora o carneiro e o 
carneiro devora a alfafa? 
 
Introdução à Programação | 28
1.3.2. Fluxograma 
 
Esta técnica define um conjunto de símbolos gráficos padronizados para 
representar algoritmos. A seguir, apresentamos os principais símbolo utilizados e 
seus siginifcados. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Símbolos para Representar Algoritmos 
 
 
 
 
 
 
 
 
 
Cálculo/ Processamento 
Entrada de Dados 
Saída de Dados 
Decisão 
Início/ Fim 
Fluxo de Dados 
Quadro 4: Símbolos para Construir Fluxogramas 
 
Você tem ideia de como é a representação em fluxograma do nosso 
algoritmo que calcula a média de um aluno? 
Introdução à Programação | 29
Acompanhe: 
 
 
Início do Algoritmo 
 
 
Entrada da Primeira Nota 
 
 
 
Entrada da Segunda Nota 
 
 
 
Cálculo da Média 
 
 
 
Apresentação do Resultado 
 
 
 
Fim do Algoritmo 
 
 
A fim de melhor ilustrar o uso de fluxogramas na construção de algoritmos, 
consideremos o seguinte problema: “dadas duas notas de um aluno, calcular sua 
média e informar se o aluno foi aprovado, caso sua média seja maior ou igual a 7, ou 
reprovado, se a média for menor que 7”. 
Seguindo o método apresentado, iniciamos pela análise e compreensão do 
problema. O problema consiste em solicitar duas notas, calcular a média aritmética 
dessas notas e verificar se a média é maior que 7. Caso positivo, informar que o 
aluno foi aprovado, caso contrário, informar que o aluno foi reprovado. 
Após compreender o problema, devemos identificar entrada, saída e 
processamento. Para este problema, temos: 
Início 
Nota1 
Nota2 
 
Média = (Nota1 + Nota2)/2 
 
Média 
Fim 
Introdução à Programação | 30
 
Entrada: Nota 1 e Nota 2. 
Saída: a palavra “Aprovado” ou a palavra “Reprovado”. 
Processamento: A partir dos dados de entrada (Nota 1 e Nota 2), calcular a 
média aritmética, somando as duas notas e dividindo o resultado por 2. Em seguida, 
deve ser feito um teste condificional, que consiste em verificar se a média é maior ou 
igual a 7. Caso o resultado do teste seja verdadeiro, mostrar a palavra “Aprovado”, 
caso seja falso, mostrar a palavra “Reprovado”. 
 
Uma vez identificados esses elementos, o próximo passo consiste em 
escrever o algoritmo. Neste caso, foi construído um fluxograma. Analise-o.
Note a presença de uma decisão. 
Neste caso, existem dois caminhos 
e apenas um deverá ser seguido. A 
escolha é determinada pelo teste 
condicional. 
Início 
Nota1 
Nota2 
 
Média = (Nota1 + Nota2)/2 
 
“Aprovado” 
Fim 
Média >= 7 
 
“Reprovado” 
falso verdadeiro 
Introdução à Programação | 31
 
Finalmente, devemos proceder aos testes para verificar se o algoritmo 
apresenta resultados coerentes. Para os testes, devemos simular alguns resultados 
e executar o algoritmo passo a passo. 
Vamos considerar os seguintes cenários de testes: o primeiro consistirá na 
entrada das notas 8 e 9, respectivamente, cuja saída esperada é a palavra 
“Aprovado”, e o segundo terá como entradas as notas 4 e 6 e a saída esperada é a 
palavra “Reprovado”. 
Assim, para o primeiro cenário, temos: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Início 
Nota1 
Nota2 
 
Média = (Nota1 + Nota2)/2 
 
“Aprovado” 
Fim 
Média >= 7 
 
“Reprovado” 
falso verdadeiro 
Aqui se inicia a execução 
Nota 1 = 8 
Nota 2 = 9 
Média = (8 + 9) / 2 = 8,5 
Média >= 7  verdadeiro 
(O fluxo segue pela esquerda). 
É mostrada a Palavra “Aprovado” 
Fim da Execução 
Introdução à Programação | 32
 
Para o segundo cenário, temos: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Com base nos testes, verificamos que os resultados apresentados pelo 
algoritmo são exatamente aqueles esperados. Portanto, o algoritmo corresponde à 
solução do problema. 
 
 
 
 
Início 
Nota1 
Nota2 
 
Média = (Nota1 + Nota2)/2 
 
“Aprovado” 
Fim 
Média >= 7 
 
“Reprovado” 
falso verdadeiro 
Aqui se inicia a execução 
Nota 1 = 4 
Nota 2 = 6 
Média = (4 + 6) / 2 = 5 
Média >= 7  falso 
(O fluxo segue pela direita). 
Fim da Execução 
É mostrada a palavra 
“Reprovado” 
Introdução à Programação | 33
 
Exemplo 
 
Escrever um algoritmo em fluxograma para fornecer o resultado da divisão de 
dois números. 
 
SOLUÇÃO 
 
Entrada: os dois números a serem divididos. 
Saída: a frase “Não é possível dividir” caso o segundo número seja zero, ou a 
resultado da divisão do primeiro pelo segundo número, caso contrário. 
Processamento: verificar se o segundo número é igual a zero. Caso positivo, 
mostrar a frase. Caso contrário, calcular o quociente e mostrar o resultado. 
 
Fluxograma 
falso verdadeiro 
Início 
NUM1 
NUM2 
 
“Não é possível dividir” 
Fim 
NUM2 = 0 
 
Quociente = NUM1 / NUM2 
 
Quociente 
Introdução à Programação | 34
A grande vantagem da utilização de fluxogramas para representar algoritmos 
é sua ampla utilização, uma vez que se trata de uma das notações mais conhecidas 
mundialmente, sendo inclusive padronizada. Além disso, o entendimento do 
algoritmo é mais simples em relação à descrição narrativa. 
Como desvatagens do uso de fluxogramas merece destaque o fato de não 
oferecer recursos para descrever ou representar os dados e não mostrar alguns 
detalhes, o que torna a tarefa de codificação trabalhosa. Além disso, quanto maior a 
complexidade de problema, maior será o fluxograma, tornado mais difcíil o seu 
entendimento. 
Como forma de minimizar esses problemas foi criada uma técnica de 
representação que aproximou os algoritmos das linguagens de programação. Esta 
técnica é apresentada na seção seguinte e detalhada nos próximos capítulos. 
 
 
1.3.3. Pseudocódigo (Linguagem Algorítmica) 
 
 
Esta é a representação que mais se assemelha à forma como os programas 
são escritos, uma vez que consiste na definição de uma pseudolinguagem de 
programação para escrever um algoritmo, normalmente chamada de Portugol, 
Pseudocódigo ou Português Estruturado. 
Como toda linguagem de programação, o Portugol possui regras bem 
definidas para a escrita das instruções que representam a solução do problema e 
um significado para cada uma delas (sintaxe + semântica). Devido a isto, a tradução 
do algoritmo para qualquer linguagem de programação torna-se uma tarefa muito 
fácil, bastando ao programador apenas conhecer a linguagem que será utilizada 
para escrever o programa. 
A grande desvantagem na utilização de pseudocódigo para escrever 
algoritmos reside no fato de se ter que aprender a sintaxe e a semântica de cada 
comando. Além disso, não existe uma padronização de sintaxe. Cada grupo tem a 
liberdade de determinar a forma como as instruções serão escritas. Entretanto, 
apesar de existirem diversas pseudolinguagens, cada uma com sua sintaxe própria, 
o significado das instruções é sempre o mesmo. Portanto, um dos objetivos deste 
Introdução à Programação | 35
curso é apresentar a semântica dos comandos, pois de posse deste conhecimento, 
é possível compreender e utilizar qualquer linguagem. 
Antes de apresentar as regras de sintaxe que iremos utilizar, mostraremos 
alguns exemplos de códigos para que você perceba as diferenças entre eles. Não 
se preocupe em entender o que cada comando representa, isto é uma tarefa para os 
próximos capítulos. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A seguir, é mostrado o fluxograma que representa o algoritmo e, em 
seguida, seu correspondente em pseudocódigo (em sintaxes diferentes). Analise-o. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Voltemos para o algoritmo que calcula a média de um aluno. Você 
imagina como é sua representação em pseudocódigo?. 
 
Introdução à Programação | 36
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Observe que os três algoritmos representam a mesma solução. O que muda 
de um para o outro é apenas a forma como a solução está escrita, entretanto o 
significado de cada comando é o mesmo em cada uma das representações. 
Nos próximos capítulos, focaremos a construção de algoritmos em 
pseudocódigo, por enquanto tente resolver os exercícios a seguir utilizando a 
representação de fluxograma. 
 
 
Início 
Nota1 
Nota2 
 
Média = (Nota1 + Nota2)/2 
 
Média 
Fim 
Algoritmo CalculaMedia 
 Declare Nota1, Nota1, Media Numérico 
 Escreva “Digite a primeira nota” 
 Leia Nota1 
 Escreva “Digite a segunda nota” 
 Leia Nota2 
 Media  (Nota1 + Nota2) / 2 
 Escreva Media 
Fim_Algoritmo 
Algoritmo CalculaMedia 
 real Nota1, Nota2, Media; 
inicio 
 imprima (“Digite a primeira nota”); 
 leia (Nota1); 
 imprima (“Digite a segunda nota”); 
 leia (Nota2); 
 Media = (Nota1 + Nota2) / 2; 
 imprima (Media) 
fim 
curso é apresentar a semântica dos comandos, pois de posse deste conhecimento, 
é possível compreender e utilizar qualquer linguagem. 
Antes de apresentar as regras de sintaxe que iremos utilizar, mostraremos 
alguns exemplos de códigos para que você perceba as diferenças entre eles. Não 
se preocupe em entender o que cada comando representa, isto é uma tarefa para os 
próximos capítulos. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A seguir, é mostrado o fluxograma que representa o algoritmo e, em 
seguida, seu correspondente em pseudocódigo (em sintaxes diferentes). Analise-o. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Voltemos para o algoritmo que calcula a média de um aluno. Você 
imagina como é sua representação em pseudocódigo?. 
 
Introdução à Programação | 37
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Auto Avaliação 1.3 
 
Para cada um dos seguintes problemas, identifique
entrada, saída e processamento. Em 
seguida desenhe o fluxograma que representa a solução do problema. 
 
1. Faça um algoritmo para mostrar o resultado da multiplicação de dois números. 
 
2. Faça um algoritmo que informe se um número é positivo ou negativo. 
 
3. Faça um algoritmo para calcular o novo salário de um funcionário. Sabe-se que os 
funcionários que recebem atualmente salário de até R$ 510,00 terão aumento de 
20%; os demais terão aumento de 10%. 
 
Introdução à Programação | 38
 
 
 
No capítulo anterior aprendemos o que são algoritmos, quais são suas 
características e como escrevê-los em diferentes formatos. Além disso, conhecemos 
um método para solucionar problemas computacionalmente. 
A partir de agora, vamos nos concentrar na construção de algoritmos em 
pseudocódigo. Neste capítulo, serão descritos os principais tipos de dados e o 
conceito de variável. Além disso, serão apresentadas as estruturas de controle da 
execução de um algoritmo, sendo detalhada a estrutura sequencial e os comandos 
de entrada, saída e atribuição. A posse destes conceitos é fundamental para a 
construção de soluções algorítmicas para os mais variados problemas e para o 
entendimento das estruturas mais complexas que serão estudadas nas próximas 
unidades. 
 
2.1. Estrutura da Nossa Linguagem Algorítimica 
 
 
Já sabemos que a utilização de pseudocódigo é a maneira de representar 
um algoritmo que mais se assemelha às linguagens de programação. Sabemos 
também que, por não ser padronizada, sua utilização exige a definição de uma 
sintaxe para escrever os comandos, o que pode apresentar muitas variações. 
A Linguagem Algorítmica utilizada neste curso obedecerá a seguinte 
estrutura básica: 
 
 
 
 
 
 
 
 
Capítulo 02 
Pseudocódigo: Conceitos Básicos 
algoritmo “ <nome do Algoritmo> ” 
var 
 <Bloco de Variáveis> 
inicio 
 <Bloco de Comandos> 
fimalgoritmo 
 
 
 
No capítulo anterior aprendemos o que são algoritmos, quais são suas 
características e como escrevê-los em diferentes formatos. Além disso, conhecemos 
um método para solucionar problemas computacionalmente. 
A partir de agora, vamos nos concentrar na construção de algoritmos em 
pseudocódigo. Neste capítulo, serão descritos os principais tipos de dados e o 
conceito de variável. Além disso, serão apresentadas as estruturas de controle da 
execução de um algoritmo, sendo detalhada a estrutura sequencial e os comandos 
de entrada, saída e atribuição. A posse destes conceitos é fundamental para a 
construção de soluções algorítmicas para os mais variados problemas e para o 
entendimento das estruturas mais complexas que serão estudadas nas próximas 
unidades. 
 
2.1. Estrutura da Nossa Linguagem Algorítimica 
 
 
Já sabemos que a utilização de pseudocódigo é a maneira de representar 
um algoritmo que mais se assemelha às linguagens de programação. Sabemos 
também que, por não ser padronizada, sua utilização exige a definição de uma 
sintaxe para escrever os comandos, o que pode apresentar muitas variações. 
A Linguagem Algorítmica utilizada neste curso obedecerá a seguinte 
estrutura básica: 
 
 
 
 
 
 
 
 
Capítulo 02 
Pseudocódigo: Conceitos Básicos 
algoritmo “ <nome do Algoritmo> ” 
var 
 <Bloco de Variáveis> 
inicio 
 <Bloco de Comandos> 
fimalgoritmo 
Introdução à Programação | 40
Note que existem alguns termos que são componentes obrigatórios, 
determinados pela sintaxe da linguagem. Esses termos são os seguintes: 
algoritmo, var, inicio e fimalgoritmo. 
A palavra algoritmo é utilizada para indicar o início da construção. Ao seu 
lado, devemos escrever, entre aspas, um nome significativo para identificar o 
algoritmo. 
O termo var tem a função de iniciar um bloco conhecido como bloco de 
variáveis, que será estudado um pouco mais à frente. 
A palavra chave inicio abre um segundo bloco conhecido como bloco de 
comandos. Nele é que escreveremos os comandos que representarão a entrada, o 
processamento e a saída de dados. Este bloco e, consequentemente, o algoritmo é 
encerrado pelo termo fimalgoritmo. 
 
 
 
 
 
 
 
Agora que já conhecemos a estrutura básica da nossa pseudolinguagem, 
vamos detalhar cada um dos blocos principais. 
 
 
2.2. O Bloco de Variáveis 
 
 
Você deve estar lembrado do nosso computador hipotético apresentado no 
capítulo 01. Todos os dados que eram utilizados pelos programas que nosso 
computador executava, ficavam armazenados na memória principal. O mesmo 
ocorria com os dados resultantes do processamento. 
Já discutimos que a memória principal é dividida em pequenas porções e 
cada uma delas possui um endereço físico. Este endereço é utilizado para a 
localização dos dados. 
Essas palavras chaves, e todas as outras que fazem 
parte da sintaxe da linguagem, são chamadas de 
palavras reservadas e não podem ser utilizadas 
para nenhuma outra finalidade que não aquela 
prevista nas regras de sintaxe da linguagem. 
Introdução à Programação | 41
Quando escrevemos um algoritmo, devemos informar em que lugar da 
memória (em qual endereço) os dados utilizados e produzidos por ele deverão ser 
armazenados. Esta é a finalidade do bloco de variáveis, reservar alguns endereços 
de memória para guardar os dados necessários à execução de um algoritmo. 
Você certamente deve estar lembrado de que os endereços de memória são 
representados por números binários. Imagine como seria difícil escrever em base 
binária a localização de cada dado utilizado ou produzido por um algoritmo. Devido a 
essa dificuldade, surgiu o conceito de variável como a representação de cada um 
desses espaços de memória utilizados pelo algoritmo durante sua execução. 
 
 
 
Podemos, portanto, afirmar que “a cada variável corresponde uma posição 
de memória, cujo conteúdo pode variar ao longo do tempo durante a execução de 
um algoritmo” (FARRER et al, 1999). 
 
 
 
Toda variável possui três atributos: um nome (ou identificador), um tipo de 
dado associado a ela e o dado por ela guardado. 
 
Mesmo a variável podendo assumir diferentes 
valores, ela só pode armazenar um valor a cada 
instante. 
Uma variável é um local na memória principal, isto é, um endereço 
que armazena um conteúdo. 
(LOPES; GARCIA, 2002) 
 
Figura 6: Atributos de uma Variável 
 
O identificador da variável é uma espécie de apelido do seu endereço de 
memória, tornando mais simples sua representação. O dado corresponde ao próprio 
valor que é guardado na variável. Já o tipo de dado é utilizado para determinar o que 
pode ser guardado numa variável e o que pode ser feito com ela durante a execução 
do algoritmo. 
Neste ponto, cabe uma observação: todo o trabalho realizado por um 
computador é baseado na manipulação dos dados contidas em sua memória. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Já sabemos que a manipulação de dados corresponde ao ato do 
processamento, propriamente dito. E você lembra o que siginifica o 
termo processamento de dados? 
Introdução à Programação | 42
 
Figura 6: Atributos de uma Variável 
 
O identificador da variável é uma espécie de apelido do seu endereço de 
memória, tornando mais simples sua representação. O dado corresponde ao próprio 
valor que é guardado na variável. Já o tipo de dado é utilizado para determinar o que 
pode ser guardado numa variável e o que pode ser feito com ela durante a execução 
do algoritmo. 
Neste ponto, cabe uma observação: todo o trabalho realizado por um 
computador é baseado na manipulação dos dados contidas em sua memória. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Já sabemos
que a manipulação de dados corresponde ao ato do 
processamento, propriamente dito. E você lembra o que siginifica o 
termo processamento de dados? 
 
 
O tipo de dado define, entre outras coisas, os tipos de operações que podem 
ser feitas com ele. Por exemplo, para dados do tipo numérico é possível realizar 
operações aritméticas. Além disso, cada tipo de dado é representado de uma 
maneira diferente na memória, ocupando um espaço maior ou menor. Portanto, ao 
determinar o tipo de dado que será armazenado em uma variável, será definido 
quanto de memória deve ser reservado para guardar o dado e que operações 
poderão ser realizadas com este dado. 
A tarefa de informar ao algoritmo quais são as variáveis a serem utilizadas 
durante sua execução é chamada de declaração de variáveis e obedece à 
seguinte sintaxe: 
 
 
 
onde <identificador> é o nome da variável e <tipo da variável> define o 
tipo de dado que a variável pode armazenar. 
Os identificadores das variáveis são usados para referenciá-las dentro do 
algoritmo, devendo, portanto, ser claros e precisos, indicando explicitamente o 
significado dos dados nelas armazenados. Existem algumas normas para a 
nomeação de variáveis, conforme mostra o Quadro 5. 
 
 
O processamento de dados consiste na execução de várias 
operações sobre os dados, dentre as quais destacam-se: 
comparação, cálculo, cópia, alteração, ordenação, ... 
<identificador> : <tipo da variável> 
Introdução à Programação | 43
 
 
O tipo de dado define, entre outras coisas, os tipos de operações que podem 
ser feitas com ele. Por exemplo, para dados do tipo numérico é possível realizar 
operações aritméticas. Além disso, cada tipo de dado é representado de uma 
maneira diferente na memória, ocupando um espaço maior ou menor. Portanto, ao 
determinar o tipo de dado que será armazenado em uma variável, será definido 
quanto de memória deve ser reservado para guardar o dado e que operações 
poderão ser realizadas com este dado. 
A tarefa de informar ao algoritmo quais são as variáveis a serem utilizadas 
durante sua execução é chamada de declaração de variáveis e obedece à 
seguinte sintaxe: 
 
 
 
onde <identificador> é o nome da variável e <tipo da variável> define o 
tipo de dado que a variável pode armazenar. 
Os identificadores das variáveis são usados para referenciá-las dentro do 
algoritmo, devendo, portanto, ser claros e precisos, indicando explicitamente o 
significado dos dados nelas armazenados. Existem algumas normas para a 
nomeação de variáveis, conforme mostra o Quadro 5. 
 
 
O processamento de dados consiste na execução de várias 
operações sobre os dados, dentre as quais destacam-se: 
comparação, cálculo, cópia, alteração, ordenação, ... 
<identificador> : <tipo da variável> 
 
 
 
Você deve estar se perguntando: E como saber se uma palavra é 
reservada? Bem, é preciso conhecer a sintaxe da linguagem com a qual se está 
trabalhando para saber se uma palavra é reservada para aquela linguagem. Quanto 
à nossa linguagem, a tabela a seguir exemplifica um conjunto de palavras que você 
não deve utilizar para nomear variáveis. 
 
PALAVRAS RESERVADAS 
abs declare leia passo 
algoritmo e literal pausa 
arquivo eco log pi 
asc enquanto logico pos 
caracter entao logn procedimento 
caso escolha maiusc quad 
compr escreva mensagem raizq 
copia exp minusc rand 
cos faca nao repita 
cotan falso numerico se 
cronometro função ou sen 
debug int para senao 
 
Regras para a Formação de Identificadores 
 
1. Nunca utilizar palavras reservadas. 
2. O primeiro caractere do nome de uma variável deve, 
obrigatoriamente, ser uma letra. 
3. Os demais caracteres podem ser letras, números ou sublinhado. 
4. Nunca utilizar caracteres especiais (@, #, !, *, etc), espaço em 
braço ou acentos em nomes de variáveis. 
5. Na sintaxe da nossa pseudolinguagem, não há diferença entre 
letras maiúsculas e minúsculas (Num é igual a NUM). 
 
 
 
 
 
 
 
 
 
Quadro 5: Regras para Formação de Identificadores 
Introdução à Programação | 44
 
 
 
Você deve estar se perguntando: E como saber se uma palavra é 
reservada? Bem, é preciso conhecer a sintaxe da linguagem com a qual se está 
trabalhando para saber se uma palavra é reservada para aquela linguagem. Quanto 
à nossa linguagem, a tabela a seguir exemplifica um conjunto de palavras que você 
não deve utilizar para nomear variáveis. 
 
PALAVRAS RESERVADAS 
abs declare leia passo 
algoritmo e literal pausa 
arquivo eco log pi 
asc enquanto logico pos 
caracter entao logn procedimento 
caso escolha maiusc quad 
compr escreva mensagem raizq 
copia exp minusc rand 
cos faca nao repita 
cotan falso numerico se 
cronometro função ou sen 
debug int para senao 
 
Regras para a Formação de Identificadores 
 
1. Nunca utilizar palavras reservadas. 
2. O primeiro caractere do nome de uma variável deve, 
obrigatoriamente, ser uma letra. 
3. Os demais caracteres podem ser letras, números ou sublinhado. 
4. Nunca utilizar caracteres especiais (@, #, !, *, etc), espaço em 
braço ou acentos em nomes de variáveis. 
5. Na sintaxe da nossa pseudolinguagem, não há diferença entre 
letras maiúsculas e minúsculas (Num é igual a NUM). 
 
 
 
 
 
 
 
 
 
Quadro 5: Regras para Formação de Identificadores 
Introdução à Programação | 45
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2.2.1. Tipos de Dados 
 
Existem basicamente quatro tipos de dados, conforme detalha a tabela 
abaixo. 
 
 
 
Exemplo 
 
São identificadores válidos: 
 
NUM, NOTA1, ALTURA_MEDIA, AlturaMedia, maiorNumero 
 
São inválidos os identificadores: 
 
1Nota (não inicia com letra), Nota 1 (contém espaço), FIM (palavra reservada), 
Not@ (contém um caractere especial), Altura.Media (contém caractere especial) 
 
 
Pronto. Já aprendemos como nomear uma variável. E você sabe quais 
são os tipos de dados que uma variável pode armazenar? É isso que 
vamos aprender agora. 
 
Introdução à Programação | 46
Tabela 2: Tipos de Dados 
Tipo Descrição Exemplos 
INTEIRO Não possuem parte fracionária e podem ser positivos ou negativos. 100, 12, -56, -48 
REAL 
Possuem parte fracionária e podem ser 
positivos ou negativos. O ponto é usado como 
separador da parte decimal. 
12.5, 100, -0.456 
CARACTERE Podem conter sequências de letras, dígitos e símbolos. Representa texto entre aspas duplas. 
“Introdução à Programação”, 
“A”, “1234”, “HPU 1597” 
LÓGICO Representa valores lógicos. VERDADEIRO FALSO 
 
A escolha do tipo de dado para representar uma informação deve levar em 
consideração a adequação do tipo com a própria informação. Por exemplo, não se 
deve armazenar o nome de uma pessoa numa variável do tipo real, pois o tipo de 
dado é incompatível com o valor que se desejar representar. De forma semelhante, 
não será escolhido o tipo inteiro para representar o valor de um salário, visto que 
este valor pode ser fracionário. 
De posse do conhecimento dos tipos de dados disponíveis para uso, já 
podemos declarar variáveis para serem usadas em nossos algoritmos. Analise o 
seguinte conjunto de exemplos. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2.2.1. Tipos de Dados 
 
Existem basicamente quatro tipos de dados, conforme detalha a tabela 
abaixo. 
 
 
 
Exemplo 
 
São identificadores válidos: 
 
NUM, NOTA1, ALTURA_MEDIA, AlturaMedia, maiorNumero 
 
São inválidos os identificadores: 
 
1Nota (não inicia com letra), Nota 1 (contém espaço), FIM (palavra reservada), 
Not@ (contém um caractere especial), Altura.Media (contém
caractere especial) 
 
 
Pronto. Já aprendemos como nomear uma variável. E você sabe quais 
são os tipos de dados que uma variável pode armazenar? É isso que 
vamos aprender agora. 
 
Introdução à Programação | 47
 
 
Em resumo, podemos dizer que: 
 
 
 
“Um dos objetivos de se declarar uma variável no início do 
algoritmo é para que seja alocada uma área na memória para a 
variável. Outro objetivo é que, após a declaração, o algoritmo sabe 
os tipos de operações que cada variável pode realizar.” 
(LOPES E GARCIA, 2002). 
Exemplo 
 
Declaração de Variáveis 
 
Num: inteiro 
Aqui estamos declarando uma variável chamada Num que poderá armazenar um 
dado do tipo inteiro. Ou seja, estamos reservando um espaço na memória, 
apelidado de Num, suficiente para guardar um número inteiro. 
 
NOTA: real 
Neste caso declarando uma variável chamada NOTA que poderá armazenar um 
dado do tipo real. Ou seja, estamos reservando um espaço na memória, rotulado 
pela palavra NOTA, de tamanho suficiente para guardar um número real. 
 
NOME, EstCivil: caractere 
Aqui declaramos duas variáveis do tipo Caractere. Ou seja, alocamos dois espaços 
na memória, identificados por NOME e EstCivil, que poderão armazenar uma 
sequência de caracteres cada uma. 
 
 
 
 
Introdução à Programação | 48
 
 
 
Já sabemos o que é o bloco de variáveis e como proceder para declarar as 
variáveis necessárias à execução de um algoritmo. Agora, podemos iniciar o estudo 
do bloco de comandos para, a partir daí, escrever os primeiros algoritmos utilizando 
nossa pseudolinguagem. 
 
 
2.3. O Bloco de Comandos 
 
 
Neste bloco serão escritos todos os comandos necessários para entrada, 
processamento e saída de dados. 
 
 
 
 
Auto Avaliação 2.1 
 
1. Escreva os comandos necessários para declarar: 
a) uma variável para armazenar o nome de um país. 
b) duas variáveis para armazenar as medidas dos lados de um retângulo. 
c) uma variável que seja capaz de armazenar o número de municípios de um 
Estado. 
 
2. Explique o significado de cada um dos seguintes comandos. 
 
Var 
 Altura: real 
 Opcao, soma: inteiro 
 EstadoCivil: caracter 
 
Introdução à Programação | 49
 
 
 
 
 
 
 
 
 
 
 
 
 
 
No caso dos algoritmos computacionais, um comando é toda e qualquer 
instrução que deverá ser executada pela CPU, a fim de que dados de entrada sejam 
processados, gerando, com isso, dados de saída. 
A partir desta unidade, aprenderemos como escrever esses comandos e 
como utilizar as estruturas disponíveis para o desenvolvimento de algoritmos. 
Vamos iniciar conhecendo o comando de atribuição. Em seguida, aprenderemos 
como escrever e utilizar comandos para entrada e saída de dados. Na próxima 
seção, conheceremos as estruturas de controle de execução de um algoritmo. 
 
 
2.3.1. Comando de Atribuição 
 
 
Este comando permite que se forneça um valor a uma certa 
variável, onde a natureza deste valor tem de ser compatível com o 
tipo da variável na qual está sendo armazenado. 
(FARRER et al, 1999). 
Um comando pode ser definido como a descrição de uma ação a 
ser executada num dado momento. 
(FARRER et al, 1999). 
 
Você sabe o que é um comando? E que comandos podem ser utilizados 
para a criação de algoritmos computacionais?. 
 
Introdução à Programação | 50
 
Este comando é a principal forma de se armazenar um dado em uma 
variável. Sua sintaxe é a seguinte: 
 
 
 
onde: identificador é o nome da variável a qual está sendo atribuído o valor; 
<- é o símbolo de atribuição; 
expressão pode ser qualquer valor constante ou uma expressão 
aritmética, uma expressão lógica ou uma expressão 
literal cujo resultado é atribuído à variável. 
 
 
 
O conceito de expressão em termos computacionais está diretamente 
relacionado ao conceito de expressão matemática, onde um conjunto de variáveis e 
Exemplo 
 
Comando de Atribuição 
 
x <- 2 
 
Como se lê? 
A variável x recebe o valor 2 ou simplesmente x recebe 2 
 
O que acontece “dentro” do computador? 
Na memória principal, onde estava reservado um espaço para a variável X, essa 
variável armazenará o valor 2. 
 
Memória Principal 
identificador <- expressão 
 x 
2 
Introdução à Programação | 51
constantes numéricas relacionam-se por meio de operadores compondo uma 
fórmula que, uma vez avaliada, resulta num valor (LOPES; GARCIA, 2002). 
 
2.3.1.1. Expressões Aritméticas 
 
Uma expressão aritmética é formada por operadores aritméticos e cujos 
operandos são valores constantes ou variáveis do tipo inteiro ou do tipo real. 
A tabela a seguir lista os operadores aritméticos disponíveis para a nossa 
pseudolinguagem. Para cada operador, associa-se uma operação aritmética. 
 
Tabela 3: Operadores Aritméticos 
Operador Operação 
+ Adição 
- Subtração 
* Multiplicação 
/ Divisão 
\ Divisão Inteira 
% Resto (ou mod) 
^ Exponenciação 
 
 
As operações de adição, subtração, multiplicação e divisão são exatamente 
as mesmas que você já conhece. A novidade aqui pode ser a divisão inteira e a 
operação resto. 
A operação divisão inteira (ou simplesmente div) dá como resultado a parte 
inteira do quociente da divisão de um valor por outro. Por exemplo, se realizarmos a 
operação 11 \ 3 (lê-se 11 div 3), teremos como resultado 3, que é a parte inteira do 
resultado da divisão de 11 por 3. De forma semelhante, 15 \ 2 resulta em 7, pois é a 
parte inteira da divisão de 15 por 2, ou seja 15 dividido por 2 resulta em 7 e sobra 1. 
A operação resto ou mod fornece como resultado o resto da divisão de um 
valor por outro. Por exemplo, para a operação 11 % 3 (lê-se 11 mod 3) o resultado é 
2, pois 11 dividido por 3 dá resto 2. De modo semelhante, 15 % 2 resulta em 1. 
Introdução à Programação | 52
A operação exponenciação calcula a potência de um valor. Por exemplo, 
2 ^ 3 resulta em 8, visto que a expressão representa 2 elevado a 3. De forma 
análoga, 5 ^ 2 resulta em 25, assim como 3 ^ 4 resulta em 81. 
Na construção de algoritmos, todas as expressões aritméticas devem ser 
linearizadas, ou seja, dispostos em linha, devendo também ser feita a substituição 
dos operadores da aritmética tradicional para os da nossa pseudolinguagem. 
 
 
 
Pelo exemplo, você deve ter percebido que não são utilizados colchetes e 
chaves para estabelecer prioridades de execução das operações. No formato 
computacional, devemos utilizar para isto tantos pares de parênteses quantos forem 
necessários. 
Os parênteses indicam quais partes da expressão deverão ser executadas 
primeiro. A execução se dá sempre da esquerda para a direita, mas além dos 
parênteses, existe uma ordem de prioridade dos operadores, ilustrada na tabela a 
seguir. 
 
 
 
 
 
 
 
 
 
 
Exemplo 
 
Linearização de Expressões Aritméticas 
 
Formato Tradicional 
 
Formato Computacional (Linearizado) 
ሺሺʹȀ͵�–�ሺš�–�Ͷሻሻ�൅�›ሻ�ȗ�͸�
Tabela 4: Precedência de Operadores Aritméticos 
Prioridade Operadores 
1ª ^ \ % 
2ª * / 
3ª + - 
 
 
Além das operações básicas, podemos utilizar nas expressões aritméticas 
algumas funções comuns na matemática. 
 
Tabela 5: Funções Matemáticas 
Função Descrição 
Abs(valor) Calcula o módulo (valor absoluto) do valor entre parênteses. 
Cos(valor) Calcula o cosseno do valor entre parênteses 
Sen(valor) Calcula o seno do valor entre parênteses 
Tan(valor) Calcula a tangente do valor entre parênteses 
Exp(b, e) Calcula o valor de b elevado a e 
Log(valor) Calcula o logaritmo decimal do valor entre parênteses 
Logn(valor) Calcula o logaritmo natural do valor entre parênteses 
Pi Valor de
Pi 
Raizq(valor) Calcula a raiz quadrada do valor entre parênteses 
 
 
A ordem de prioridade de uma função em uma expressão aritmética é 
máxima. Ou seja, executa-se uma função antes de qualquer outro operador. 
 
 
Introdução à Programação | 53
Tabela 4: Precedência de Operadores Aritméticos 
Prioridade Operadores 
1ª ^ \ % 
2ª * / 
3ª + - 
 
 
Além das operações básicas, podemos utilizar nas expressões aritméticas 
algumas funções comuns na matemática. 
 
Tabela 5: Funções Matemáticas 
Função Descrição 
Abs(valor) Calcula o módulo (valor absoluto) do valor entre parênteses. 
Cos(valor) Calcula o cosseno do valor entre parênteses 
Sen(valor) Calcula o seno do valor entre parênteses 
Tan(valor) Calcula a tangente do valor entre parênteses 
Exp(b, e) Calcula o valor de b elevado a e 
Log(valor) Calcula o logaritmo decimal do valor entre parênteses 
Logn(valor) Calcula o logaritmo natural do valor entre parênteses 
Pi Valor de Pi 
Raizq(valor) Calcula a raiz quadrada do valor entre parênteses 
 
 
A ordem de prioridade de uma função em uma expressão aritmética é 
máxima. Ou seja, executa-se uma função antes de qualquer outro operador. 
 
 
 
 
 
2.3.1.2. Expressões Relacionais 
 
As expressões relacionais são aquelas em que aparecem operadores 
relacionais e cujo resultado de avaliação é sempre um valor lógico (verdadeiro ou 
falso). A tabela a seguir apresenta os operadores relacionais utilizados por nossa 
linguagem algorítmica. 
 
Tabela 6: Operadores Relacionais 
Operador Significado 
> Maior que 
< Menor que 
>= Maior ou igual a 
<= Menor ou igual a 
= Igual a 
<> Diferente de 
 
 
Exemplo 
 
Expressões Aritméticas 
 
B ^ 2 – 4 * A * C 
Neste caso, é executada a operação de exponenciação por primeiro. Em seguida, 
são realizadas as operações de multiplicação, da esquerda para a direita e, por fim, 
realizada a subtração. 
�
(-B – Raizq(X))/(2 * A) 
Neste caso, a função é executada antes de qualquer outra operação. Em seguida, 
são realizadas as operações entre parênteses e, por fim, realizada a divisão. 
Introdução à Programação | 54
 
 
 
2.3.1.2. Expressões Relacionais 
 
As expressões relacionais são aquelas em que aparecem operadores 
relacionais e cujo resultado de avaliação é sempre um valor lógico (verdadeiro ou 
falso). A tabela a seguir apresenta os operadores relacionais utilizados por nossa 
linguagem algorítmica. 
 
Tabela 6: Operadores Relacionais 
Operador Significado 
> Maior que 
< Menor que 
>= Maior ou igual a 
<= Menor ou igual a 
= Igual a 
<> Diferente de 
 
 
Exemplo 
 
Expressões Aritméticas 
 
B ^ 2 – 4 * A * C 
Neste caso, é executada a operação de exponenciação por primeiro. Em seguida, 
são realizadas as operações de multiplicação, da esquerda para a direita e, por fim, 
realizada a subtração. 
�
(-B – Raizq(X))/(2 * A) 
Neste caso, a função é executada antes de qualquer outra operação. Em seguida, 
são realizadas as operações entre parênteses e, por fim, realizada a divisão. 
 
 
 
Dos exemplos apresentados, podemos destacar que em uma expressão 
relacional, os operandos devem obrigatoriamente ser do mesmo tipo. Deste modo, 
para o conjunto de exemplos, podemos afirmar que A e B são do mesmo tipo, assim 
como X e o resultado da expressão 3 – Y também são. 
Note que é possível aparecer variáveis em expressões relacionais. Com 
isso, o resultado da expressão será determinado no momento em que o algoritmo 
estiver sendo executado, desde que já tenham sido atribuídos valores para as 
variáveis envolvidas na expressão. Assim, para o primeiro exemplo se as viaráveis A 
e B contêm, respectivamente, os valores 4 e 5, o resultado da expressão é o valor 
lógico falso. 
 
2.3.1.3. Expressões Lógicas 
 
Um expressão lógica é aquela em que aparecem operadores lógicos e cujos 
operandos são expressões relacionais, constantes lógicas e/ou variáveis do tipo 
lógico. O resultado da avaliação de uma expressão lógica é sempre um dos valores 
lógicos (verdadeiro ou falso). 
Já conhecemos, da lógica proposicional, os conectivos lógicos utilizados na 
formação de novas proposições a partir de outras já conhecidas. Sabemos também 
Exemplo 
 
Expressões Relacionais 
 
A <> B 
A diferente de B. 
�
X <= 3 – Y 
X menor ou igual a 3 menos Y. 
�
(2 * Num) > Raizq(Y) 
2 vezes Num maior que raiz quadrada de Y. 
Introdução à Programação | 55
 
 
 
Dos exemplos apresentados, podemos destacar que em uma expressão 
relacional, os operandos devem obrigatoriamente ser do mesmo tipo. Deste modo, 
para o conjunto de exemplos, podemos afirmar que A e B são do mesmo tipo, assim 
como X e o resultado da expressão 3 – Y também são. 
Note que é possível aparecer variáveis em expressões relacionais. Com 
isso, o resultado da expressão será determinado no momento em que o algoritmo 
estiver sendo executado, desde que já tenham sido atribuídos valores para as 
variáveis envolvidas na expressão. Assim, para o primeiro exemplo se as viaráveis A 
e B contêm, respectivamente, os valores 4 e 5, o resultado da expressão é o valor 
lógico falso. 
 
2.3.1.3. Expressões Lógicas 
 
Um expressão lógica é aquela em que aparecem operadores lógicos e cujos 
operandos são expressões relacionais, constantes lógicas e/ou variáveis do tipo 
lógico. O resultado da avaliação de uma expressão lógica é sempre um dos valores 
lógicos (verdadeiro ou falso). 
Já conhecemos, da lógica proposicional, os conectivos lógicos utilizados na 
formação de novas proposições a partir de outras já conhecidas. Sabemos também 
Exemplo 
 
Expressões Relacionais 
 
A <> B 
A diferente de B. 
�
X <= 3 – Y 
X menor ou igual a 3 menos Y. 
�
(2 * Num) > Raizq(Y) 
2 vezes Num maior que raiz quadrada de Y. 
que cada conectivo é tratado como um operador lógico. Na construção de 
algoritmos, utilizaremos os seguintes operadores lógicos: 
 
Tabela 7: Operadores Lógicos 
Operador Descrição 
E Resulta verdadeiro se ambos os operandos forem verdadeiros. 
OU Resulta verdadeiro se pelo menos um dos operandos for verdadeiro. 
NAO Inverte o valor lógico do operando, 
 
 
 A seguir é mostrada a tabela verdade com os resultados das aplicações 
dos operadores lógicos. 
 
Tabela 8: Tabela Verdade para Operadores Lógicos 
A B A E B A OU B NAO A NAO B 
VERDADEIRO VERDADEIRO VERDADEIRO VERDADEIRO FALSO FALSO 
VERDADEIRO FALSO FALSO VERDADEIRO FALSO VERDADEIRO 
FALSO VERDADEIRO FALSO VERDADEIRO VERDADEIRO FALSO 
FALSO FALSO FALSO FALSO VERDADEIRO VERDADEIRO 
 
 
Os operadores lógicos normalmente são utilizados para unir expressões 
relacionais, de modo a estabelcer conjuntos de condições que devem ser satisfeitas 
para que um conjunto de comandos seja executado. Por exemplo, considere a 
situação em que se deseja atribuir um aumento de 20% sobre o salário de um 
funcionário que recebe entre mil e dois mil reais. Neste caso, em vez de cairmos no 
erro de escrever a condição como 1000 < salário < 2000, devemos utilizar o 
operador lógico E, escrevendo: salario > 1000 E salario < 2000. 
Assim como os operadores aritméticos, os operadores lógicos também 
obedecem uma ordem de prioridade. 
 
Introdução à Programação | 56
que cada conectivo é tratado como um operador lógico. Na construção de 
algoritmos, utilizaremos os seguintes operadores lógicos: 
 
Tabela 7: Operadores Lógicos 
Operador Descrição 
E Resulta verdadeiro se ambos os operandos forem verdadeiros. 
OU Resulta verdadeiro se pelo menos um dos operandos for verdadeiro. 
NAO Inverte o valor lógico do operando, 
 
 
 A seguir é mostrada a tabela verdade com os resultados das aplicações 
dos operadores lógicos. 
 
Tabela 8: Tabela Verdade para

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando