Escolar Documentos
Profissional Documentos
Cultura Documentos
LÓGICA DE
PROGRAMAÇÃO
Ipatinga
2022
Disciplina: Lógica de Programação 2
SUMÁRIO
Introdução ............................................................................................................................ 4
Algoritmo .............................................................................................................................. 5
ALGORITMO NÃO COMPUTACIONAL .............................................................................................................. 5
RESOLUÇÃO DE PROBLEMAS ATRAVÉS DE COMPUTADORES.......................................................................... 7
Programação ............................................................................................................................................. 8
DIRETRIZES PARA A ELABORAÇÃO DE ALGORITMOS...................................................................................... 8
DESCRIÇÃO DE ALGORITMOS ....................................................................................................................... 10
Descrição Narrativa ................................................................................................................................ 10
Fluxograma ............................................................................................................................................. 10
Linguagem Algorítmica ou Pseudolinguagem ou Portugol ..................................................................... 11
Teste de Mesa ou Teste de Resultado ...................................................................................................... 11
ESTRUTURAS DE DADOS............................................................................................................................... 12
Tipos Primitivos de Dados ...................................................................................................................... 12
Constantes ............................................................................................................................................... 12
Variáveis.................................................................................................................................................. 12
Identificadores ......................................................................................................................................... 13
Declaração de Variáveis ......................................................................................................................... 13
Comando de Atribuição ........................................................................................................................... 14
Operadores Aritméticos........................................................................................................................... 14
Operadores Relacionais .......................................................................................................................... 14
Operadores Lógicos ................................................................................................................................ 15
Tabela Verdade ....................................................................................................................................... 15
Expressões Lógicas ................................................................................................................................. 15
Operadores Especiais (Mod E Div) ......................................................................................................... 15
BIBLIOTECAS DE FUNÇÕES ........................................................................................................................... 15
MOD ........................................................................................................................................................ 15
DIV .......................................................................................................................................................... 15
LINEARIZAÇÃO DE EXPRESSÕES ................................................................................................................... 16
COMANDOS DE I/O (INPUT/OUTPUT)- ENTRADA E SAÍDA ............................................................................ 16
Corpo Geral de um Algoritmo ......................................................................................... 17
ESTRUTURAS SEQÜENCIAIS .......................................................................................................................... 17
; Ponto e Vírgula ; ................................................................................................................................... 17
Primeiro Algoritmo ................................................................................................................................. 17
Segundo Algoritmo .................................................................................................................................. 18
Comentário {} .......................................................................................................................................... 18
‘Aspas Simples’ ....................................................................................................................................... 18
Estruturas de Decisão ........................................................................................................ 20
SELEÇÕES SIMPLES ...................................................................................................................................... 20
Opção 1 ................................................................................................................................................... 20
Opção 2 ................................................................................................................................................... 20
SELEÇÕES COMPOSTAS: ANINHAMENTO DE CONDIÇÕES .............................................................................. 20
Algoritmo Três ......................................................................................................................................... 21
Algoritmo Quatro .................................................................................................................................... 21
Algoritmo Cinco ...................................................................................................................................... 22
ESTRUTURAS DE CONDIÇÃO (CASO) ............................................................................................................ 22
Algoritmo Seis ......................................................................................................................................... 22
Estrutura de Repetição ..................................................................................................... 24
ESTRUTURA DE REPETIÇÃO DETERMINADA ................................................................................................. 24
Algoritmo Sete ......................................................................................................................................... 24
Algoritmo Oito ......................................................................................................................................... 24
ESTRUTURA DE REPETIÇÃO INDETERMINADA COM VALIDAÇÃO INICIAL ..................................................... 25
Algoritmo Nove........................................................................................................................................ 25
ESTRUTURA DE REPETIÇÃO INDETERMINADA COM VALIDAÇÃO NO FINAL .................................................. 25
Algoritmo Dez.......................................................................................................................................... 26
Modularização ................................................................................................................... 29
VANTAGENS DA MODULARIZAÇÃO .............................................................................................................. 29
SUBALGORÍTMOS ......................................................................................................................................... 29
Definição de Subalgoritmos .................................................................................................................... 29
Funções ................................................................................................................................................... 30
Procedimentos ......................................................................................................................................... 31
Tipos Estruturados ............................................................................................................ 32
VARIÁVEIS COMPOSTAS HOMOGÊNEAS ....................................................................................................... 32
Variáveis Compostas Unidimensionais - VETORES ............................................................................... 32
VARIÁVEIS COMPOSTAS MULTIDIMENSIONAIS - MATRIZ .......................................................................... 33
VARIÁVEIS COMPOSTAS HETEROGÊNEAS .................................................................................................... 34
Registro ................................................................................................................................................... 35
Introdução
O objetivo principal da Lógica de Programação é demonstrar técnicas para resolução de
problemas e consequentemente automatização de tarefas.
De um modo geral esses conhecimentos serão de supra importância pois ajudarão no coti-
diano, desenvolvendo um raciocínio rápido.
Algoritmo
Algoritmo é a descrição de um conjunto de ações que, obedecidas, resultam numa sucessão
finita de passos, atingindo um objetivo esperado.
Início
1. Tirar o fone do gancho;
2. Ouvir o sinal de linha;
SEQUÊNCIAL
3. Introduzir o cartão;
4. Teclar o número desejado; DESVIO
5. Se der o sinal de chamar
Conversar;
Desligar;
Retirar o cartão;
6. Senão
Repetir;
Fim.
Dessa forma, vemos que, o que importa no algoritmo é o efeito das ações para a obtenção
do resultado esperado.
Temos três hastes. Uma das hastes serve de suporte para três discos de tamanhos diferen-
tes. Os discos menores são sempre colocados sobre os discos maiores. A figura abaixo
mostra uma possível situação inicial das hastes e discos.
Desejamos mover todos discos para outra haste, porém só podemos movimentar um disco
de cada vez e um disco maior nunca pode ser colocado sobre um disco de menor tamanho.
Os computadores podem ser usados de forma eficiente na solução de certos tipos de pro-
blemas. Os problemas que suportam tratamento por computador, em geral, envolvem gran-
des quantidades de dados ou são problemas de natureza complexa, exigindo a execução de
um grande número de passos para alcançar a solução. Basicamente são problemas na área
de processamento de dados e na área científica.
Define-se por Processamento de Dados qualquer atividade que, utilizando informações (ou
dados), efetua transformações para obter novas informações (ou dados) como resultado.
i) Entendimento do problema;
ii) Criação de uma seqüência de operações (ou ações) que, quando executadas, pro-
duzem a solução para o problema;
Programação
As diretrizes apresentadas abaixo são genéricas e podem ser usadas ou adaptadas na orga-
nização dos passos que comporão a solução de um determinado problema (ou seja, na cria-
ção de um algoritmo para atingir um objetivo determinado).
Exemplo:
Imagine o seguinte problema: Calcular a média final dos alunos da 6ª Série. Os alunos rea-
lizarão quatro provas: P1, P2, P3 e P4. A Média Final é calculada por:
(P1 + P2 + P3 + P4) / 4.
(P1 + P2 + P3 + P4)/4
Descrição de Algoritmos
A descrição de um algoritmo de forma clara e fácil de ser seguida ajuda no seu desenvol-
vimento, depuração (correção de erros) e a subsequente transformação do mesmo num
programa.
Descrição Narrativa
Sua utilização pode ser adotada, entretanto, para a apresentação de comentários sobre o
algoritmo (ou parte dele), esclarecendo ou realçando pontos específicos.
Fluxograma
Uso de ilustrações gráficas para transmitir informações (Ex. Gerais: mapas, diagramas ex-
plicativo para montagem de aparelhos, etc.).
Linguagem especial para expressão de algoritmos; funciona como uma "linguagem simpli-
ficada de programação", utilizando expressões concisas e pré-definidas para representar as
ações e o fluxo de execução. É uma descrição textual, estruturada e regida por regras que
descrevem os passos executados no algoritmo. Utiliza-se palavras-chaves, indentação, ape-
nas um passo por linha, normalmente usa-se um símbolo para indicar o final de um passo
(como por exemplo o ponto-e-virgula “;”), etc.
Duas representações para o algoritmo do problema das medias dos alunos da 6ª Série.
Após desenvolver um algoritmo ele deverá sempre ser testado. Este teste é chamado de
TESTE DE MESA, que significa, seguir as instruções do algoritmo de maneira precisa para
verificar se o procedimento utilizado está correto ou não.
Veja o exemplo:
Nota da Prova 1
Nota da Prova 2
Nota da Prova 3
Nota da Prova 4
Estruturas de Dados
Tais estruturas estão organizadas em tipos distintos de informações. Dentro do escopo das
estruturas de dados, definimos os termos CONSTANTE, VARIÁVEL e IDENTIFICA-
DOR.
Constantes
Exemplo: PI = 3.1416
Variáveis
Representam informações cujos valores são modificados ao longo do tempo (Ex. Genérico:
a idade de um indivíduo). Podemos definir variáveis também como um local onde um de-
terminado valor (de um dos tipos definidos) é armazenado. Assim, a variável é composta
de dois elementos básicos:
Identificadores
Exemplos:
UMNOMEMUITOCOMPRIDOEDIFICILDELER
UM_NOME_MUITO_COMPRIDO_E_FACIL_DE_LER
Declaração de Variáveis
REAL : parcela;
BOOLEANO : resposta;
Neste momento, as variáveis ainda não contém nenhum valor associado a elas.
Comando de Atribuição
Uma variável nunca é eternamente igual a um valor, seu conteúdo pode ser alterado a
qualquer momento. Portanto para atribuir valores a variáveis devemos usar o sinal de .
Exemplos:
A 2;
B 3;
C A + B;
Operadores Aritméticos
+ Adição
- Subtração
Multiplicação
/ Divisão
Operadores Relacionais
= Igual
<> Diferente
Operadores Lógicos
Atuam sobre expressões retornando sempre valores lógicos como Falso ou Verdadeiro.
Tabela Verdade
Expressões Lógicas
Exemplos:
De acordo com a necessidade, as expressões podem ser unidas pelos operadores lógicos.
Exemplos:
NÃO(3<>3) Verdadeiro
DIV Retorna o valor inteiro que resulta da divisão entre 2 números inteiros.
Exemplo:
13 2
13 DIV 2 = 6
1 6
13 MOD 2 = 1
M D
Bibliotecas OD
de Funções IV
Linearização de Expressões
Exemplo:
2
3 5 3 1
(2/3+(5-3))+1=
Tradicional Computacional
CONSTANTES
<<IDENTIFICADOR>> <<VALOR>>;
VARIAVEIS
<<TIPO>> : <<IDENTIFICADOR(ES)>>;
ÍNICIO
{inicialização de variáveis}
<<COMANDO1>>;
<<COMANDO2>>;
<<COMANDO3>>;
<<COMANDON>>;
FIM.
Estruturas Seqüenciais
Como pode ser analisado no tópico anterior, todo programa possui uma estrutura seqüenci-
al determinada por um ÍNICIO e FIM.
; Ponto e Vírgula ;
O sinal de ponto e vírgula “;” indica a existência de um próximo comando (passa para o
próximo).
Na estrutura ÍNICIO e no comando que antecede a estrutura FIM não se usa “;”.
Primeiro Algoritmo
PROGRAMA MEDIA_FINAL;
VARIAVEIS
CARACTERE : NOME;
INICIO
LEIA (NOME);
FIM.
Segundo Algoritmo
PROGRAMA AREA_CIRCUNFERENCIA;
CONSTANTE
PI 3.1416;
VARIAVEIS
INICIO
FIM.
Comentário {}
‘Aspas Simples’
Quando queremos exibir uma mensagem ela deve estar contida entre aspas simples, caso
contrário, o computador irá identificar a mensagem como Variável Indefinida.
Exemplo:
Estruturas de Decisão
Permite a escolha de um grupo de ações para serem executadas de acordo com a aceitação
ou não de certas condições. São testados parâmetros e, a depender de seus valores, toma-
mos um caminho ou outro.
As condições que são testadas num Algoritmo são do tipo lógica (booleana), portanto po-
dem ter somente dois resultados: Verdadeiro ou Falso. Assim, a seleção de ações pode se-
guir, no máximo, duas alternativas: uma se a condição for verdadeira e outra se a condição
testada for falsa.
Seleções Simples
Sintaxe Geral
Opção 1
Se <<condição>> Então
Fim se
Opção 2
Se <<condição>> Então
<<bloco de comandos 1>>;
senão
<<bloco de comandos 2 >>;
Fim se;
Senão
<<bloco de comandos3>>;
Fim se;
Fim se;
Algoritmo Três
PROGRAMA ACHA_MAIOR;
VARIAVEIS
INTEIRO : A, B;
INICIO
SE A>B ENTÃO
ESCREVA (A);
SENÃO
ESCREVA (B);
FIMSE;
FIM.
Algoritmo Quatro
PROGRAMA MEDIA_FINAL;
VARIAVEIS
REAL : NOTA1, NOTA2, NOTA3, NOTA4, MEDIA;
CARACTERE : NOME;
INICIO
LEIA (NOME);
LEIA (NOTA1, NOTA2, NOTA3, NOTA4);
MEDIA (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4;
SE MEDIA>=6 ENTÃO
ESCREVA („APROVADO‟);
SENÃO
ESCREVA („REPROVADO‟);
Algoritmo Cinco
PROGRAMA ACHA_MAIOR;
VARIAVEIS
INTEIRO : A, B, C;
INICIO
LEIA (A, B, C);
SE (A>B) E (A>C) ENTÃO
ESCREVA (A);
SENÃO
SE (B>A) E (B>C) ENTÃO
ESCREVA (B);
SENÃO
ESCREVA (C);
FIMSE;
FIMSE;
FIM.
Forma Geral:
FACA CASO
CASO <<CONDIÇÃO1>>
<<COMANDO1>>;
CASO <<CONDIÇÃON>>
<<COMANDO1>>;
OUTROS CASOS
<<COMANDO1>>;
FIM DE CASO
Algoritmo Seis
PROGRAMA ACHA_MAIOR;
VARIAVEIS
INTEIRO : A, B, C;
INICIO
LEIA (A, B, C);
FAÇA CASO
CASO (A>B) E (A>C)
ESCREVA (A);
CASO (B>A) E (B>C)
ESCREVA (B);
OUTROS CASOS
ESCREVA (C);
FIM DE CASO
FIM.
Estrutura de Repetição
Forma Geral:
Algoritmo Sete
Algoritmo Oito
PROGRAMA PARES;
VARIAVEIS INTEIRO : I,PAR;
INICIO
PAR 0;
PARA I 1 ATE 100 FACA
ESCREVER (PAR);
PAR PAR+2;
FIMPARA;
FIM.
É usada para repetir N vezes uma ou mais instruções. Tendo como vantagem o fato de não
ser necessário o conhecimento prévio do número de repetições.
Algoritmo Nove
Segue um algoritmo que calcule a soma dos salários dos funcionários de uma empresa. O
programa termina quando o usuário digitar um salário menor que 0.
PROGRAMA SOMA_SALARIOS;
VARIAVEIS REAL : SOMA, SALARIO;
INICIO
SOMA O;
SALARIO 1;
ENQUANTO SALARIO>=0 FAÇA
LEIA (SALARIO);
SOMA SOMA+SALARIO;
FIMENQUANTO;
ESCREVA (SOMA);
FIM.
Assim como a estrutura ENQUANTO É usada para repetir N vezes uma ou mais instru-
ções.
Sua validação é final fazendo com que a repetição seja executada pelo menos uma vez.
Forma Geral;
REPITA
<<COMANDO1>>;
<<COMANDON>>;
ATE <<CONDIÇÃO>>
Algoritmo Dez
Segue um algoritmo que calcule a soma dos salários dos funcionários de uma empresa. O
programa termina quando o usuário digitar um salário menor que 0.
PROGRAMA SOMA_SALARIOS;
VARIÁVEIS
REAL : SOMA, SALARIO;
INICIO
SOMA O;
REPITA
LEIA (SALARIO);
SOMA SOMA+SALARIO;
ATE SALARIO<0;
ESCREVA (SOMA);
FIM.
Ex: INVALIDA 0 ;
SE (dia<1 or dia>31) or (mes<1 or mes>12) ENTÃO
INVALIDA 1;
SENÃO
.....
FIMSE;
SE INVALIDA = 0 ENTÃO
ESCREVA („ Data válida „);
SENÃO
ESCREVA („ Data inválida „);
FIMSE;
Muitas vezes são usadas variáveis do tipo booleano como sinalizadores.
Modularização
A complexidade de um algoritmo está diretamente ligada à aplicação a que ele se destina.
Em geral, problemas mais complexos exigem algoritmos extensos. Quando nos deparamos
com tal situação muitas vezes o resultado é um amontoado de ações que não ficam muito
claras, além de que muitas vezes pode apresentar trechos com instruções repetidas em vá-
rios pontos do algoritmo.
Uma solução para este problema é dividir este algoritmo mais complexo em pequenos al-
goritmos conhecidos como: módulos ou subalgoritmos.
Vantagens da Modularização
Organização do código;
Reutilização de módulos;
Construção de Bibliotecas.
Subalgorítmos
São blocos de códigos (módulos) que podem ser chamados dentro de um programa.
Definição de Subalgoritmos
Cabeçalho, onde são definidos o nome e o tipo do subalgoritmo, bem como os seus
parâmetros e variáveis locais;
O nome de um subalgoritmo é o nome simbólico pelo qual ele é chamado por outro
algoritmo.
Parâmetros são canais por onde os dados são transferidos pelo algoritmo chamador
a um subalgoritmo, e vice-versa.
Funções
Exemplo: Construa um algoritmo que emprega uma função para calcular o valor de um
número elevado ao quadrado.
PROGRAMA EXEMPLO_QUAD
VARIAVEIS REAL : X, Y;
FUNÇÃO QUAD(W : REAL) : REAL
VARIAVEIS REAL : Z;
INÍCIO
Z ← W * W;
RETORNE Z;
FIM;
INÍCIO
ESCREVA “DIGITE UM NÚMERO”;
LEIA (X);
Y ← QUAD(X);
Procedimentos
PROGRAMA EXEMPLO_ESC_VETOR
VARIAVEIS VETOR : CONJUNTO[10] DE REAL
PROCEDIMENTO ESC_VETOR()
VARIAVEIS I : INTEIRO
INÍCIO
PARA I DE 1 ATÉ 10 FAÇA
ESCREVA (VETOR[I]);
FIM_PARA;
FIM;
INÍCIO
...
ESC_VETOR();
...
FIM.
Tipos Estruturados
São organizações de dados construídas a partir da composição dos tipos primitivos já exis-
tentes (caracter, inteiro, real, lógico). Esses novos tipos podem armazenar um conjunto de
dados conhecidos como variáveis compostas. As variáveis que armazenam esses tipos de
dados podem ser classificadas em: variáveis compostas homogêneas e variáveis compostas
heterogêneas.
São variáveis que armazenam vários elementos do mesmo tipo primitivo. Exemplo: alca-
téia (vários lobos), conjunto de números inteiros, e outros.
São variáveis que necessitam de apenas um índice para individualizar um elemento do con-
junto.
n – é o tamanho do vetor
Exemplo:
real: media[40];
media
Para acessar cada elemento da variável composta unidimensional (vetor) é necessário es-
pecificar o nome da variável seguido do número do elemento que se deseja acessar (deverá
estar entre colchetes). Este número tem o nome de índice.
LEIA (MEDIA[0]);
São variáveis que utilizam mais de um índice para acessar cada um de seus elementos. Po-
demos ter duas ou mais dimensões.
Exemplo:
Caractere: m[3][5];
LEIA (M[1][1]);
M[1][2] ← „X‟;
ESCREVA(M[1][3]);
Exemplo: Dada uma matriz de ordem 5x5, desenvolver um algoritmo que multiplique sua
diagonal principal por um valor dado.
...
INÍCIO
INTEIRO: MT[5][5];
INTEIRO:I,J,NUM;
LEIA (NUM);
PARA I DE 0 ATÉ 4 PASSO1 FAÇA
PARA J DE 0 ATÉ 4 PASSO1 FAÇA
LEIA(MT[I][J]);
SE I=J ENTÃO MT[I][J] * NUM;
ESCREVA(MT[I][J]);
FIMSE;
FIMPARA;
FIMPARA;
FIM.
Uma das estruturas de dados utilizadas para implementar este tipo de variável é o registro.
Registro
É uma forma de armazenamento de dados que permite o agrupamento de vários tipos pri-
mitivos (real, caracter, inteiro ou lógico) em uma mesma variável. Cada um dos dados ar-
mazenados no registro são conhecidos como campos do registro.
Imagine por exemplo as informações de um aluno, tais como: registro acadêmico, nome,
curso, valor da mensalidade e ano de ingresso. Todas essas informações agrupadas formam
um registro onde cada uma delas representa um campo do registro.
lista de variáveis: são os nomes dados as variáveis que irão armazenar o tipo
registro;
Exemplo1: .....
REAL : VALOR_MENS;
INTEIRO : ANO_INGRES;
FIM
REG_ALUNO : ALUNO;
O exemplo corresponde à definição de um tipo de dado chamado reg_aluno e a variável
aluno que armazena 5 informações dos tipos definidos no registro.
Para acessar cada uma das informações contidas no registro, isto é, para acessar cada cam-
po do registro, é necessário especificar o nome da variável seguido do caracter ponto ( . )
seguido do nome do campo, como mostra os exemplos abaixo.
....
LEIA (ALUNO.RA);
LEIA ( ALUNO.NOME);
ESCREVA(ALUNO.CURSO);
ALUNO.VALOR_MENS ←ALUNO.VALOR_MENS – 0.10 * ALUNO.VALOR_MENS;
....
Exemplo2:
LEIA(FUNC.NUM_IDENTIF);
LEIA(FUNC.CARGO);
LEIA (FUNC.SAL_HORA);
PARA X DE 0 ATÉ 4 FAÇA
LEIA (FUNC.HORA_TRAB[X]);
FIMPARA;
Podemos verificar com o exemplo acima que os campos do registro podem armazenar
qualquer