Buscar

Algoritmos e Lógica de Programação

Prévia do material em texto

UNIP – Universidade Paulista 
Material de apoio para Algoritmo e lógica de programação 
Prof. Francisco J. Martins 
 
SUMÁRIO 
 
Introdução aos algoritmos .......................................................................................... 2 
O que é lógica? .......................................................................................................... 2 
O que é algoritmo? ..................................................................................................... 2 
O que é Padrão de Comportamento? ......................................................................... 3 
Estruturas de controle ................................................................................................ 3 
Português Estruturado, Pseudocódigo ou Portugol .................................................... 3 
O que é complexidade? .............................................................................................. 3 
Tipos Primitivos de Dados .......................................................................................... 4 
Constantes ................................................................................................................. 5 
Variáveis ..................................................................................................................... 5 
Formação de Identificadores ...................................................................................... 6 
Declaração de Variáveis ............................................................................................. 6 
Expressões Aritméticas: ............................................................................................. 7 
Operadores Aritméticos .............................................................................................. 7 
Simbologia gráfica básica para fluxogramas e diagramas de bloco: .......................... 8 
Aplicações usando estruturas de controle .................................................................. 9 
Método de construção de algoritmos .......................................................................... 9 
Estrutura Sequencial: .............................................................................................. 9 
Estrutura de Seleção: .............................................................................................10 
Seleção simples: .................................................................................................10 
Seleção composta: ..............................................................................................10 
Estrutura de Repetição com teste no início - Looping: ...........................................11 
Estrutura de Repetição com teste no final - Looping: .............................................11 
Exercícios propostos: ................................................................................................12 
Bibliografia: ................................................................................................................18 
 
Este material foi produzido e adaptado pelo profº Francisco Martins para uso exclusivo nas disciplinas que leciona. O uso deste 
material em outras disciplinas deverá ser autorizado. Sugestões e correções enviem para e-mail para 
franciscomartins60@gmail.com 
 
mailto:franciscomartins60@gmail.com
2 
Profº Francisco J. Martins – Algoritmos e lógica de programação 
Introdução a algoritmos 
Para PUGA (2009). A ideia de algoritmo é muito antiga, discutida por matemáticos e 
filósofos, destacando entre eles Gottfried Von Leibniz, que vislumbrava, no século XVII, 
máquinas universais de calcular e estranhas linguagens simbólicas para representar 
ideias complexas através de sinais convencionais. A matemática clássica, em grande 
parte é o estudo de determinados algoritmos, como os aplicados na álgebra elementar, 
que substitui números por letras e define um conjunto de símbolos que são 
manipulados por meio de regras práticas, como uma receita, um guia. 
Como exemplo, o produto de (a+b) e (a+b) é obtido da seguinte forma: 
a) a é multiplicado por a; 
b) a é multiplicado por b duas vezes; 
c) b é multiplicado por b; 
d) os resultados obtidos são somados. 
Como resultado, obteríamos a seguinte expressão: a² + 2ab + b². 
Assim, podemos dizer que algoritmo é uma seqüência lógica e finita de instruções 
que devem ser seguidas para a resolução de um problema ou execução de uma tarefa. 
São amplamente utilizados na área da ciência da computação, desde a definição das 
instruções realizadas pelo hardware, processadores e demais dispositivos, passando 
pelas operações executadas pelo sistema operacional, no gerenciamento dos 
computadores, até a documentação das operações necessárias à elaboração de 
soluções voltadas para a construção de interfaces entre software e hardware, 
programas e demais aplicativos. PUGA(2009). 
O que é lógica? 
É a arte de pensar corretamente, tem em vista a correção do raciocínio. 
O que é algoritmo? 
É uma seqüência de passos ou instruções que visam atingir um objetivo finito e bem 
definido. (Ordem de pensamento e, portanto Lógica). 
Exemplo:. Uma receita de bolo. 
 Um mapa do tesouro. 
