Buscar

Algoritmo

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

UUNNIIVVEERRSSIIDDAADDEE FFEEDDEERRAALL DDEE MMAATTOO GGRROOSSSSOO DDOO SSUULL 
 
CCAAMMPPUUSS DDEE TTRRÊÊSS LLAAGGOOAASS 
 
LLIICCEENNCCIIAATTUURRAA EEMM MMAATTEEMMÁÁTTIICCAA 
 
 
 
 
 
 
 
 
 
IINNTTRROODDUUÇÇÃÃOO 
ÀÀ CCIIÊÊNNCCIIAA 
DDAA CCOOMMPPUUTTAAÇÇÃÃOO 
 
 
 
 
 
RROOTTEEIIRROO DDEE AAUULLAA 
 
 
 
 
 
PPrrooff ªª.. DDrrªª.. AAlleessssaannddrraa BBoonnaattoo AAllttrraann 
 
 
 
 
TTRRÊÊSS LLAAGGOOAASS,, 11
oo
 SSEEMMEESSTTRREE DDEE 22001133 
2 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 
 PPRREEFFÁÁCCIIOO 
 
 
 
 
O presente roteiro foi elaborado na intenção de auxiliar o desenvolvimento da atividade 
educacional na disciplina “Introdução à Ciência da Computação”, parte integrante da grade curricular do 
curso de “Licenciatura em Matemática” da Universidade Federal de Mato Grosso do Sul, campus de Três 
Lagoas. 
Procurou-se desenvolver um material sucinto, porém, que contenha informações básicas e 
fundamentais, contemplando todo o conteúdo programático do plano de ensino das disciplinas. 
Vale lembrar que, este material é apenas um roteiro, sugiro a todos fazer uso também do material 
que consta na bibliografia da disciplina. Os exemplos e exercícios são feitos durante a explicação do 
conteúdo, cabe ao aluno deixar seu caderno em dia. 
Para críticas, sugestões e contribuições em relação a este roteiro entrem em contato através do e-
mail: lealtran@gmail.com ou alessandra.altran@ufms.br. 
 
 
 
 
 
 
 
 
 
 
 
 
3 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 
 SSUUMMÁÁRRIIOO 
 
 
 
1 – CONCEITOS BÁSICOS 5 
INTRODUÇÃO 5 
FLUXOGRAMA 9 
PSEUDOCÓDIGO 10 
TIPOS DE DADOS 11 
OPERADORES 13 
 
2 – ESTRUTURAS DE CONTROLE 16 
ENTRADA DE DADOS 16 
SAÍDA DE DADOS 17 
EXERCÍCIOS PROPOSTOS 18 
PROCESSAMENTO 19 
ESTRUTURA SEQUENCIAL 19 
ESTRUTURA DE SELEÇÃO OU DECISÃO 19 
ESTRUTURA DE REPETIÇÃO 23 
EXERCÍCIOS PROPOSTOS 28 
 
3 – ESTRUTURAS DE DADOS HOMOGÊNEAS 32 
VETOR 32 
MATRIZ 34 
EXERCÍCIOS PROPOSTOS 37 
 
4 – SUBALGORITMO 40 
FUNCIONAMENTO DE UM SUBALGORITMO 40 
TIPOS DE SUBALGORITMOS 41 
4 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
FUNÇÃO 41 
PROCEDIMENTO 43 
VARIÁVEIS LOCAIS E VARIÁVEIS GLOBAIS 45 
PARÂMETROS 46 
PASSAGEM DE PARÂMETROS POR VALOR E POR REFERÊNCIA 47 
EXERCÍCIOS PROPOSTOS 50 
 
5 – BIBLIOGRAFIA 51 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 
 CCOONNCCEEIITTOOSS BBÁÁSSIICCOOSS 
 
 
 
INTRODUÇÃO 
De modo a encontrar uma forma estruturada de representação da resolução de um problema, 
surgem os Algoritmos. Vale lembra que, um algoritmo não é a solução do problema, pois, se assim fosse, 
cada problema teria um único algoritmo, assim, um algoritmo é um “caminho” para a solução de um 
problema. Pode-se dizer que um algoritmo é uma sequência de procedimentos finitos a serem seguidos e 
quando executados em determinado período de tempo, chegará a seu objetivo, ou seja, à resolução de um 
problema ou execução de uma tarefa. Em outras palavras, é uma sequência de passos que visam atingir 
um objetivo bem definido. Essa é uma definição geral, podendo se aplicada a qualquer circunstância que 
exija a descrição da solução. 
No dia-a-dia, as pessoas utilizam algoritmos de maneira intuitiva, sem que haja necessidade de 
planejar os passos da resolução dos problemas cotidianos. São exemplos de algoritmos: 
 
 Fazer café; 
 Trocar um pneu furado; 
 Fazer um bolo; 
 Trocar uma lâmpada queimada. 
Apesar de óbvias demais, muitas vezes 
realiza-se esse tipo de atividade inconscientemente, 
sem perceber seus pequenos detalhes. Cada uma 
dessas atividades pode ser resolvida de diversas 
maneiras, com poucos (ou muitos) detalhes que, 
certamente, dificultam (ou facilitam) a resolução. 
A seguir, será apresentado um exemplo para entender melhor esta questão, explicitando, passo a 
passo, a resolução de um problema. 
 
 
Algoritmo 
Troca de Lâmpada 1 
 
 
 
1. Pegar a escada; 
2. Posicioná-la embaixo da lâmpada; 
3. Buscar uma lâmpada nova; 
4. Subir na escada; 
5. Retirar a lâmpada velha; 
6. Colocar a lâmpada nova. 
1 
6 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
Assim, o problema da lâmpada queimada foi resolvido seguindo uma determinada sequência de 
passos. Porém, é possível incluir alguns passos intermediários para verificar o problema antecipadamente. 
Dessa forma, o algoritmo ficaria: 
 
 
 
Algoritmo 
Troca de Lâmpada 2 
 
 
 
1. Pegar a escada; 
2. Posicioná-la embaixo da lâmpada; 
3. Buscar uma lâmpada nova; 
4. Acionar o interruptor; 
5. Se a lâmpada não acender, então; 
1. Subir na escada; 
2. Retirar a lâmpada queimada; 
3. Colocar a lâmpada nova. 
 
Sendo assim, pode-se dizer que todo algoritmo é compostas por instruções finitas, e bem definidas, 
com objetivo de resolver um problema proposto. Comprovando o que foi dito anteriormente, é um 
caminho para a solução de um problema. Os caminhos que levam à solução são muitos, alguns mais 
curtos, outros mais longos, o importante, na verdade, é alcançar o objetivo. 
Todo algoritmo deve ser feito de maneira lógica e racional, visando principalmente, a sua 
eficiência e clareza. O importante é saber interpretar o problema antes de começar a construir o algoritmo, 
veja a seguir um esboço das dos principais passos para a construção de um algoritmo: 
Passos para a construção de um algoritmo 
1. Identificar o objetivo do problema mediante leitura atenta de seu enunciado. É justamente o 
enunciado de um exercício que fornece o encaminhamento necessário à resolução do problema, que 
se torna, portanto, dependente de sua completa compreensão; 
2. Retirar do enunciado todos os dados necessários para a resolução do problema, ou seja, identificar as 
“entradas de dados” que o enunciado fornece; 
3. Retirar do enunciado todos os dados que serão gerados como resultado da solução do problema, ou 
seja, identificar as “saídas de dados” que o enunciado fornece (ou seja, saída desejada); 
4. Determinar o que dever ser feito para transformar as entradas determinadas nas saídas desejadas. 
Nesta fase é que se determina a construção do algoritmo propriamente dito, pois, a partir de alguns 
requisitos especificados, deve-se determinar qual a sequência de ações é capaz de transformar um 
conjunto definido de dados nas informações de resultado; 
7 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
5. Construir o algoritmo.É nessa fase que se esquematiza todo o processo de resolução do problema, 
ou seja, constrói-se o “passo a passo”, a sequência das ações a serem executadas. 
6. Testar a solução. O teste da solução é realizado através da execução de todas as ações mediante 
análise dos resultados obtidos, é a partir daí que são detectados possíveis erros. Caso haja, basta 
corrigi-lo e realizar o teste novamente. 
Durante a formalização do algoritmo é necessário que algumas etapas fundamentais sejam 
identificadas, tais como, entrada, processamento e saída. A seguir, é apresentado um esquema simples 
para fazer essa identificação: 
 
 
 
 
 
 
 
 Nota-se que as questões acima são claras e objetivas, assim, a analogia a cada etapa torna mais 
simples a identificação das mesmas. Veja nos exemplos a seguir, como é feita a identificação de cada 
etapa: 
Exemplo 1 
Construir um algoritmo para fazer um suco de laranja. 
Entrada:  laranja; 
Processamento: 
 cortar a laranja; 
 espremer a laranja; 
Saída:  suco de laranja. 
 Note que o processo para resolver o problema de para fazer o suco de laranja foi descrito 
sucintamente, cumprindo-se assim, as etapas descritas acima. Ao ler o enunciado pôde-se notar que o 
objetivo (“O que eu quero?)” era fazer um suco de laranja, para isso foi necessário utilizar laranja (“O que 
eu preciso?”), e, para chegar ao suco, foi preciso cortar e espremer as laranjas (“Como chegar onde eu 
O que eu preciso? 
(Entrada) 
Como chegar ao que eu quero? 
(Processamento) 
O que quero? 
(Saída) 
8 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
quero?”). Porém, esse processo talvez possa ser feito de forma um pouco mais detalhada, veja a seguir, 
outra opção: 
Entrada: 
 laranja; 
 faca; 
 jarra; 
