Académique Documents
Professionnel Documents
Culture Documents
PROFESSOR FONTES
Lógica de Programação
I Módulo
www.rubemsantos.com.br
Sumário
Introdução .................................................................................................................................... 4
Conceitos ..................................................................................................................................... 4
VisualG..................................................................................................................................... 12
Tipos de Dados ........................................................................................................................ 13
Tipo Numérico ......................................................................................................................... 13
Tipo Caractere ......................................................................................................................... 13
Tipo Lógico .............................................................................................................................. 13
Variáveis .................................................................................................................................. 14
Nomes de variáveis ................................................................................................................. 15
Constantes............................................................................................................................... 15
Declaração de variáveis ........................................................................................................... 15
................................................................................................... 16
Atribuição de valores a variáveis............................................................................................. 16
Operadores Aritméticos .......................................................................................................... 17
Expressões Aritméticas ........................................................................................................... 17
Entrada de dados .................................................................................................................... 18
Instrução leia ........................................................................................................................... 18
Introcução Escreva .................................................................................................................. 18
Operadores Relacionais........................................................................................................... 19
Operadores Lógicos ................................................................................................................. 20
Operador lógico E .................................................................................................................... 21
Operador lógico NÃO .............................................................................................................. 21
Estruturas de Controle de Decisão .............................................................................................. 22
Desvio Condicional Simples..................................................................................................... 22
se <condições> então <instruções> fimse .......................................................................... 22
Sintaxe ................................................................................................................................. 23
Desvio Condicional Composto................................................................................................. 25
Desvio Condicional Aninhado.............................................................................................. 29
Estruturas de Controle de Repetição .......................................................................................... 31
Estrutura Enquanto ................................................................................................................. 31
Sintaxe de enquanto: .......................................................................................................... 31
Estrutura repita ... até ......................................................................................................... 34
Sintaxe do Repita ... até ...................................................................................................... 34
Estrutura de Repetição para ................................................................................................... 36
Sintaxe de para .................................................................................................................... 36
Estruturas de Dados .................................................................................................................... 38
Arrays ...................................................................................................................................... 38
Declaração de vetores ............................................................................................................. 39
Inserir dados em um vetor .................................................................................................. 39
Transferir valor de variáveis ........................................................................................................ 42
Ordenação de Arrays................................................................................................................... 43
Criação do Array para ordenação ........................................................................................... 44
Código para ordenar o array ................................................................................................... 45
Pesquisa Binária em Vetores ....................................................................................................... 51
Introdução
A lógica de programação
Conceitos
Lógica de Programação
Como uma “receita de bolo”. Um algoritmo deve ter fim, poder se comunicar
com o mundo exterior, e executar suas instruções em um tempo finito. Cada
linha de um algoritmo deve executar uma única instrução.
Linguagens de Programação
Compilação
Método que traduz todo o código-fonte em um ou mais arquivos que podem ser
armazenados e executados quantas vezes se desejar, sem necessitar de nova
compilação.
Exemplo: Linguagem C.
Interpretação
Exemplo: Python.
Lógica de Programação
Exemplo:
Fazer café
1. Pegue um coador
3. Coloque-o no coador
7. Ferva água
Sequência lógica
Par que as tarefas possam ser realizadas com êxito, elas devem estar
ordenadas.
Refinamento de ações
Note que o algoritmo para fazer o café é funcional, porem há outras ações que
devem ser realizadas, e outras tantas que podem ser desdobradas em ações
menores. Essas ações são chamadas de não-primitivas. Já ações que não
podem mais ser desdobradas são chamadas de primitivas.
Exemplo de refinamento
Refinamento:
- Pegar a caneca
- Levar à pia
- Abrir a torneira
- Fechar a torneira
- Acender o fogão
Fluxograma
Diagrama de Chapin
Português Estruturado
Fluxograma
Estrutura de decisão
Conector de página
Entrada manual de dados (via teclado)
Exemplo de Fluxograma
Início
Calcular média
Fim
Figura 1. Fluxograma
Diagrama de Chapin
Português Estruturado
Exemplo
algoritmo Média
var
res: caractere
Inicio
senão
fimse
fimalgoritmo
VisualG
Software que nos permitirá testar diversos algoritmos em português
estruturado.
Figura 3. VisualG com o portugol média de nota
Tipos de Dados
Os dados são as informações a serem processadas por um computador. São divididos em três
tipos principais:
Numéricos
Caracteres
Lógicos
Tipo Numérico
O tipo numérico pode ser subdividido em dois tipos:
Tipo Caractere
Também conhecido como tipo literal
Tipo Lógico
São dados cujos valores somente podem assumir um de dois valores: verdadeiro (True) ou
falso (False).
Identificação (“nome”)
Endereço
Tipo
Tamanho
Valor (“conteúdo”)
Nomes de variáveis
Podem ter um ou mais caracteres;
Exemplos de variáveis:
Constantes
Uma constante é uma posição na memória cujo valor não muda ao longo da execução do
programa.
Declaração de variáveis
Para que uma variável possa ser usada em um programa, ela deve primeiro ser declarada, para
que seja reservado espaço na memória para armazenamento de seus dados.
NOME_VARIAVEL : TIPO_DADOS
As variáveis devem ser declaradas no início do programa (mas em alguns casos podem ser
declaradas em outras partes do programa)
Exemplo de declaração
algoritmo teste
var
idade: numérico
nome: literal
salario: numérico
fimalgoritmo
Atribuição de valores a variáveis
Para atribuir um valor a uma variável, use o comando de atribuição:
idade <- 33
Operadores Aritméticos
Expressões Aritméticas
X <- 2 * 3
Y <- 5 ^ 2
Z <- 4 % 2
W <- 8 / 4
K <- 7 \ 2
M <- W + X
N <- M - K
Figura 5. Operações
Entrada de dados
Instrução leia
Lê valores digitados no teclado e os armazena em variáveis na memória.
Exemplo:
Introdução Escreva
Escreva (“imprime”) dados na tela do computador. Esses dados podem ou não estarem
armazenados em variáveis
Exemplo:
Algoritmo SOMAR_DOIS_NÚMEROS
Var
x, y, z: inteiro
início
leia (x)
leia (y)
z <- x + y
escreva (z)
fimalgoritmo
Operadores Relacionais
Operador relacional é um operador que oferece uma relação entre dois outros objetos.
Figura 7. Operadores
Operadores Lógicos
Também conhecido como operadores booleanos.
Operador lógico E
Operador Lógico OU
A ordem de precedência dos operadores é (não) em primeiro, (e) em segundo e (ou) por
último.
Se o teste retorna verdadeiro, as instruções contidas entre os comandos então e fimse serão
executados; caso contrário, nada ocorre.
Imagem 11. Desvio de condicional Simples
Sintaxe
se (condição) então
fimse
Sintaxe
se (condição 1) então
instruções caso condição 1 retorne verdadeiro
senão
se (condição 2) então
instruções caso condição 2 retorne verdadeiro
senão
instruções caso condição 2 retornar falso
fimse
fimse
Estrutura Enquanto
Essa estrutura realiza um teste lógico no início do loop, e cada vez que o teste retorna o
valor verdadeiro, os comandos associados ao laço são executados. Quando o teste
retornar falso, o laço é encerrado e o processamento volta para o fluxo principal do
programa.
Sintaxe de enquanto:
enquanto (condições) faça
Fimenquanto
Algoritmo NUM_1_A_10
Var
num : inteiro
início
num <- 1
escreva (num)
fimenquanto
fim
Figura 22. Fluxograma do exemplo
até (condição)
Pseudocódigo
algoritmo N_1_a_10
var
num : inteiro
repita
escreva (num)
num <- num + 1
até (num >10)
fim
Sintaxe de para
Para variável de inicio até fim passo incremento faça instruções fimpara
Pseudocódigo do fluxograma
Algoritmo NUM_1_A_10
Var
num : inteiro
contador : inteiro
início
para contador de 1 até 10 passo 1 faça
escreva (contador)
fimpara
fim
Estruturas de Dados
Estruturas de dados são formas de armazenamento e organização de dados na memória de um
computador para que possam ser usados de forma mais eficiente. Podem ser empregadas em
diferentes tipos de aplicações, sendo em alguns casos bem especializadas e orientadas a
tarefas específicas. Algumas estruturas de dados sao de uso “geral”, sendo adequadas
inclusive para gerar outras estruturas de dados mais complexas. São tipos de dados
compostos, classificados em estruturas homogêneas e heterogêneas, de acordo com os tipos
de dados primitivos que elas contém.
Arrays
Um array é uma estrutura homogênea que mantém uma série de elementos de dados de
mesmo tipo. Pode-se acessar os elementos individuais por meio de uma posição de índice,
geralmente numérica. Possuem tamanho fixo.
Unidimensional : Vetor
Bidimensional : Matriz
Vetores
Arrays unidimensionas
Declaração de vetores
Nome_vetor: vetor[i..f] de Tipo_Dados
Onde:
Este código cria um vetor de 10 posições, com números de índice de 0 a 9, de nome “notas” e
que armazenará dados do tipo real.
Neste exemplo, o valor 7.5 foi atribuído à posição de índice 0 do vetor notas.
Exemplo:
Precisamos de um programa que permita entrar com 4 notas de um aluno, armazená-las
na memória, calcular a média e exibir essa média na tela. Opcionalmente pode exibir
também as notas usadas no cálculo da média.
algoritmo MÉDIAS
var
notas : vetor [0..3] de real
soma, media: real
inicio
soma <- 0
escreval (“Digite as quatro notas do aluno: ”)
para i de 0 ate 3 faça
leia (notas[i])
soma <- soma + notas[i]
fimpara
media <-soma/4
escreval (“A média é “, media)
fimalgoritmo
Passo 1
Passo 2
Passo 3
Passo 4
Var
x, y, aux : inteiro
inicio
leia (x)
leia (y)
aux <- y
y <- x
x <- aux
fimalgoritmo
Ordenação de Arrays
É possível ordenar os valores armazenados em um vetor (array), em ordem alfabética ou
numérica. Vejamos um vetor de 3 posições:
Figura 35. Ordenação de um Array
incio
leia (num)
fimpara
Figura 36. Preenchendo o array com os valores
fimse
fimpara
fimpara
Figura 37. Processo de ordenação do Array
escreval (vet[contadora])
fimpara
Figura 47. Ordenando valores com array