Para entendermos melhor algoritmo, vamos evidenciar melhor alguns conceitos: 
AÇÃO:. É um acontecimento que a partir de um estado inicial, após um período de 
tempo finito, produz um estado final previsível e bem definido em que: 
Estado é a situação atual de dado objeto. 
Portanto algoritmo pode ser a descrição de um conjunto de ações que, obedecidas, 
resultam numa sucessão finita de passos, atingindo o objetivo. 
Em geral algoritmos destinam-se sempre à solução de problemas. 
"Sistema de uma sucessão de cálculos numéricos, Operação ou processo de 
cálculo". 
3 
Profº Francisco J. Martins – Algoritmos e lógica de programação 
O que é Padrão de Comportamento? 
É o mesmo que regra de formação, série que obedece a uma constância. Observemos 
a seqüência de números: 1, 6, 11, 16, 21, 26, ... 
Estruturas de controle 
Seqüência: é a estrutura de uma convenção que rege o fluxo de execução de um 
grupo de instruções, determinando qual a ação que vem a seguir. 
Seleção: é a estrutura que permite a inspeção de uma condição onde se define qual o 
bloco de ações será executado de acordo com o resultado obtido nesta inspeção. 
Repetição: é a estrutura que permite a inspeção de uma condição onde se define a 
repetição ou não de determinado bloco de ações que deverá ser executado enquanto 
uma determinada condição de teste for aceita combinando com a lógica inspecionada. 
(condição Falsa ou Verdadeira). Tecnicamente, esta forma de controle de fluxo é 
chamada de LAÇO ou LOOPING. 
 
Português Estruturado, Pseudocódigo ou Portugol 
Para PUGA (2009). É uma forma de representação de algoritmos que utiliza uma 
linguagem flexível, intermediária entre a linguagem natural e a linguagem de 
programação. É utilizado para organizar o raciocínio lógico a ser seguido para a 
resolução de um problema ou para definir os passos para a execução de uma tarefa. 
Também utilizado para documentar rotinas de um sistema. 
Exemplo: 
Algoritmo Exemplo Identificação do algoritmo 
 
Var salário: Real Declaração das variáveis 
Idade, n_pessoas, tot_pessoas: inteiro 
 
Inicio Corpo do algoritmo 
 n_pessoas  1 
 tot_pessoas  0 
 Enquanto (n_pessoas <= 50) Faça 
 Ler (idade, salário) 
 Se (idade < 30) e (salário > 3000,00) Então 
 Tot_pessoas  tot_pessoas + 1 
 Fim-Se 
 N_pessoas  n_pessoas + 1 
 Fim-Enquanto 
 Mostrar (“Número total de pessoas: “, tot_pessoas) 
Fim. 
PUGA (2009 p.12) 
Existe lógica no dia-a-dia? (Ordem do pensamento). Claro, se agimos pensamos, e, se 
pensamos, empregamos algum tipo de lógica para a consecução da ação. 
O que é complexidade? 
4 
Profº Francisco J. Martins – Algoritmos e lógica de programação 
É sempre encarada como sinônimo de Variedade, que representa a quantidade de 
situações diferentes que um problemapode oferecer. 
Um dos maiores fatores de aumento da complexidade é, a forma errônea de 
autoquestionar-se a respeito de um dado problema. 
O Que versus Como? 
Como é um sorvete? 
Deliciosa sobremesa gelada, embaladas em diversos formatos e tipos, um destes tipos 
com formato esférico, normalmente acompanhado de um cone comestível, em diversas 
cores e sabores. 
O que é um sorvete? 
Gordura vegetal hidrogenada, leite em pó, açúcar, aromatizantes, corantes e 
estabilizantes. 
Como é um disco flexível? 
Disco quadrado, chato que pode ser colorido e de diversas marcas, com uma abertura 
no centro e nas duas faces. 
O que é um disco flexível? 
Meio magnético e portátil usado para armazenamento de informações. 
Legibilidade:. Mede a capacidade de compreensão do algorítmo por qualquer 
obervador, a clareza com que sua lógica está exposta. Quanto mais legível menos 
complexo. 
Portabilidade:. Diz respeito às várias linguagens de programação existentes no 
mercado, e em muitos casos muito complexas. A vantagem do algoritmo está em 
preocupar-se apenas com a lógica do problema, é representado em português, e pode 
ser implementado facilmente em qualquer linguagem de programação. 
Tipos Primitivos de Dados 
Informação é a matéria-prima necessária aos computadores, pois eles são capazes de 
manipular e armazenar um grande volume de dados com alto desempenho, liberando o 
homem para tarefas, nas quais seu conhecimento é indispensável. A ciência 
denominada INFORMÁTICA, é que estuda a informação e suas aplicações. 
Para entender melhor a forma pela qual o computador manipula as informações: vamos 
dividi-las em quatro tipos primitivos: 
Inteiro: Toda e qualquer informação numérica que pertença ao conjunto dos 
números inteiros relativos (negativa, nula ou positiva). 
a) Ele tem 15 irmãos. 
b) A temperatura desta noite está de –2 graus. 
Real: Toda e qualquer informação numérica que pertença ao conjunto dos números 
reais (negativa, nula ou positiva). 
a) Ela tem 1,73 metro de altura. 
5 
Profº Francisco J. Martins – Algoritmos e lógica de programação 
b) Meu saldo bancário é de –R$ 121,07. 
Caractere: Toda e qualquer informação composta por um conjunto de caracteres 
alfabéticos letras de (A a Z), dígitos de (0 a 9) e símbolos especiais como: {(,~, !, @, 
#, $, %, ^, &, *, <, >, ?, etc)}. 
a) Constava na prova: “Use somente caneta!”. 
b) O parque municipal estava repleto de placas: “Não pise na Grama”. 
Lógico: Toda e qualquer informação que pode apenas assumir duas situações 
(biestável). 
a) A porta pode estar fechada ou aberta. 
b) A lâmpada pode estar acesa ou apagada. 
 