Processamento: 
 cortar a laranja; 
 espremer a laranja; 
Saída:  suco de laranja. 
 Logo, como dito anteriormente, não existe uma única maneira de resolver um problema, porém, 
todas têm que estar cumprindo as necessidades que o processo de resolução requer. 
Exemplo 2 
Construir um algoritmo para calcular a média aritmética entre quatro notas dadas. 
Entrada: 
 nota 1 
 nota 2 
 nota 3 
 nota 4 
Processamento: 
 somar as notas 
 dividir o resultado por 4 
Saída:  média 
O algoritmo de um problema tem várias formas de representação; dentre elas: pseudocódigo, 
descrição narrativa, fluxograma e diagrama de Chaplin. 
1. Pseudocódigo – utiliza uma representação de forma estruturada, através da descrição de cada 
passagem a ser executada para realização de uma tarefa. É uma representação bastante utilizada. 
2. Descrição narrativa – utiliza uma representação natural para realização das tarefas. É pouco 
utilizada, pois, apresenta ambiguidades e más interpretações. 
3. Fluxograma – é uma forma universal de representação pois, utiliza de figuras geométricas para 
ilustrar os passos a serem seguidos. Bastante utilizado; é também chamado de diagrama de blocos. 
9 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
4. Diagrama de Chaplin – também conhecido como diagrama Nassi-Shneiderman (N-S), apresenta 
solução por meio de um diagrama de quadros com uma visão hierárquica e estruturada. Esse tipo de 
diagrama é muito pouco utilizado por apresentar dificuldades em representar recursividade. 
Observação: No que segue, serão abordadas apenas as duas formas mais usuais de representação, o 
fluxograma.e o pseudocódigo. 
FLUXOGRAMA 
O fluxograma é um tipo de representação algoritmo que utiliza símbolos gráficos (figuras 
geométricas) para representar as ações ou instruções a serem seguidas. Assim, a representação simbólica 
utilizada no fluxograma (ou diagrama de blocos), está apresentada no quadro abaixo: 
 
 
Terminal 
Representa início e fim do fluxograma. 
 
 
Entrada 
Representa a entrada de dados do fluxograma. 
 
 
Saída 
Representa a saída de dados do fluxograma. 
 
 
 
Atribuição 
Representa execução de operações ou ações como cálculos e atribuição de valores. 
 
 
Decisão 
Representa uma ação lógica que resultará na escolha de uma das seqüências de 
instruções. 
 
 
Conector 
Utilizado para interligar partes do fluxograma ou desviar o fluxo para outro trecho. 
 
Direção 
Seta de orientação do fluxo, pode ser de forma vertical ou horizontal. 
 
10 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 Logo, a utilização desses símbolos de forma interligada e coerente, a fim de representar a 
resolução de um problema específico, se dá o nome de fluxograma. Como mostra o exemplo abaixo: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Os blocos que representam o início e o fim 
são representados exatamente como mostra a 
figura, agora, nos demais, a informação dentro de 
cada figura deve ser substituídas; por exemplo, 
onde está escrito <nome da variável a ser lida> 
(inclusive os sinais < >), será substituído 
exatamente pelo nome que foi dado à variável, por 
exemplo, A, X, SOMA, etc... 
A apresentação mais detalhada dessas formas 
de representação, será realizada nos próximos 
capítulos, agora será abordada apenas as 
características teóricas principais sobre os dados 
que são utilizados em um algoritmo. 
 
PSEUDOCÓDIGO 
A palavra pseudocódigo significa “código falso”; é dado esse nome devido sua proximidade com a 
representação em linguagem de programação; sua descrição formal é representada da seguinte forma: 
 
 
 
 
 
 
Todo cuidado é pouco para que o pseudocódigo represente um caminho correto para resolução do 
problema em questão. Veja algumas observações detalhando a construção de um pseudocódigo: 
 Todo algoritmo representado por pseudocódigo deverá ser, primeiramente, identificado, ou seja, o 
primeiro passo é dar um nome algoritmo. Assim, onde está escrito <nome_do_algoritmo> (inclusive 
os sinais < >), terá que ser substituído por um nome específico, relativo ao problema a ser resolvido. 
Início 
<nome da 
variável a ser 
lida> 
<execução das 
ações> 
<nome da 
variável a ser 
impressa> 
Fim 
Algoritmo <nome_do_algoritmo> 
<declaração_de_variáveis> 
Início 
<corpo_do_algoritmo> 
Fim. 
11 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 Todas as variáveis que serão utilizadas na resolução do problema devem ser previamente declaradas. 
Do mesmo modo, onde estiver está escrito <declaração_de_variáveis> (inclusive os sinais < >), terá 
que ser substituído por definições específicas sobre as variáveis, e são representados da seguinte 
forma: 
 
 
Sendo var uma palavra reservada para a sessão de declaração de variáveis; <nome das variáveis> será 
substituído pelo nome que será dada a cada variável, e, <tipo das variáveis> (inclusive os sinais < >), 
será substituídos por um dos tipos de variáveis que serão estudados logo a seguir. 
 Todos os passos para resolução do problema devem ser bem descritos, logo, onde está escrito 
