Introducao A Logica de Programacao (Online)
Introducao A Logica de Programacao (Online)
Programação (online)
Cód.: TE 1669/0_EAD
Créditos
2
Todos os direitos autorais reservados. Este material de estudo não pode ser copiado, reproduzido, traduzido,
baixado ou convertido em qualquer outra forma eletrônica, digital ou impressa, ou legível por qualquer
meio, em parte ou no todo, sem a aprovação prévia, por escrito, da TechnoEdition Editora Ltda., estando
o contrafator sujeito a responder por crime de Violação de Direito Autoral, conforme o art.184 do Código
Penal Brasileiro, além de responder por Perdas e Danos. Todos os logotipos e marcas utilizados neste
material pertencem às suas respectivas empresas.
“As marcas registradas e os nomes comerciais citados nesta obra, mesmo que não sejam assim identificados,
pertencem aos seus respectivos proprietários nos termos das leis, convenções e diretrizes nacionais e internacionais.”
Edição nº 1 | 1669/0_EAD
abril/2014
Este material é uma nova obra derivada da seguinte obra original, produzida por
TechnoEdition Editora Ltda, em Jul/2013: Introdução à Lógica de Programação
Autoria: André Luiz de Vasconcelos
Nº de registro BN: 618781
Sumário
3
Apresentação....................................................................................................................................................... 06
Capítulo 4 - Fluxograma.................................................................................................................................. 61
4.1. Introdução.............................................................................................................62
4.2. Simbologia.............................................................................................................62
4.3. Criando fluxogramas.............................................................................................63
4.3.1. Estruturas básicas..................................................................................................64
4.4. Teste de Mesa........................................................................................................70
Teste seus conhecimentos............................................................................................................................ 71
Mãos à obra!......................................................................................................................................................... 77
Bem-vindo!
Como estudar?
Videoaulas sobre os assuntos que você precisa saber no módulo
introdutório de Lógica de Programação.
o estudar?
Parte teórica, com mais exemplos e detalhes para você que quer se
aprofundar no assunto da videoaula.
1.1.Lógica
Lógica é a maneira de raciocinar particular a um indivíduo ou a um grupo, gerando uma
sequência coerente, regular e necessária de acontecimentos ou métodos, com a finalidade de
obter uma solução prática e eficaz para um problema.
•• Tomar banho
•• Tomar café
•• Sair de casa
Como podemos observar, já acordamos pensando no que temos que fazer, portanto, já
acordamos utilizando a lógica e, se a lógica inicial não for a ideal, nós a modificamos para que
ela nos leve à melhor solução do problema. Por exemplo, se alguém já estiver tomando banho,
então, podemos tomar café antes para que não nos atrasemos para o trabalho.
Se sim:
- Tomar banho
- Vestir a roupa adequada para trabalhar
- Tomar café
Introdução à Lógica
9
•• Se não:
- Tomar café
- Tomar banho
- Vestir a roupa adequada para trabalhar
•• Sair de casa
Existem diversos tipos de exercícios e jogos que servem para desenvolver o raciocínio lógico.
Vamos começar com um exercício de lógica mais comum e depois focaremos a programação.
•• Exemplo
Vamos supor que exista uma caixa com 15 bolas, sendo 5 verdes, 5 amarelas e 5 azuis.
Quantas bolas devem ser retiradas da caixa, sem olhar, para termos certeza de que saíram 2
bolas de cor azul?
•• Resposta
- 5 bolas verdes
- 5 bolas amarelas
- 2 bolas azuis
Total: 12 bolas
•• Conclusão
Temos que ter certeza que saíram 2 bolas azuis, portanto consideramos a pior hipótese no
caso de retirar bolas aleatoriamente. Foram retiradas as 10 bolas entre verdes e amarelas e
depois saíram as bolas azuis.
Introdução à Lógica de Programação (online)
10
1.2.Programa
Programa é uma sequência lógica de instruções escritas em uma linguagem de programação,
para serem executadas passo a passo, com a finalidade de atingir um determinado objetivo.
As linguagens de alto nível são aquelas com a escrita mais próxima da linguagem humana.
Exemplos: Objective-C, C++, C#, Delphi, Java, VB, MATLAB e ASP.
1.3.Tradutores
Os tradutores foram criados para tornar mais fácil a interface entre o usuário e a máquina.
Como já vimos anteriormente, as linguagens são divididas em baixo e alto nível, cada uma
refletindo uma proximidade com a linguagem natural do usuário.
1.3.1. Tipos de tradutores
Existem três tipos básicos de tradutores: Montador, Interpretador e Compilador.
Os outros tradutores são mais complexos, pois necessitam fazer análises mais sofisticadas da
estrutura da linguagem para realizar a tradução.
O Compilador é um programa que traduz uma linguagem de programação de alto nível para
linguagem de máquina, gerando um código-objeto independente.
1.4.Tipos de Programação
O ponto de partida do processo de codificação é a montagem de uma tela de interface com
o usuário. Montamos uma tela arrastando controles para uma janela. Esses controles são
chamados de objetos.
Em design-time (tempo de projeto), definimos as características (propriedades) iniciais desses
objetos.
Realizamos tais tarefas na medida em que o usuário interage com a tela e seus objetos,
disparando eventos. Capturamos tais eventos para que nosso código possa ser executado,
por isso chamamos este estilo de programação orientada a eventos.
Na programação tradicional (programação procedural), toda a lógica é descrita em sequência
e executada nesta ordem. As ações do usuário são “engessadas”, já que a ordem não pode
ser alterada por ele.
Introdução à Lógica de Programação (online)
12
1.4.1. Ocorrências de eventos
Um evento consiste em um fato que possa influenciar na execução de um programa. Sem a
ocorrência de um evento, o programa que depende dele para ser executado ficaria em situação
de espera eternamente.
•• Evento de Mouse
Ocorre quando executamos qualquer tipo de ação com o mouse, como mover o mouse sobre
um objeto, pressionar um dos botões do mouse sobre um objeto, soltar um dos botões do
mouse, clicar (pressionar e soltar) com o botão esquerdo do mouse sobre um objeto ou aplicar
um duplo-clique com o botão esquerdo do mouse sobre um objeto.
•• Evento de teclado
Ocorre quando executamos qualquer tipo de ação com o teclado, como quando pressionamos
uma tecla quando o foco está sobre um objeto, quando soltamos uma tecla quando o foco
está sobre um objeto ou quando pressionamos e soltamos uma tecla quando o foco está
sobre um objeto.
•• Evento de clock
☐☐ a) 3 minutos
☐☐ b) 4 minutos
☐☐ c) 5 minutos
☐☐ d) 6 minutos
☐☐ a) Java
☐☐ b) COBOL
☐☐ c) Assembly
☐☐ d) C#
☐☐ e) Lua
Introdução à Lógica
17
☐☐ a) Montador
☐☐ b) Interpretador
☐☐ c) Compilador
☐☐ d) Assembly
2.1.Algoritmo
Algoritmo é a descrição sequencial ordenada dos passos que devem ser executados, de forma
lógica e clara, com a finalidade de facilitar a resolução de um problema.
Você viu anteriormente o passo a passo da rotina do início do dia de uma pessoa. Então, é
o algoritmo que ajuda a resolver o que fazer desde a hora de acordar até chegar ao local de
trabalho.
A seguir temos um algoritmo, com numeração nas linhas, de como fritar um ovo.
Detalhes: Um ovo, uma lata de óleo, um saleiro, um prato, uma colher e uma caixa de fósforos
estão ao lado do fogão, em cima de uma pia. Tem gás e a frigideira já está em cima de uma
boca do fogão.
Início
1. Acender o fogo
2. Colocar óleo na frigideira
3. O óleo está quente?
3.1. Se sim: “Próximo passo”
3.2. Se não: “Esperar o óleo esquentar” e
“Vá para o passo 3”
4. Quebrar o ovo
5. O ovo está com uma boa consistência?
5.1. Se sim: “Próximo passo”
5.2. Se não: “Vá para o passo 10”
6. Colocar o ovo na frigideira
7. Colocar uma pitada de sal
8. O ovo está frito?
8.1. Se sim: “Próximo passo”
8.2. Se não: “Esperar fritar” e
“Vá para o passo 8”
9. Pegar o ovo com a escumadeira e colocar em um prato
10. Desligar o fogo
Fim
Início
1. Abrir o porta-malas do carro
2. Tem estepe?
2.1. Se sim: Retirar o estepe
2.2. Se não: Vá para o passo 17
3. Tem ferramentas?
3.1. Se sim: Pegar as ferramentas
3.2. Se não: Vá para o passo 16
4. Desapertar os parafusos da roda
5. Já desapertou todos os parafusos?
5.1. Se sim: Vá para o passo 6
5.2. Se não: Vá para o passo 4
6. Levantar o carro com o macaco
7. Levantou o suficiente?
7.1. Se sim: Próximo passo
7.2. Se não: Vá para o passo 6
8. Retirar os parafusos
9. Retirar a roda
10. Colocar o estepe
11. Recolocar os parafusos
12. Abaixar o carro
13. Apertar os parafusos
14. Já apertou todos os parafusos?
14.1. Se sim: Vá para o passo 15
14.2. Se não: Vá para o passo 13
15. Guardar as ferramentas
16. Guardar o pneu
17. Fechar o porta-malas
Fim
Os algoritmos de ações cotidianas geralmente permitem que uma pessoa o execute mesmo
que ela nunca tenha feito tal coisa.
Uma receita de um bolo é um exemplo. Você pode fazer o bolo se seguir corretamente a receita.
Agora, se a receita não estiver detalhada o suficiente, já não se pode garantir o resultado.
2.2.Elementos de um algoritmo
Veremos, a seguir, os elementos que compõem um algoritmo.
2.2.1. Ação
•• Abrir o porta-malas do carro
•• Retirar os parafusos
•• Retirar a roda
•• Colocar o estepe
•• Recolocar os parafusos
•• Abaixar o carro
•• Guardar as ferramentas
•• Guardar o pneu
•• Fechar o porta-malas
Algoritmo
23
2.2.2. Decisão
Tem estepe?
Se sim: Retirar o estepe
Se não: Vá para o passo 17
Tem ferramentas?
Se sim: Pegar ferramentas
Se não: Vá para o passo 16
2.2.3. Laço ou Loop
Início
1. Digite um número de 1 a 6
2. O número digitado é 1?
2.1. Se sim: Abrir o programa de Inclusão
2.2. Se não: O número digitado é 2?
2.2.1. Se sim: Abrir o programa de Exclusão
2.2.2. Se não: O número digitado é 3?
2.2.2.1. Se sim: Abrir o programa de Consulta
2.2.2.2. Se não: O número digitado é 4?
2.2.2.2.1. Se sim: Abrir o programa de Alteração
2.2.2.2.2. Se não: O número digitado é 5?
2.2.2.2.2.1. Se sim: Abrir o programa de Impressão
2.2.2.2.2.2. Se não: O número digitado é 6?
2.2.2.2.2.2.1. Se sim: Fechar Menu
2.2.2.2.2.2.2. Se não: Exibir “Número Inválido” e
“Ir para o passo 1”
Fim
Introdução à Lógica de Programação (online)
26
Início
1. Digite um número de 1 a 6
2. Caso
2.1. Caso digitou 1: Abrir o programa de Inclusão
2.2. Caso digitou 2: Abrir o programa de Exclusão
2.3. Caso digitou 3: Abrir o programa de Consulta
2.4. Caso digitou 4: Abrir o programa de Alteração
2.5. Caso digitou 5: Abrir o programa de Impressão
2.6. Caso digitou 6: Fechar Menu
2.7. Caso contrário: Exibir “Número Inválido” e
“Ir para o passo 1”
3. Fim do Caso
Fim
Exemplo: Vamos supor que exista uma caixa com 30 bolas, sendo 10 verdes, 10 amarelas e
10 azuis. O objetivo é retirar bolas da caixa, sem olhar, até ter certeza de que saíram 3 bolas
de cor azul. Para facilitar utilizaremos contadores de bolas, que inicialmente têm o valor zero
(0), porque ainda nenhuma bola foi retirada.
Início
1. Enquanto o contador de bolas azuis for menor que 03
1.1 Retirar uma bola
1.2 Caso
1.2.1 Caso a bola seja verde: Somar 1 no contador de bolas verdes
1.2.2 Caso a bola seja amarela: Somar 1 no contador de bolas amarelas
1.2.3 Caso contrário: Somar 1 no contador de bolas azuis
1.3 Fim do Caso
2. Fim do Enquanto
3. Exibir a mensagem “Três bolas azuis foram retiradas da caixa”.
Fim
Note que, dentro do comando ENQUANTO, foram colocados os comandos de retirar uma
bola e o comando CASO que verifica a cor das bolas somando 1 no contador da respectiva
cor. Após o comando Caso contrário: Somar 1 no contador de bolas azuis, a execução volta
diretamente para o comando Enquanto o contador de bolas azuis for menor que 03.
Após esta verificação, caso o contador de bolas azuis não seja então menor que 3, a execução
vai para Exibir a mensagem Três bolas azuis foram retiradas da caixa. Caso contrário, a
execução entra novamente no loop e retira mais uma bola.
2
Teste seus conhecimentos
Algoritimo
Introdução à Lógica de Programação (online)
30
☐☐ a) SE
☐☐ b) CASO
☐☐ c) ENQUANTO
☐☐ d) SE NÃO
Exercício 1
Escreva um algoritmo para fazer uma ligação telefônica a partir de um telefone fixo que já
esteja devidamente ligado e conectado.
Variáveis, Operadores
e Funções
99
99
99
Utilização de variáveis;
Tipos de variáveis;
Nome de variáveis;
3
99 Declaração de variáveis;
99 Comando de atribuição;
99 Constantes;
99 Operadores aritméticos;
99 Operadores relacionais;
99 Operadores lógicos;
99 Função;
99 Concatenação de alfanuméricos.
Introdução à Lógica de Programação (online)
34
3.1.Introdução
Variáveis são áreas na memória, utilizadas em programação, que servem para armazenar
dados. O conteúdo de uma variável pode ser alterado, mas uma variável só pode conter um
dado por vez.
As áreas na memória são divisões na memória. O computador identifica cada divisão por meio
de um endereço no formato hexadecimal, ou seja, para facilitar a localização dos dados, as
variáveis são encontradas pelos endereços de memória, assim como uma casa é encontrada
pelo seu endereço. Utilizamos variáveis frequentemente em programação.
3.2.Utilizando variáveis
A seguir, apresentamos as situações em que utilizamos variáveis.
3.2.1. Consistência de condições
Com as variáveis podemos verificar a veracidade, ou não, de uma condição para assim obtermos
um ou outro resultado. Se, entre várias opções, desejamos escolher uma alternativa, podemos
comparar a escolha com uma variável previamente definida e fazer o programa executar uma
ou outra determinada sequência de comandos.
3.2.2. Controle de repetições
As variáveis de memória podem ser usadas para o controle de repetições. Se escrevermos uma
sequência de comandos dentro de um programa e desejarmos que esta sequência seja repetida
um certo número de vezes, podemos utilizar uma variável numérica e, a cada passagem,
aumentar ou diminuir seu valor, de modo que, quando atingido um determinado valor, a
sequência de comandos pare de ser executada.
Variáveis, Operadores e Funções
35
Quando trabalhamos com arquivos de banco de dados, podemos fazer comparações, trocas e
procuras de registros através das variáveis de memória.
As variáveis ficam armazenadas na memória RAM do computador, enquanto campos de um
registro pertencem ao banco de dados correspondente e, portanto, estão gravados no disco
(ou em outro meio de armazenamento) do computador.
3.3.Tipos de variáveis
Os tipos e valores dos conteúdos das variáveis podem variar de linguagem para linguagem.
Vejamos:
•• Numérica: Atribuímos somente números a elas, pois podemos usá-las para efetuar cálculos:
•• Lógica: Atribuímos somente valores verdadeiros ou falsos (V/F). São utilizadas para testes
lógicos;
3.4.Nomes de variáveis
Para atribuir um nome a uma variável, devemos observar alguns aspectos:
Certo Errado
X
Teste
ABC2 1ABC
J34CD 2Parcela
Texto3 3Fase
VAR1
VNome
•• Só é permitido o uso de underline (_) no nome. Espaço ou qualquer outro sinal é proibido;
Certo Errado
Salariofixo Tudo%
Nota_Final Qualquer$valor
Valor_1 Valor da Compra
•• Devemos, no entanto, cuidar para que as variáveis não tenham nomes de comandos,
funções ou campos de um banco de dados, pois isto pode causar problemas durante a
execução do programa.
Variáveis, Operadores e Funções
37
3.5.Declaração de variáveis
As variáveis precisam ser declaradas. Para declarar uma variável, devemos informar o nome
e o tipo da variável.
Cada um dos tipos de variáveis ocupa espaços diferentes de memória, de acordo com os
dados que irão armazenar. A definição do tipo de variável otimiza a utilização do espaço de
memória.
Normalmente a variável é declarada no início do programa para que possa ser utilizada no
programa inteiro, sendo assim, a declaramos no início do algoritmo.
3.6.Comando de atribuição
O comando de atribuição serve para armazenar um valor numa variável. As variáveis numéricas
que serão utilizadas no programa e não têm um valor inicial predefinido geralmente recebem
o valor zero (0).
A = 10
X=0
Valor = 0
Nota = 7,5
Nome_Aluno = “Leandro”
MensagemFinal = “Boa noite.”
Introdução à Lógica de Programação (online)
38
3.7.Constantes
Ao contrário das variáveis, as constantes possuem valor fixo e não sofrem alteração durante
o processamento.
3.8.Operadores aritméticos
Em programação, usamos os mesmos operadores aritméticos que são usados na matemática,
e com as mesmas prioridades.
OPERADOR
OPERAÇÃO PRIORIDADE
USADO
Radiciação // 1o
Exponenciação ^ ou ** 1o
Multiplicação * 2o
Divisão / 2o
Adição + 3o
Subtração - 3o
OPERADOR
OPERAÇÃO PRIORIDADE
USADO
Resto da divisão Mod 2o
Quociente da
Div 2o
divisão inteira
Normalmente, as operações são executadas da esquerda para a direita, a não ser que mudemos
sua ordem usando parênteses.
Variáveis, Operadores e Funções
39
Veja, a seguir, exemplos de como é uma fórmula na matemática tradicional e como ela fica
linearizada.
•• Exemplo 1
•• Exemplo 2
•• Exemplo 3
•• Exemplo 4
•• Exemplo 5
Introdução à Lógica de Programação (online)
40
Veja, a seguir, o valor de cada variável com a resolução das fórmulas matemáticas respeitando
a prioridade de execução dos operadores.
•• Exemplo 1
A = 2 * (5 + 3) / 2
A=2*8/2
A = 16 / 2
A=8
•• Exemplo 2
B=4+5^2–2*3
B = 4 + 25 – 2 * 3
B = 4 + 25 – 6
B = 29 – 6
B = 23
•• Exemplo 3
C = 25 // 2 – 125 // 3 + 5
C = 5 – 125 // 3 + 5
C=5–5+5
C=5
•• Exemplo 4
D = 3 * 4 + 5 – 125 / 5 ** 3
D = 3 * 4 + 5 – 125 / 125
D = 12 + 5 – 125 / 125
D = 12 + 5 – 1
D = 17 – 1
D = 16
Variáveis, Operadores e Funções
41
•• Exemplo 5
E = 3 * ((4 + 5) – (25/5)) ** 2
E = 3 * (9 – (25/5)) ** 2
E = 3 * (9 – 5) ** 2
E = 3 * 4 ** 2
E = 3 * 16
E = 48
•• Exemplo 6
F = 7 / 3 F = 2,3333...3
G = 7 DIV 3 G = 2
H = 7 MOD 3 H = 1
Portanto:
•• Exemplo 7
J = 1234 / 10 J = 123,4
K = 1234 / 100 K = 12,34
L = 1234 / 1000 L = 1,234
Q = 1234 MOD 10 Q = 4
R= 1234 MOD 100 R = 34
S= 1234 MOD 1000 S = 234
•• Exemplo 8
NRO = 457
UNIDADE = NRO MOD 10 UNIDADE = 7
DEZENA = NRO DIV 10 MOD 10 DEZENA = 5
CENTENA = NRO DIV 100 CENTENA = 4
Variáveis, Operadores e Funções
43
3.8.1. Contadores e acumuladores
•• Contador
Um contador é construído a partir de uma variável que recebe o valor dela mesma mais outro
valor.
•• Acumulador
Um acumulador é uma variável que recebe o valor dela mesma mais o valor de outra variável.
A linha que descreve um acumulador B de A é:
B=B+A
Nesse exemplo, a variável B está recebendo o valor dela mesma mais o valor da variável A. A
variável A representa o valor a ser somado, acumulado na variável B.
•• Acumulador de Conta
C=C+2*B
Nesse exemplo, a variável C está recebendo o valor dela mesma mais duas vezes o valor da
variável B.
Introdução à Lógica de Programação (online)
44
3.9.Operadores relacionais
Quando encontramos situações nas quais é necessário usar condições, adotamos os seguintes
operadores para estabelecer relações:
•• Exemplos
Num algoritmo:
IF Cargo = “Gerente”
Salario = Salario * 1.10
ELSE
Salario = Salario * 1.05
ENDIF
Variáveis, Operadores e Funções
45
3.10.Operadores lógicos
São usados quando existem duas ou mais condições em um teste lógico, e assim como os
operadores de comparação, retornam um resultado VERDADEIRO ou FALSO:
Operador lógico que inverte a lógica de uma expressão. Se ela for verdadeira, torna-se falsa,
e vice-versa.
Operador lógico em que a resposta da operação é verdadeira se pelo menos uma das condições
for verdadeira.
3.10.1. Tabela de decisão
Partindo de uma condição, podemos tomar uma ou outra decisão.
Exemplo:
Verdadeiro Verdadeiro
SE então
Falso Falso
SE então
Variáveis, Operadores e Funções
47
Verdadeiro Verdadeiro
SE então
Falso Falso
SE então
Analisamos, até agora, somente uma condição para que tomássemos uma ou outra decisão.
Verdadeiro Verdadeiro
SE E então
Introdução à Lógica de Programação (online)
48
Somente quando as duas primeiras proposições forem verdadeiras, a terceira também será.
estiver com
Se e for meio-dia então irei almoçar
fome
V + V = V
V + F = F
F + V = F
F + F = F
Usando o operador OU, basta que apenas uma das duas primeiras proposições seja verdadeira
para que a terceira também seja.
estiver com
Se ou for meio-dia então irei almoçar
fome
V + V = V
V + F = V
F + V = V
F + F = F
Usando o operador OU, basta que apenas uma das duas primeiras proposições seja verdadeira
para que a terceira também seja.
Podemos efetuar operações binárias com variáveis. Como exemplo, vamos supor que A =
0101 e B = 1111.
•• Exemplos:
Dadas as variáveis:
•• Numéricas: A = 10, B = 5, C = 2
•• Lógicas: X = FALSO, Y = VERDADEIRO
Introdução à Lógica de Programação (online)
50
a) A < B E C >= 2
FALSO E VERDADEIRO
Resposta: FALSO
b) A - 5 < B E C <= A / 2
FALSO E VERDADEIRO
Resposta: FALSO
c) A < B OU C < B
FALSO OU VERDADEIRO
Resposta: VERDADEIRO
f) C < A E A < C * 6
VERDADEIRO E VERDADEIRO
Resposta: VERDADEIRO
g) NÃO X E Y
NÃO FALSO E VERDADEIRO
VERDADEIRO E VERDADEIRO
Resposta: VERDADEIRO
h) NÃO Y OU X E C < A / B
NÃO VERDADEIRO OU FALSO E FALSO
FALSO OU FALSO E FALSO
FALSO OU FALSO
Resposta: FALSO
Variáveis, Operadores e Funções
51
i) Y OU X E C < A / B
VERDADEIRO OU FALSO E FALSO
VERDADEIRO OU FALSO
Resposta: VERDADEIRO
j) ( X OU Y ) E C < A / B
(FALSO OU VERDADEIRO) E FALSO
VERDADEIRO E FALSO
Resposta: FALSO
3.11.Função
Função é uma rotina que retorna um valor específico.
Exemplos:
A = 10
B = STR(A) B = “10”
C = STR(A * 5) C = “50”
D = STR(A - 6) D = “4”
E = STR(2000) E = “2000”
TOT = ”123”
N1 = VAL ( TOT ) N1 = 123
3.12.Concatenação de alfanuméricos
Os símbolos para concatenação de alfanuméricos são: & ou + .
Exemplo:
DIA = 19
MES = “abril”
ANO = 2013
CIDADE = “São Paulo”
A seguir, temos um exemplo de como fica a criação da variável DATA utilizando as variáveis
anteriores para resultar no texto São Paulo, 19 de abril de 2013:
DATA = CIDADE & “, ” & STR(DIA) & “ de ” & MES & “ de ” & STR(ANO)
3
Teste seus conhecimentos
Variáveis,
Operadores
e Funções
Introdução à Lógica de Programação (online)
54
A=5
B=7
C = 11
D=8
E=6
O valor de V1 na equação V1 = C + 4 + A * D / 2 é:
☐☐ a) 30
☐☐ b) 35
☐☐ c) 40
☐☐ d) 45
A=3
B=5
C=9
D=1
E=4
O valor de V2 na equação V2 = 30 / 15 + E ** D + 3 * C – D é:
☐☐ a) 63
☐☐ b) 29
☐☐ c) 44
☐☐ d) 32
A=2
B=3
C=4
D=5
E=6
O valor de V3 na equação V3 = 3 ** A – E – 3 * (D – (B + B) / B * 5) – 2 é:
☐☐ a) 1
☐☐ b) 2
☐☐ c) 3
☐☐ d) 4
4. Dadas as variáveis:
Numéricas: A = 10, B = 5, C = 2
Lógicas: X = FALSO, Y = VERDADEIRO
C>AEA<C*5
é:
☐☐ a) VERDADEIRO e VERDADEIRO
☐☐ b) FALSO e VERDADEIRO
☐☐ c) VERDADEIRO e FALSO
☐☐ d) FALSO e FALSO
☐☐ a) 201
☐☐ b) 209
☐☐ c) - 202
☐☐ d) - 201
Exercício 1
Escreva as fórmulas a seguir como linhas de programação, ou seja, deixe-as linearizadas:
Y = A + 3 x B2
!+!
!=
5 ! !
!
! 15
! = 5 ! 2 ! 5 +
3
Exercício 2
Crie um algoritmo que, enquanto números são digitados em uma variável de nome NRO,
realize as seguintes tarefas:
•• Ao final, exiba quantos números foram digitados e a soma dos valores digitados.
Fluxograma
4
99 Simbologia;
99 Criação de fluxogramas;
99 Estruturas básicas de fluxogramas;
99 Teste de mesa.
Introdução à Lógica de Programação (online)
62
4.1.Introdução
Fluxograma, ou Diagrama de Blocos, é a representação gráfica de um algoritmo, sendo
constituído de blocos funcionais que mostram o fluxo dos dados e as operações efetuadas
com eles.
4.2.Simbologia
O fluxograma utiliza símbolos que permitem a descrição da sequência dos passos a serem
executados de forma clara e objetiva. A tabela a seguir descreve a simbologia utilizada em
fluxogramas:
4.3.Criando fluxogramas
A seguir, temos um algoritmo e o fluxograma de como lavar as mãos com sabonete de
barra. Detalhes: Suponha que você já está em frente à pia e não falta nada para que possa
lavar as mãos:
INÍCIO
Abrir a torneira Molhar as mãos
Pegar o sabonete
Ensaboar as mãos
Colocar o sabonete na saboneteira
Enxaguar as mãos
Fechar a torneira
FIM
4.3.1. Estruturas básicas
Vejamos, a seguir, as estruturas básicas de um fluxograma.
•• Sequência
No exemplo anterior, de LAVAR AS MÃOS, houve uma ação após a outra, portanto chamamos
essa estrutura de SEQUÊNCIA.
No triângulo a seguir, a hipotenusa está representada pela variável a, um cateto pela variável
b que tem o valor 4 e o outro cateto pela variável c, que tem o valor 3.
HIPOTENUSA
Declara a, b, c, h numéricas
a=0
b=4
c=3
h=0
h = b^2 + c^2
a = h // 2 Raiz quadrada de h para descobrir o valor da hipotenusa
Exibir a
FIM
Fluxogramas
65
Note, no algoritmo, que foi executada uma sequência de ações. Veja, a seguir, como fica seu
fluxograma:
Introdução à Lógica de Programação (online)
66
a=0
b=4
c=3
h=0
h = b^2 + c^2
h = 4^2 + 3^2
h = 16 + 9
h = 25
a = 25 // 2
a=5
Exibir a ç Exibe o valor 5
•• Condição/Seleção
Esta estrutura permite representar uma condição e selecionar o fluxo a seguir dependendo do
resultado da condição, se a condição é verdadeira ou falsa, podendo assim executar diferentes
instruções. Para isso usaremos o comando SE e suas duas respostas, ENTÃO e SENÃO (IF,
THEN, ELSE). O ENTÃO é a saída verdadeira e o SENÃO é a saída falsa.
NÚMERO
Declara X numérica
X=0
Ler X
Se X MOD 2 = 0 ç Verifica se o resto da divisão de X por 2 é igual a zero
Então exibir mensagem “O número é par”
Senão exibir mensagem “O número é ímpar”
Fim Se
FIM
Fluxogramas
67
Note que depois do FIM SE só existe uma seta fluxo, ou seja, só existe um caminho a seguir.
O comando FIM SE é a união das setas dos fluxos que vêm do lado verdadeiro e do lado falso
da decisão.
Introdução à Lógica de Programação (online)
68
•• Repetição condicional
1. ATRAVESSAR
2. Observar o semáforo de pedestres
2.1. Verifique se está verde
2.1.1. Se sim: Atravessar a rua
2.1.2. Senão: Esperar um pouco
2.1.3. Vá para o passo 2
3. FIM
Note que o passo 2.1.3, Vá para o passo 2, é representado apenas pela seta de fluxo. A seta
terminou no caminho que leva ao passo 2, porém poderia ter entrado diretamente no símbolo
do passo 2.
Fluxogramas
69
1. SAUDACAO
2. Declara CONT numérica
3. CONT = 0
4. Se CONT = 3
4.1. Então Vá para o passo 5
4.2. Senão Exibir “Bom dia”
4.3. CONT = CONT + 1
4.4. Vá para o passo 4
5. FIM
Introdução à Lógica de Programação (online)
70
4.4.Teste de Mesa
Teste de Mesa é a simulação da execução de um algoritmo, programa ou fluxograma, sem
utilizar o computador, empregando apenas lápis e papel.
A simulação da execução do fluxo para descobrir qual o valor da hipotenusa, conforme vimos
anteriormente, representa o Teste de Mesa daquele fluxo.
Note no fluxo anterior que, inicialmente, o contador CONT recebeu o valor zero (0) e depois,
na execução, recebeu os valores 1, 2 e 3.
CONT = 0
CONT = CONT + 1 è CONT = 1
CONT = CONT + 1 è CONT = 2
CONT = CONT + 1 è CONT = 3
O resultado mostrado representa o Teste de Mesa exibindo todos os valores que a variável
CONT recebeu.
4
Teste seus conhecimentos
Fluxograma
Introdução à Lógica de Programação (online)
72
☐☐ a) Estrutura de decisão
☐☐ b) Estrutura de laço
☐☐ c) Entrada de dados
☐☐ d) Ação
☐☐ e) Exibir na tela
Fluxograma
73
INÍCIO INÍCIO
DECLARA A, B, C, D NUMÉRICAS
A=1
DECLARA
B = (A + 1) ** 3 * 3 + A A,
B,
C,
D
NUMÉRICAS
SE B <= 25
ENTÃO C = 3
SENÃO C = 4
A
=
1
A=3
FIM SE
D=B–C+A*2 B
=
(A
+
1)
**
3
*
3
+
A
EXIBIR A, B, C, D
FIM
B
<=
25
F
C
=
4
V
A
=
3
C = 3
D = B – C + A * 2
A, B, C, D
FIM
☐☐ a) 1, 32, 3, 22
☐☐ b) 1, 25, 3, 24
☐☐ c) 3, 25, 4, 22
☐☐ d) 3, 32, 4, 34
H = 8
V
SENÃO K = 9 V
L = 10 K
=
3
K
=
6
K
=
9
FIM SE
FIM SE L
=
4
L
=
7
L
=
10
M = H + K + L * (J – 3)
EXIBIR H, J, K, L, M H
=
8
FIM
M = H + K + L * (J – 3 )
FIM
☐☐ a) 8, 6, 9, 10, 47
☐☐ b) 3, 3, 3, 4, 6
☐☐ d) 8, 6, 6, 7, 35
INÍCIO
DECLARA A, B, C, D NUMÉRICAS.
A=3
B = 2 ** A
C=2
SE B <= 9
ENTÃO C = C + (3 * A)
SENÃO B = 2
C = 4 * A
FIM SE
D=B+C–A
EXIBIR A, B, C, D
FIM
☐☐ a) 3, 25, 12, 34
☐☐ b) 2, 3, 9, 8
☐☐ c) 3, 8, 11, 16
☐☐ d) 3, 8, 12, 8
☐☐ a) 3, 3, 27, 2, 7
☐☐ b) 2, 10, 8, 4, 12
☐☐ c) 2, 12, 10, 8, 16
☐☐ d) 2, 5, 9, 2, 8
Exercício 1
Faça o teste de mesa do fluxograma a seguir:
J = L MOD 2 + H
Laço ou loop e
repetição
5
99 Estruturas de repetição com comando FOR...NEXT (PARA...PRÓXIMO);
99 Estruturas de repetição com comando WHILE (ENQUANTO);
99 Estruturas de repetição com comando DO...WHILE (FAÇA...ENQUANTO).
Introdução à Lógica de Programação (online)
80
5.1.Introdução
Nesta aula, aprenderemos o conceito de laço e como escrever e utilizar os laços em programação.
Estruturas de laços e repetições são construídas para executar trechos de uma lógica várias
vezes. Um laço em programação significa um retorno a linhas de programa já executadas
para que sejam executadas novamente. Em inglês, laço significa loop, no sentido de retornar
dando uma volta, fazendo um círculo.
Os comandos descritos a seguir são utilizados para efetuar um laço dentro de uma lógica de
programação.
Na sintaxe do comando FOR, declaramos sua inicialização, sua condição e seu incremento.
A cada vez que o loop é executado, a variável do comando que é utilizada como contador
aumenta ou diminui de acordo com o incremento, até que a condição do comando não seja
mais satisfeita. Esse tipo de loop é uma repetição contável.
Laço ou loop e repetição
81
SAUDAÇÃO
Declara Y numérica
Para Y = 1 até 3 passo + 1
Exibir “Bom dia”
Próximo Y
FIM
Note que no fluxo da direita está sendo utilizado um símbolo de terminação com o comando
PRÓXIMO Y. Esse símbolo representa a seta do fluxo que retorna ao símbolo de preparação,
conforme mostra o fluxo da esquerda. Depois deste símbolo não há mais símbolos. As duas
estruturas são corretas.
Introdução à Lógica de Programação (online)
82
A seguir, temos um exemplo de algoritmo com o comando PARA que soma os números de 1
(um) até 10 (dez), exibindo cada número somado e o valor total da soma:
SOMAR 1 ATÉ 10
Declara SOMA, I numéricas
SOMA = 0
Para I = 1 até 10 passo + 1
SOMA = SOMA + I
Exibir I
Próximo I
Exibir SOMA
FIM
A seguir, temos um fluxograma com o comando PARA que soma os números de 1 (um) até
10 (dez), exibindo cada número somado e o valor total da soma:
Laço ou loop e repetição
83
Na sintaxe do comando WHILE, declaramos apenas sua condição. Sua inicialização e seu
incremento são ações executadas separadamente.
O loop com o comando WHILE é utilizado quando não conhecemos o número de iterações que
temos que realizar. Esta é a diferença do loop WHILE com o comando FOR.
SAUDAÇÃO
Declara Y numérica
Y=1
Enquanto Y <= 3
Exibir “Bom dia”
Y=Y+1
Fim Enquanto
FIM
Introdução à Lógica de Programação (online)
84
Note que no fluxo da direita está sendo utilizado um símbolo de terminação com o comando
FIM ENQUANTO no lugar das setas. As duas estruturas são corretas.
Laço ou loop e repetição
85
A seguir, temos um exemplo de algoritmo com o comando ENQUANTO que soma os números
de 1 (um) até 10 (dez), exibindo cada número somado e o valor total da soma:
SOMAR 1 ATÉ 10
Declara SOMA, I numéricas
SOMA = 0
I=1
Enquanto I <= 10
Exibir I
SOMA = SOMA + I
I=I+1
Fim Enquanto
Exibir SOMA
FIM
A seguir, temos um fluxograma com o comando ENQUANTO que soma os números de 1 (um)
até 10 (dez), exibindo cada número somado e o valor total da soma:
Introdução à Lógica de Programação (online)
86
Isso quer dizer que, mesmo quando a condição estabelecida pelo loop é falsa, quando utilizamos
DO...WHILE, o trecho de código será executado uma vez antes de ter sua iteração negada.
Assim como o comando WHILE, o DO...WHILE é utilizado quando não conhecemos o número
de iterações que iremos realizar.
A seguir, temos um exemplo de algoritmo que utiliza o comando DO...WHILE para somar
números até que o usuário digite o número zero (0):
SOMAR NÚMEROS
Declara SOMA, X numéricas
SOMA = 0
Faça:
Ler X
Se X != 0:
SOMA = SOMA + X
Enquanto X != 0
Exibir SOMA
FIM
Veja que, como já havíamos atribuído o valor zero à variável SOMA antes de iniciar o loop,
se utilizássemos a estrutura WHILE, o trecho de código não seria executado nenhuma vez.
Com o uso do comando DO WHILE, é possível forçar a execução do trecho de código e obter
resultados muito diferentes.
5
Teste seus conhecimentos
Laço ou loop e
repetição
Introdução à Lógica de Programação (online)
88
PROGRAMA1
INÍCIO
Declara SOMA, C numéricas
SOMA = 0
Para C = 1, C < = 5, C = C + 1
SOMA = SOMA + 2 * C
Próximo C
Exibir SOMA, C
FIM
☐☐ a) 30 e 5
☐☐ b) 12 e 4
☐☐ c) 20 e 5
☐☐ d) 30 e 6
PROGRAMA2
INÍCIO
Declara SOMA, C numéricas
SOMA = 0
Para C = 1, C < = 10, C = C + 2
SOMA = SOMA + C
Próximo C
Exibir SOMA, C
FIM
☐☐ a) 25 e 11
☐☐ b) 16 e 11
☐☐ c) 25 e 9
☐☐ d) 16 e 9
PROGRAMA3
INÍCIO
Declara SOMA, C numéricas
SOMA = 0
Para C = 1, C = 5, C = C + 1
SOMA = SOMA + C / 2
Próximo C
Exibir SOMA, C
FIM
☐☐ a) 5 e 6
☐☐ b) 5 e 5
☐☐ c) 7,5 e 5
☐☐ d) 7,5 e 6
PROGRAMA4
INÍCIO
Declara A, B numéricas
A = 17
B=0
Enquanto A maior ou igual a 3
A=A–3
B=B+1
Fim Enquanto
Exibir A, B
FIM
☐☐ a) 8 e 3
☐☐ b) 5 e 5
☐☐ c) 2 e 5
☐☐ d) 5 e 4
PROGRAMA5
INÍCIO
Declara A, B numéricas
A = 42
B=0
Enquanto A MOD 5 Diferente de 0
A=A–3
B=B+1
Fim Enquanto
Exibir A, B
FIM
☐☐ a) 33 e 3
☐☐ b) 36 e 3
☐☐ c) 30 e 4
☐☐ d) 36 e 4
Exercício 1
Escreva um algoritmo que, utilizando o comando PARA, calcule a soma nos N primeiros
números pares, e considerando que o valor de N deverá ser digitado pelo usuário.
Variáveis indexadas e
Laços encadeados
99 Vetores e matrizes;
99 Laços encadeados.
6
Introdução à Lógica de Programação (online)
98
6.1.Vetores e matrizes
Neste capítulo aprenderemos a utilizar as variáveis indexadas em programação.
Variáveis indexadas são um conjunto de variáveis que apresentam o mesmo nome, são do
mesmo tipo, mas são diferentes no valor de seu índice.
•• Matrizes: n dimensões.
Dados dois números inteiros positivos m e n, chama-se matriz m x n a tabela formada por m.n
números reais, dispostos em m linhas (horizontais) e n colunas (verticais).
Um elemento de uma tabela pode ser referenciado de duas formas: Implícita e Explícita.
Vejamos a seguinte tabela:
•• Referência implícita: Usamos o índice para nos referenciar a um certo elemento da tabela.
A seguir, temos um exemplo de referência implícita, considerando a tabela de dias da
semana mostrada anteriormente:
A = 2 è DIA[ A ] = Terça-feira
DIA[ 2 ] = Terça-feira
Introdução à Lógica de Programação (online)
100
•• Exemplo 1
•• Exemplo 2
Variáveis indexadas e Laços encadeados
101
•• Exemplo 3
Introdução à Lógica de Programação (online)
102
•• Exemplo 4
•• Algoritmo
INÍCIO
Declara GH[1:6], J numéricas
GH[1] = 1
GH[2] = 1
Para J = 3 até 6 passo + 1
GH[J] = GH[J – 1] + GH[J – 2]
Próximo J
FIM
•• Teste de Mesa
INÍCIO
Declara VET [ 1:10 ], NUM, L numéricas, MSG alfanumérica
MSG = “Não encontrou”
NUM = 0
Ler NUM
Para L = 1 até 10 passo + 1
Se VET [ L ] = NUM
Então MSG = “Número encontrado”
L = 10
Fim Se
Próximo L
Exibir MSG
FIM
Introdução à Lógica de Programação (online)
104
Variáveis indexadas e Laços encadeados
105
6.2.Laços encadeados
Laços ou Loops encadeados são laços executados dentro de outros laços. No caso do comando
PARA, o primeiro a ser criado é o último a ser fechado. O comando PRÓXIMO fecha o laço. O
último comando PARA aberto é o primeiro a ser fechado com o comando PRÓXIMO, ou seja,
o último loop criado é o primeiro a ser fechado. Vejamos um exemplo de laço encadeado a
seguir:
INÍCIO
Declara A, B numéricas
Para A = 1 até 9 passo + 3
Para B = 5 até 10 passo + 2
Exibir A, “ – “, B
Próximo B
Próximo A
Exibir A , “ – “, B
FIM
Introdução à Lógica de Programação (online)
106
Neste outro exemplo, temos um algoritmo que preenche a matriz conforme a figura utilizando
apenas um laço (loop):
LINHA
Declara C numérica, LIN[ 1:10,1:10 ] alfanumérica
Para C = 2 até 9 passo + 1
LIN[ 5, C ] = “X”
Próximo C
FIM
Variáveis indexadas e Laços encadeados
107
A seguir, temos um algoritmo que preenche a matriz conforme a figura utilizando laço (loop)
encadeado:
QUADRADO
Declara L, C numéricas, Q[ 1:10,1:10 ] alfanumérica
Para L = 2 até 8 passo + 1
Para C = 2 até 8 passo + 1
Q[ L, C ] = “X”
Próximo C
Próximo L
FIM
Variáveis indexadas e Laços encadeados
109
Vejamos o teste de mesa do último exemplo. Considerando que a variável L está sendo usada
para a posição da linha e a variável C está sendo usada para a posição da coluna, veja, na
tabela a seguir, que foi preenchida toda a matriz, desde a posição [2,2] até a posição [8,8].
A seguir, temos um algoritmo que preenche a matriz conforme a figura utilizando dois laços:
Introdução à Lógica de Programação (online)
110
TRIANGULO
Declara L, C, D numéricas, TR[ 1:10,1:10 ] alfanumérica
C=4
D=6
Para L = 4 até 6 passo + 1
TR[ L, C ] = “X”
TR[ L, D ] = “X”
C=C–1
D=D+1
Próximo L
Para C = 3 até 7 passo + 1
TR[ 6, C ] = “X”
Próximo C
TR[ 3, 5 ] = “X”
FIM
TRIANGULO
Variáveis indexadas e Laços encadeados
111
Note que, se somarmos os valores das variáveis L e C, o resultado é sempre 8 (oito), portanto C
= 8 – L. Após encontrarmos essa solução matemática, não será mais preciso utilizar a variável
C no primeiro loop.
L + C = 8 D - L = 2
4 + 4 = 8 6 - 4 = 2
5 + 3 = 8 7 - 5 = 2
6 + 2 = 8 8 - 6 = 2
TRIANGULO
Declara L, C numéricas, TR[ 1:10,1:10 ] alfanumérica
Para L = 4 até 6 passo + 1
TR[ L, 8 - L ] = “X”
TR[ L, 2 + L ] = “X”
Próximo L
Para C = 3 até 7 passo + 1
TR[ 6, C ] = “X”
Próximo C
TR[ 3, 5 ] = “X”
FIM
6
Teste seus conhecimentos
Variáveis indexadas
e laços encadeados
Introdução à Lógica de Programação (online)
114
☐☐ a) V, V, F, F
☐☐ b) F, V, F, V
☐☐ c) V, V, F, F
☐☐ d) V, F, F, V
☐☐ e) F, V, V, F
Variáveis indexadas e laços encadeados
115
PROGRAMA1
INÍCIO
DECLARA A, B, C NUMÉRICAS
A=0
PARA B = 1, B < = 4, B = B + 1
A=A+B
PARA C = 1, C < = 3, C = C + 1
B=B+1
PRÓXIMO C
PRÓXIMO B
EXIBIR A, B, C
FIM
☐☐ a) 1, 4, 4
☐☐ b) 1, 5, 4
☐☐ c) 2, 5, 4
☐☐ d) 2, 4, 3
PROGRAMA2
INÍCIO
DECLARA A, B, C NUMÉRICAS
A=5
PARA B = 2, B < = 4, B = B + 2
A=A–B
ENQUANTO A MAIOR QUE 2
C=B+1
A=A–1
FIM ENQUANTO
PRÓXIMO B
EXIBIR A, B, C
FIM
☐☐ a) 2, 4, 3
☐☐ b) 2, 6, 2
☐☐ c) -2, 6, 3
☐☐ d) -2, 4, 3
PROGRAMA3
INÍCIO
DECLARA A, B, C NUMÉRICAS
A=5
B=1
ENQUANTO A MAIOR QUE 2
A=A–B
PARA B = 2, B < = 3, B = B + 1
C=A +B
PRÓXIMO B
FIM ENQUANTO
EXIBIR A, B, C
FIM
☐☐ a) 0, 3, 2
☐☐ b) 4, 3, 2
☐☐ c) 4, 4, 3
☐☐ d) 0, 4, 3
PROGRAMA4
INÍCIO
DECLARA A, B, C NUMÉRICAS
A=5
B=1
ENQUANTO A MAIOR QUE 2
A=A–B
ENQUANTO A MAIOR QUE 2
C=A+B
A=A–B
FIM ENQUANTO
FIM ENQUANTO
EXIBIR A, B, C
FIM
☐☐ a) 3, 1, 1
☐☐ d) 3, 1, 2
☐☐ b) 2, 2, 4
☐☐ c) 2, 1, 4
PROGRAMA5
INÍCIO
DECLARA A, B NUMÉRICAS
DECLARA V[2] NUMÉRICA
A=2
PARA B = 0, B < = 2, B = B + 1
V[B] = A * B
EXIBIR V[B]
PRÓXIMO B
FIM
☐☐ a) 0, 2, 4
☐☐ b) 1, 4, 5
☐☐ c) 2, 4, 8
☐☐ d) 1, 2, 3
Exercício 1
Dada a matriz XADREZ [8X8], escreva um algoritmo usando laço encadeado para preencher a
matriz, conforme a figura a seguir:
Mãos à obra!
123
Exercício 2
Dada a matriz RETANGULO [14x11], escreva um algoritmo usando laço encadeado para
preencher a matriz, conforme a figura a seguir:
Introdução à Lógica de Programação (online)
124
Processamento
predefinido 7
99 Processamento predefinido;
99 Construção de processamento predefinido.
Introdução à Lógica de Programação (online)
126
7.1.Introdução
Processamento Predefinido é um programa que pode ser usado em outro programa. No
contexto de linguagens de programação, um subprograma, sub-rotina, função ou procedimento
consiste numa parte do programa que resolve um problema específico.
O conceito de função difere de procedimento porque ela retorna um valor, sendo que, em
algumas linguagens, esta distinção não existe.
Uma sub-rotina pode ser usada em várias partes do programa ou sistema e assim podemos ter
aproveitamento de uma determinada ação em diversos momentos diferentes, com a vantagem
do gerenciamento da lógica dessa ação estar centralizado. Esta sub-rotina também pode ser
reaproveitada em outros programas ou sistemas.
Concluindo, quando notamos que, em um sistema que vamos desenvolver, será necessário
usar várias vezes uma mesma rotina, criamos um programa só com ela e, quando necessário,
o programa principal chama essa rotina, que será executada e depois retornará ao lugar de
onde partiu com o resultado obtido e, então, o programa principal continua a partir da próxima
linha de programação.
Processamento predefinido
127
7.2.Construindo um processamento
predefinido
Para construir um processamento predefinido, considera-se um trecho de programa. Vejamos
um exemplo de um algoritmo para:
•• Trocar os conteúdos das 2 variáveis, ou seja, o conteúdo da variável A deve ser transferido
para a variável B, e o da variável B, para a variável A;
•• TROCAR(X,Y numéricas): Aqui está o nome da rotina e entre os parênteses está sendo
definido 2 variáveis numéricas (X,Y) e, portanto, quando algum programa principal chamar
essa rotina, deverá enviar 2 valores para que ela seja executada;
•• SAÍDA è Saída da rotina. Retorna a execução para a próxima linha do programa que a
chamou.
Para entendimento, vamos supor que os valores digitados pelo usuário foram1 e 2, ou seja,
A=1 e B=2.
•• TROCAR(A,C): Chama a rotina e faz com que X receba o valor de A, e Y receba o valor de C:
X=1
Y=0
Y=X
Y=1
•• TROCAR(B,A): Chama a rotina e faz com que X receba o valor de B, e Y receba o valor de A:
X=2
Y=1
Processamento predefinido
129
Y=X
Y=2
•• TROCAR(C,B): Chama a rotina e faz com que X receba o valor de C, e Y receba o valor de B:
X=1
Y=2
Y=X
Y=1
A: 0, 1 e 2
B: 0, 2 e 1
C: 0 e 1
PROGRAMA1
INÍCIO
DECLARA A, B, C NUMÉRICAS
A=1
B=2
C=0
SOMAR (A, B, C)
SOMAR (B, C, A)
SOMAR (C, A, B)
SOMAR (A, B, C)
SOMAR (B, C, A)
EXIBIR A, B, C
FIM
☐☐ a) 5, 8, 3
☐☐ b) 5, 8, 13
☐☐ c) 5, 2, 3
☐☐ d) 21, 8, 13
PROGRAMA2
INÍCIO
DECLARA A, B, C, D NUMÉRICAS
A = 10
B=5
C=7
D=1
TROCAR (A, B)
TROCAR (B, C)
TROCAR (C, D)
TROCAR (A, B)
TROCAR (B, C)
TROCAR (A, B)
EXIBIR A, B, C, D
FIM
☐☐ a) 1, 7, 1, 10
☐☐ b) 5, 1, 7, 10
☐☐ c) 1, 5, 7, 10
☐☐ d) 7, 1, 5, 10
PROGRAMA3
DECLARA A, B, C, D NUMÉRICAS
INÍCIO
A=5
B=2
C=0
D=0
SOMAR (A, B, C)
TROCAR (A, B)
SOMAR (B, C, D)
TROCAR (C, B)
TROCAR (A, D)
SOMAR (D, A, B)
EXIBIR A, B, C, D
FIM
☐☐ a) 2, 14, 7, 12
☐☐ b) 2, 14, 5, 12
☐☐ c) 5, 14, 7, 9
☐☐ d) 2, 12, 5, 9
PROGRAMA4
INÍCIO
DECLARA A, B, C NUMÉRICAS
A=0
B=2
C=4
MÉDIA (A, B, C)
SOMAR (B, C, A)
MÉDIA (B, C, A)
SOMAR (C, A, B)
MÉDIA (C, A, B)
MÉDIA (A, B, C)
SOMAR (C, A, B)
MÉDIA (C, A, B)
EXIBIR A, B, C
FIM
☐☐ a) 12, 14, 8
☐☐ b) 6, 14, 13
☐☐ c) 9, 17, 13
☐☐ d) 12, 17, 8
PROGRAMA5
INÍCIO
DECLARA A, B, C NUMÉRICAS
A=1
B=2
C=3
MÉDIA (B, C, A)
SOMAR (B, C, A)
MÉDIA (B, C, A)
TROCAR (A, B)
SOMAR (A, B, C)
MÉDIA (A, B, C)
TROCAR (A, B)
MÉDIA (C, A, B)
EXIBIR A, B, C
FIM
☐☐ a) 7, 5, 12
☐☐ b) 5, 7, 6
☐☐ c) 5, 4, 6
☐☐ d) 12, 7, 9
Exercício 1
Em um programa que verifica se um CÓDIGO DE CARGO consta de uma tabela com códigos
que vão de 1 a 100, crie o processamento predefinido CHECACODIGO( ) para validar o código
digitado. Se o código for válido, altere o valor da variável CHECK para que, no programa
adiante, seja feita a busca da descrição do cargo, e para que esta seja exibida. Senão, exiba
mensagem de erro e finalize.
VERIFICA_CARGO
DECLARA CODCARGO, VALIDAÇÃO NUMÉRICAS
VALIDAÇÃO = 0
EXIBIR “DIGITE O CÓDIGO DE UM CARGO”
LER CODCARGO
CHECACODIGO(CODCARGO, VALIDAÇÃO)
SE VALIDAÇÃO < > 0
BUSCAR A DESCRIÇÃO DO CARGO NA TABELA DE CARGOS
EXIBIR A DESCRIÇÃO DO CARGO
FIM SE
FIM
Banco de dados
99
99
Banco de dados;
Modelo de dados;
8
99 Criação de tabelas;
99 Relacionamento das tabelas;
99 Consistência dos campos;
99 Sistema de controle de cadastro.
Introdução à Lógica de Programação (online)
142
8.1.Introdução
O objetivo desta leitura é apresentar o conceito de banco de dados, objetos e de tipos de
programação.
8.2.Banco de dados
Um banco de dados é uma coleção de informações relacionadas a um determinado assunto
ou finalidade, como um cadastro de fornecedores, um cadastro de produtos no estoque de
uma empresa ou uma agenda.
Ao criar um banco de dados, é fundamental que haja um planejamento voltado para o objetivo
e forma de utilização desse banco, ou seja, é necessário considerar que tipos de informações
ele deve conter.
A estrutura de dados é uma área na qual definimos quais são os dados que queremos armazenar:
Exemplo:
Tabela: AGENDA
Coluna = Campo
Os bancos de dados que possuem tabelas relacionadas entre si são chamados de bancos de
dados relacionais.
•• A espécie de valores que desejamos armazenar no campo. Por exemplo, não é possível
armazenar texto em um campo com um tipo de dados DATA;
•• Os tipos de operações que desejamos efetuar com os valores do campo. Por exemplo, não
é possível somar valores em campo com tipo de dados TEXTO, mas em campos do tipo
NÚMERO é possível;
8.2.2. Tipos de dados
A seguir, descrevemos os tipos de dados mais utilizados nas linguagens de programação:
•• Texto: Texto ou combinações de textos e números, como endereços ou números que não
exijam cálculos, como números de telefone ou códigos postais;
•• Lógico (Booleano): Campos que irão conter somente um entre dois valores, como Sim/
Não, Verdadeiro/Falso ou Ativado/Desativado;
8.3.Modelo de dados
É o diagrama contendo as estruturas de dados e os relacionamentos.
8.3.1. Relacionamento
O relacionamento é um componente que define como duas tabelas se relacionam. As duas
tabelas que se deseja ligar devem, obrigatoriamente, ter um campo em comum. Este campo
recebe o nome de chave.
O campo CHAVE PRIMÁRIA determina de forma exclusiva cada registro armazenado. Não
existem dois registros com o mesmo dado em um campo CHAVE PRIMÁRIA de uma mesma
tabela.
8.3.2. Modelo Entidade-Relacionamento
O diagrama de um sistema que contém todas as suas tabelas e seus relacionamentos recebe o
nome de Modelo Entidade-Relacionamento. Esse diagrama deve ser desenvolvido enquanto
estamos fazendo a modelagem de dados, tarefa esta que consiste em definir e estruturar os
dados que serão manipulados e/ou gerados no sistema em questão. Esse modelo físico deve
apresentar todos os detalhes das tabelas e seus relacionamentos. Nas tabelas, definimos os
campos, seus tipos de dados e os índices.
Introdução à Lógica de Programação (online)
146
8.3.3. Índice
Definimos um campo como índice para auxiliar na ordenação de dados e para agilizar processos
de busca.
8.3.4. Regras de validação
Estas regras são usadas para garantir a consistência dos dados nos campos. Obrigatoriamente,
os dados que serão digitados em um determinado campo devem obedecer às regras
especificadas na consistência, ou seja, elas são uma expressão lógica para aceitação do dado.
8.3.5. Texto de validação
Trata-se da mensagem a ser exibida quando é quebrada a regra de validação.
8.4.Criação de tabelas
A seguir, veremos um exemplo de uma AGENDA.
PLANEJAMENTO
Tabela TABAGENDA
Campo chave primária = CODAGENDA
•• Um campo CHAVE PRIMÁRIA não pode ter valores duplicados, por isso neste caso não
podemos utilizar o campo NOME, pois pode haver mais de um registro com o mesmo
nome;
•• Note que na TABCIDADE só pode haver um registro com o mesmo código, já na TABAGENDA
pode haver muitos registros com o mesmo código de cidade. Relacionamento de um para
muitos.
Introdução à Lógica de Programação (online)
148
Tabela TABAGENDA
Campo chave primária = CODAGENDA
No sistema a seguir, considere que as consistências são efetuadas nas janelas das propriedades
dos campos, não sendo necessário expressá-las no algoritmo.
•• Objetivo
•• Processo
Tabela: TABAGENDA
8.7.1. Programa de inclusão
A seguir apresentamos o planejamento para o programa de inclusão de registros.
•• Objetivo
•• Processo
Para que os campos não sejam acessados diretamente, os dados a serem digitados nas telas
serão armazenados em variáveis e depois gravados num registro da tabela.
•• Algoritmo
1. INCLUSÃO
2. Declara VARCODAGENDA, VARCODCID numéricas e VARNOME, VARTELEFONE,
VARENDERECO alfanuméricas
3. VARCODAGENDA = 0
4. VARNOME = “ ”
5. VARTELEFONE = “ “
6. VARENDERECO = “ “
7. VARCODCID = 0
8. Abrir tabelas TABAGENDA e TABCIDADE
9. Abrir tela de inclusão de registros na tabela da TABAGENDA
10. Ler VARCODAGENDA
11. Buscar na tabela TABAGENDA no campo CODAGENDA = VARCODAGENDA
12. Encontrou o código?
12.1. Se sim: Exibir “Código já existente”
12.2. Vá para o passo 23
12.3. Se não: Próximo passo
13. Ler VARNOME, VARTELEFONE, VARENDERECO, VARCODCID
14. Buscar na tabela TABCIDADE no campo CODCIDADE = VARCODCID
15. Encontrou?
15.1. Se sim: Próximo passo
15.2. Se não: Exibir “Código inválido. Cidade não Existente.”
15.3. Vá para o passo 23
Introdução à Lógica de Programação (online)
152
16. *** Comentário: Fazer os campos receberem o conteúdo das variáveis e depois
gravar o registro
17. CODAGENDA = VARCODAGENDA
18. NOME = VARNOME
19. TELEFONE = VARTELEFONE
20. ENDERECO = VARENDERECO
21. CODCIDADEAGENDA = VARCODCID
22. Gravar o registro na tabela TABAGENDA
23. Fechar tela de inclusão de registros da TABAGENDA
24. Fechar tabelas TABAGENDA e TABCIDADE
25. SAÍDA
8.7.2. Programa de consulta
A seguir, apresentamos o planejamento para o programa de consulta de registros.
•• Objetivo
•• Processo
A busca será feita pelo nome e, caso exista mais de um contato com o nome procurado, exibir
na sequência um registro do outro. Após encontrar o registro na tabela, copiar os dados dos
campos para as variáveis. Os dados serão exibidos nas telas em variáveis. Exibir o nome da
cidade em vez do código.
•• Algoritmo
1. CONSULTA
2. Declara VARCODAGENDA numérica e VARNOME, VARTELEFONE, VARENDERECO,
VARNOMECIDADE alfanuméricas
3. VARCODAGENDA = 0
4. VARNOME = “ ”
5. VARTELEFONE = “ “
6. VARENDERECO = “ “
7. VARNOMECIDADE = “ “
8. Abrir tabelas TABAGENDA e TABCIDADE
9. Abrir tela de consulta de registros na tabela da TABAGENDA
10. Ler VARNOME
11. Ordenar a tabela TABAGENDA pelo campo NOME
12. Buscar na tabela TABAGENDA no campo NOME = VARNOME
13. Encontrou o nome?
13.1. Se sim: Próximo passo
13.2. Se não: Exibir “Contato não Existente.”
13.3. Vá para o passo 22
Introdução à Lógica de Programação (online)
154
8.7.3. Programa de alteração
A seguir, apresentamos o planejamento para o programa de alteração de registros.
•• Objetivo
•• Processo
A busca será feita pelo código do registro. Após encontrar o registro na tabela, copiar os
dados dos campos para as variáveis. Os dados serão exibidos nas telas em variáveis. Exibir o
código e o nome da cidade. Será permitida a alteração dos dados em algumas variáveis.
•• Algoritmo
1. ALTERAÇÃO
2. Declara VARCODAGENDA, VARCODCID numéricas e VARNOME, VARTELEFONE,
VARENDERECO, VARNOMECIDADE alfanuméricas
3. VARCODAGENDA = 0
4. VARNOME = “ ”
5. VARTELEFONE = “ “
6. VARENDERECO = “ “
7. VARCODCID = 0
8. VARNOMECIDADE = “ “
9. Abrir tabelas TABAGENDA e TABCIDADE
10. Abrir tela de alteração de registros da TABAGENDA
11. Ler VARCODAGENDA
12. Buscar na tabela TABAGENDA no campo CODAGENDA = VARCODAGENDA
13. Encontrou o código?
13.1. Se sim: Próximo passo
13.2. Se não: Exibir “Código não existente”
13.3. Vá para o passo 30
14. Buscar na tabela TABCIDADE no campo CODCIDADE = CODCIDADEAGENDA
15. VARCODAGENDA = CODAGENDA
Introdução à Lógica de Programação (online)
156
8.7.4. Programa de exclusão
A seguir apresentamos o planejamento para o programa de exclusão de registros.
•• Objetivo
•• Processo
A busca será feita pelo código do registro. Os dados serão exibidos nas telas em variáveis.
Após encontrar o registro na tabela, copiar os dados dos campos para as variáveis. Os dados
serão exibidos nas telas em variáveis. Exibir o código e o nome da cidade. Permitir a exclusão
do registro exibido.
•• Algoritmo
1. EXCLUSÃO
2. Declara VARCODAGENDA, VARCODCID numéricas e VARNOME, VARTELEFONE,
VARENDERECO, VARNOMECIDADE alfanuméricas
3. VARCODAGENDA = 0
4. VARNOME = “ ”
5. VARTELEFONE = “ “
6. VARENDERECO = “ “
7. VARCODCID = 0
8. VARNOMECIDADE = “ “
9. Abrir tabelas TABAGENDA e TABCIDADE
10. Abrir tela de exclusão de registros da TABAGENDA
11. Ler VARCODAGENDA
12. Buscar na tabela TABAGENDA no campo CODAGENDA = VARCODAGENDA
13. Encontrou o código?
13.1. Se sim: Próximo passo
13.2. Se não: Exibir “Código não existente”
13.3. Vá para o passo 24
14. Buscar na tabela TABCIDADE no campo CODCIDADE = CODCIDADEAGENDA
15. VARCODAGENDA = CODAGENDA
16. VARNOME = NOME
Introdução à Lógica de Programação (online)
158
8.7.5. Considerações finais
A tela do MENU PRINCIPAL DA AGENDA possui o botão TABELA DE CIDADES, que dá acesso
à tela do MENU PRINCIPAL DO CADASTRO DE CIDADES.
A tela do MENU PRINCIPAL DA AGENDA também possui o botão SAIR, que sai do sistema,
fechando a tela principal e o banco de dados DBAGENDA.
Nesses algoritmos, quando um código não é encontrado, a tela é fechada, retornando à tela do
menu principal da agenda. Também pode ser programado para que fosse solicitado novamente
um código.
8
Teste seus conhecimentos
Banco de dados
Introdução à Lógica de Programação (online)
160
☐☐ a) Agenda de contatos
☐☐ b) Porta-arquivo
☐☐ c) Livro
☐☐ d) Lista telefônica
1) Nome
2) Eletricista
3) 1322-8577
4) Telefone
5) Tomás
6) Profissão
7) Endereço
8) Salário
☐☐ a) C, C, R, R, R, C, C, R
☐☐ b) C, R, R, C, R, C, C, C
☐☐ c) C, C, R, C, R, R, C, C
☐☐ d) C, R, R, C, R, C, C, C
☐☐ a) V, F, V, F
☐☐ b) V, F, V, V
☐☐ c) F, F, V, V
☐☐ d) F, F, V, F
☐☐ a) Atributo
☐☐ b) Campo primário
☐☐ c) Chave primária
☐☐ d) Registro
Criação de exemplos:
Bruno Bove Barbosa, João Henrique Cunha Rangel e Ricardo Azzi Silva
Introdução à Lógica de Programação (online)
164
1.1.Introdução
Os conceitos de lógica e de programação abordados neste curso são aplicáveis a diversas
linguagens de programação, como Java, SQL, JavaScript, C#, PHP e Visual Basic for Applications
(VBA).
Neste apêndice apresentamos uma breve descrição dessas linguagens, seguida de exemplos
de declaração de variáveis, uso de operadores e de estruturas de decisão e repetição em
simples programas desenvolvidos com cada uma delas.
1.2.Java
Criada na década de 90 por profissionais da Sun Microsystems, a Java é uma das linguagens
de programação orientada a objetos mais utilizadas no mundo, popularizando-se no
desenvolvimento de aplicações para Web.
Pelo fato de utilizar boa parte da estrutura da linguagem C++ e conceitos de segurança da
linguagem SmallTalk, a Java é tida como uma linguagem de fácil aprendizado, relativamente
familiar aos programadores e bastante eficaz, que possibilita o desenvolvimento maciço de
aplicações, applets e sistemas embutidos.
Apêndice 1
165
1.2.1. Exemplos
A seguir, temos um exemplo de declaração de variáveis em um programa em Java. Note
que há linhas que se iniciam com barras duplas (//), e linhas entre /** e */. Utilizados para
comentar as linhas de código, esses caracteres são inseridos pelo programador para facilitar
o entendimento do código. Os comentários são ignorados pelo compilador ao executar o
programa.
Este outro exemplo demonstra o uso de um laço de repetição FOR em um programa feito em
Java:
1.3.SQL
Desenvolvida no início da década de 70, a SQL (Structure Query Language) é uma linguagem
de programação utilizada para manipulação de banco de dados. É caracterizada por sua
exigência sintática rígida e por basear-se no conceito de banco de dados relacional. Na década
de 80, a SQL foi adotada como linguagem padrão pela ANSI (American National Standard
Institute) e ISO (International Organization for Standardization).
A Microsoft desenvolveu uma implementação para a linguagem SQL padrão ANSI denominada
T-SQL (Transact-SQL), que oferece opções adicionais para os comandos SQL, além de novos
comandos que permitem o recurso de programação, como os de controle de fluxo, variáveis
de memória, entre outros.
1.3.1. Exemplos
O código a seguir exemplifica, em linguagem de banco de dados SQL, a declaração de tipos
de dados, a definição de valores para os tipos declarados e a exibição em tela desses tipos.
Os trechos precedidos por hífen duplo (--) são comentários, e serão ignorados ao executar o
script.
No exemplo a seguir, temos a criação de um banco de dados, a criação de uma tabela para o
banco de dados e a inserção de dados nessa tabela. Na sequência, temos o trecho de código
que realiza uma filtragem para exibição de dados do banco utilizando operadores lógicos
estudados durante o curso:
--Listando os dados
--O caractere * corresponde a todos as colunas da tabela que serão listadas.
SELECT * FROM tb_tablename
SELECT id FROM tb_tablename --irá listar apenas a coluna ID
--Filtrando uma lista utilizando operadores logicos. (=, <=. <, >, >=, !=)
SELECT * FROM tb_tablename WHERE id = 1 --Irá listar o registro com ID igual a
1
SELECT * FROM tb_tablename WHERE id != 1 --Irá listar o registro com ID difer-
ente que 1
SELECT * FROM tb_tablename WHERE id <= 1 --Irá listar o registro com ID menor
ou igual a 1
SELECT * FROM tb_tablename WHERE id < 1 --Irá listar o registro com ID menor
que 1
SELECT * FROM tb_tablename WHERE id >= 1 --Irá listar o registro com ID maior
ou igual a 1
SELECT * FROM tb_tablename WHERE id > 1 --Irá listar o registro com ID maior
que 1
Introdução à Lógica de Programação (online)
170
Por fim, temos um código que demonstra o uso de uma estrutura condicional IF em um
programa de banco dados com SQL:
1.4.JavaScript
Com possibilidade de execução em diversas plataformas, o JavaScript é uma linguagem de script
orientada a objeto considerada leve, concisa e de fácil integração com outras aplicações. Vale
dizer que JavaScript não possui relação qualquer com Java, sendo esta última uma linguagem
mais complexa. Tem grande utilidade do lado do cliente, em um sistema cliente-servidor,
como a Internet, em que é possível estender a linguagem básica por meio da disponibilização
de objetos de controle para os navegadores (browsers). Do lado do servidor, um dos possíveis
benefícios obtidos com a extensão básica da linguagem é a comunicação entre uma aplicação
e um banco de dados.
Apêndice 1
171
1.4.1. Exemplos
O exemplo de código de programa em JavaScript a seguir demonstra como é feita a declaração
de variáveis nessa linguagem:
Neste outro exemplo de programa em JavaScript, temos o uso de IF e de loop com FOR e
WHILE:
Introdução à Lógica de Programação (online)
172
1.5.C#
O C# é uma linguagem orientada a objeto utilizada para a criação de diversos tipos de programas,
como programas cliente-servidor, programas tradicionais do Windows, programas de banco
de dados, além de componentes distribuídos, XML Web Services, entre outros.
Em conjunto com o Visual Studio e outras ferramentas da plataforma .NET, mostra-se uma
linguagem de grande utilidade para desenvolver, de maneira fácil e eficiente, vários tipos de
programas.
1.5.1. Exemplos
O exemplo de código a seguir demonstra como é feita a declaração de variáveis em um
programa desenvolvido com a linguagem C#.
namespace ExemploDeLogica1
{
class Program
{
// TODO programa em C# é iniciado pela função Main()
static void Main(string[] args)
{
// A declaração de uma variavel no C# é feita definindo o tipo de
variavel e um nome:
bool verdadeiro_ou_falso; // bool -> 1 bit
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
// Adicionando a biblioteca de manipulação de arquivos para o exemplo com o
DO WHILE
using System.IO;
namespace ExemploDeLogica2
{
class Program
{
static void Main(string[] args)
{
// Para você escrever um texto comum numa aplicação básica:
Console.WriteLine(“Olá mundo”);
Se digitarmos Olá na tela anterior, a mensagem Bem vindos à Impacta! será exibida, e os
comandos de loop são executados, conforme mostrado a seguir:
Introdução à Lógica de Programação (online)
176
1.6.PHP
Destinado primordialmente ao desenvolvimento de scripts do lado do servidor, o PHP
(Hypertext Preprocessor) é uma linguagem de programação open source (código aberto)
muito popular na área de desenvolvimento Web, tanto para aplicações quanto para Websites.
Uma das vantagens das páginas em PHP é possuir HTML com código embutido, diferentemente
de linguagens como C e Perl, que exigem muitos comandos para a criação de HTML. Também
é utilizado para desenvolvimento de scripts de linha de comando e aplicações GUI (interface
gráfica do usuário) do lado cliente.
No exemplo de código a seguir, podemos ver como é feita a declaração de variáveis no contexto
da linguagem PHP:
Apêndice 1
177
Vejamos outro trecho de programa em PHP, no qual uma estrutura condicional é estabelecida:
Sua utilização permite criar macros para aperfeiçoar tarefas que são realizadas frequentemente,
fazendo com que várias ações sejam executadas em uma determinada sequência, por meio de
um único atalho de teclado, por exemplo.
Vejamos, a seguir, exemplos de utilização da linguagem VBA nos softwares Excel e Access.
Introdução à Lógica de Programação (online)
178
1.7.1. Excel
O Excel, um dos softwares de planilha eletrônica mais utilizados do mercado, permite o uso
dos recursos da linguagem VBA. Vejamos um exemplo de um programa em VBA no Excel que
calcula a média de quatro notas. Essas notas devem ser entre zero (0) e dez (10). Cada nota
lida é verificada individualmente se está entre zero (0) e dez (10).
Option Explicit
Sub CalculaMedia01()
A seguir, temos outro exemplo de um programa em VBA no Excel, em que cada nota lida tem
sua verificação efetuada através de um loop:
Sub CalculaMedia02()
‘Versão 2, com matriz e cada nota sendo lida e verificada dentro de um loop
Dim i As Byte
Dim Msg As String
Dim Tit As String
Dim Media As Single
Dim MediaFinal As Single
Dim Nota(3) As String
Tit = “Cálculo da Média “
‘Conceitos
‘Neste exemplo, se não houver erros de preenchimento das células, a rotina faz
o cálculo da média.
‘Ocorrendo um dos erros previstos, o operador é alertado sobre a natureza do
erro, o local onde
‘ele ocorreu é selecionado e a rotina é interrompida
For i = 0 To 3
Nota(i) = Cells(2, i + 1)
If Not IsNumeric(Nota(i)) Then
Msg = “A rotina aceita apenas números”
ElseIf Nota(i) < 0 Or Nota(i) > 10 Then
Msg = “A rotina aceita apenas números entre 0 e 10”
End If
‘Se a variável MSG tiver um conteúdo (uma das mensagens de erro) então
If Msg <> “” Then
‘O texto composto pelo conteúdo das variáveis MSG, TIT e pelas frases
indicadas abaixo
‘é apresentado ao operador
MsgBox Msg & vbLf & “Faça a correção e execute novamente a rotina”, ,
Tit & “ Erro em Nota “ & (i) + 1
‘A célula onde o erro foi identificado é selecionada
Cells(2, i + 1).Select
‘O processamaneto é encerrado
Exit Sub
End If
Next
Apêndice 1
181
1.7.2. Access
O Access, da Microsoft, é um software que permite construir, aplicar e distribuir banco de
dados. É possível realizar muitas tarefas utilizando a interface do usuário, mas em muitos
casos é necessária a programação. O Access também permite o uso dos recursos do VBA.
Vejamos um exemplo de um programa em VBA no Access. Ele calcula a média de quatro notas.
Essas notas devem ser entre zero (0) e dez (10). Cada nota lida é verificada individualmente se
está entre zero (0) e dez (10):
Sub CalculaMedia01()
‘Conceitos
‘A estrutura de decisão IF...ELSEIF...ELSE...ENDIF permite verificar os vári-
os
‘tipos de erros possíveis. O processamento sairá do laço quando
‘não houver erros (ELSE).
‘O laço Do...Loop é necessário caso os erros de digitação sejam repetitivos,
‘isto é, enquanto houver erros no preenchimento das variáveis o processamento
‘não sai do laço
Do While True
‘A variável NOTA1 é preenchida por digitação do operador, na caixa de en-
trada
Nota1 = InputBox(“Digite a Nota1”, Tit)
‘O conteúdo digitado é verificado em relação a sua natureza,
‘se não for de natureza numérico, então
If Not IsNumeric(Nota1) Then
‘A variável MSG é carregada com o texto indicado
Msg = “Digite apenas números”
‘O conteúdo digitado é verificado em relação ao seu valor,
‘se for menor do que zero ou maior do que 10, então
ElseIf Nota1 < 0 Or Nota1 > 10 Then
‘A variável MSG é carregada com o texto indicado
Msg = “Digite números entre 0 e 10”
‘O conteúdo digitado não é como indicado nas alternativas anteriores
Else
‘O processamento sai do laço e vai para a linha seguinte ao LOOP
Exit Do
End If
‘O conteúdo da variável MSG e da variável TIT são mostrados em tela
MsgBox Msg, , Tit
Loop
Do While True
Nota2 = InputBox(“Digite a Nota2”, Tit)
If Not IsNumeric(Nota1) Then
Msg = “Digite apenas números”
ElseIf Nota2 < 0 Or Nota2 > 10 Then
Msg = “Digite números entre 0 e 10”
Else
Exit Do
End If
Apêndice 1
183
Do While True
Nota3 = InputBox(“Digite a Nota3”, Tit)
If Not IsNumeric(Nota1) Then
Msg = “Digite apenas números”
ElseIf Nota3 < 0 Or Nota3 > 10 Then
Msg = “Digite números entre 0 e 10”
Else
Exit Do
End If
MsgBox Msg, , Tit
Loop
Do While True
Nota4 = InputBox(“Digite a Nota4”, Tit)
If Not IsNumeric(Nota4) Then
Msg = “Digite apenas números”
ElseIf Nota4 < 0 Or Nota4 > 10 Then
Msg = “Digite números entre 0 e 10”
Else
Exit Do
End If
MsgBox Msg, , Tit
Loop
A seguir, temos outro exemplo de um programa em VBA no Access, em que cada nota lida
tem sua verificação efetuada através de um loop:
Sub CalculaMedia02()
‘Versão 2, com matriz e cada nota sendo lida e verificada dentro de um loop
‘A linha DIM NOTA(3) AS STRING indica a declaração de uma matriz de uma dimen-
são
‘com 4 elementos numerados de zero a 3 e de natureza texto (como o nome das
variáveis)
Dim i As Byte
Dim Msg As String
Dim Tit As String
Dim Media As Single
Dim Nota(3) As String
Tit = “Cálculo da Média”
‘Laço do tipo FOR...NEXT.
‘Lê-se: Para i variando de 0 até 3, com incremento de 1
‘O processamento é automaticamente levado para fora do laço
‘quando a contagem de i for maior do que 3
For i = 0 To 3 Step 1
‘Laço do tipo teste de condição, isto é, faça enquanto a condição for ver-
dadeira
‘Neste caso o processamento é levado para fora do laço pelo comando EXIT
DO
Do While True
Nota(i) = InputBox(“Digite a Nota “ & i + 1, Tit)
If Not IsNumeric(Nota(i)) Then
Msg = “Digite apenas números”
ElseIf Nota(i) < 0 Or Nota(i) > 10 Then
Msg = “Digite números entre 0 e 10”
Else
Exit Do
End If
MsgBox Msg, , Tit
Loop
‘Quando i for igual a 3, o laço FOR...NEXT o processamento automaticamente
‘passará para a linha de comando após a clausula NEXT
Next
MediaFinal = (CSng(Nota(0)) + CSng(Nota(1)) + CSng(Nota(2)) +
CSng(Nota(3)))/4
Msg = “A média das notas é “ & MediaFinal
MsgBox Msg, , Tit
End Sub
Apêndice 2
Sistemas de numeração
Introdução à Lógica de Programação (online)
186
2.1.Bit e byte
BIT é a contração de BInary digiT, que significa dígito binário. Bit é a menor unidade de
informação do computador.
Um byte é uma estrutura fundamentada no código binário, ou seja, na base 2 (binário). Portanto,
quando queremos um quilo de bytes, temos que elevar a base 2 a algum número inteiro até
conseguir atingir a milhar. Como não há um número inteiro possível que atinja exatamente o
valor 1000, então pegamos o próximo número superior a 1000, que é o 1024, ou seja, 210 =
1024. O número 2 elevado à nona potência é inferior a 1000 (29 = 512).
Apêndice 2
187
2.3.Sistemas de numeração
Este ponto do nosso estudo é importante, pois a utilização de códigos em sistemas com bases
diferentes de 10 (decimal) é comum no ambiente de processamento de dados.
Nós estamos acostumados com o sistema decimal (base 10) de numeração, onde temos
dez números. Vai de 0 a 9 e depois aumentamos uma casa e repetimos os dois primeiros
números, que é o 10. Depois continuamos a repetir o número 1 e trocamos o 0 por 1 até 9,
que são os números 11, 12, 13, 14, 15, 16, 17, 18 e 19. Depois vem o 20 e assim por diante.
Com o sistema binário (base 2) é a mesma coisa, só que temos apenas dois números,
o zero (0) e o um (1). Vai de 0 a 1 e depois aumentamos uma casa e repetimos os
dois primeiros números, resultando no 10. Depois vem o número 11 e como não
tem outros algarismos, depois vem o 100, 101, 110, 111, 1000 e assim por diante.
Com o sistema hexadecimal (base 16) é a mesma coisa, só que temos 16 números. Vai de 0
a 9, de A a F e depois aumentamos uma casa e repetimos os dois primeiros números, que é o
10. Depois continuamos a repetir o número 1 e trocamos o 0 por 1 até 9, e depois de A a F,
que são os números 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E e 1F. Depois vem o
20 e assim por diante.
Introdução à Lógica de Programação (online)
188
2.3.1. Sistema Decimal
Para entender este sistema, basta decompor qualquer número inteiro em potência de base
dez. Vejamos um exemplo:
Logo, pode-se concluir que o número nada mais é que o conjunto de coeficientes das potências
de 10. É importante observar que, por ser base decimal, os dígitos disponíveis são: 0, 1, 2, 3,
4, 5, 6, 7, 8 e 9.
Apêndice 2
189
2.3.2. Sistema Binário
Neste sistema, a base é 2 e os dígitos disponíveis são 0 e 1.
Este sistema de numeração constitui o alfabeto interno dos computadores.
2.3.3. Sistema Hexadecimal
A base deste sistema é 16 e os dígitos disponíveis são: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D,
E e F. Este sistema simplifica a representação dos números, porque diminui a quantidade de
algarismos.
Vejamos um exemplo:
10.000.000.000(2)
= 1*(2)10+0*(2)9+0*(2)8+0*(2)7+0*(2)6+0*(2)5+0*(2)4+0*(2)3+0*(2)2+0*(2)1+0*(2)0
= 1*1024+ 0*512+ 0*256+ 0*128+ 0*64+ 0*32+ 0*16+ 0*8+ 0*4+ 0*2+ 0*1
= 1024 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0
= 1024(10)
Como se pode observar, cada um dos algarismos em binário foi multiplicado por 2 (base 2 =
binário) e depois, da direita para a esquerda, o número 2 foi elevado a partir de zero (0), sendo
acrescido de um (1).
Introdução à Lógica de Programação (online)
190
110110(2)
= 1*(2)5+1*(2)4+0*(2)3+1*(2)2+1*(2)1+0*(2)0
= 1*32+ 1*16+ 0*8+ 1*4+ 1*2+ 0*1
= 32 + 16 + 0 + 4 + 2 + 0
= 54(10)
Vejamos um exemplo:
Como se pode observar, cada um dos algarismos em hexadecimal foi multiplicado por 16
(base 16 = hexadecimal) e depois, da direita para a esquerda, o número 16 foi elevado a partir
de zero (0), sendo acrescido de um (1).
Note, na conversão acima, que o número A em hexadecimal foi substituído pelo número 10
em decimal para que a conta fosse feita. Foi utilizado a tabela de conversão dos sistemas de
numeração.
Apêndice 2
191
Vejamos um exemplo:
Caso o último grupo da esquerda não contenha quatro algarismos, basta complementar com
zeros. Um número em decimal corresponde a quatro algarismos em binário. Lembre-se de
que zeros à esquerda não são significativos.
O número 1111001111 em binário possui dez algarismos, portanto receberá dois zeros à
esquerda para que possamos separar em grupos de quatro algarismos:
Vejamos um exemplo:
E 7 5 A(16)
1110 0111 0101 1010(2)
1 B 2(16)
0001 1011 0010(2)
Apêndice 2
193
•• Exemplo 1
0*20 = 0*1
0*21 = 0*2
0*22 = 0*4
0*23 = 0*8
0*24 = 0*16
0*25 = 0*32
0*26 = 0*64
0*27 = 0*128
0*28 = 0*256
0*29 = 0*512 Tirando a Prova
1*210 = 1024
Total = 1024(10)
Introdução à Lógica de Programação (online)
194
•• Exemplo 2
•• Exemplo 3
•• Exemplo
3200(10) = C80(16)
Outra forma de fazer esta conversão é converter primeiro de decimal para binário e, depois,
converter de binário para hexadecimal utilizando a tabela de conversão dos sistemas de
numeração.
•• Exemplo 1
Usando o esquema seguinte, encontramos uma forma rápida para fazer a conversão. Quando
não houver o número a ser convertido na primeira linha, pegue o imediatamente menor, da
esquerda para a direita, e complemente na mesma ordem até chegar no valor desejado.
•• Exemplo 2
•• Exemplo 3
0100(2) = 4(10)
•• Exemplo 4