EXERCÍCIOS: 
Determine qual é o tipo primitivo de informação presente nas sentenças abaixo: 
a) A placa “Pare!” tinha dois furos de bala. 
b) José subiu oito degraus para pegar uma laranja boa. 
c) Joana levou três horas e meia para chegar ao hospital onde concebeu uma garota. 
d) Astrogilda pintou em sua camisa: “Preserve o meio ambiente”, e ficou devendo R$ 
95,12 ao vendedor de tintas. 
e) Felisberto recebeu sua 18ª medalha por ter alcançado a marca de 57,3 segundos 
nos 100 metros rasos. 
 
Constantes 
Uma informação é constante quando não sofre nenhuma variação no decorrer do 
tempo. 
Para diferenciar as informações constantes do tipo caractere, de outros tipos de 
informação, deve-se delimitá-las por um par de aspas (“”). 
Convencionou-se que as informações do tipo lógico são sempre verdadeiras ou falsas. 
Exemplos: 5, “Não Fume”, 2527, -0.58, “R$ 0,50”, Falso. 
 
Variáveis 
Uma informação é considerada variável quando tem a possibilidade de ser alterada em 
algum instante no decorrer do tempo. 
Exemplos: A cotação do dólar, O peso de uma pessoa, O índice da inflação, etc. 
 
6 
Profº Francisco J. Martins – Algoritmos e lógica de programação 
Formação de Identificadores 
Supondo que, em contratos financeiros não possamos utilizar um valor fixo em moeda 
corrente como base para reajuste, pois com o tempo esse valor estaria defasado. Para 
resolver este problema, poderíamos utilizar um parâmetro que fornecesse valores 
atualizados em moeda corrente para cada período. 
Haveria então a necessidade de nomear esse parâmetro que representa valores em 
mutação, tal como IRT, índice de reajustes totais. 
Esses nomes das informações de caráter variável são os identificadores, os quais 
devem acompanhar as seguintes regras de formação: 
1. Devem começar por um caractere alfabético; 
2. Podem ser seguidos por mais caracteres alfabéticos e/ou numéricos; 
3. Não é permitido o uso de caracteres especiais; 
4. Os caracteres alfabéticos devem obrigatoriamente ser escritos em maiúsculo. 
 
Exemplo: 
 
a) Identificadores válidos: ALPHA, X, BJ153, K7, NOTAS, MÉDIA, ABC, INPS, FGTS. 
b) Identificadores inválidos: 5X, E(13), A:B, X-Y, NOTA/2, AWQ*, P&AA. 
 
Declaração de Variáveis 
No ambiente computacional, as informações variáveis são guardadas em dispositivos 
eletrônicos chamados de “memória”. Podemos comparar essa memória com um 
armário repleto de gavetas, e estas seriam os locais físicos responsáveis por 
armazenar objetos. Visto que na memória (armário) existem inúmeras variáveis 
(gavetas), é necessário diferenciá-las, e isto é feito através dos identificadores 
(etiquetas). 
Cada variável, no entanto, pode guardar apenas uma informação de cada vez, sendo 
sempre do mesmo tipo. 
Portanto, precisamos definir as variáveis seguindo algumas regras sintáticas: 
 declaração de variáveis => tipo =>: lista de variáveis => ; 
 tipo => inteiro, real, caractere e lógico. 
Exemplos: inteiro: X; 
 caractere: NOME, ENDERECO, DATA; 
 real: ABC, XPTO, PESO, DOLAR; 