<corpo_do_algoritmo> (inclusive os sinais < >), terá que ser substituído por algumas representações, 
tais como: entrada de valores para as variáveis; operações de atribuição, lógicas e aritméticas;escolhas 
e laços de repetição; exibição de resultados, entre outros. Toda essa teoria será apresentada 
posteriormente. 
Cabe ressaltar ainda, que durante a formalização de um pseudocódigo, é importante atentar a 
algumas observações relevantes, tais como: 
 Não utilizar espaço entre as letras; 
 Não iniciar nomes com algarismos (números), ou seja, não utilizar nomes do tipo 1A; 
 Não utilizar caracteres especiais, tais como, acentos (´, ~, ^), símbolos (@, #, $, %, &), etc.; 
 Não utilizar como nomes de variáveis palavras reservadas, ou seja, as palavras que por definição já 
fazem parte das estruturas do algoritmo, tais como, se, enquanto, etc.; 
 Não utilizar nomes iguais para representar variáveis diferentes; 
 Ser sucinto e utilizar nomes coerentes. 
TIPOS DE DADOS 
 Os dados são os valores a serem utilizados na resolução do problema. No decorrer da organização 
dos algoritmos, é necessário armazenar informações a serem utilizadas posteriormente, para tanto, utiliza-
se de variáveis e constantes. 
 Uma constante é um tipo de dado que não sofre nenhuma alteração no decorrer do tempo, ou seja, 
o valor é constante do início ao fim da execução do algoritmo, por exemplo: 
5, Verdadeiro, 0.3, SIM 
var 
<nome das variáveis> : <tipo das variáveis> 
12 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 Em outras palavras, são todos os números, letras ou palavras fixas, não podem ser modificados em 
nenhum momento. Por exemplo, na equação y=2x+1, o numero 1 que está sendo adicionado, será sempre 
o mesmo para qualquer valor de x. 
 Já, uma variável, como o próprio nome diz, é um tipo de dado que pode ser alterado, em algum 
momento, durante a execução do algoritmo, ou seja, o valor sofre alteração em um determinado momento, 
tais como: 
o clima, o peso de uma pessoa, as notas da escola 
 Agora, para o mesmo exemplo acima, o da equação y=2x+1, o x e o y são as variáveis, pois, 
podem assumir qualquer valor em um determinado momento. 
Assim, uma variável (ou constante) tem que ser definida segundo o conjunto de valores que ela 
receberá. Deste modo, os tipos de dados referem-se, exatamente, a esses valores, podendo ser 
classificados como variáveis (ou constantes) do tipo inteiro, real, caracter (ou literal) e lógico. 
 Variáveis do Tipo Inteiro 
 São variáveis que podem armazenar qualquer valor pertencente ao conjunto dos números inteiros 
(nulo, positivos e negativos), por exemplo: 
53, 0, -21, 1043, -256 
 Variáveis do Tipo Real 
 São variáveis que podem armazenar qualquer valor pertencente ao conjunto dos números reais 
(nulos, negativos e positivos), como segue: 
-10.5, 0., 0.0, 2.0, 15.3 
 Variáveis do Tipo Caracter (ou Literal) 
 São variáveis que podem armazenar qualquer tipo de informação composta por um conjunto de 
caracteres alfanuméricos, sendo: numéricos (0...9), alfabéticos (A...Z e a...z) e especiais (#, ?, !, @), como 
os exemplos abaixo: 
“Use caneta.”, “João”, “1.6”, “BR3” 
 
 
13 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 Variáveis do Tipo Lógico (ou Booleano) 
 São variáveis que podem armazenar apenas os valores lógicos, verdadeiro (V) ou falso (F), 
podendo ser representadas como: 
sim – não, 0 – 1 
 Toda variável, ou constante, tem que ter um nome, ou seja, tem que ser identificada. Assim, um 
identificador é uma sequência de caracteres alfabéticos e/ou numéricos que obedecem às seguintes regras: 
1. O primeiro caractere deve ser uma letra. 
2. Não utilizar espaços entre as letras. 
3. Não utilizar caracteres especiais. 
4. Os nomes das variáveis não podem ser os mesmos das palavras reservadas. 
5. Não utilizar nomes muito longos. 
6. Os nomes escolhidos devem ser explicativos do seu conteúdo. 
OPERADORES 
 Os operadores são utilizados para representar expressões de cálculo, comparação, condição e 
atribuição. Esses operadores são divididos em operadores de atribuição, aritméticos, relacionais e 
lógicos. 
 Operadores de Atribuição 
O operador de atribuição é utilizado para expressar o armazenamento de um valor em uma 
variável, ou seja, indica o que a variável vai receber em seu conteúdo num determinado momento. 
Identificador ← valor 
 Assim, o operador ← indica qual valor que o identificador está recebendo naquele exato 
momento, veja os exemplos a seguir: 
nome ← “Fulano de tal” 
Resp ← x + 1 
Valor ← 131.5 
Resposta ← Verdadeiro 
N ← 0 
14 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 Operadores Lógicos 
 Os operadores lógicos são utilizados para concatenar ou associar expressões que estabelecem uma 
relação de comparação entre valores. São utilizados três operadores básicos para a formação de novas 
proposições lógicas compostas a partir de outras proposições lógicas mais simples, que são: 
Operadores 
não ( negação) e (conjunção) ou (disjunção) 
O resultado dessas expressões é sempre um valor lógico (verdadeiro ou falso), e a ordem de 
prioridade é a mesma apresentada acima, primeiro negação, depois conjunção e, por último, disjunção. 
 Operadores Aritméticos 
Os operadores aritméticos são dados por um conjunto de símbolos que representam as operações 
básicas da matemática, veja a tabela a seguir: 
Operadores Exemplos 
+ adição 2 + 3, a + b, x + 1 
– subtração 5 – 1, c – d, y – 3 
* multiplicação 3 * 4, m * n, t * 2 
/ divisão 10 / 2, x1 / x2 
** ou ^ exponenciação x ** 2, 3 ^ 3 
SQRT raiz quadrada SQRT (4) 
MOD resto da divisão inteira 9 mod 4 (=1) 
DIV quociente da divisão inteira 9 div 4 (=2) 
 
 Os operadores aritméticos vistos na tabela acima, quando utilizados tem que obedecer a uma 
ordem de prioridade, que é a seguinte: 
1. parênteses mais internos; 
2. potenciação (**), raiz quadrada (SQRT); 
3. multiplicação (*), divisão (/), resto da divisão inteira (mod), quociente da divisão inteira (div); 
4. adição (+), subtração (–). 
15 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
Por exemplo: 
2–3*(5+2)–SQRT(4) = 2–3*7-SQRT(4) = 2–3*7–2 = 2–21–2 = –21 
 Operadores Relacionais 
 Os operadores relacionais são utilizados para estabelecer uma relação de comparação entre valores 
ou expressões. Tais valores são representados por constantes, variáveis, ou expressões aritméticas, 
utilizando, para tanto, os símbolos mostrados logo abaixo: 
Operadores Exemplos 
= igual a 3 = 3, a = b 
> maior que 5 > 2, x > y 
< menor que 1 < 10, c < d 
>= maior ou igual a 15 >= 10, x >= y 
<= menor ou igual a 2 <= 6, k <= t 
<> diferente de 7 <> 3, b <> c 
 Agora, considerando situações com operações mistas, ou seja, com a utilização de vários tipos de 
operações em uma mesma expressão, as prioridades para execução devem ser as mesmas que as adotadas 
na matemática: 
1. Efetuar operações em parênteses mais internos ( ( ) ) 
2. Efetuar exponenciação e funções (** ou ^) 
3. Efetuar multiplicação e divisão (*, /) 
4. Efetuar adição e subtração (+, -) 
5. Efetuar atribuição (←) 
6. Efetuar operações relacionais ( =, >, <, >=, <=, <>) 
7. Efetuar operações lógicas (não, e, ou) 
As expressões que utilizam os operadores aritméticos, relacionais elógicos são denominadas 
expressões aritméticas relacionais e lógicas, respectivamente. 
A seguir, são propostos alguns exercícios relacionados ao conteúdo visto até aqui. São problemas 
bastante simples. Sua resolução tem a finalidade de reforçar o conteúdo aprendido, visto que, o 
aprendizado e o desenvolvimento da lógica algorítmica, requerem bastante prática. Bom trabalho. 
16 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 
 EESSTTRRUUTTUURRAASS DDEE CCOONNTTRROOLLEE 
 
 
 
 
 Durante a criação de um algoritmo é necessário que se saiba o que se tem, e onde se quer chegar, 
para tanto, utiliza-se uma sequência lógica de ações, que devem ser bem estruturadas para que ocorra uma 
execução correta. 
 Em outras palavras, quando se constrói um algoritmo é necessário ter em mente a intenção de 
quem irá utilizá-lo. Assim, torna-se importante conhecer a sequência dos fatos, ou seja, saber o que é 
fornecido e em que isso resulta. 
 Dessa forma, segue-se a seguinte lógica: 
 
 
Logo, os dados que entram em processamento sofrem transformações resultantes do processo e 
uma saída será produzida representando a solução de um problema. 
A seguir, serão apresentados os principais conceitos relacionados à entrada e saída de dados. 
ENTRADA DE DADOS 
 A entrada de dados nada mais é que a passagem dos dados do problema para o algoritmo, que a 
utiliza para realizar o processamento. Em outras palavras, a entrada de dados é a etapa em que são 
passadas, ao algoritmo, todas as informações necessárias para que o mesmo execute ações que levem à 
solução do problema. 
 A leitura de dados é indicada do seguinte modo, sendo que, em pseudocódigo se faz necessário o 
uso da palavra leia e no fluxograma, o uso da respectiva figura geométrica: 
 Pseudocódigo Fluxograma 
 
 
 
2 
Entrada Processamento Saída 
leia ( <dados> ) dados 
17 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 Resumindo, entrada de dados nada mais é que a apresentação das informações que se têm sobre o 
problema, sendo estas utilizadas para obtenção da resposta desejada. 
SAÍDA DE DADOS 
 A saída de dados é a forma de mostrar o resultado das operações realizadas durante o 
processamento, ou seja, é a resposta do problema. 
 Assim como para a entrada, a saída também tem sua forma de representação. Em pseudocódigo, é 
necessário o uso da palavra escreva, e em fluxograma o uso da respectiva figura geométrica, como segue: 
 Pseudocódigo Fluxograma 
 
 
 
Observação: Tanto para entrada quanto saída, no fluxograma, não são utilizadas as palavras 
reservadas, leia e escreva, o próprio formato da figura indica tais fatos. 
Veja um exemplo de um algoritmo que lê o nome de uma pessoa e o escreve. 
 Pseudocódigo Fluxograma 
 
 
 
 
 
 
 
 
 
Assim, sempre que uma informação for fornecida, o algoritmo terá que obter essa informação para 
que, através dela, realize o processamento de algumas ações, chegando a um determinado objetivo. E, 
feito isso, é necessário mostrar esse resultado obtido, ou seja, escrever esse resultado. 
Na literatura, existem algumas variações nos termos utilizados para entrada e saída de dados, tais 
como, ler, imprimir, entre outros. Porém, aqui serão adotados, exclusivamente, os termos leia, para 
entrada de dados, e escreva, para saída de dados. 
escreva ( <dados> ) dados 
algoritmo entrada_saida 
var 
 nome: caracter 
inicio 
 leia ( nome ) 
 escreva ( nome ) 
fim. 
Início 
nome 
nome 
Fim 
18 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
EXERCÍCIOS PROPOSTOS 
Observação: Os problemas abaixo devem ter a solução representada em forma de pseudocódigo e 
fluxograma. 
1. Leia dois números reais e os imprima em ordem inversa, por exemplo, lidos os números, 23.3 e 
34.0, serão escritos 34.0 e 23.3. 
2. Calcule e escreva o resultado da multiplicação de dois números quaisquer. 
3. Que escreva o nome dos integrantes de um time de futebol. 
4. Calcule e escreva o resultado da potencia quadrada de um número inteiro qualquer. 
5. Leia um número inteiro e escreva seu sucessor e seu antecessor. 
6. Calcule a média aritmética de dois números quaisquer. 
7. Dados dois números inteiros, um sendo o divisor e outro o dividendo, calcule e escreva os valores 
do quociente e do resto. 
8. Dado o saldo de uma aplicação, calcule e escreva o novo saldo considerando o reajuste de 1%. 
9. Dado o valor do lado de um quadrado, calcular e escrever o perímetro, a área e a diagonal. 
10. Dado um único número inteiro, no formato DU (dezena - unidade), o escreva de modo invertido, 
UD (unidade – dezena). Por exemplo, dado o número inteiro 25, será escrito o número 52. 
11. Dado o valor do raio de um círculo, calcular e escrever seu perímetro e a área. 
12. Entre com o valor de um produto e escreva o novo valor com desconto de 9%. 
13. Calcular e escrever o valor do volume (V) de uma lata de óleo sendo: 
23,14 . .V R A
, em que R 
representa o raio e A a área da lata. 
14. Leia a temperatura em graus Centígrados (C) e escreva esta temperatura convertida em graus 
Fahrenheit (F), sendo: 
9 160
5
C
F


. 
15. Leia o valor gasto pelo consumidor de um restaurante e escreva o valor total com a gorjeta de 10%. 
 
 
19 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
PROCESSAMENTO 
 O processamento das ações lógicas é regido pelo chamado fluxo de execução do algoritmo. Assim, 
através das estruturas básicas de controle de fluxo de execução, tais como, estrutura sequencial, 
estruturas de seleção, estruturas de repetição, e da combinação delas, podem-se criar algoritmos para 
resolver problemas. Veja a seguir cada uma dessas estruturas. 
 ESTRUTURA SEQUENCIAL 
Esse tipo de estrutura é caracterizado por utilizar-se de ações imperativas, sem nenhum tipo de 
decisão. O conjunto de ações é executado na ordem em que as mesmas são escritas, de cima para baixo, 
linha por linha. 
Veja a seguir um exemplo de algoritmo utilizando a estrutura sequencial. 
 Pseudocódigo Fluxograma 
 
 
 
 
 
 
 
 
 
 
 
 
 ESTRUTURA DE SELEÇÃO OU DECISÃO 
Essa estrutura é caracterizada por representar um desvio no fluxo normal do algoritmo, conforme o 
resultado da expressão lógica; ou seja, essas estruturas são utilizadas quando existe a necessidade de 
verificar as condições para realização de uma instrução ou uma sequência de instruções. 
As estruturas de seleção podem ser classificadas em seleção simples ou seleção composta, como 
segue: 
 
 
algoritmo soma 
var 
 X, Y, S: inteiro 
inicio 
 leia ( X, Y ) 
 S ← X + Y 
 escreva ( S ) 
fim. 
Início 
X, Y 
S ← X + Y 
S 
Fim 
20 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 Seleção Simples 
A seleção simples é utilizada para verificar se uma condição dada é atendida. Se a condição for 
satisfeita, um conjunto de ações será executado; caso contrário, ou seja, se não for satisfeita, o fluxo de 
execuçãodo algoritmo seguirá até o fim do bloco de decisão. 
Essa estrutura é representada por um comando que avalia uma expressão lógica resultando num 
valor verdadeiro ou falso. A seguir, será apresentada a sintaxe da estrutura em pseudocódigo e 
fluxograma, vale lembrar que, por comodidade, apenas a estrutura é apresentada em forma de 
pseudocódigo e fluxograma, e não um algoritmo completo. Que segue as regras descritas anteriormente. 
Modelo Geral: 
 Pseudocódigo Fluxograma 
 
 
 
 
 
 
 
Exemplo usando variáveis: 
 Pseudocódigo Fluxograma 
 
 
 
 
 
 
 Seleção Composta 
A seleção composta é utilizada quando ocorre uma situação em que duas alternativas dependem da 
mesma condição, ou seja, se a condição for verdadeira, um conjunto de ações é executado e, se a condição 
for falsa, outro conjunto de ações é executado. Considere a sintaxe abaixo, lembrando que a representação 
diz respeito apenas ao trecho da estrutura e não ao algoritmo completo. 
se <condição> então 
 <conjunto de ações> 
fim se 
conjunto de 
ações 
condição 
S 
N 
se (A > B) então 
 escreva ( “A é Maior” ) 
fim se 
S 
N 
A > B “A é Maior” 
21 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
Modelo Geral: 
 Pseudocódigo Fluxograma 
 
 
 
 
 
 
 
 
Exemplo usando variáveis: 
 Pseudocódigo Fluxograma 
 
 
 
 
 
 
 
 
 Pode ocorrer também a utilização de vários testes de seleção, tanto simples, quanto composta, ao 
mesmo tempo, num mesmo algoritmo. Em outras palavras, é possível que se tenha uma sequência de 
testes de seleção, os quais serão executados ou não, de acordo com os resultados das condições, assim, 
quando as seleções estão dispostas dessa forma, diz-se que essas seleções são encadeadas. 
As seleções podem ser encadeadas de diversas formas, quando estas seguem um padrão lógico diz-
se que a seleção é encadeada homogênea, quando não seguem esse padrão lógico, a seleção é encadeada 
heterogênea. 
A seguir, será apresentada a sintaxe da estrutura de seleção encadeada. Neste caso, a segunda 
condição só será analisada caso o resultado da primeira condição for verdadeiro, pois, uma condição é 
interna à outra. Assim, a obrigatoriedade da análise das duas condições não ocorre. 
 
 
se <condição> então 
 <conjunto de ações 1> 
senão 
 <conjunto de ações 2> 
fim se 
conjunto de 
ações 1 
condição 
S N conjunto de 
ações 2 
se (A > B) então 
 escreva ( “A é Maior” ) 
senão 
 escreva ( “B é Maior” ) 
fim se 
A > B 
S N “B é Maior” “A é Maior” 
22 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 Pseudocódigo Fluxograma 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Exemplo: 
 
 
 
 
 
 
 
 
 
 
 
 
Por outro lado, existem casos em que a variável assume apenas um valor para cada estrutura, ou 
seja, uma estrutura de seleção é localizada após a outra, ocorrendo à obrigatoriedade da análise das duas 
condições, pois, uma não depende da outra. Veja então como fica: 
 
se <condição 1> então 
 se <condição 2> então 
 <conjunto de ações 1> 
 senão 
 <conjunto de ações 2> 
 fim se 
senão 
 <conjunto de ações 3> 
fim se 
conjunto de 
ações 3 
conjunto de 
ações 1 
condição 1 
N S 
condição 2 
N S 
conjunto de 
ações 2 
se (A > B) então 
 se (B > C) então 
 escreva ( “C é Menor” ) 
 senão 
 escreva ( “B é Menor” ) 
 fim se 
senão 
 escreva ( “A é Menor” ) 
fim se 
A > B 
N S 
B > C 
N S “A é Menor” 
 “C é Menor” “B é Menor” 
23 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 Pseudocódigo Fluxograma 
 
 
 
 
 
 
 
 
 
 
Exemplo: 
 
 
 
 
 
 
 
 
 
Observação: Quando isso acontece, a seleção é dita de múltipla escolha. 
 ESTRUTURA DE REPETIÇÃO 
São estruturas que permitem a repetição controlada por comandos, utilizadas quando se tem a 
necessidade de repetir certo trecho de ações por um determinado número de vezes. Esse número de 
repetições pode, ou não, ser conhecido, porém, deverá ser finito. 
A esses trechos que serão repetidos, dá-se o nome de laços repetitivos, sendo estes, divididos em 
laços contados, quando se conhece previamente o número de vezes em que as ações serão repetidas; e 
laços condicionais, quando se conhece a condição para que a repetição aconteça. 
Em alguns casos, faz-se necessário a utilização uma variável que auxilie na contagem do número 
de vezes a ser repetido, essa variável é denominada contador. O conteúdo armazenado no contador é 
alterado pelo seu próprio valor adicionado, ou subtraído, de uma constante. 
se <condição 1> então 
 <conjunto de ações 1> 
fim se 
se <condição 2> então 
 <conjunto de ações 2> 
fim se 
se (A = 1) então 
 escreva ( “Um” ) 
fim se 
se (A = 2) então 
 escreva ( “Dois” ) 
fim se 
conjunto de 
ações 1 
condição 1 
S 
N 
conjunto de 
ações 2 
condição 2 
S 
N 
S 
N 
A = 1 “Um” 
S 
N 
A = 2 “Dois” 
24 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 
nome_contador ← nome_contador + (ou -) constante 
Exemplos: 
cont ← cont + 1 
c ← c + 2 
a ← a – 1 
contador ← contador – 2 
Observação: O contador é uma variável como qualquer outra, por isso tem, obrigatoriamente, que ser 
declarada. Não se pode deixar de salientar que um contador deve ser iniciado com algum valor, já que, 
durante a contagem, ele depende do próprio valor. 
 Outra variável de apoio utilizada é o acumulador que, diferente do contador, tem seu valor 
alterado pelo próprio valor adicionado, ou subtraído, de uma variável, e não de uma constante como o 
contador. O acumulador também tem que ser iniciado, porém, com o valor nulo (zero). 
nome_acumulador ← nome_acumulador + (ou -) variável 
Exemplos: 
acum ← acum + soma 
s ← s + a 
f ← f – k 
acumulador ← acumulador + m 
Assim como as estruturas de seleção, nas estruturas de repetição também são analisadas condições; 
tais condições determinam o critério de parada para o laço repetitivo, ou seja, determinam o momento em 
que a repetição deve terminar. Sendo assim, existem formas diferentes para se organizar essas condições, 
levando à definição de três estruturas diferentes para a repetição, sendo estas: estrutura de repetição com 
teste inicial; estrutura de repetição com teste final e estrutura de repetição determinística. 
 Repetição com Teste Inicial 
 A repetição com teste inicial é utilizada quando ocorre a repetição de um mesmo trecho do 
algoritmo por diversas vezes, porém, com a necessidade da verificação da condição antes de entrar no laço 
repetitivo, isto é, a condição é testada inicialmente. 
25 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
Veja, a seguir, como ocorre a representação dessa estrutura em pseudocódigo e em fluxograma: 
 PseudocódigoFluxograma 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Observação: Note que, durante o processamento, antes de entrar no teste da condição, é necessário 
inicializar os contadores e/ou acumuladores, ou seja, é necessário dar um valor ao contador e/ou 
acumulador, que será utilizado dentro da estrutura de repetição. Veja o exemplo a seguir. 
 Pseudocódigo Fluxograma 
 
 
 
 
 
 
 
 
 
 
 
 
<iniciar variável de controle> 
enquanto <condição> faca 
 <conjunto de ações> 
 <atualizar variável de controle> 
fim enquanto 
iniciar variável de 
controle 
condição 
conjunto de ações 
atualizar variável 
de controle 
N 
S 
cont ← 1 
acum ← 0 
enquanto (cont < 10) faca 
 leia ( A ) 
 acum ← acum + A 
 cont ← cont + 1 
fim enquanto 
cont ← 1 
acum ← 0 
cont < 10 
acum←acum+A 
cont←cont+1 
 
N 
S 
A 
26 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 Conforme visto no trecho acima, o valor é testado no início, se a condição for verdadeira, o bloco 
de ações é executado até que a condição se torne falsa, conforme atualizações. Se ela for falsa desde o 
início, então as ações não serão executadas nenhuma vez. 
 Repetição com Teste Final 
A repetição com teste final é muito parecida com a anterior, também é utilizada quando ocorre a 
necessidade da repetição de um bloco de ações, porém, a condição é analisada somente no final do bloco 
de ações, permitindo assim, a repetição de uma ou mais ações até que a condição seja satisfeita, ou seja, 
permite que as ações sejam executadas antes de testar o valor da condição. 
Assim como para na repetição com teste inicial, para na repetição com teste final também se faz 
necessário a inicialização dos contadores e/ou acumuladores a serem utilizados. Assim fica: 
 Pseudocódigo Fluxograma 
 
 
 
 
 
 
 
 
 
 
 
 
 
Dessa forma, a estrutura repita tem o funcionamento contrário à estrutura enquanto, sempre 
processando as ações, pelo menos, uma vez. Se a condição for falsa as ações são repetidas até que a 
condição se torne verdadeira. Assim, é necessário ter muita cautela no seu uso, ou ainda, quando se 
reescreve um algoritmo mudando sua estrutura de repetição com teste final para repetição com teste 
inicial. 
Veja um exemplo da estrutura de repetição com teste final: 
 
<iniciar variável de controle> 
repita 
 <conjunto de ações> 
 <atualizar variável de controle> 
ate que <condição> 
iniciar variável de 
controle 
condição 
conjunto de ações 
atualizando 
variável de controle 
N 
S 
27 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 Pseudocódigo Fluxograma 
 
 
 
 
 
 
 
 
 
 
 
 
 Repetição Determinística 
 Até agora, foram vistas duas formas de organizar um laço repetitivo fazendo uso de um contador, 
porém, existe uma forma de facilitar a utilização desses contadores, isso se dá utilizando a estrutura de 
repetição determinística ou repetição com variável de controle, como é também chamada. 
 Essa estrutura é diferente já que sempre repete a execução do conjunto de ações um número de vezes 
predeterminado, pois ela não prevê uma condição e possui limites fixos, um valor inicial e um valor final. 
 Assim como mostrado abaixo: 
 
Pseudocódigo 
 
 
 
 
 
Fluxograma 
 
 
 
 
cont ← 1 
acum ← 0 
repita 
 leia ( A ) 
 acum ← acum + A 
 cont ← cont + 1 
ate que (cont = 10) 
N 
S 
cont ← 1 
acum ← 0 
cont = 10 
acum←acum+A 
cont←cont+1 
 
A 
Para <variável> de <valor_inicial> ate <valor_final> passo <incremento> faca 
 <conjunto de ações> 
Fim Para 
conjunto de 
ações 
variável = valor_inicial, valor_final, incremento 
28 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
Exemplo: 
 Pseudocódigo Fluxograma 
 
 
 
 
 
 
 
Observações: 
 O incremento significa de quanto em quanto a variável caminha dentro do intervalo preestabelecido 
(valor_inicial até valor_final). No exemplo anterior, a variável de controle i vai de 1 até 5 de 1 em 1, 
ou seja, inicialmente i vale 1, depois 2, assim por diante, até i ser igual a 5. 
 Por não haver necessidade de um contador, algumas etapas são excluídas, tais como, inicialização e 
atualização do contador, tornando essa estrutura mais compacta. 
EXERCÍCIOS PROPOSTOS 
1. Faça um algoritmo que leia um número leia um número inteiro qualquer, se ele for positivo, escreva 
seu inverso. Por exemplo, se o número lido for 1234, deverá ser escrito o número -1234. 
2. Dados três valores reais (três notas de um aluno em uma determinada disciplina), faça um algoritmo 
que calcule a média aritmética entre esses três valores, caso a média obtida seja inferior a 7.0, 
escreva “Fazer a atividade complementar!”, e recalcule a média incluindo essa nova atividade, que 
será dada por: média atual = (media anterior + nota complementar) / 2. O algoritmo tem que 
escrever a média final da disciplina, tendo ou não sido realizada a atividade complementar. 
3. Num jogo, um dado pode ser lançado ao acaso no mínimo 2 e no máximo 3 vezes, a terceira jogada 
só ocorrerá se nas duas jogadas anteriores for obtido o mesmo valor de face. Por exemplo, se na 
primeira jogada foi obtido o número 3 e na segunda o número 5, não ocorrerá a terceira jogada, pois, 
os valores de face são distintos, agora, se na primeira jogada for obtido o valor 4 e na segunda for 
obtido também o valor 4, o dado deverá ser lançado novamente. Sendo assim, faça um algoritmo 
que represente as jogadas do dado, e ainda, mostre que valor de face foi obtido em cada jogada, 
independente de quantas vezes foi lançado. 
Para i de 1 até 2 passo 1 faça 
 Leia ( Num ) 
 Soma ← Soma + Num 
fim para Soma ← Soma + Num 
i = 1, 2, 1 
Num 
29 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
4. Faça um algoritmo que leia um número inteiro e informe se esse número lido é, ou não é, divisível 
por 3. 
5. Faça um algoritmo que leia um número inteiro e informe se esse número é divisível por 2, por 5, ou 
se não é divisível por nenhum desses. 
6. Faça um algoritmo que realize o cálculo da idade de uma pessoa sendo dados, o ano de nascimento e 
o ano atual; escreva a idade dessa pessoa. Não se esqueça de verificar se o ano de nascimento é um 
ano válido, por exemplo, se o ano atual for 2012, a pessoa não poderá escolher como ano de 
nascimento 2015, 2021, 2030... 
7. A prefeitura de Andradina abriu linha de crédito para seus funcionários. O valor máximo da 
prestação não poderá ultrapassar 30% do salário bruto. Faça um algoritmo que permita entrar com o 
salário bruto e o valor da prestação e informe se o empréstimo pode ou não ser concedido. 
8. Fazer um algoritmo que, dado um valor numérico, escreva uma das seguintes mensagens: “MAIOR 
QUE 10”, “IGUAL A 10”, “MENOR QUE 10”. 
9. Dado um número inteiro com 3 casas decimais, faça um algoritmo que analise o algarismo da casa 
das centenas, caso seja par, escreva a palavra “PAR”, caso contrário, “IMPAR”. 
10. Faça um algoritmo que indiquese o número digitado está compreendido entre 20 e 90 ou não. 
11. Dados dois números, faça um algoritmo que escreva-os em ordem crescente. 
12. Dados dois números, faça um algoritmo que escreva-os em ordem decrescente. 
13. Dados três números, faça um algoritmo que escreva-os em ordem crescente. 
14. Dados três números, faça um algoritmo que escreva-os em ordem decrescente. 
15. Dados três números inteiros, fazer um algoritmo que armazene estes números em três variáveis com 
os seguintes nomes: MENOR, INTERMEDIARIO, MAIOR, suponha que os três números sejam 
diferentes. 
16. Fazer um algoritmo que leia três números e escreva se estes podem ser, ou não, os lados de um 
triângulo. 
17. Fazer um algoritmo que leia três valores inteiros (variáveis A, B e C) e efetue o cálculo da equação 
do segundo grau, apresentando: duas raízes, se para os valores informados for possível fazer o 
cálculo (delta positivo ou zero); a mensagem “Não há raízes reais”, se não for possível fazer o 
cálculo (delta negativo); e a mensagem “Não é equação do segundo grau”, se o valor for igual a 
zero. 
30 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
18. Fazer um algoritmo que leia o percurso em quilômetros, o tipo do carro e informe o consumo 
estimado de combustível, sabendo-se que o carro tipo A faz 12 Km com um litro de gasolina, o tipo 
B faz 9 Km e o tipo C faz 8 Km por litro. 
19. Fazer um algoritmo que leia o destino do passageiro, se a viagem inclui retorno (ida e volta) e 
informar o preço da passagem conforme a tabela: 
DESTINO IDA IDA E VOLTA 
Região Norte R$ 500,00 R$ 900,00 
Região Nordeste R$ 350,00 R$ 650,00 
Região Centro-Oeste R$ 350,00 R$ 600,00 
Região Sul R$ 350,00 R$ 550,00 
 
20. Fazer um algoritmo que ajude um comerciante no cálculo do valor da venda, tendo em vista a tabela 
a seguir: 
VALOR DA COMPRA VALOR DA VENDA 
valor < R$ 10,00 lucro de 70% 
R$ 10,00 ≤ valor < R$ 30,00 lucro de 50% 
R$ 30,00 ≤ valor < R$ 50,00 lucro de 40% 
valor ≥ R$ 50,00 lucro de 30% 
São dados de entrada o nome do produto e o valor de compra, e dados de saída o nome do produto e 
o valor de venda. 
21. A polícia rodoviária resolveu fazer cumprir a lei e cobrar dos motoristas pela renovação do 
emplacamento do carro. Sabendo-se que o mês do emplacamento é determinado pelo último número 
da placa do mesmo, criar um algoritmo que, a partir da leitura da placa do carro, informe o mês em 
que o emplacamento deverá ser renovado. 
22. Fazer um algoritmo que ao ter como entrada o valor de x e escreva o valor de f (x) dado por: 
8
( )
2
f x
x


 
23. Faça um algoritmo que leia um número x e escreva o valor de y, sendo: 
2
3
1 1
2 1 2
2 3
3
se x
se x
y
x se x
x se x


 
 
 
 
 
31 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
24. Leia uma quantidade qualquer de números reais e termine a leitura quando for apresentado um 
número negativo, ao final escreva quantos números positivos foram lidos. 
25. Entre com vários números positivos e escreva a média dos números digitados. 
26. Leia vários números e informe quantos números, entre 100 e 200, foram digitados. Quando o valor 
zero for lido, o algoritmo deverá cessar sua execução. 
27. Entre com vários números e escreva o quadrado de cada número até que entre um número menor 
que 1 ou maior que 20. 
28. Leia uma quantidade qualquer de números inteiros e escreva a quantidade de números primos dentre 
os que foram digitados. O critério de parada da leitura é quando for lido um número menor ou igual 
a zero. 
29. Fazer um algoritmo que, dado um número N, calcule e escreva: S = 1 * 2 * ... * N. O algoritmo 
deverá considerar N um número inteiro positivo maior que zero. Testar o algoritmo para N = 3. 
30. Dada uma sequência de números inteiros positivos e/ou negativos, contar quantos são números 
negativos, e quantos são números positivos. Após o último número da sequência aparece o zero. 
31. Dada uma sequência de números inteiros positivos não nulos, determinar qual o maior número da 
sequência. Após o último número da sequência aparece o zero. 
32. Dada uma sequência de números inteiros positivos não nulos, determinar qual o menor número da 
sequência. Após o último número da sequência aparece o zero. 
33. Dada uma sequência arbitrária de números inteiros positivos não nulos, terminada com um número 
zero, calcular a média aritmética entre o maior e o menor números desta sequência. 
34. Dada uma sequência arbitrária de números inteiros positivos não nulos, terminada com um número 
zero, determinar a posição do maior número nesta sequência. 
35. Dada uma sequência arbitrária de números inteiros positivos não nulos, terminada com um número 
zero, determinar a posição do menor número nesta sequência. 
36. Fazer um algoritmo que lê as idades de um grupo de pessoas e informa quantas pessoas desse grupo, 
têm idades acima de 20 anos. O número de pessoas do grupo é arbitrário e a indicação de final das 
idades é dada quando lê-se uma idade nula. 
 
 
 
32 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 
 EESSTTRRUUTTUURRAASS DDEE DDAADDOOSS HHOOMMOOGGÊÊNNEEAASS 
 
 
 
 
 Quando se trabalha com uma quantidade maior de valores é preciso encontrar a melhor forma de 
representá-los, essa representação pode ser feita agrupando esses valores em conjuntos. Neste caso, 
utilizam-se estruturas de dados especiais, denominadas variáveis indexadas. 
 As variáveis indexadas nada mais são que um conjunto de variáveis com o mesmo nome e o 
mesmo tipo de dados, diferenciadas apenas por índices. Assim, a utilização desses índices leva a duas 
definições diferentes. Quando se utiliza apenas um índice essa estrutura é chamada de vetor e, quando se 
utiliza mais de um índice, é chamada de matriz. 
O índice é um valor numérico inteiro e positivo que corresponde à posição a ser ocupada em um 
vetor ou matriz, elemento é o conteúdo que ocupa uma dessas posições e, dimensão corresponde à 
quantidade de índices necessários para localização de um elemento dentro da variável indexada. 
 A seguir, serão apresentados os principais conceitos relacionados a vetores, a teoria de matrizes 
não é prevista para essa disciplina. 
VETOR 
 O vetor é uma variável indexada que tem apenas uma dimensão, também denominado como matriz 
unidimensional. Assim, um vetor é uma coleção de variáveis de um mesmo tipo que compartilham o 
mesmo nome. 
A representação abaixo é realizada apenas para levar o leitor a ter uma noção de como é um vetor; 
na teoria, propriamente dita, essa representação não existe, a formalização teórica é dada no que segue. 
1 2 3 4 5 6 7 
 índices 
 nomes 
 posições 
 Para que um vetor seja utilizado é preciso, primeiramente, definir em detalhes como é constituído 
seu tipo, definindo assim, o tipo individual de cada elemento do vetor; e seu tamanho, que determina 
quantos valores o vetor poderá armazenar, ou seja, o tamanho na verdade indica a quantidade máxima de 
3 
33 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
valores que poderão ser armazenados no vetor, isso não significaque todas essas posições terão que ser, 
obrigatoriamente, preenchidas. 
 Veja abaixo como fica a declaração de uma variável indexada (vetor) em um algoritmo: 
 
 
 
 Pode-se notar que a declaração é muito parecida com aquela que foi vista anteriormente, porém, 
para uma variável indexada é necessário apontar o tamanho que a variável tem, sendo este, representado 
sempre, por um valor numérico colocado entre parênteses, após o nome da variável. Além disso, como 
essa variável está associada a um índice, este também tem a necessidade de ser declarado. 
Exemplo: 
 
 
 Este exemplo mostra que foram declarados dois vetores, o vetor A do tipo real e tamanho 50, ou 
seja, o vetor A pode armazenar até 50 elementos, sendo estes, do tipo real; e o vetor V do tipo real e 
tamanho 100; e ainda, uma variável i, do tipo inteiro, que será utilizada como índice desses vetores. 
 A partir de agora, será possível entender como o índice é utilizado na teoria das variáveis 
indexadas. As operações de atribuição, leitura e impressão dos valores para o vetor, são todas controladas 
pelo índice. Dessa forma, pode-se atribuir, ler e imprimir os valores de um elemento fazendo referência a 
seu índice. Assim, fica: 
 
 
 
 
Logo, a representação nas operações de atribuição, leitura e impressão, citadas acima, é realizada 
apenas colocando o nome da variável seguido do índice entre parênteses. Veja o exemplo a seguir: 
 
 
 
 
 Neste exemplo, foi atribuído o número 5 à posição 1 do vetor A, foi lida o número que irá ocupar a 
posição 3 do vetor B e foi impresso o número que ocupa a posição 2 do vetor C. 
tipo_da_variavel: nome_da_variavel (tamanho) 
tipo_da_variavel: indice 
real: A(50), V(100) 
inteiro: i 
nome_da_variavel (indice) valor 
leia ( nome_da_variavel (índice) ) 
escreva ( nome_da_variavel (índice) ) 
A(1) 5 
leia ( B(3) ) 
escreva ( C(2) ) 
 
34 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
Um atrativo na utilização de vetores é o fato de sua indexação permitir o acesso a qualquer 
elemento, em qualquer instante e em qualquer ordem. Para tanto, faz-se o uso de uma estrutura de 
repetição (determinística) que torna possível o acesso a todos os elementos armazenados no vetor, como 
mostra algoritmo a seguir. 
 
 
O exemplo ao lado, calcula a soma de todos os números 
entre 1 e 5, representados por um vetor V, ou seja, a 
primeira posição do vetor é preenchida com o número 1, 
a segunda com o número 2, assim por diante, e ao final 
o resultado da soma desses números é apresentado. 
Como os vetores permitem manipulação de seus 
elementos de forma independente, é possível realizar 
operações com seus elementos. 
 
 
 
MATRIZ 
 Uma matriz é uma variável indexada que tem duas (ou mais) dimensões, sendo assim, necessitam 
de dois (ou mais) índices para indicar seus elementos. 
 Assim com feito para vetor, a representação abaixo, é realizada apenas para levar o leitor a ter uma 
noção de como é uma matriz. Novamente, na teoria essa representação não existe, a formalização teórica é 
vista mais adiante. 
 1 2 3 índices 
 1 
 2 posições 
 3 
 
nomes 
índices 
Para que uma matriz seja utilizada é necessário, assim como para um vetor, definir em detalhes de 
como é constituído seu tipo, definindo assim o tipo individual de cada elemento da matriz, e seu tamanho, 
algoritmo VETOR 
inteiro: V(5), soma, i 
inicio 
 soma  0 
 para i de 1 ate 5 passo 1 faca 
 V(i)  i 
 soma  soma + V(i) 
 fimpara 
 escreva ( soma ) 
fim. 
35 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
que determina quantos valores a matriz poderá armazenar; porém, pode-se dizer que esses elementos serão 
dispostos em linhas e colunas, assim, sua localização terá que ser representada utilizando dois índices, que 
também devem ser declarados. 
 Veja abaixo como fica a declaração de uma matriz: 
 
 
 
 Neste caso a única diferença da matriz para o vetor é que a representação do tamanho agora é feita 
por dois valores e não apenas por um, como era feito para vetor. Veja como fica: 
 
 
 
 No exemplo acima, foram declaradas duas matrizes, sendo M uma matriz real, composta por 10 
linhas e 10 colunas, ou seja, M pode armazenar até 100 elementos do tipo real, e uma matriz N real, 
composta por 5 linhas e 5 colunas, logo, N é uma matriz que tem a capacidade de armazenar 25 elementos 
do tipo inteiro. E ainda, pôde-se notar que os dois índices também foram declarados. 
 As operações de atribuição, leitura e impressão, agora são controladas pelos dois índices, assim, 
pode-se atribuir um valor a um elemento e obter orientação através dos seus índices, possibilitando 
também a leitura e impressão. Veja com fica: 
 
 
 
 
 Do mesmo modo como feito para um vetor, para uma matriz, a representação nas operações de 
atribuição, leitura e impressão, citadas acima, são realizadas apenas colocando o nome da variável seguido 
dos índices, colocados entre parênteses e separados por vírgula. Veja o exemplo a seguir: 
 
 
 
 
tipo_da_variável: nome_da_variavel (valor_inicial, valor_final) 
tipo_da_variável: indice1, indice2 
real: M(10,10), N(5,5) 
inteiro: i, j 
nome_da_variavel (indice1, indice2) valor 
leia ( nome_da_variavel (indice1, indice2) ) 
escreva ( nome_da_variavel (indice1, indice2) ) 
 
M(2,1) 4 
leia ( T(3,1) ) 
escreva ( N(1,2) ) 
 
36 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
No exemplo acima, foi feita um atribuição o valor (número) 4 à posição 2,1 (linha 2 e coluna 1) da matriz 
M; foi lido um número que ocupará a posição 3, 1 (linha 3 e coluna 1) da matriz T e, foi impresso o valor 
que ocupava a posição 1, 2 (linha 1 e coluna 2) da matriz N. 
Analogamente ao vetor, a matriz também faz uso de repetições para que as posições sejam 
percorridas. Como é mostrado no algoritmo abaixo. 
 
 
 
No exemplo ao lado, são lidos (preenchidos) os 
elementos de uma matriz real M, de duas linhas e 
quatro colunas (dimensão 2x4). Após a leitura é 
realizada a soma, elemento a elemento; e, ao final 
o resultado dessa soma é apresentado. Portanto, 
foi possível observar que as características que se 
aplicam ao vetor, também se aplicam às matrizes. 
 
 
 
 
Observações importantes 
 Formas análogas de declaração de vetor e matriz: 
 
 
 
 
 A inclusão de um elemento em determinada posição implica substituição de um valor já existente 
nessa posição. Em outras palavras, cada posição do vetor ou matriz, tem a capacidade de armazenar 
apenas um único valor. Esses fatores permitem que sejam realizadas tanto ordenação quanto busca. 
 Nas operações com matrizes é possível fixar linha e percorrer coluna, ou fixar coluna e percorrer 
linhas, isso depende da ordem em que à repetição com o respectivo índice é colocada. 
algoritmo MATRIZ 
real: M( 2 , 4 ), soma 
inteiro: i, j 
inicio 
 soma  0 
 para i de 1 até 2 passo 1 faça 
 para j de 1 até 4 passo 1 faça 
 leia ( M( i , j ) ) 
 soma  soma + M( i , j ) 
 fimpara 
 fimpara 
 escreva ( Soma ) 
fim. 
real: V(100), M(50,50)ou 
real: V(1:100), M(1:50, 1:50) 
37 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
EXERCÍCIOS PROPOSTOS 
1. Para cada um dos itens abaixo faça um algoritmo que: 
a) Armazene números em dois vetores de cinco elementos cada, calcule e escreva o vetor resultante da 
soma desses dois vetores. 
b) Armazene 15 números em um vetor V e escreva uma listagem numerada contendo o número e uma 
das mensagens: par ou ímpar. 
c) Dados um vetor A composto por números inteiros, gerar e escrever um vetor B, em que, cada 
elemento é o quadrado do elemento, da respectiva posição do vetor A. 
d) Dados dois vetores de números inteiros, calcule e escreva o vetor resultante da soma desses vetores. 
e) Dados dois vetores de números inteiros, calcule e escreva vetor resultante da diferença entre esses 
dois vetores. 
f) Dado um vetor composto por N valores inteiros, calcule e escreva o resultado da soma desses N 
valores. 
2. Fazer um algoritmo que leia uma sequência arbitrária de N valores, e escreva apenas os números 
pares desta sequência, caso haja. 
3. Dados 10 valores inteiros, faça um algoritmo que realize a escrita desses números organizados de 
forma crescente. 
4. Fazer um algoritmo que, dado um conjunto arbitrário de 20 números reais, informe calcule a média 
aritmética entre os 20 valores lidos. 
5. Fazer um algoritmo que, dados um vetor composto por N números quaisquer, escreva apenas os 
valores que estiverem nas posições pares do vetor. 
6. Dado um vetor V, composto por 10 valores inteiros, escreva os vetores P e I, sendo P um vetor 
compostos pelos elementos pares de V, e I o vetor composto pelos elementos ímpares de V. 
7. Dado um vetor A de 5 posições, escrever um vetor B composto apenas pelos elementos de A que não 
estão repetidos. 
8. Fazer um algoritmo que leia dois conjuntos de números inteiros, um tendo 10 elementos e outro 20 
elementos, escrever os elementos comuns aos dois conjuntos. 
9. Faça um algoritmo que leia dois vetores A e B, contendo, cada um, 25 elementos inteiros. Intercale 
esses dois conjuntos (A[1]/B[1]/A[2]/B[2]/...), formando um vetor V de 50 elementos e o escreva. 
10. Fazer um algoritmo que faça a leitura de vários números inteiros e escreva quantos números dentre os 
lidos são iguais ao último (anterior ao zero). O limite de números é 100. 
11. Faça um algoritmo que leia um vetor VET1 do tipo inteiro, com 20 posições, onde pode haver valores 
repetidos. A partir de VET1, gere um vetor VET2 contendo somente os elementos de VET1 retirando 
as repetições, ou seja, quando houver valor repetido em VET1, ele aparecerá apenas uma vez em 
VET2. 
38 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
12. Fazer um algoritmo que leia um vetor VC, de tamanho qualquer, escreva o vetor, ordene este vetor de 
modo crescente, e escreva o vetor VC após a ordenação. 
13. Fazer um algoritmo que leia um vetor VD, de tamanho qualquer, escreva o vetor, ordene este vetor de 
modo decrescente, e escreva o vetor VD após a ordenação. 
14. Faça um algoritmo que leia um vetor VET1, de tamanho qualquer, escreva o vetor VET1, gere o vetor 
PAR, apenas com os elementos pares de VET1, escreva o vetor PAR, gere o vetor CRES, com os 
elementos de PAR ordenados de forma crescente, escreva CRES. 
15. Faça um algoritmo que leia um vetor VET2, de tamanho qualquer, escreva o vetor VET2, gere o vetor 
IMPAR, apenas com os elementos ímpares de VET2, escreva o vetor IMPAR, gere o vetor DEC, com 
os elementos de IMPAR ordenados de forma decrescente, escreva DEC. 
16. Faça um algoritmo que, dada uma matriz Anxn, escreva: 
a) Os elementos da diagonal principal; 
b) Os elementos da diagonal secundária; 
c) Os elementos que estão acima da diagonal principal; 
d) Os elementos que estão abaixo da diagonal principal; 
e) Os elementos que estão acima da diagonal secundária; 
f) Os elementos que estão abaixo da diagonal secundária. 
g) Os elementos que ocupam as posições em que seus índices, quando somados, resultam num 
número par. 
h) Os elementos que ocupam as posições em que seus índices, quando somados, resultam num 
número ímpar. 
17. Dada uma matriz M, de ordem qualquer, composta por elementos do tipo inteiro, faça um algoritmo 
que, escreva a matriz lida, escolha duas linhas quaisquer (LA e LB) da matriz M e realize a troca entre 
elas (trocar LA com LB), e escreva e mesma matriz M, após a realização das trocas das linhas LA e 
LB. 
18. Dada uma matriz R, de ordem qualquer, composta por elementos do tipo inteiro, faça um algoritmo 
que, escreva a matriz lida, escolha duas colunas quaisquer (CA e CB) da matriz R e realize a troca 
entre elas (trocar CA com CB), e escreva e mesma matriz R; após a realização das trocas das colunas 
CA e CB. 
19. Dadas duas matrizes A e B, quaisquer; calcule e imprima o resultado da multiplicação dessas duas 
matrizes (atentar às regras da multiplicação usual de matrizes). 
20. Dizemos que uma matriz quadrada inteira é um “quadrado mágico” se a soma dos elementos de cada 
linha, a soma dos elementos de cada coluna e a soma dos elementos das diagonais principal e 
secundária são todas iguais. A matriz abaixo é um exemplo de quadrado mágico: 
39 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
8 0 7
4 5 6
3 10 2
 
 
 
 
 
 
Sendo assim, faça um algoritmo que, dada uma matriz quadrada Anxn, verifica se A é um quadrado 
mágico. 
21. Faça um algoritmo que, leia uma matriz C, de ordem qualquer, e verifique se ela é ou não uma matriz 
identidade. A matriz abaixo é um exemplo de matriz identidade de ordem 3: 
1 0 0
0 1 0
0 0 1
 
 
 
 
 
 
22. Pode-se gerar uma matriz triangular inferior de ordem N, a partir de um dado valor inteiro X, com o 
seguinte esquema: 
 O primeiro elemento de cada linha e os elementos da diagonal principal é igual a X; 
 Cada elemento abaixo da diagonal principal (excluindo o primeiro da linha e o da própria diagonal) é 
