0% acharam este documento útil (0 voto)
15 visualizações38 páginas

Logica

A apostila de Lógica de Programação, elaborada pelo Prof. Paulo Sérgio de Moraes, aborda conceitos fundamentais para iniciantes em programação, incluindo a importância da simulação, construção de algoritmos e estrutura de programas. O material contém exercícios práticos e exemplos de códigos em diferentes linguagens, além de discutir tipos de dados, variáveis, constantes e operadores aritméticos. O objetivo é preparar os alunos para resolver problemas de forma lógica e estruturada, facilitando a compreensão de linguagens de programação.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
15 visualizações38 páginas

Logica

A apostila de Lógica de Programação, elaborada pelo Prof. Paulo Sérgio de Moraes, aborda conceitos fundamentais para iniciantes em programação, incluindo a importância da simulação, construção de algoritmos e estrutura de programas. O material contém exercícios práticos e exemplos de códigos em diferentes linguagens, além de discutir tipos de dados, variáveis, constantes e operadores aritméticos. O objetivo é preparar os alunos para resolver problemas de forma lógica e estruturada, facilitando a compreensão de linguagens de programação.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 38

Lógica de Programação

Base desse material:

Apostila de Lógica de Programação


Prof. Paulo Sérgio de Moraes (Unicamp)

Livro: Algoritmos (Lógica para o


desenvolvimento de programação de
computadores)
de José Augusto Manzano e
Jayr Figueiredo de Oliveira.

Apostila preparada com exercícios do


Professor Maromo
2/38

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.

Então o que é programar?


Programar é o ato de pensar utilizando-se algumas pré-definições.
Tentaremos direcionar como você deve canalizar seus pensamentos para resolver
os problemas propostos.
Programar nada mais é que, resolver os problemas da vida real de forma
“entendível” ao computador.

Página 4/38
5/38

1.1 A importância da simulação:


Por melhor que seja o conhecimento do Analista/Programador, este só poderá ter
certeza que sua estratégia foi bem sucedida após testar o programa num
computador.
Bons programadores têm poucas surpresas quando testam seus programas,
fazendo normalmente umas poucas correções para que o programa funcione de
forma adequada. No entanto, é comum ouvirmos dos programadores iniciantes
frase do tipo “Nunca conseguirei fazer um programa...”. Certamente não conseguirá
se a estratégia não for bem definida.
Imagine uma tarefa bem simples como preparar um “arroz”. Caso você não saiba
operar o fogão certamente não conseguirá acendê-lo. Se não tivesse visto colocar
o dobro de água em relação à quantidade de arroz, provalmente o arroz não sairia
no ponto. 
Essas aulas visam preparar o aluno a “pensar”, “aprender” e “resolver” de forma
racional um problema, transformando-o em programa de computador.

1.2 Exemplo de uma seqüência de instruções:


Se necessitarmos trocar o pneu de um carro, é necessáario realizar uma série de
passos para realizar com sucesso essa tarefa.
1. Afrouxar os parafusos;
2. Colocar o macaco em baixo do carro;
3. Elevar o carro com o macaco;
4. Terminar de retirar os parafusos;
5. Retirar o pneu;
6. Colocar o estepe no lugar;
7. Colocar os parafusos;
8. Descer o carro;
9. Terminar de apertar os parafusos;
Percebe-se que as instruções devem ser executadas em uma ordem seqüencial –
não se retira o pneu antes de afrouxar e retirar os parafusos, por exemplo.
Então é importante a execução, não de uma ação isolada, e sim do conjunto de
instruções na ordem correta para atingir um determinado resultado.

1.3 Algoritmo

“Um algoritmo é uma seqüência não ambígua de instruções


que é executada até que determinada condição se verifique.
Mais especificamente, em matemática, constitui o conjunto
de processos (e símbolos que os representam) para efetuar
um cálculo.
O conceito de algoritmo é freqüentemente ilustrado pelo
exemplo de uma receita, embora muitos algoritmos sejam

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.1 Regras para construção do Algoritmo