lógico: RESPOSTA, H286; 
RESPOSTA é o nome de um local de memória que só pode conter valores do tipo 
lógico, ou seja, por convenção, verdadeiro ou falso. 
X é o nome de um local de memória que só pode conter valores do tipo inteiro, 
qualquer um deles. 
7 
Profº Francisco J. Martins – Algoritmos e lógica de programação 
Não podemos permitir que mais de uma variável possua o mesmo identificador, isto 
geraria dúvidas na utilização. Só é permitido guardar informações em variáveis do 
mesmo tipo. 
 
EXERCÍCIOS: 
 
1- Assinale os identificadores válidos: 
a) (X) b) U2 c) AH! d) “ALUNO” e) #55 f) KM/L 
g) UYT h) ASDRUBAL i) AB*C j) O&O l) B52 
 
2- Supondo que as variáveis NB, NA, NMat, SX sejam utilizadas para armazenar a 
nota do aluno, o nome do aluno, o número da matrícula e o sexo, declare-as 
corretamente. 
3- Encontre os erros da declaração a seguir: 
Inteiro: ENDEREÇO, NFILHOS; 
Caractere: IDADE, X; 
Real: CRUZEIRO$, XPTO, C, PESO, OUT; 
Lógico: LÂMPADA, C; 
 
Expressões Aritméticas: 
Denominamos expressão aritmética aquela cujos operadores são aritméticos, e cujos 
operandos são constantes e/ou variáveis do tipo numérico (inteiro e/ou real). 
Expressão aritmética => operando => operador aritmético => operando 
 Operando => constante numérica 
 variável numérica 
 função matemática 
 
Operadores Aritméticos 
São os símbolos que representam as oprerações básicas da matemática, a saber: 
 + (adição) - (subtração) * (multiplicação) 
 / (divisão) ** (potenciação) // (radiciação) 
Exemplo: 2+2, XPTO/5, X**2, X-3, 3**2, 3//x, 2*NOTA, 3//9. 
Em linguagens de programação, usa-se outras operações matemáticas não-
convencionais cujos nomes dos operadores são: 
 
 
 
 
8 
Profº Francisco J. Martins – Algoritmos e lógica de programação 
Linguagem PASCAL / DELPHI Mod (Módulo - resto da divisão) 
Div (quociente inteiro da divisão) 
Linguagem VISUAL BASIC 
 
Mod (Módulo - resto da divisão) 
\ (quociente inteiro da divisão) 
Linguagem C / C++ % (Módulo - resto da divisão) 
Exemplo: Na operação 9/4 temos: quociente = 2 e resto = 1. Logo: 
9 Mod 4 = 1 9 Div 4 = 2 
 
15 Div 7 resulta 2 ou 15 \ 7 resulta 2 
15 Mod 7 resulta 1 
27 Div 5 resulta 5 ou 27 \ 5 resulta 5 
27 Mod 5 resulta 2 
Simbologia gráfica básica para fluxogramas e diagramas de bloco: 
Existe uma infinidadede símbolos usados nas mais diversas áreas administrativas, bem 
como dentro das áreas técnicas de tecnologia da informação, tais como: programação, 
teleprocessamento, analise de sistemas, etc. A seguir os básicos: 
 
Terminal – símbolo utilizado para indicar o início e fim do fluxo de um 
programa. 
Seta de fluxo de dados – obrigatório para indicar o sentido do fluxo 
dos dados, serve exclusivamente para conectar os símbolos e blocos 
existentes no diagrama, e indicar sentido do fluxo de execução no 
diagrama. 
Processamento – símbolo utilizado para indicar cálculos (algoritmos) 
a efetuar, atribuições de valor ou qualquer manipulação de dados que 
indique uma transformação de valores. 
Saída de dados em vídeo – utiliza-se este símbolo quando se deseja 
indicar que a saída de dados deverá ser em dispositivos visuais como 
no monitor de vídeo. 
Decisão – Permite a inspeção de determinada condição e indica as 
possibilidades de desvios do fluxo de execução do diagrama, de 
acordo com a seleção do resultado obtido na inspeção. As opções: 
Verdadeiro e Falso devem ser tratadas sempre para manter a lógica 
de execução do diagrama. 
Conector – utilizado quando é preciso particionar o diagrama. 
Quando ocorrer mais de uma partição, é colocado uma letra ou 
número dentro do símbolo de conexão para identificar os pares ou 
seqüência de ligação. 
9 
Profº Francisco J. Martins – Algoritmos e lógica de programação 
Conector – especifico para indicar que há conexão do fluxo em outras 
páginas. 
Preparação – refere-se a um determinado grupo de operações não 
incluídas na diagramação, bem como, na elaboração de uma chave 
que modificará a execução de um determinado programa. 
 