calculado somando dois elementos da linha anterior: o imediatamente acima e o que está à esquerda 
deste; 
 Todos os elementos acima da diagonal são nulos. 
Veja o exemplo para N = 6 e X = 2: 
2 0 0 0 0 0
2 2 0 0 0 0
2 4 2 0 0 0
2 6 6 2 0 0
2 8 12 8 2 0
2 10 20 20 10 2
 
 
 Deste modo, faça um único algoritmo que, dados os valores de N e X (N indica a ordem da matriz 
triangular a ser gerada e X o valor a ser utilizado para gerar a matriz): 
a) Calcula os elementos da matriz a matriz A, que é a matriz triangular de ordem N, gerada da 
forma descrita acima. 
b) Escreva a matriz A gerada, da seguinte forma (ou seja, sem os zeros): 
Elementos não nulos da linha 1: 2 
Elementos não nulos da linha 2: 2 2 
Elementos não nulos da linha 3: 2 4 2 
Elementos não nulos da linha 4: 2 6 6 2 
Elementos não nulos da linha 5: 2 8 12 8 2 
Elementos não nulos da linha 6: 2 10 20 20 10 2 
 
 
10 = 2 + 8 
40 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 
 SSUUBBAALLGGOORRIITTMMOOSS 
 
 
 
 