Para escrever um algoritmo precisamos descrever a seqüência de instruções,


de maneira simples e objetiva. Para isso utilizaremos algumas técnicas:
 Usar somente um verbo por frase;
 Imaginar que você está desenvolvendo um algoritmo para pessoas que não
trabalham com informática;
 Usar frases curtas e simples;
 Ser objetivo;
 Procurar usar palavras que não tenham sentido dúbio;
Essa forma inicial de representação de algoritmos é conhecida como descrição
narrativa.

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

Os programas de computadores nada mais são do que algoritmos escritos numa


linguagem de computador (Pascal, C, Cobol, Fortran, Visual Basic, Delphi, Java
entre outras) e que são interpretados e executados por uma máquina ou várias
máquinas (computadores).

Um programa de computador é uma coleção de instruções


que descrevem uma tarefa a ser realizada por um
computador. O termo pode ser uma referência ao código
fonte, escrito em alguma linguagem de programação, ou ao
arquivo que contém a forma executável deste código
fonte.(Wikipedia, 2008)
Notem que dada esta interpretação rigorosa, um programa é por natureza muito
específica e rígida em relação aos algoritmos da vida real.
Lembrando:
Programar nada mais é que, resolver os problemas da vida real de forma
“entendível” ao computador.

2.1 Estrutura do Material

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.

2.2 Exemplo de Código


Exemplo de um Código que Realiza a soma de dois números A, B e retornam o
resultado em C.

Página 7/38
8/38

Em Pacal Em C

Program Soma; #include <stdlib.h>


Var A, B, C: integer; #include <stdio.h>
Begin int main()
A:=1; {
B:=2; int a=1;
C:=A+B; int b=3;
Writeln(“O Resultado é’, C); int c=a+b;
End Sub printf("O resultado eh--> %d \n",c);
system("pause");
return(0);
}

2.3 Exercícios Iniciais - (linguagem natural)

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.1 Tipos de Informação:

O computador é uma ferramenta usada para solucionar problemas que


envolvam a manipulação de informações, sendo que essas informações podem ser
dados e instruções.

3.2 Tipos de Dados:

Os dados representam as informações processadas pelo computador. Alguns


tipos de dados: numéricos (inteiros e reais), dados caracteres ou literais, lógicos,
datas, entre outros.

3.3 Variáveis:

Todo o tipo de dado que sofre modificação ao longo do processo é chamado


de variável. A variável é o local de armazenamento na memória do computador.
Para representar essa posição física de memória, nós atribuímos nomes para as
variáveis. O nome de uma variável é usado para identificá-la. Existem algumas
regras para a utilização de variáveis, são elas:
1. Nomes devem ter um ou mais caracteres, não podendo iniciar com números,
o caractere inicial deve ser uma letra, ex:
o 1COD  inválido;
o COD1  válido.
2. Nomes não podem ter espaços, ou seja, serem compostos.
o Cód prod  inválido;
o Codprod  válido.
3. Palavras reservadas não podem ser utilizadas.
4. Não se podem utilizar caracteres diferentes de números e letras.

3.4 Constantes:

Toda a informação que é fixa. Por exemplo: NOVOSAL:= SAL * 1.3.


Aplicando 30% de aumento para o salário e atribuindo esse novo valor a variável
NOVOSAL que representa o novo salário.

Página 9/38
10/38

3.5 Operadores Aritméticos:

As variáveis e constantes poderão ser utilizadas para cálculos matemáticos.


Vejamos a tabela abaixo:

Operador
Descrição
binário

= Atribuição

+ Soma

- Subtração

/ Divisão

Resto (obtém o resto da divisão) Aplica-se na linguagem C, porém


% não é reconhecido em Pascal.

Operador unário Ação

- Sinal negativo

+ Sinal positivo

3.6 Hierarquia das Operações Aritméticas

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