Teclado – Serão as informações recebidas ou fornecidas de um 
computador, ou por um computador. 
 
Aplicações usando estruturas de controle 
Problema:. Desenvolva um algoritmo que calcule a média aritmética entre quatro 
notas quaisquer fornecidas pelo usuário. 
Método de construção de algoritmos 
 
Resolvendo através deste método, devemos: 
1) Entender adequadamente o enunciado do problema. 
2) Definir: 
a) Dados de entrada: notas bimestrais (N1, N2, N3, N4); 
b) Dados de saída: média aritmética anual (MA). 
3) Processamanto: O que deve ser feito para transformar quatro notas bimestrais 
numa média anual? 
a) Verificar como é calculada a média aritmética (soma dos elementos divididos 
pela quantidade ou ocorrência deles). Neste caso (N1+N2+N3+N4) / 4; 
b) Aplicar o cálculo da média aritmética. 
Estrutura Sequencial: 
Algoritmo: Média entre 4 notas 
Real : N1, N2, N3, N4, MA; {declaração de variáveis} 
Inicio {começo do algoritmo} 
 ler (N1,N2,N3,N4); {entrada de dados} 
 MA  (N1+N2+N3+N4) / 4; {processamento ou cálculo da média} 
 escreva (MA); {saída de dados} 
fim. {término do algoritmo} 
 
10 
Profº Francisco J. Martins – Algoritmos e lógica de programação 
Estrutura de Seleção: 
Seleção simples: 
Algoritmo: Média entre 4 notas 
Real : N1, N2, N3, N4, {declaração de variáveis} 
 MA; {média anual} 
Inicio {começo do algoritmo} 
 ler (N1,N2,N3,N4); {entrada de dados} 
 MA  (N1+N2+N3+N4) / 4; {processamento ou cálculo da média} 
 escreva (“Média anual = “, MA); {saída de dados} 
 se MA >= 6 então { teste da média – Bloco verdade} 
 escreva (“Aluno Aprovado”); 
 fim se; 
fim. 
 
Seleção composta: 
Algoritmo: Média entre 4 notas 
Real : N1, N2, N3, N4, {declaração de variáveis} 
 MA; {média anual} 
Inicio {começo do algoritmo} 
 ler (N1,N2,N3,N4); {entrada de dados} 
 MA  (N1+N2+N3+N4) / 4; {processamento ou cálculo da média} 
 escreva (“Média anual = “, MA); {saída de dados} 
 se MA >= 6 então { teste da média – Bloco verdade} 
 escreva (“Aluno Aprovado”); 
 escreva (“Parabéns ! ”); 
 senão { teste da média – Bloco falso} 
 escreva (“Aluno Reprovado”); 
 escreva (“Estude Mais ! ”); 
 fim se; 
fim. 
 
Seleção encadeada: 
Puga (2009, p. 61) Relaciona este tipo de seleção à um aninhamento de testes, ou 
seja, testes de seleção dependentes por estar internamente em outros testes, onde 
uma condição determina ou não a execução do teste de outra condição interna à ela. 
Uma estrutura de seleção encadeada é uma seqüência de testes de seleção, os quais 
serão ou não executados de acordo com o resultado das condições e com o 
encadeamento dos testes. Isto é, um teste de seleção pode ter dois conjuntos de 
instruções, como foi visto na seção “Estruturas de seleção compostas”, um 
representando o bloco verdadeiro e outro o bloco falso, porém esses conjuntos de 
instruções podem conter outros testes de seleção, que, por sua vez, também podem 
conter outros, e assim sucessivamente. 
11 
Profº Francisco J. Martins – Algoritmos e lógica de programação 
Inicio 
Se (condição 1) então 
 Se (condição 2) então 
 Conjunto de instruções (A) do bloco verdade para a condição 2 
 Senão 
 Conjunto de instruções (B) do bloco falso para a condição 2 
 Fim-Se 
Senão 
 Conjunto de instruções (C) do bloco falso para a condição 1 
Fim-Se 
Fim. 
Estrutura de Repetição com teste no início - Looping: 
Quantas vezes o exemplo acima será executado? E se existirem mais alunos? 
Poderíamos executar ou escrever o mesmo algoritmo n vezes? Como calcular a média 
de cada aluno, para uma turma de 50 a partir de um arquivo? 
Algoritmo: Média entre 4 notas para 50 alunos com teste no início 
Real : N1, N2, N3, N4, {declaração de variáveis} 
 MA; {média anual} 