Problemas complexos exigem algoritmos com uma estruturação um poucomais elaborada para 
representar sua resolução. Sempre é possível dividir um grande problema em vários problemas menores. 
Assim, para representar a forma de solução de cada subproblema foram criados os subalgoritmos; a união 
desses subalgoritmos resulta na solução do problema complexo inicial. 
É fato que a decomposição de um problema é fator determinante para a redução da complexidade. 
Sabe-se que complexidade é sinônimo de variedade, ou seja, quantidade de situações diferentes que um 
problema pode apresentar. Assim, quando se decompõe um problema, divide-se também a complexidade, 
simplificando, consequentemente, sua resolução. 
Outra vantagem da decomposição é que permite focalizar a atenção em um problema pequeno de 
cada vez que levará a uma melhor compreensão do todo. Entretanto, é necessário adotar um critério 
coerente para orientar o processo de decomposição da melhor maneira. Assim, é preciso: 
1. Dividir o problema em suas partes principais; 
2. Analisar a divisão obtida para garantir coerência; 
3. Caso alguma parte permaneça complexa, decompô-la novamente; 
4. Analisar o resultado para garantir o entendimento. 
Logo, nota-se que é possível subdividir o problema quantas vezes for necessário, esse processo de 
decomposição contínua é conhecido como Refinamento Sucessivo. Esse nome se dá porque inicia com 
um problema complexo e abrangente que é sucessivamente dividido até resultar em problemas mais 
simples e específicos. 
FUNCIONAMENTO DE UM SUBALGORITMO 
Um algoritmo é dividido em um algoritmo principal e vários subalgoritmos. No algoritmo 
principal, é iniciada a execução do algoritmo e é onde ocorre a invocação (ou chamada) dos 
subalgoritmos. Estes, quando invocados desenvolvem suas funções específicas e a resposta é devolvida ao 
algoritmo principal. Para isso, os subalgoritmos, assim como os algoritmos, têm que obedecer a uma 
organização estruturada. 
4 
41 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
Por estar associado a um algoritmo principal, um subalgoritmo tem uma localização específica 
dentro do mesmo, ou seja, as definições de um subalgoritmo não podem estar representadas em qualquer 
lugar do algoritmo principal, existe uma regra para que isso aconteça. A a definição do subalgoritmo pode 
estar localizada no final do algoritmo principal, antes da palavra fim., ou ainda, após a declaração de 
variáveis, antes da palavra inicio, como mostrado abaixo: 
 
 
 