3.7 Expressões Aritméticas:

Expressões definidas pelo relacionamento existentes entre variáveis e


constantes numéricas por meio do uso de operadores. Exemplo: TOTCOMPRA:=
QTD * PRECPROD. Total da compra recebe o valor do cálculo de quantidade * preço
unitário do produto.

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:

COMO PREPARAR UMA TIGELA DE PIPOCAS


ou então

CALCULAR O SALDO FINANCEIRO DE UM ESTOQUE

Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema


apresentado em três fases fundamentais.

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.

Analogia com o homem.

Página 11/38
12/38

3.8 Exemplo de Algoritmo – Descrição Narrativa


Imagine o seguinte problema: Calcular a média final dos alunos da 7ª Série. Os
alunos realizarão quatro provas: P1, P2, P3 e P4.
Onde:
Média Final =
P1 + P2 + P3 + P4
4
Para montar o algoritmo proposto, faremos três perguntas:
a) Quais são os dados de entrada?
R: Os dados de entrada são P1, P2, P3 e P4.
b) Qual será o processamento a ser utilizado?
R: O procedimento será somar todos os dados de entrada e dividi-los por 4
(quatro).
c) Quais serão os dados de saída?
R: O dado de saída será a média final.
Algoritmo
 Receba a nota da prova1
 Receba a nota de prova2
 Receba a nota de prova3
 Receba a nota da prova4
 Some todas as notas e divida o resultado por 4
 Mostre o resultado da divisão

3.9 Teste de Mesa


Após desenvolver um algoritmo ele deverá ser testado.
Este teste é chamado de TESTE DE MESA, que significa: seguir as instruções do
algoritmo, de maneira precisa, para verificar se o procedimento utilizado está
correto ou não.

Utilize a tabela abaixo:


P1 P2 P3 P4 MEDIA
10 8 6 4 7
10 10 10 10 10
8 9 6 5 7

Página 12/38
13/38
3.10 EXERCÍCIOS – Lista 2

6) Identifique os dados de entrada, processamento e saída no algoritmo abaixo:


 Receba código da peça
 Receba valor da peça
 Receba Quantidade de peças
 Calcule o valor total da peça (Quantidade * Valor da peça)
 Mostre o código da peça e seu valor total

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.

8) Faça um algoritmo (descrição narrativa) para “Calcular a idade aproximada em


anos de uma pessoa”, Sendo que IDADE = ANOATUAL – ANONASC.

9) Faça um algoritmo (descrição narrativa) para “Calcular a seguinte expressão:


X = X ^ 2 + 2” Onde X é informado como entrada.

10) Teste os algoritmos anteriores com dados definidos por você. (Teste de Mesa)

Página 13/38
14/38

4 Fluxogramas - Diagrama de Bloco

O que é um diagrama de bloco (fluxograma)?

Com o diagrama podemos definir uma seqüência de símbolos, com significado


bem definido, portanto, sua principal função é a de facilitar a visualização dos
passos de um processamento. É uma ferramenta indispensável para o profissional
que está envolvido diretamente com a programação.

4.1 Simbologia

Existem diversos símbolos em um diagrama de bloco. No decorrer do curso


apresentaremos os mais utilizados.
Veja no quadro abaixo alguns dos símbolos que iremos utilizar:

Indica início e fim de fluxograma

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:

Algoritmo – Exemplo 1 – Descrição Narrativa


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.

Página 14/38
15/38

Algoritmo – Exemplo 1 – Fluxograma

Algoritmo – Exemplo 2 – Descrição Narrativa


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 15/38
16/38

Algoritmo – Exemplo 2 – Fluxograma

INÍCIO

MEDIA:= (A+B)/2

MEDIA

FIM

4.3 Exercícios 3 - Fluxogramas


11) Construa um diagrama de blocos que:
 Leia a cotação do dólar
 Leia um valor em dólares
 Converta esse valor para Real
 Mostre o resultado