Inteiro : CON; {contador} 
Inicio {começo do algoritmo} 
 CON  0; 
 Enquanto CON < 50 faça {teste da condição no início} 
 leia (N1,N2,N3,N4); {entrada de dados} 
 MA  (N1+N2+N3+N4) / 4; {processamento ou cálculo da média} 
 escreva (MA); {saída de dados} 
 se MA >= 6 então { teste da média – Bloco verdade} 
 escreva (“Aluno Aprovado”); 
 escreva (“Parabéns ! ”); 
 senão { teste da média – Bloco falso} 
 escreva (“Aluno Reprovado”); 
 escreva (“Estude Mais ! ”); 
 fim se; 
 CON  CON + 1; 
Fim Enquanto; {final do looping ou bloco de repetição} 
fim. {final do Algoritmo} 
 
Estrutura de Repetição com teste no final - Looping: 
Poderíamos executar ou escrever o mesmo algoritmo n vezes testando a condição no 
final? Como calcular a média de uma turma de 50 alunos a partir de um arquivo? 
Algoritmo: Média entre 4 notas para 50 alunos com teste no final 
{declaração de variáveis} 
real : MA, { média anual de determinado aluno} 
ACM, { acumulador} 
 MAT; { média anual da turma} 
Inteiro : CON; {contador} 
Inicio {começo do algoritmo} 
 CON  0; 
12 
Profº Francisco J. Martins – Algoritmos e lógica de programação 
 ACM  0; 
 Repita 
 ler (MA); 
 ACM  ACM + MA; 
 CON  CON + 1; 
 Até CON >= 50; 
 MAT  ACM/CON; 
escreva (“Média anual da turma = “ , MAT); 
fim. 
 
Exercícios propostos: 
Considere três recipientes, o 1º, cheio, com capacidade de 8 litros, o 2º, vazio, com 
capacidade de 5 litros e o 3º, vazio, com capacidade de 3 litros. Desenvolva uma 
seqüência de passos para que, ao final reste 4 litros no 1º recipiente, 4 litros no 2º 
recipiente e o 3º recipiente fique vazio. Podemos utilizar os três recipientes, porém, não 
poderá haver dois movimentos para o mesmo passo, nem colocar um recipiente dentro 
de outro. Cada passo deverá constar de apenas um movimento, ou seja, envolver 
apenas dois recipientes. 
 
 Recipiente 1 Recipiente 2 Recipiente 3 
Passo 1 
Passo 2 
Passo 3 
Passo 4 
Passo 5 
Passo 6 
Passo 7 
Passo 8 
Passo 9 
 
A partir dos algoritmos em PSEUDOCÓDIGO abaixo, desenvolva o Diagrama de Bloco 
ou Fluxograma, o Teste de Mesa, o processo em VisuAlg e o programa em Linguagem 
C: 
1- Calcular e Imprimir n!. Para teste use 4! (quatro fatorial). 
Algoritmo: Fatorial 
Inteiros: n, fatn; 
Inicio; 
 Ler n; 
 Se n > 1 então 
 Fatn  n; 
13 
Profº Francisco J. Martins – Algoritmos e lógica de programação 
 Enquanto n >1 faça 
 Fatn  fatn*(n –1); 
 N  n-1; 
 Fim-enquanto; 
 Senão 
 Fatn  1 
 Fim-se; 
 Imprima (fatn);Fim. 
 
2- Calcular e Imprimir a soma dos números ímpares no intervalo de 0 até 10. 
 
Algoritmo: SomaÍmpares em intervalo fixo 
Inteiros: soma, n1, n2, resto; 
 
Inicio; 
 n1  0; 
n2  10; 
 soma  0; 
 Enquanto n1 <= n2 faça 
Se n1 Mod 2 <> 0 então 
soma  soma + n1; 
 n1  n1 + 1; 
 senão 
 n1  n1 + 1; 
 fim-se; 
 Fim-enquanto; 
 Imprima (soma); 
Fim. 
 
3- Calcular e imprimir a soma dos números ímpares de um intervalo aleatório fornecido 
pelo usuário. 
 
Algoritmo: SomaÍmpares em intervalo aleatório 
Inteiros: soma, n1, n2, resto; 
Inicio; 
 Ler (n1,n2); 
soma  0; 
 Enquanto n1 <= n2 faça 
 resto  (n1 Mod 2); 