ou 
 
 
 
Além disso, as definições dos subalgoritmos têm que obedecer a uma organização específica. 
Assim, um subalgoritmo deve ser composto por: 
 Cabeçalho: onde é definido o, tipo (indicação do tipo de subalgoritmo a ser utilizado), o nome 
(com o qual ele será chamado pelo algoritmo principal), os parâmetros (canais por onde serão 
transferidos os dados pelo algoritmo chamador ao subalgoritmo e vice-versa) e as variáveis locais 
(àquelas definidas dentro do subalgoritmo e utilizadas apenas por ele); 
 Corpo: onde são definidas as ações que serão executadas todas as vezes que o subalgoritmo for 
chamado; 
 Fim: finalização do subalgoritmo. 
A descrição detalhada das partes que compõem o cabeçalho é apresentada no que segue. 
TIPOS DE SUBALGORITMO 
O tipo do subalgoritmo é definido de acordo com o número de valores que este retorna ao 
algoritmo que o invocou. Assim, um subalgoritmo pode ser classificado como função ou procedimento. 
 FUNÇÃO 
Uma Função é um subalgoritmo e, assim como tal, contém início e fim, além de ser indicada por 
um nome, por meio do qual será referenciada em algum momento pelo programa principal; como tratado 
anteriormente. 
algoritmo <nome> 
<declaração de variáveis> 
início 
 <corpo do algoritmo> 
 <definições dos subalgoritmos> 
