Logica
Logica
Sumário
1 Lógica de Programação............................................................................ 4
1.1 A importância da simulação:.............................................................. 5
1.2 Exemplo de uma seqüência de instruções: .......................................... 5
1.3 Algoritmo ........................................................................................ 5
1.3.1 Regras para construção do Algoritmo ........................................... 6
1.3.2 Exemplos: ................................................................................ 6
2 Programas ............................................................................................. 7
2.1 Estrutura do Material ........................................................................ 7
2.2 Exemplo de Código........................................................................... 7
2.3 Exercícios Iniciais - (linguagem natural) .............................................. 8
3 INFORMAÇÕES ....................................................................................... 9
3.1 Tipos de Informação:........................................................................ 9
3.2 Tipos de Dados: ............................................................................... 9
3.3 Variáveis:........................................................................................ 9
3.4 Constantes: ..................................................................................... 9
3.5 Operadores Aritméticos: ..................................................................10
3.6 Hierarquia das Operações Aritméticas ................................................10
3.6.1 Exemplo ..................................................................................10
3.7 Expressões Aritméticas: ...................................................................10
3.8 Exemplo de Algoritmo – Descrição Narrativa.......................................12
3.9 Teste de Mesa.................................................................................12
3.10 EXERCÍCIOS – Lista 2 ......................................................................13
4 Fluxogramas - Diagrama de Bloco ............................................................14
4.1 Simbologia .....................................................................................14
4.2 Exemplos: ......................................................................................14
4.3 Exercícios 3 - Fluxogramas ...............................................................16
5 Mais Sobre Operadores ...........................................................................18
5.1 Operadores Relacionais. ...................................................................18
5.2 Operadores Lógicos .........................................................................19
5.3 Exemplos .......................................................................................20
5.4 EXERCÍCIOS – Expressões com Operadores Lógicos e Relacionais .........21
6 Operações Lógicas .................................................................................22
6.1 EXERCÍCIOS ...................................................................................23
7 Estrutura de Decisão e Repetição .............................................................25
7.1 Comandos de Decisão ......................................................................25
7.1.1 SE ENTÃO / IF ... THEN .............................................................25
7.1.2 SE ENTÃO SENÃO / IF ... THEN ... ELSE ......................................26
7.1.3 CASO SELECIONE / SELECT ... CASE...........................................28
7.2 EXERCÍCIOS ...................................................................................30
Página 2/38
3/38
8 Comandos de Repetição..........................................................................32
8.1.1 Enquanto x, Processar (Do While ... Loop) ...................................32
8.1.2 Até que x, processar ... (Do Until ... Loop)...................................33
8.1.3 Processar ..., Enquanto x (Do ... Loop While) ...............................33
8.2 EXERCÍCIOS ...................................................................................34
9 Referências Bibliográficas........................................................................38
Página 3/38
4/38
1 Lógica de Programação
Estas notas de aulas têm por objetivo preparar o aluno para as futuras aulas
práticas de laboratório. Grande parte dos exemplos analisados em sala de aula e os
enunciados de exercícios constam neste material.
A lógica de programação é essencial para quem está iniciando na área de
informática desenvolvendo sistemas e programas de computador.
Através desta técnica podemos encadear os nossos pensamentos em uma ordem
lógica para atingir determinados objetivos.
Os pensamentos encadeados podem ser descritos numa seqüência lógica de
execução.
Em informática, uma instrução é a informação que indica ao computador a ação
que o mesmo deve executar. A seqüência de uma codificação de instruções é
chamada de linguagem de programação. Linguagens como (C, PASCAL, ALGOL,
COBOL, etc..) são chamadas de procedurais, devido ao fato das instruções serem
executadas de forma seqüencial, enquanto as linguagens, baseadas no conceito de
eventos como C#, VB.NET, Delphi.NET e Java, utilizam outra estratégia de
programação a qual chamamos de (POO – Programação Orientada a Objetos).
Logicamente torna-se trabalhoso trabalhar com dados de um computador bit-a-bit.
Como forma de manipular este fluxo de estados elétricos e estruturá-lo de forma a
permitir operações mais simplificadas e otimizadas sobre os bytes, surgiu o
conceito de programação.
As linguagens de programação são geralmente em dois níveis:
1. Linguagens de Baixo Nível: são linguagens de programação que tratam a
informação na linguagem de máquina.
2. Linguagens de Alto Nível: são linguagens de programação modeladas
quase como a linguagem comum humana, que quando compiladas são
convertidas para linguagem de máquina. Cada linguagem deste tipo possui
uma sintaxe própria, que deve ser respeitada e aprendida para que possa
ser corretamente processada por seu compilador.
Compilador é um programa que permite que determinada programação em uma
linguagem específica seja adaptada para linguagem de máquina.
No entanto, não é necessário que o programador aprenda todas as diversas
linguagens disponíveis no mercado. Cada linguagem é recomendada para
determinadas aplicações, assim como possuem suas sintaxes próprias, mas todas
são estruturadas logicamente. Com aprendizado de Lógica de Programação o
aluno entenderá os conceitos básicos da programação e poderá com menor ou
maior dificuldade, aprender a linguagem que quiser.
Página 4/38
5/38
1.3 Algoritmo
Página 5/38
6/38
mais complexos. Eles podem repetir passos (fazer iterações)
ou necessitar de decisões (tais como comparações ou lógica)
até que a tarefa seja completada. Um algoritmo
corretamente executado não irá resolver um problema se
estiver implementado incorretamente ou se não for
apropriado ao problema. É importante ressaltar que essas
tarefas devam ser claras, precisas e não redundantes.”
(Fonte: Wikipedia.org).
1.3.2 Exemplos:
Algoritmo – Exemplo 1
Algoritmo para chupar uma laranja:
1. Descascar a laranja;
2. Cortar ao meio;
3. Chupar a laranja;
4. Jogar a casca e o bagaço fora.
Algoritmo – Exemplo 2
Algoritmo para cálculo da média de duas notas.
1. Entre com o primeiro número A.
2. Entre com o segundo número B.
3. Calcule a média dos dois números A e B, primeiro somando e depois
dividindo por 2.
4. Mostre o resultado da média.
Página 6/38
7/38
2 Programas
Essa apostila foi estruturada exercícios com grau de dificuldade crescente e com os
respectivos comentários.
A solução de todos os algoritmos será trabalhada em sala de aula.
Ao todo serão em torno de 50 exercícios utilizando todas as técnicas
estruturadas e bem exemplificadas.
Página 7/38
8/38
Em Pacal Em C
1. Crie uma seqüência lógica para preparar um café. Não vale com cafeteira;
2. Crie uma seqüência lógica para escovar os dentes.
3. Crie uma seqüência lógica para somar três números e multiplicar o resultado
pelo primeiro dos três.
4. Crie uma seqüência lógica para soma de três valores.
5. Crie uma seqüência lógica para tomar um banho.
Página 8/38
9/38
3 INFORMAÇÕES
Antes de continuarmos a estruturação de algoritmos é importante que você
conheça alguns conceitos, como: Tipos de Informação, Tipos de Dados, Variáveis,
Constantes, Operadores Aritméticos, Expressões Aritméticas ou Fórmulas
Matemáticas.
3.3 Variáveis:
3.4 Constantes:
Página 9/38
10/38
Operador
Descrição
binário
= Atribuição
+ Soma
- Subtração
/ Divisão
- Sinal negativo
+ Sinal positivo
1 º - ( ) Parênteses
2 º - Exponenciação
3 º - Multiplicação, divisão (o que aparecer primeiro)
4 º + ou – (o que aparecer primeiro)
3.6.1 Exemplo
1 + 7 * 2 ** 2 –1 = 28
3 * (1 – 2) + 4 * 2 = 5
Página 10/38
11/38
Na seção anterior vimos que ALGORITMO é uma seqüência lógica de
instruções que podem ser executadas.
É importante ressaltar que qualquer tarefa que siga determinado padrão
pode ser descrita por um algoritmo, como por exemplo:
Onde temos:
ENTRADA:
São os dados de entrada do algoritmo.
PROCESSAMENTO:
São os procedimentos utilizados para chegar ao resultado final.
SAÍDA:
São os dados já processados.
Página 11/38
12/38
Página 12/38
13/38
3.10 EXERCÍCIOS – Lista 2
7) Faça um algoritmo para “Calcular o estoque médio de uma peça”, sendo que
ESTOQUEMÉDIO = (QUANTIDADE MÍNIMA + QUANTIDADE MÁXIMA) /2.
10) Teste os algoritmos anteriores com dados definidos por você. (Teste de Mesa)
Página 13/38
14/38
4.1 Simbologia
TERMINADOR
Entrada de Dados (Leitura)
DADOS
Processamento em geral.
Ex: cálculo da média.
PROCESSO
Estrutura de Decisão.
DECISÃO
Saída de Dados em Tela.
Mostra o resultado na tela.
DOCUMENTO
4.2 Exemplos:
Página 14/38
15/38
Página 15/38
16/38
INÍCIO
MEDIA:= (A+B)/2
MEDIA
FIM
Página 16/38
17/38
Página 17/38
18/38
Exemplo:
Tendo duas variáveis A = 8 e B = 6
Os resultados das expressões seriam:
Expressão Resultado
A == B FALSO
A <> B VERDADEIRO
A>B VERDADEIRO
A<B FALSO
A >= B VERDADEIRO
A <= B FALSO
Página 18/38
19/38
AND / E
Uma expressão AND (E) é verdadeira se todas as condições forem verdadeiras.
OR / OU
Uma expressão OR (OU) é verdadeira se pelo menos uma condição for verdadeira
NOT / NÃO
Uma expressão NOT (NÃO) inverte o valor da expressão ou condição, se verdadeira
inverte para falsa e vice-versa.
Página 19/38
20/38
A tabela abaixo mostra todos os valores possíveis criados pelos três operadores
lógicos (AND/E, OR/OU e NOT/NÃO)
1º Valor Operador 2º Valor Resultado
V E V V
V AND F F
F AND V F
F AND F F
V OR V V
V OR F V
F OR V V
F OR F F
V NOT F
F NOT V
5.3 Exemplos
Exemplo 1:
Seja A=5, B=3, C=2. Calcule o resultado da expressão lógica:
1) A + 7 > B * C
Sendo A = 5
Então 5 + 7 = 12
E3*2=6
Então a expressão é 12 > 6 Verdadeiro (V)
Exemplo 2:
Suponha que temos três variáveis A = 5, B = 8 e C =1
Os resultados das expressões seriam:
Expressão 1 Operador Operador em C Expressão 2 Resultado
A=B AND && B>C Falso
A <> B OR || B<C Verdadeiro
A>B NOT ! Verdadeiro
A<B AND && B>C Verdadeiro
A >= B OR || B=C Falso
A <= B NOT ! Falso
Página 20/38
21/38
17) Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo são
verdadeiras ou falsas.
a) (A+C) > B
b) B >= (A + 2)
c) C = (B –A)
d) (B + A) <= C
e) (C+A) > B
18) Sabendo que A=5, B=4 e C=3 e D=6, informe se as expressões abaixo são
verdadeiras ou falsas.
a) (A > C) AND (C <= D)
b) (A+B) > 10 OR (A+B) = (C+D)
c) (A>=C) AND (D >= C)
19) Sabendo-se que X=1, Y=2, informe se as expressões abaixo são verdadeiras ou
falsas.
a) X ^ 2 + Y > Y ^ 2
b) X + Y = Y ^2 -1
Página 21/38
22/38
6 Operações Lógicas
Exemplo
Como no exemplo do algoritmo “CHUPAR UMA BALA”. Imaginemos que algumas
pessoas não gostem de chupar bala de Morango, neste caso teremos que modificar
o algoritmo para:
“Chupar uma bala”.
· Pegar a bala
· A bala é de morango?
· Se sim, não chupe a bala
· Se não, continue com o algoritmo
· Retirar o papel
· Chupar a bala
· Jogar o papel no lixo
Exemplo: Algoritmo “Chupar Bala” utilizando diagrama de Blocos
Página 22/38
23/38
6.1 EXERCÍCIOS
22) Ler um número e verificar se ele é par ou ímpar. Quando for par armazenar
esse valor em P e quando for ímpar armazená-lo em I. Exibir P e I no final do
processamento.
23) Construa um diagrama de blocos para ler uma variável numérica N e imprimi-la
somente se a mesma for maior que 100, caso contrário imprimi-la com o valor zero
24) Tendo como dados de entrada a altura e o sexo de uma pessoa. Construa um
algoritmo que calcule seu peso ideal, utilizando as seguintes fórmulas:
Para homens: (72.7*h) - 58
Para mulheres: (62.1*h) - 44.7 (h = altura)
Página 23/38
24/38
Página 24/38
25/38
Página 25/38
26/38
Em Visual Basic
IF MEDIA >= 5 Then
Text1 = “APROVADO”
ENDIF
Em Linguagem C
if (media>=5)
printf(“Aprovado”);
Em diagrama
Página 26/38
27/38
Em Visual Basic
IF MEDIA >= 5 Then
Text1 = “APROVADO”
ELSE
Text1 = “REPROVADO”
ENDIF
Em Linguagem C
IF (MEDIA >= 5)
Printf( “APROVADO”);
ELSE
Printf(“REPROVADO”);
No exemplo acima está sendo executada uma condição que, se for verdadeira,
executa o comando “APROVADO”, caso contrário executa o segundo comando
“REPROVADO”. Podemos também dentro de uma mesma condição testar outras
condições. Como no exemplo abaixo:
Página 27/38
28/38
Em Visual Basic
IF MEDIA >= 5 Then
IF MEDIA >= 7.0 then
Text1 = “Aluno APROVADO”
ELSE
Text1 = “Aluno Necessita fazer outra Avaliação”
ENDIF
ELSE
Text1 = “Aluno REPROVADO”
ENDIF
Em Linguagem C
IF (MEDIA >= 5)
{
IF (MEDIA >= 7.0)
Printf(“Aluno APROVADO”);
ELSE
Printf(“Aluno Necessita fazer outra Avaliação”);
}
ELSE
Printf(“Aluno REPROVADO”);
Em diagrama:
Página 28/38
29/38
Página 29/38
30/38
Em Visual Basic:
TITULO = “”
OP = INPUTBOX(“DIGITE A OPÇÃO”)
SELECT CASE OP
CASE 1
TITULO = “OPÇÃO 1”
CASE 2
TITULO = “OPÇÃO 2”
CASE 3
TITULO = “OPÇÃO 3”
CASE 4
TITULO = “OPÇÃO 4”
CASE 5
TITULO = “OPÇÃO 5”
CASE ELSE
TITULO = “OPÇÃO ERRADA”
END SELECT
LABEL1.CAPTION = TITULO
7.2 EXERCÍCIOS
Página 30/38
31/38
· Caso contrário, imprima os valores lidos e seus respectivos quadrados.
29) Faça um diagrama de bloco que leia um número inteiro e mostre uma
mensagem indicando se este número é par ou ímpar, e se é positivo ou negativo.
Página 31/38
32/38
8 Comandos de Repetição
Página 32/38
33/38
8.1.2 Até que x, processar ... (Do Until ... Loop)
Neste caso, o bloco de operações será executado até que a condição seja
satisfeita, ou seja, somente executará os comandos enquanto a condição for falsa.
Página 33/38
34/38
Em Visual Basic
Nr = 0
Do
Nr = Nr + 1
Loop While Nr <= 100
Label1.Caption = Nr
8.2 EXERCÍCIOS
32) Faça um diagrama que dado um número pelo usuário, mostre se o mesmo é
múltiplo de 5, se é par ou ímpar, negativo ou positivo e se é primo ou não.
33) Faça um algoritmo que determine o maior entre N números. A condição de
parada é a entrada de um valor 0, ou seja, o algoritmo deve ficar calculando o
maior até que a entrada seja igual a 0 (ZERO).
35) Faça um algoritmo que conte de 1 a 100 e a cada múltiplo de 10 emita uma
mensagem: “Múltiplo de 10”.
36) Elabore um algoritmo que gera e escreve os números ímpares dos números
idos entre 100 e 200.
Página 34/38
35/38
38) Faça um algoritmo que dado um número pelo usuário, mostre se o mesmo é
múltiplo de 5, se é par ou ímpar, negativo ou positivo.
39) Faça um algoritmo que dado um número pelo usuário, mostre se o mesmo é
um número primo ou não.
40) Em um circo havia vários animais. Faça um algoritmo que leia a idade e a
espécie de cada animal existente nesse circo e ao final mostre qual a idade e
espécie mais velha.
O algoritmo deve solicitar se o usuário deseja continuar a execução. Quando o
usuário digitar “n” encerrará o programa exibindo o resultado.
41) Faça um programa que mostre o número de números ímpares (entre 1 e 168)
listando cada um na tela.
42) Em uma sala de reunião havia várias pessoas sentadas, sabendo-se que a
última pessoa se chamava João e era o único com 33 anos de idade. Faça um
algoritmo que leia o Nome, a Idade e o Sexo de cada pessoa na sala e mostre ao
final:
Quantas pessoas são do sexo masculino;
Quantas pessoas são do sexo feminino;
Quantas pessoas são menores de 21;
E a média de idade da sala.
44) Fazer um algoritmo que receba o peso da carga de um caminhão em KG, e seu
preço por arroba (15KG). Informe ao final qual o valor em R$ de mercadoria nesse
caminhão.
45) Fazer o fluxograma que peça ao usuário que digite um número qualquer. Caso
o número seja positivo, mostrar mensagem que o número é positivo. Caso negativo
mostrar mensagem que o número é negativo. O programa deverá repetir esta
operação até que o usuário digite o número zero.
Página 35/38
36/38
A) para que esses valores possam ser triângulos as somas dos dois lados
devem ser maior que a do outro lado.
B) O triângulo eqüilátero é um polígono com três lados iguais.
C) O triângulo isósceles: tem dois lados iguais.
D) o triângulo escaleno: tem três lados diferentes
Veja figura:
47) Faça um algoritmo que leia 2 valores numéricos e um símbolo. Caso o símbolo
seja um dos relacionados abaixo efetue a operação correspondente com os valores
e mostre o resultado. Atenção para a divisão por 0!
“+” operação de soma
“-” operação de subtração
“*” operação de multiplicação
“/” operação de divisão
A= B + 8; A= 3 + A;
B= B + 7 N (A % 2) S B= 2 + B + 5
C= B +5 > C= C + B + C
(B – 1)
A, B, C
FIM
Página 36/38
37/38
50) De lambuja: Você está dirigindo um ônibus da viação Garcia, origem de São
Paulo-SP e destino a Uberlândia-MG. Sabe-se que saíram de São Paulo, 27
passageiros, sendo que desses, 13 eram mulheres. Chegando a Campinas subiram
02 moças e 01 criança, em Limeira desceram 07 passageiros (02 mulheres), em
Ribeirão Preto subiram 01 homem e 01 mulher casada. Sabendo que todos esses
possuíam RG e com exceção da criança, podiam viajar sem acompanhante. Escreva
no retângulo abaixo o nome e a idade do motorista.
Galera. Qualquer erro na apostila me envie um e-mail.
[email protected]
Valeu.
Maromo
Página 37/38
38/38
9 Referências Bibliográficas
Página 38/38