Se resto <> 0 então 
soma  soma + n1; 
 n1  n1 + 1; 
 senão 
 n1  n1 + 1; 
 Fim-se; 
 Fim-enquanto; 
 Imprima (soma); 
Fim. 
 
 ... 
 
 Se (n1 Mod 2) <> 0 então 
 ... 
 
14 
Profº Francisco J. Martins – Algoritmos e lógica de programação 
4- Encontrar e imprimir o menor e o maior número de uma série aleatória de números 
fornecidos pelo usuário. A série é composta de pelo menos um número. Quando o 
valor digitado for 0 (Zero), é a condição de fim, ou seja, o programa termina. 
 
Algoritmo: MaiorMenor 
Inteiros: maior, menor, valor; 
Caracter: Lista; 
 
 
Inicio; 
 Leia (valor); 
maior  valor; 
menor  valor; 
Lista  Valor 
 Enquanto valor # 0 faça 
 Se valor > maior então 
 maior  valor; 
 senão se valor < menor então 
 menor  valor; 
 fim se; 
 fim se; 
 Escapar do looping quando necessário “{(Exit do) para um laço Do While}” 
leia (valor); 
Lista  Lista + “,” + Valor 
Fim enquanto; 
Imprima (maior, Menor); 
Fim. 
 
5- Converter a velocidade de um móvel fornecida em (ms) metros por segundos, para 
(kmh) quilômetros por hora, e imprimir o resultado. 
 
Algoritmo: ConverteVelocidade 
real: vms, vkmh, fatn; 
Inicio; 
 ler (vms); 
 vkmh  vms * 3.6; 
 Imprima (vkmh); 
Fim. 
 
6- Calcular e imprimir a média aritmética entre 4 notas quaisquer fornecidas pelo 
usuário. Deverá haver um teste para validar a nota, (a nota deve variar de 0-zero a 
10-dez). 
 
Algoritmo: CalculaMédiaNotaVálida 
Real : n1,n2,n3,n4, media; 
Inicio 
 Leia n1; 
 Enquanto n1 <= 0 ou n1 >= 10 faça 
 Imprima (‘Nota inválida, Digite n1 novamente!’); 
 Leia n1; 
 Fim enquanto; 
 Leia n2; 
15 
Profº Francisco J. Martins – Algoritmos e lógica de programação 
Enquanto n2 <= 0 ou n2 >= 10 faça 
 Imprima (‘Nota inválida, Digite n2 novamente!’); 
 Leia n2; 
 Fim enquanto; 
 Leia n3; 
 Enquanto n3 <= 0 ou n3 >= 10 faça 
 Imprima (‘Nota inválida, Digite n3 novamente!’); 
 Leia n3; 
 Fim enquanto; 
 Leia n4; 
 Enquanto n4 <= 0 ou n4 >= 10 faça 
 Imprima (‘Nota inválida, Digite n4 novamente!’); 
 Leia n4; 
 Fim enquanto; 
 Media  (n1+n2+n3+n4)/4; 
 Imprima (media); 
Fim. 
 
7- Calcular e imprimir a média aritmética entre as notas lidas do cadastro de alunos 
para uma classe de N alunos. Onde N será o número total de registros do cadastro, 
ou seja, o total de alunos do próprio cadastro. 
 
Algoritmo: CalculaImprimeMediaDoCadastroAlunos 
Real : n1,n2,n3,n4, media, reg; 
Inicio 
Leia cadastro de alunos; {esta operação posiciona o ponteiro no primeiro registro do 
cadastro de alunos} 
 Enquanto não for fim faça {Fim é encontrado quando o último registro for lido} 
n1  n1 do cadastro; 
 n2  n2 do cadastro; 
n3  n3 do cadastro; 
n4  n4 do cadastro; 
 Media  (n1+n2+n3+n4)/4; 
 Imprima (Nome do aluno, media); 
 Reg  reg +1; 
 Fim enquanto; 
Fim. 
 
Nota:. Este problema é mais simples porque as notas foram validadas durante a digitação do 
cadastro de alunos, bastando, portanto, apenas carregá-las e, calcular a partir delas, a média. 
 
8- Dado três valores, A,B,C, verificar se eles podem ser dos lados de um triângulo, e, se 
forem, se é triângulo qualquer, triângulo eqüilátero, ou triângulo Isósceles. 
 
Algoritmo: Triângulos 
Real : A, B, C; (valores a serem verificados) 
Inicio 
Leia (A, B, C); 
 Se A<B+C e B<A+C e C<A+B Então 
 Se A=B e B=C 
 Então Imprima (“Triângulo Equilátero”); 
 Senão Se A=B ou A=C ou C=B 