fim. 
 
algoritmo <nome> 
<declaração de variáveis> 
<definições dos subalgoritmos> 
início 
 <corpo do algoritmo> 
fim. 
 
42 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
Uma função tem a característica de retornar apenas um valor, ou seja, sua resposta é representada 
apenas por um único valor. O retorno é feito de modo associado a seu nome, sendo necessário fazer a 
declaração do tipo de dado a ser retornado, ou seja, é necessário declarar uma variável com o mesmo 
nome da função e do mesmo tipo dos valores utilizados. Em suma, numa função os valores são retornados 
através do próprio nome. Assim, a estrutura de uma função é dada da seguinte forma: 
 
 
 
 
 
 
Em que: 
 Nome: É o nome simbólico pelo qual a função é invocada pelo algoritmo principal; 
 Parâmetros: São as variáveis responsáveis pelo recebimento dos valores enviados pelo algoritmo 
principal. 
Para melhor entender esse processo, é apresentado o exemplo a seguir. 
 
O exemplo ao lado mostra as definições de uma 
função denominada FATORIAL em que, dado 
um valor N (vindo do algoritmo principal) 
calcula-se o fatorial deste número, o resultado 
deste cálculo é retornado ao algoritmo principal 
através do próprio nome da função 
(FATORIAL), por isso, ocorre a necessidade da 
declaração da função FATORIAL, que armazena 
a resposta a ser retornada. 
Observe que este é apenas o trecho da função, e 
não o algoritmo todo. 
 
 
 