12) Desenvolva um diagrama que:


 Leia 4 (quatro) números
 Calcule o quadrado para cada um
 Somem todos e
 Mostre o resultado

Página 16/38
17/38

13) Construa um algoritmo para pagamento de comissão de vendedores de peças,


levando-se em consideração que sua comissão será de 5% do total da venda e que
você tem os seguintes dados:
 Identificação do vendedor
 Código da peça
 Preço unitário da peça
 Quantidade vendida

14) Construa um algoritmo que receba como entrada os seguintes dados:


 Peso de uma pessoa;
 Sua altura em centímetros;
E em seguida calcule o “Índice de Massa Corpórea (IMC)” através da seguinte
fórmula: PESO / ALT / ALT.

15) Faça o teste de mesa dos exercícios anteriores.

Página 17/38
18/38

5 Mais Sobre Operadores

Já vimos um pouco sobre os operadores matemáticos, porém além desses ainda


existem os:
 Operadores Relacionais.
 Operadores Lógicos.

5.1 Operadores Relacionais.


Os operadores relacionais são utilizados para comparar String de caracteres e
números. Os valores a serem comparados podem ser caracteres ou variáveis.
Estes operadores sempre retornam valores lógicos (verdadeiro ou falso/ True ou
False) Para estabelecer prioridades no que diz respeito a qual operação executar
primeiro, utilize os parênteses.
Os operadores relacionais são:

Descrição Símbolo (Em C)


Igual a ==
Diferente de !=
Maior que >
Menor que <
Maior ou igual a >=
Menor ou igual a <=

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

Figura 1 - Símbolo usado para comparação

5.2 Operadores Lógicos


Os operadores lógicos servem para combinar resultados de expressões, retornando
se o resultado final é verdadeiro ou falso.
Os operadores lógicos são:
E AND
OU OR
NÃO NOT

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

Nota do Maromo: Na linguagem C, os operadores são, respectivamente: AND


(&&), OR (!) e NOT (!).

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

5.4 EXERCÍCIOS – Expressões com Operadores Lógicos e


Relacionais

16) Tendo as variáveis SALARIO, IR e SALLIQ, e considerando os valores abaixo.


Informe se as expressões são verdadeiras ou falsas.
SALARIO IR SALLIQ EXPRESSÃO V ou F
100,00 0,00 100 (SALLIQ >= 100,00)
200,00 10,00 190,00 (SALLIQ < 190,00)
300,00 15,00 285,00 SALLIQ = SALARIO - IR

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

20) Sabendo-se que A=5, B=7, informe o valor da expressão abaixo, se é


verdadeiro ou falso.
NOT (A>B)

Página 21/38
22/38

6 Operações Lógicas

Operações Lógicas são utilizadas quando se torna necessário tomar decisões em um


diagrama de bloco.
Num diagrama de bloco, toda decisão terá sempre como resposta o resultado
VERDADEIRO ou FALSO.

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

21) Elabore um diagrama de blocos que leia um número. Se positivo armazene-o


em A, se for negativo, em B. No final mostrar o resultado

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)

25) Faça um teste de mesa do diagrama apresentado abaixo, de acordo com os


dados fornecidos:

Página 23/38
24/38

Página 24/38
25/38

7 Estrutura de Decisão e Repetição

Como vimos no capítulo anterior em “Operações Lógicas”, verificamos que na


maioria das vezes necessitamos tomar decisões no andamento do algoritmo. Essas
decisões interferem diretamente no andamento do programa. Trabalharemos com
dois tipos de estrutura. A estrutura de Decisão e a estrutura de Repetição

7.1 Comandos de Decisão

Os comandos de decisão ou desvio fazem parte das técnicas de programação


que conduzem a estruturas de programas que não são totalmente seqüenciais. Com
as instruções de SALTO ou DESVIO pode-se fazer com que o programa proceda de
uma ou outra maneira, de acordo com as decisões lógicas tomadas em função dos
dados ou resultados anteriores.