16 
Profº Francisco J. Martins – Algoritmos e lógica de programação 
 Então Imprima (“Triângulo Isósceles”); 
 Senão Imprima (“Triângulo Qualquer”); 
 Fim se; 
 Fim se; 
 Senão 
Imprima (“Não é Triângulo”); 
 Fim se 
Fim. 
 
17 
Profº Francisco J. Martins – Algoritmos e lógica de programação 
Exercícios de fixação: 
 
1- Qual a função do Algoritmo? 
 
2- Cite as estruturas de controle usadas na construção de algoritmos, e descreva a 
função de cada uma. 
 
3- Qual a função das variáveis ou identificadores de usuários em um programa? 
 
4- Qual a diferença entre Variáveis e Constantes? Exemplifique. 
 
5- O que é portabilidade do ponto de vista da construção de Algoritmos? 
 
6- Desenvolver o diagrama de blocos, o teste de mesa, o algoritmo (pseudocódigo), o 
processo em VisuAlg e o programa em C que permita a digitação dos alunos de 
uma turma e gere uma lista dos casados, outra lista dos divorciados e outra lista 
para os estados civis diferentes de casados e divorciados (outros). 
 
7- Descreva na linha pontilhada o que será executado em cada linha de comando do 
algoritmo abaixo: 
Inicio :........................................................................................................................ 
 Real : n1,n2,n3,n4, media, reg; :......................................................................... 
Leia cadastro de alunos; {esta operação posiciona o ponteiro no primeiro registro do 
cadastro de alunos} :.............................................................................................. 
Enquanto não for fim faça {O Fim é encontrado quando o último registro for 
lido}:..................................................................................................................... 
n1  n1 do cadastro; :.............................................................................. 
 n2  n2 do cadastro; :.............................................................................. 
n3  n3 do cadastro; :.............................................................................. 
n4  n4 do cadastro; :.............................................................................. 
 Media  (n1+n2+n3+n4)/4; :.................................................................... 
 Imprima (Nome do aluno, media); :.......................................................... 
 Reg  reg +1; :........................................................................................ 
 Fim enquanto; :................................................................................................... 
Fim. :........................................................................................................................ 
 
8- Desenvolver o algoritmo em Pseudocódigo, o diagrama de blocos, o teste de mesa, 
o processo em VisuAlg e o programa em C para calcular e imprimir a média 
aritmética entre 4 notas lidas do cadastro de alunos para uma classe de N alunos, e 
também a média de idade entre as meninas e os meninos. Onde N será fornecido 
pelo usuário. 
 
9- Desenvolver o algoritmo em Pseudocódigo, o diagrama de blocos, o teste de mesa, 
o processo em VisuAlg e o programa em C para uma bilheteria de uma estação de 
metrô que possui para fornecer o troco em moedas de 1 centavo, 10 centavos, 50 
centavos, e 1 real. Conhecendo-se o valor a ser cobrado e o valor fornecido por um 
usuário (em reais), como determinar as quantidades de cada tipo de moeda 
necessárias para completar o valor do troco, de maneira que no total seja utilizado o 
menor número de moedas? 
 
 
 
18 
Profº Francisco J. Martins – Algoritmos e lógica de programação 
Preparação: 
 
Objetivo:. Determinar as quantidades de cada tipo de moeda, necessárias para 
fornecer o troco, utilizando-se a menor quantidade possível de moedas no 
total. 
Entrada:. VC – valor cobrado e VF valor fornecido pelo usuário. 
Saída:. Quantidades de cada tipo de moeda QM1, QM10, QM50 e QM100(moedas de 1 centavo, 10 centavos, 50 centavos e 1 real). 
 
Bibliografia: 
FORBELLONE, André Luiz Villar; EBERSPÄCHER, Henri Frederico. Lógica de 
Programação. Makron Books: 2ª Edição – 2000. 
GUIMARÃES E LAGES. Algoritmos e Estruturas de Dados – Editora LTC: 1994. 
MARTINS, Custódio T. K.; RODRIGUES, Milton. Problemas Computacionais – 
Soluções com DELPHI 3.0 – Opus 6 Gráfica e Livraria - 1999. 
PUGA, Sandra. Lógica de programação e estruturas de dados, com aplicações em 
Java. 2. Ed. – São Paulo : Pearson Prentice Hall, 2009.

Mais conteúdos dessa disciplina