Observações: 
função <nome> (<parâmetros>) 
<declaração de variáveis (inclusive da função)> 
início 
 <comandos do subalgoritmo (ações)> 
fimfunção 
função FATORIAL (N) 
inteiro: N, i, aux, FATORIAL 
início 
 aux ← 1 
 se (N=0) então 
 FATORIAL ← 1 
 senão 
 para i de 1 até N passo 1 faça 
 aux ← aux * i 
 fimpara 
 FATORIAL ← aux 
 fimse 
fimfunção 
43 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
A declaração do tipo de variáveis e da função pode ser feita de outra forma, tal como (considere o 
exemplo anterior): 
 
 
 
Note que o parâmetro N e a própria função são declaradas, quanto a seu tipo, no caso inteiro, na 
primeira linha das definições da função. Assim, não há necessidade de repetir essa declaração na segunda 
linha. 
 Como dito anteriormente, uma função tem início e fim, sendo que o fim é representado, 
obrigatoriamente, pela palavra reservada fimfunção, lembre-se que, que a palavra reservada fim. é 
exclusiva para finalização do algoritmo. 
 PROCEDIMENTO 
Um Procedimento, do mesmo modo que a função, é um subalgoritmo que possui início, fim e um 
nome pelo qual será referenciado no algoritmo principal. 
Ao contrário da função, o procedimento retorna um ou mais valores, e não apenas um valor, ou 
seja, a resposta de um procedimento pode ser representada por um ou vários valores. Diferente da função, 
o retorno da resposta não é feito através do nome do procedimento, e sim, por variáveis (parâmetros) que 
tem, exclusivamente, a tarefa de retornar os valores, por exemplo, se forem retornados dois valores, será 
necessário duas variáveis, uma para cada valor a ser retornado. Logo, um procedimento é estruturado da 
seguinte forma: 
 
 
 
 
 
Em que: 
 Nome - É o nome simbólico pelo qual o procedimento é chamado pelo algoritmo principal; 
 Parâmetros – São as variáveis responsáveis pelo recebimento dos valores do algoritmo principal 
e, pelo envio da resposta do procedimento ao algoritmo principal. 
De forma a propiciar o melhor entendimento,

Outros materiais