As principais estruturas de decisão são:


“Se Então”,
“Se então Senão” e
“Caso Selecione”

7.1.1 SE ENTÃO / IF ... THEN

A estrutura de decisão “SE/IF” normalmente vem acompanhada de um


comando, ou seja, se determinada condição for satisfeita pelo comando SE/IF então
execute determinado comando.
Imagine um algoritmo que determinado aluno somente estará aprovado se
sua média for maior ou igual a 5.0, veja no exemplo de algoritmo como ficaria.

SE MEDIA >= 5.0 ENTÃO ALUNO APROVADO


Em diagrama de blocos ficaria assim:

Página 25/38
26/38
Em Visual Basic
IF MEDIA >= 5 Then
Text1 = “APROVADO”
ENDIF

Em Linguagem C
if (media>=5)
printf(“Aprovado”);

7.1.2 SE ENTÃO SENÃO / IF ... THEN ... ELSE

A estrutura de decisão “SE/ENTÃO/SENÃO”, funciona exatamente como a


estrutura “SE”, com apenas uma diferença, em “SE” somente podemos executar
comandos caso a condição seja verdadeira, diferente de “SE/SENÃO” pois sempre
um comando será executado independente da condição, ou seja, caso a condição
seja “verdadeira” o comando da condição será executado, caso contrário o
comando da condição “falsa” será executado

Em algoritmo ficaria assim:


SE MÉDIA >= 5.0 ENTÃO
ALUNO APROVADO
SENÃO
ALUNO REPROVADO

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”);

7.1.3 CASO SELECIONE / SELECT ... CASE

A estrutura de decisão CASO/SELECIONE é utilizada para testar, na condição,


uma única expressão, que produz um resultado, ou, então, o valor de uma variável,
em que está armazenado um determinado conteúdo. Compara-se, então, o
resultado obtido no teste com os valores fornecidos em cada cláusula “Caso”.

No exemplo do diagrama de blocos abaixo, é recebido uma variável “Op” e


testado seu conteúdo, caso uma das condições seja satisfeita, é atribuído para a
variável Titulo a String “Opção X”, caso contrário é atribuído a string “Opção
Errada”.

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

26) João Papo-de-pescador, homem de bem, comprou um microcomputador para


controlar o rendimento diário de seu trabalho. Toda vez que ele traz um peso de
peixes maior que o estabelecido pelo regulamento de pesca do estado de São Paulo
(50 quilos) deve pagar uma multa de R$ 4,00 por quilo excedente.
Tarefa: João precisa que você faça um diagrama de blocos que leia a variável P
(peso de peixes) e verifique se há excesso. Se houver, gravar na variável E
(Excesso) e na variável M o valor da multa que João deverá pagar. Caso contrário
mostrar tais variáveis com o conteúdo ZERO.

27) Elabore um diagrama de bloco que leia as variáveis C e N, respectivamente


código e número de horas trabalhadas de um operário. E calcule o salário sabendo-
se que ele ganha R$ 10,00 por hora. Quando o número de horas excederem a 50
calcule o excesso de pagamento armazenando-o na variável E, caso contrário zerar
tal variável. A hora excedente de trabalho vale R$ 20,00.
No final do processamento imprimir o salário total e o salário excedente.

28) Desenvolva um diagrama de blocos que:


· Leia 4 (quatro) números;
· Calcule o quadrado de cada um;
· Se o valor resultante do quadrado do terceiro for >= 1000, imprima-o e finalize;

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.

30) A Secretaria de Meio Ambiente que controla o índice de poluição mantém 3


grupos de indústrias que são altamente poluentes do meio ambiente.
O índice de poluição aceitável varia de 0,05 até 0,25.
Se o índice variar entre 0,26 e 0,3 as indústrias do 1º grupo são intimadas a
suspenderem suas atividades
Se o índice variar entre 0,31 e 0,4 as indústrias do 1º e 2º grupo são intimadas a
suspenderem suas atividades
Se o índice for acima 0,41 todos os grupos devem ser notificados a paralisarem
suas atividades. Faça um diagrama de bloco que leia o índice de poluição medido e
emita a notificação adequada aos diferentes grupos de empresas.

31) Elabore um algoritmo que dada a idade de um nadador classifique-o em uma as


seguintes categorias:
Infantil A = 5 a 7 anos
Infantil B = 8 a 11 anos
Juvenil A = 12 a 13 anos
Juvenil B = 14 a 17 anos
Adultos = Maiores de 18 anos

Página 31/38
32/38

8 Comandos de Repetição

Utilizamos os comandos de repetição quando desejamos que um determinado


conjunto de instruções ou comandos seja executado um número definido ou
indefinido de vezes, ou enquanto um determinado estado de coisas prevalecer ou
até que seja alcançado.

Trabalharemos com modelos de comandos de repetição:


1. · Enquanto x, processar (Do While ...Loop);
2. · Até que x, processar ... (Do Until ... Loop);
3. · Processar ..., Enquanto x (Do ... Loop While);
4. · Processar ..., Até que x (Do ... Loop Until)
5. · Para ... Até ... Seguinte (For ... To ... Next)

8.1.1 Enquanto x, Processar (Do While ... Loop)

Neste caso, o bloco de operações será executado enquanto a condição x for


verdadeira. O teste da condição será sempre realizado antes de qualquer operação.

Enquanto a condição for verdadeira o processo se repete. Podemos utilizar


essa estrutura para trabalharmos com contadores.

Em diagrama de bloco a estrutura é a seguinte:

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.

8.1.3 Processar ..., Enquanto x (Do ... Loop While)

Neste caso primeiro são executados os comandos, e somente depois é


realizado o teste da condição. Se a condição for verdadeira, os comandos são
executados novamente, caso seja falso é encerrado o comando DO.

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).

34) Uma rainha requisitou os serviços de um monge e disse-lhe que pagaria


qualquer preço. O monge, necessitando de alimentos , indagou à rainha sobre o
pagamento, se poderia ser feito com grãos de trigo dispostos em um tabuleiro de
xadrez, de tal forma que o primeiro quadro deveria conter apenas um grão e os
quadros subseqüentes , o dobro do quadro anterior. A rainha achou o trabalho
barato e pediu que o serviço fosse executado, sem se dar conta de que seria
impossível efetuar o pagamento.
Tarefa: Faça um algoritmo para calcular o número de grãos que o monge esperava
receber.

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

37) Construa um algoritmo que leia 500 valores inteiros e positivos e:


· Encontre o maior valor
· Encontre o menor valor
· Calcule a média dos números lidos

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.

43) Faça um algoritmo que exiba na tela a tabuada do 1 ao 10.

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.

46) Dados 3 valores A, B, C, verifique se esses podem ser valores de lados um


triângulo e, se for, determine se o triângulo é eqüilátero, isósceles ou escaleno.
Sabe-se que:

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

48) Dado o fluxograma ao lado, realize o INÍCIO


teste de mesa e mostre ao final os valores
de A, B e C.
A=5;
B=2;
C=0;
Variável Valor
A
A= B + 5 - A;
B B= A * B;
C= A + B + 5
C

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

49) Dados 20 números, verifique quantos destes são múltiplos de 3.

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

(Wikipedia, 2008) Notas sobre Algoritmos - acessado em


<<http://pt.wikibooks.org/wiki/L%C3%B3gica_de_Programa%C3%A7%C3%A3o/A
lgoritmos>> no mês de Fevereiro de 2008.

(Pianesso, A.C) Tutorial – Linguagem de Programação – Engenharia da


Computação, Ana Cláudia f Pianesso.

(Moraes, P.S) Apostila de Lógica de Programação - Prof. Paulo Sérgio de


Moraes (Unicamp)

Página 38/38

Você também pode gostar