Sie sind auf Seite 1von 53
Modulo: Lógica de Programação Lógica de Programação Modulo: Lógica de Programação 1

Modulo: Lógica de Programação

Lógica de Programação

Modulo: Lógica de Programação

1

Modulo: Lógica de Programação Índice 1 INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO 4 1.1 L ÓGICA

Modulo: Lógica de Programação

Índice

1

INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO

4

1.1 LÓGICA

4

1.2 INSTRUÇÕES E SEQÜÊNCIA LÓGICA

4

1.3 ALGORITMO

5

2

DESENVOLVENDO ALGORITMOS

6

2.1

FORMAS PARA REPRESENTAR ALGORITMOS

6

2.2

REGRAS PARA CONSTRUÇÃO DO ALGORITMO

7

2.3

MÉTODO PARA CONSTRUÇÃO DE ALGORITMOS

8

P1

8

P2

8

P3

8

P4

8

MEDIA-FINAL

8

 

ALUNO 1

8

ALUNO 2

8

ALUNO 3

8

ALUNO 4

8

2.4

EXERCÍCIOS

9

3

DIAGRAMA DE BLOCOS

11

3.1

O QUE É DIAGRAMA DE BLOCOS

11

3.2 SIMBOLOGIA

11

3.3

EXERCÍCIOS

13

4

DADOS E TIPOS DE DADOS

14

4.1 DADOS

14

4.2 CONSTANTES

14

4.3 VARIÁVEIS

14

4.4 TIPOS DE VARIÁVEIS

15

4.5 EXERCÍCIOS

15

5

OPERADORES

18

5.1 OPERADORES ARITMÉTICOS

18

5.2 OPERADORES RELACIONAIS

19

5.3 OPERADORES LÓGICOS

19

5.4 EXERCÍCIOS

22

6

OPERAÇÃO LÓGICA E ESTRUTURA DE DECISÃO E REPETIÇÃO

25

6.1 ESTRUTURA DE DECISÃO: SE

25

6.2 ESTRUTURA DE DECISÃO: SE/SENÃO

26

2

Modulo: Lógica de Programação 6.3 C OMANDO DE D ECISÃO : AVALIE / QUANDO 28

Modulo: Lógica de Programação

6.3 COMANDO DE DECISÃO: AVALIE / QUANDO

28

6.4 EXERCÍCIOS

29

6.5 ESTRUTURA DE REPETIÇÕES DEFINIDAS

31

6.6 ESTRUTURA DE REPETIÇÕES INDEFINIDAS

32

EXEMPLO DO ALGORITMO DE ELEVAR AO CUBO:

32

 

6.7

EXERCÍCIOS

33

7

ARQUIVOS DE DADOS

40

7.1 CONCEITOS BÁSICOS

40

7.2 ABERTURA DE ARQUIVOS

41

7.3 FECHAMENTOS DE ARQUIVOS

41

7.4 LEITURA DE ARQUIVOS

41

7.5 GRAVAÇÃO DE ARQUIVOS

43

7.6 MACRO-FLUXO

45

8

RELATÓRIOS

48

8.1 CARACTERÍSTICAS DO FORMULÁRIO

48

8.2 CONTROLE DE LINHAS, NUMERAÇÃO E SALTO DE PAGINAS

48

8.3 IMPRESSÃO DE CABEÇALHO E ESTÉTICA DE PÁGINA

49

8.4 DIAGRAMA DE BLOCOS ESTRUTURADO PARA IMPRESSÃO DE RELATÓRIO

50

8.5 EXERCÍCIOS

51

8.6 FLUXO E DESCRIÇÃO DO PROCESSAMENTO

52

9

RESUMO DA SIMBOLOGIA

53

3

Modulo: Lógica de Programação 1 Introdução à Lógica de Programação

Modulo: Lógica de Programação

1 Introdução à Lógica de Programação

A Lógica de programação e a utilização de algoritmos são a

estrutura básica para o desenvolvimento de programas, mas ela é construída sem nenhum vinculo a nenhuma linguagem de programação. Sendo assim, tudo o que a Lógica de Programação e a construção de algoritmos desenvolvem vale para a construção de qualquer programa em qualquer linguagem de programação.

Neste modulo, porém, vocês aprenderão as técnicas da Lógica de Programação para aplicar na programação COBOL.

1.1 Lógica

O objetivo da lógica de programação é exercitar os métodos de

raciocínio e elaborar soluções coerentes para determinados problemas, utilizando-se estruturas básicas de programação, construção e representação de algoritmos para posterior codificação em linguagens de programação.

Lógica de programação é a técnica de encadear comandos, em uma seqüência de instruções que deve ser obedecida, para atingir determinado objetivo.

1.2 Instruções e Seqüência Lógica

Na linguagem comum, entende-se pôr instruções “um conjunto de regras ou normas definidas para a realização ou emprego de algo”. Em informática:

Instrução é um comando que indica ao computador uma ação elementar a executar.

Convém ressaltar que uma ordem isolada não permite realizar o processo completo. Para isso é necessário um conjunto de instruções colocadas numa ordem seqüencialmente lógica. Por exemplo, se quisermos fazer batata frita, precisaremos colocar em prática uma série de instruções: descascar as batatas, cortá-las, fritá-las, etc.

É evidente que essas instruções devem ser executadas em uma ordem adequada – não se podem fritar as batatas e depois descascá-las. Da mesma maneira, uma instrução tomada em separado não tem muito sentido: Para obtermos o resultado, precisamos colocar em prática o conjunto de todas as instruções na ordem correta, ou seja, numa seqüência lógica.

Seqüência Lógica são os passos executados em uma ordem correta até atingir um objetivo ou solução de um problema.

4

Modulo: Lógica de Programação 1.3 Algoritmo Construir algoritmos é a base fund amental de toda

Modulo: Lógica de Programação

1.3 Algoritmo

Construir algoritmos é a base fundamental de toda a programação. Um algoritmo é uma seqüência finita de passos, ordenados de forma lógica, que levam a execução de uma tarefa.

Mesmo sem perceber, utilizamos algoritmo no nosso dia-a-dia como, por exemplo, para executar uma receita culinária, trocar um pneu furado ou trocar uma lâmpada.

Os algoritmos também estão presentes na especificação de tarefas que devem ser repetidas sempre da mesma forma. Para automatizar uma tarefa, é fundamental descrever seus passos de forma detalhada e clara, para que qualquer um que venha a executá-la saiba exatamente o que fazer. Assim, se uma indústria precisa que uma tarefa seja automatizada, deve descrevê-la através de um algoritmo. Este algoritmo poderá ser lido por um operário ou transformado em programa para uma máquina.

Os programas de computadores também são construídos a partir de algoritmos, pois um programa é um algoritmo escrito em uma linguagem computacional.

Um algoritmo é formalmente uma seqüência finita de passos que levam a execução de uma tarefa.

5

Modulo: Lógica de Programação 2 Desenvolvendo Algoritmos

Modulo: Lógica de Programação

2 Desenvolvendo Algoritmos

Como já vimos, algoritmo é uma seqüência finita de passos que levam a execução de uma tarefa. Então podemos pensar em algoritmo como uma receita, uma seqüência de instruções que dão cabo de uma meta específica. Estas tarefas não podem ser redundantes nem subjetivas na sua definição, devem ser claras e precisas. Como exemplo de algoritmos podemos citar os algoritmos das operações básicas (adição, multiplicação, divisão e subtração) de números reais decimais. Outros exemplos seriam os manuais de aparelhos eletrônicos, que explicam passo-a-passo como ligá-los, e utilizá-los. Até mesmo as coisas mais simples, podem ser descritas pôr seqüências lógicas. Por exemplo:

Somar dois números quaisquer”.

Escreva o primeiro número no retângulo A.

Escreva o segundo número no retângulo B.

Some o número do retângulo A com número do retângulo B

e coloque o resultado no retângulo C.

A

B

C

+ =
+
=

2.1 Formas para Representar Algoritmos

Existem várias formas de se representar um algoritmo. A primeira é escrevê-lo através da linguagem natural que usamos no dia-a-dia. Esta maneira, porém, pode levar a muitas ambigüidades, como na instrução "Afrouxar ligeiramente as porcas". Uns poderão afrouxar mais e outros menos.

Outra forma de se representar os algoritmos são os Diagrama de Bloco, que usam formas geométricas diferentes para as diversas ações.

Este método é bastante popular pela sua facilidade de compreensão, mas

é um pouco limitado, preocupando-se muito com detalhes de nível físico da implementação do algoritmo.

A terceira forma chama-se de pseudocódigo. Esta forma de representação de um algoritmo assemelha-se muito à forma com que os programas são escritos e consiste na descrição dos passos do algoritmo através de frases construídas usando nossa linguagem natural com uma sintaxe bem definida. Assim, consegue-se uma descrição do algoritmo livre de ambigüidades e com uma estrutura bastante flexível e completa,

onde todos os elementos estão representados. Alem disso, o pseudocódigo

é a primeira aproximação da programação real de computador, bastando

somente traduzir as frases escritas em português por comandos Cobol, por exemplo.

6

Modulo: Lógica de Programação 2.2 Regras para Construção do Algoritmo Ao montar um algoritmo é

Modulo: Lógica de Programação

2.2 Regras para Construção do Algoritmo

Ao montar um algoritmo é preciso dividir o problema apresentado em três fases fundamentais:

ENTRADA

o problema apresentado em três fases fundamentais: ENTRADA PROCESSAMENTO SAÍDA  ENTRADA : são os procedimentos

PROCESSAMENTO

em três fases fundamentais: ENTRADA PROCESSAMENTO SAÍDA  ENTRADA : são os procedimentos de aquisição

SAÍDA

em três fases fundamentais: ENTRADA PROCESSAMENTO SAÍDA  ENTRADA : são os procedimentos de aquisição dos

ENTRADA

: são os procedimentos de aquisição dos dados de

entrada do algoritmo.

de aquisição dos dados de entrada do algoritmo.  PROCESSAMENTO: são os procedimentos utilizados para

PROCESSAMENTO: são os procedimentos utilizados para atingir o resultado final (operações, comparações, etc.).

SAÍDA: envolve a apresentação dos dados já processados (resultado).

Além disso, temos de lembrar que:

processados (resultado). Além disso, temos de lembrar que: 1º) a ordem das instruções é importante; 2º)

1º) a ordem das instruções é importante;

2º) não existe processamento sem entrada de dados;

3º) tem de haver saída de dados;

4º) o número de passos (instruções) é finito e sempre chega ao fim.

Ex: Imagine o seguinte problema: calcular a média final dos alunos da 3ª 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:

1) Quais são os dados de entrada?

Resposta:

2) Qual será o processamento a ser utilizado?

Resposta:

3) Quais serão os dados de saída?

Resposta:

Algoritmo

Receba a nota da prova1 em P1

Receba a nota de prova2 em P2

Receba a nota de prova3 em P3

Receba a nota da prova4 em P4

Some P1, P2, P3 e P4 e divida o resultado por 4

Coloque o resultado em Media-Final

Mostre Media-Final

Fim do Algoritmo

7

Modulo: Lógica de Programação 2.3 Método para construção de algoritmos A construção de um algoritmo

Modulo: Lógica de Programação

2.3 Método para construção de algoritmos

A construção de um algoritmo é um procedimento bastante particular de cada pessoa, pois envolve o raciocínio de cada indivíduo, suas experiências anteriores, seus hábitos e sua criatividade.

O mesmo problema apresentado a um grupo de pessoas, provavelmente terá soluções completamente diversas, apesar de todas funcionarem.

Mesmo assim, há algumas dicas que podem ajudar na organização do raciocínio no momento da elaboração de um algoritmo:

é justamente o enunciado do exercício

que fornece o encaminhamento necessário à resolução do problema e que se torna, portanto, dependente de sua completa compreensão;

através do

enunciado podemos descobrir quais são os dados que devem ser fornecidos, a partir dos quais desenvolveremos os cálculos;

através do

enunciado podemos descobrir quais são os dados que devem ser emitidos para compor o resultado final, objetivo do algoritmo;

para transformar as entradas

determinadas nas saídas especificadas. Nesta fase é que teremos a construção do algoritmo propriamente dito, pois, a partir de alguns requisitos especificados, devemos determinar qual seqüência de ações é capaz de transformar o conjunto definido de dados nas informações de resultado.

- implica em simular todos os passos

do algoritmo, obedecendo a ordem das instruções, a fim de verificar se os resultados obtidos correspondem ao esperado na montagem do algoritmo, bem como detectar algum possível erro no desenvolvimento

deste. Essa atividade é conhecida pôr

“teste de mesa”. Por exemplo,

para testar o algoritmo acima, use esta tabela:

Por exemplo, para testar o algoritmo acima, use esta tabela:  Ler atentamente o enunciado 

Ler atentamente o enunciado

acima, use esta tabela:  Ler atentamente o enunciado  Retirar do enunciado a relação das

Retirar do enunciado a relação das entradas de dados

 Retirar do enunciado a relação das entradas de dados  Retirar do enunciado a relação

Retirar do enunciado a relação das saídas de dados

 Retirar do enunciado a relação das saídas de dados  Determinar o que deve ser

Determinar o que deve ser feito

das saídas de dados  Determinar o que deve ser feito  Testar (executar) o algoritmo

Testar (executar) o algoritmo

 

P1

P2

P3

P4

Media-

Final

Aluno 1

         

Aluno 2

         

Aluno 3

         

Aluno 4

         

8

Modulo: Lógica de Programação 2.4 Exercícios 1) Especifique as ações ne cessárias para mover três

Modulo: Lógica de Programação

2.4 Exercícios

1) Especifique as ações necessárias para mover três disco de uma Torre de Hanói, que consiste de três hastes (a - b - c), uma das quais serve de suporte para três discos de tamanhos diferentes (1 - 2 - 3 ), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco maior sobre um menor. O objetivo é transferir os três discos para outra haste.

1 2 3 a b c
1
2
3
a
b
c

9

Modulo: Lógica de Programação 2) Você tem 8 bolas de bilhar. Toda s, exceto uma,

Modulo: Lógica de Programação

2) Você tem 8 bolas de bilhar. Todas, exceto uma, têm o mesmo peso e você precisa descobrir qual a mais pesada. Para isto você deve utilizar uma balança de pratos.

3) Você tem cinco frascos de comprimidos. Todos os comprimidos de um único frasco estão "contaminados". Só é possível descobrir os comprimidos contaminados pelo peso. O comprimido normal pesa 10 gramas; o comprimido contaminado, 9 gramas. Você recebe uma balança com escala e só pode fazer uma pesagem. Como descobrir qual o frasco contaminado?

10

Modulo: Lógica de Programação 3 Diagrama de Blocos 3.1 O que é Diagrama de Blocos

Modulo: Lógica de Programação

3 Diagrama de Blocos

3.1 O que é Diagrama de Blocos

O diagrama de blocos é uma forma gráfica padronizada e eficaz para representar os passos lógicos de um determinado processamento. Com o diagrama representamos o algoritmo como uma seqüência de símbolos, com significado bem definido.

A principal função, do Diagrama de Blocos é a de facilitar a visualização dos passos de um processamento.

3.2 Simbologia

TERMINAL

   
     

Indica o INÍCIO ou FIM de um processamento

Exemplo: Início do algoritmo

PROCESSAMENTO

   
   

Processamento em geral

Exemplo: Calculo de dois números

ENTRADA DE DADO MANUAL

 
 
    Indica entrada de dados através do Teclado
 

Indica entrada de dados através do Teclado

Exemplo: Digite a nota da prova 1

EXIBIR

EXIBIR   Mostra informações ou resultados
 

Mostra informações ou resultados

Exemplo: Mostre o resultado do calculo

PROCESSAMENTO PRE-DEFINIDO

Processamento Estruturado

 
  Exemplo: EXECUTAR CALCULAR-SALDO

Exemplo: EXECUTAR CALCULAR-SALDO

11

Modulo: Lógica de Programação Dentro do símbolo sempre terá algo escrito, pois somente os símbolos

Modulo: Lógica de Programação

Dentro do símbolo sempre terá algo escrito, pois somente os símbolos não conseguem transmitir a informação completa. Veja no exemplo a seguir:

“CALCULAR A MÉDIA DE 4 NOTAS”

INICIO N1 N2 N3
INICIO
N1
N2
N3
N4
N4

CALCULAR MEDIA = (N1+N2+N3+N4) / 4

MEDIA
MEDIA

FIM

12

Modulo: Lógica de Programação 3.3 Exercícios 1) Construa um diagrama de blocos que : o

Modulo: Lógica de Programação

3.3 Exercícios

1) Construa um diagrama de blocos que :

o

Leia a cotação do dólar

o

Leia uma quantidade de dólares

o

Converta o valor destes dólares para Real

o

Mostre o resultado

2) Desenvolva um diagrama de blocos que:

o

Leia 4 números

o

Calcule o quadrado para cada um

o

Somem todos os quadrados

o

Mostre o resultado

13

Modulo: Lógica de Programação 4 Dados e Tipos de Dados

Modulo: Lógica de Programação

4 Dados e Tipos de Dados

4.1 Dados

A elaboração de qualquer algoritmo seria impossível se não considerarmos a estrutura de dados envolvidos, pois para processar informações, estas deverão ser inseridas na memória do computador no formato de dados.

Os dados manipulados pelos computadores são: Constantes e Variáveis

4.2 Constantes

não se modifica ao longo do

tempo, durante a execução de um algoritmo. Conforme o seu tipo, a constante é classificada como sendo numérica ou literal (ou alfanumérica).

Constante é um tipo de dado

que

Exemplo de constantes:

Constante é um tipo de dado qu e Exemplo de constantes:  (P1 + P2 +

(P1 + P2 + P3) / 3

O nome é

"MARIA"

Constante numérica

Literal
Literal

4.3 Variáveis

Em um programa, uma variável é um espaço reservado na memória do computador para armazenar um tipo de dado determinado. Variáveis devem receber nomes para poderem ser referenciadas e modificadas quando necessário. Um programa de computador deve conter declarações que especificam de que tipo são as variáveis que ele utilizará e às vezes um valor inicial.

Exemplos de Variáveis:

VARIÁVEIS

vezes um valor inicial. Exemplos de Variáveis: VARIÁVEIS Total = Produto * Quantidade Conteúdo da variável(Literal)

Total = Produto * Quantidade

Conteúdo da variável(Literal) Variável

* Quantidade Conteúdo da variável(Literal) Variável NOME = “JOSE” IDADE = 50 Variável Constante numérica 14
* Quantidade Conteúdo da variável(Literal) Variável NOME = “JOSE” IDADE = 50 Variável Constante numérica 14

NOME = “JOSE”

IDADE = 50

* Quantidade Conteúdo da variável(Literal) Variável NOME = “JOSE” IDADE = 50 Variável Constante numérica 14

Variável

Constante numérica

14

Modulo: Lógica de Programação 4.4 Tipos de Variáveis  Numéricas - Específicas para armaze namento

Modulo: Lógica de Programação

4.4 Tipos de Variáveis

Modulo: Lógica de Programação 4.4 Tipos de Variáveis  Numéricas - Específicas para armaze namento de

Numéricas

- Específicas para armazenamento de números, que

posteriormente poderão ser utilizados para cálculos. Podem ser ainda classificadas como Inteiras ou Decimais. As variáveis do tipo inteiro são para armazenamento de números inteiros e as Decimais são para o armazenamento de números que possuam casas decimais.

- Específicas para armazenamento de conjunto de

caracteres que contenham somente letras e espaços. Ex: nomes.

- Específicas para dados que contenham qualquer

tipo de caracter. Se usado para armazenamento de números, não poderá ser utilizada para operações matemáticas.

não poderá ser utilizada para operações matemáticas.  Alfabéticas  Alfanuméricas 4.5 Exercícios 1) O

Alfabéticas

utilizada para operações matemáticas.  Alfabéticas  Alfanuméricas 4.5 Exercícios 1) O que é uma

Alfanuméricas

4.5 Exercícios

1) O que é uma constante? Dê dois exemplos.

2) O que é uma variável? Dê dois exemplos.

15

Modulo: Lógica de Programação 3) Faça um teste de mesa no diagrama de bloco abaixo

Modulo: Lógica de Programação

3) Faça um teste de mesa no diagrama de bloco abaixo e preencha a tabela ao lado com os dados do teste:

Salario

Abono

Salário Novo

600,00

60,00

 

350,00

   

16

Modulo: Lógica de Programação 4) Sabendo-se que José tem direito a 15% de reajuste de

Modulo: Lógica de Programação

4) Sabendo-se que José tem direito a 15% de reajuste de salário, complete o diagrama abaixo:

Inicio Nome = “José” SalárioAtual = 1200,00
Inicio
Nome =
“José”
SalárioAtual
= 1200,00
%Reajuste = ValorReajuste =
%Reajuste =
ValorReajuste =

SalNovo =

SalNovo
SalNovo

Fim

17

Modulo: Lógica de Programação 5 Operadores

Modulo: Lógica de Programação

5 Operadores

Os operadores são símbolos usados executar operações aritméticas ou comparações entre variáveis. Temos três tipos de operadores:

Operadores Aritméticos

Operadores Relacionais

Operadores Lógicos

5.1 Operadores Aritméticos

Os operadores aritméticos são os símbolos utilizados para realizar as 4 operações aritméticas (adição, subtração, multiplicação e divisão) e a exponenciação. Os símbolos para os operadores aritméticos são:

Operador

Símbolo

Adição

+

Subtração

-

Multiplicação

*

Divisão

/

Exponenciação

**

Hierarquia das Operações Aritméticas

Entende-se por hierarquia das operações a ordem ou preferência em que são executadas as operações em uma expressão aritmética que contenha mais de um operador. A hierarquia das operações segue o padrão normal dos cálculos matemáticos, que obedecem as seguintes prioridades:

1 ( ) Expressões dentro de parênteses

2 Exponenciações

3 Multiplicações e divisões

4 Adições e Subtrações

º

º

º

º

Quando houver operadores de mesma hierarquia, eles serão executados da esquerda para a direita.

Exemplos:

TOTAL = PRECO * QUANTIDADE

1 + 7 * 2 ** 2 – 1 = 28

3 * (1 – 2) + 4 * 2 = 5

18

Modulo: Lógica de Programação 5.2 Operadores Relacionais Os operadores relacionais são util izados para comparar

Modulo: Lógica de Programação

5.2 Operadores Relacionais

Os operadores relacionais são utilizados para comparar variáveis alfanuméricas ou numéricas. Estas comparações (operações relacionais) sempre geram um dos dois resultados lógicos: verdadeiro ou falso.

Os operadores relacionais são:

Descrição

Símbolo

Igual

=

Diferente

NOT =

Maior que

>

Menor que

<

Maior ou igual a

NOT <

Menor ou igual a

NOT >

5.3 Operadores Lógicos

Os operadores lógicos servem para combinar dois ou mais resultados lógicos (verdadeiro/falso) provenientes de expressões relacionais, produzindo um novo resultado lógico (verdadeiro/falso).

Os operadores lógicos são:

OPERADOR

DESCRIÇÃO

Not

"NÃO": Inverte o valor de um operando. Se o operando é verdadeiro o resultado será falso. Se o operando é falso o resultado será verdadeiro.

And

"E": Se os dois operandos são verdadeiros, o resultado será verdadeiro. Se um dos dois operandos é falso, o resultado será falso.

Or

"OU": Se os dois operandos são falsos, o resultado será falso. Se um dos dois operandos é verdadeiro, o resultado será verdadeiro.

Quando houver uma expressão mais complexa de operadores relacionais com varias comparações, podem-se usar parênteses para agrupar operações e estabelecer prioridades.

19

Modulo: Lógica de Programação Exemplos: Suponha que temos três variáv eis resultados das expressões seriam:

Modulo: Lógica de Programação

Exemplos:

Suponha que temos três variáveis resultados das expressões seriam:

A

=

5,

B

=

8

e

C

=1, os

Expressões

Resultado

A = B AND B > C

Falso

A NOT = B OR B < C

Verdadeiro

NOT (A > B)

Verdadeiro

A < B AND B > C

Verdadeiro

A >=B OR B = C

Falso

NOT(A <= B)

Falso

A tabela abaixo mostra todos os valores possíveis criados pelos três operadores lógicos (AND, OR e NOT)

OPERADOR AND

OPERADOR OR (OU)

OPERADOR

 

(E)

NOT (NÃO)

A

B

A AND B

A

B

A OR B

A

NOT A

V

V

V

V

V

V

V

F

V

F

F

V

F

V

F

V

F

V

F

F

V

V

   

F

F

F

F

F

F

   

20

Modulo: Lógica de Programação Exemplo: Montar diagrama de blocos do al goritmo para calcular o

Modulo: Lógica de Programação

Exemplo:

Montar diagrama de blocos do algoritmo para calcular o pagamento de vendedores, sabendo que devem receber o salário base e um abono de R$ 100,00 quando seu faturamento for superior a R$ 5.000,00.

Inicio Salário Base Faturamento
Inicio
Salário
Base
Faturamento
MOVE 100 Fatura- Sim PARA ABONO mento > R$5000 Não MOVE 0 PARA ABONO CALCULAR
MOVE 100
Fatura-
Sim
PARA ABONO
mento >
R$5000
Não
MOVE 0
PARA ABONO
CALCULAR
Pagamento =
Salário base + abono
Pagamento Fim
Pagamento
Fim

21

5.4 Exercícios Modulo: Lógica de Programação 1) Tendo as variáveis SALARIO, IR e SALLIQ, e

5.4 Exercícios

Modulo: Lógica de Programação

1) Tendo as variáveis SALARIO, IR e SALLIQ, e considerando os valores abaixo. Informe se as expressões são verdadeiras ou falsas.

SALÁRIO

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

 

2) Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo são verdadeiras ou falsas:

(

) (A+C) > B

(

) B >= (A + 2)

(

) C = (B –A)

(

) (B + A) <= C

(

) (C+A) > B

3) Sabendo que A=5, B=4 e C=3 e D=6, informe se as expressões abaixo são verdadeiras ou falsas.

(

) (A > C) AND (C <= D)

(

) (A+B) > 10 OR (A+B) = (C+D)

(

) (A >= C) AND (D >= C)

22

REVISÃO Modulo: Lógica de Programação

REVISÃO

Modulo: Lógica de Programação

1.

Assinale V ou F

Lógica de programação é a técnica de encadear comandos, em uma seqüência de instruções que devem ser seguidas, para atingir determinado objetivo.

Podemos definir programa de computador como a indicação ao computador de uma ação elementar a executar.

ENTRADA, PROCESSAMENTO e SAÍDA são fases presentes em qualquer tipo de programa.

A fase de planejamento, no processo de construção de um programa, é tarefa específica do analista de sistemas.

Os programadores devem construir um algoritmo (fluxograma ou pseudocódigo) antes de codificar um programa.

Para garantir que um algoritmo esteja 100% correto, é melhor construí-lo após codificarmos o programa.

Programas bem planejados devem ser estruturados.

2.

Escolha a alternativa correta na segunda coluna:

A

Especificação do programa

Diagrama de blocos e pseudocódigo

B

Formas de representar um algoritmo

Função do Analista de Sistemas

C

Algoritmo

Usado para testar nosso algoritmo antes de passarmos para a fase de codificação

D

Teste de mesa

Seqüência finita de passos que levam a execução de uma tarefa

3.

Cite as principais regras para construção de um algoritmo.

23

REVISÃO Modulo: Lógica de Programação

REVISÃO

Modulo: Lógica de Programação

4. A afirmação a seguir esta correta? Justifique sua resposta.

“É importante construir dois algoritmos (um diagrama de blocos e um pseudocódigo) antes de codificarmos um programa”.

5. Responda V ou F

Os dados manipulados por um programa se classificam como constantes e variáveis.

Não é recomendado o uso de constantes e variáveis em um mesmo programa, quando utilizamos lógica estruturada.

Dados de entrada e de saída são exemplos de informações variáveis utilizadas por um programa.

São tipos de variáveis: numéricas, alfabéticas, literais e constantes.

São operadores lógicos: NOT, OR e AND.

6. Identifique no segmento de pseudocódigo abaixo, as constantes e variáveis. Classifique-as por tipo.

0300-00-CALCULA-MULTA

MULTIPLICAR MULTA-E POR 0,05

SE VALOR-E

SOMAR 100 EM MULTA-E FIM-SE MOVER “VALOR DA MULTA” PARA OBSERVACAO-S MOVER MULTA-E PARA MULTA-S

> 1000

E VENCTO-E < DATA-LIMITE

24

Modulo: Lógica de Programação 6 Operação Lógica e Estrutura de Decisão e Repetição

Modulo: Lógica de Programação

6 Operação Lógica e Estrutura de Decisão e Repetição

Uma operação lógica é uma operação envolvendo comparação de dois dados (variáveis ou constantes) através de operadores relacionais.

Uma operação lógica tem como resultado um valor booleano (verdadeiro ou falso). Em outras palavras, uma operação lógica é uma pergunta à qual

a resposta tem de ser verdadeiro ou falso.

As operações lógicas são utilizadas quando nossos programas exigem tomadas de decisões.

Na maioria das vezes necessitamos tomar decisões no andamento do algoritmo. Essas decisões interferem diretamente no andamento do programa.

Nos algoritmos as decisões são implementadas através de operações lógicas formando as ESTRUTURAS DE DECISÃO. Nos algoritmos também são freqüentes o uso de cálculos ou operações repetitivas. O conjunto de comandos e operações lógicas que controlam as operações repetitivas de um algoritmo forma as ESTRUTURAS DE REPETIÇÃO.

6.1 Estrutura de Decisão: SE

A estrutura de decisão é formada normalmente pela palavra SE

seguida de uma operação lógica e uma serie de comandos imperativos. Se

a operação lógica tiver resultado VERDADEIRO, os comandos imperativos serão executados.

Imagine um algoritmo em que um aluno somente será considerado

aprovado se sua média for maior ou igual a 5. Veja como ficaria o

algoritmo:

SE MEDIA >= 5

APROVE ALUNO

FIM SE.

Em Diagrama de Blocos:

MEDIA Not < 5
MEDIA
Not <
5

N

S

APROVE ALUNO
APROVE
ALUNO

25

Modulo: Lógica de Programação 6.2 Estrutura de Decisão: SE/SENÃO Na estrutura “SE/SENÃO”, quando a condição

Modulo: Lógica de Programação

6.2 Estrutura de Decisão: SE/SENÃO

Na estrutura “SE/SENÃO”, quando a condição SE for “verdadeira” os comandos imperativos situados após a operação lógica serão executados, caso contrário (resposta “falsa”), os comandos imperativos situados após o SENÃO serão executados.

Em pseudocódigo:

SE MÉDIA NOT < 5

APROVE O ALUNO

SENÃO

REPROVE O ALUNO

FIM SE.

Em Diagrama de Blocos:

Não MEDIA >= 5 REPROVAR O ALUNO
Não
MEDIA
>= 5
REPROVAR
O ALUNO

Sim

de Blocos: Não MEDIA >= 5 REPROVAR O ALUNO Sim APROVAR O ALUNO No exemplo acima
APROVAR O ALUNO
APROVAR
O ALUNO

No exemplo acima está sendo executada uma condição que, se for verdadeira, executa o comando “APROVAR O ALUNO”, caso contrário executa o segundo comando “REPROVAR O ALUNO”. Podemos também dentro de uma condição testar outras condições. Como no exemplo abaixo:

Sim MEDIA >= 5
Sim
MEDIA
>= 5

Não

Não Sim MEDIA >= 7
Não
Sim
MEDIA
>= 7
REPROVAR ALUNO
REPROVAR
ALUNO

FAZER NOVA

AVALIAÇÃO

APROVAR ALUNO
APROVAR
ALUNO
abaixo: Sim MEDIA >= 5 Não Não Sim MEDIA >= 7 REPROVAR ALUNO FAZER NOVA AVALIAÇÃO

26

Modulo: Lógica de Programação Em pseudocódigo: SE MÉDIA >= 5 SE MEDIA >= 7 APROVAR

Modulo: Lógica de Programação

Em pseudocódigo:

SE MÉDIA >= 5 SE MEDIA >= 7 APROVAR ALUNO SENÃO FAZER NOVA AVALIAÇÃO

SENÃO

REPROVAR ALUNO FIM SE.

27

Modulo: Lógica de Programação 6.3 Comando de Decisão: AVALIE / QUANDO Se for necessário perguntar

Modulo: Lógica de Programação

6.3 Comando de Decisão: AVALIE / QUANDO

Se for necessário perguntar se uma variável contém um dos valores de uma série de valores possíveis, precisaríamos usar um conjunto de

SENÃO para testar todos os valores. Muitas linguagens de

programação, incluindo o COBOL, permitem uma estrutura de algoritmo em que só se testa a variável uma vez (AVALIE), e depois usa-se uma série de (QUANDO) para verificar se a avaliação feita coincide com um dos valores possíveis.

instruções SE

No diagrama de blocos abaixo avalia-se a variável “Op”, e se seu conteúdo for 1, 2, ou 3 mostra-se a mensagem “Opção N”, caso contrário a mensagem será “Opção Errada”.

INICIO

SIM AVALIE QUANDO OP 1 NÃO SIM QUANDO 2 NÃO SIM QUANDO 3 NÃO QUANDO
SIM
AVALIE
QUANDO
OP
1
NÃO
SIM
QUANDO
2
NÃO
SIM
QUANDO
3
NÃO
QUANDO
SIM
OUTRO
VALOR

MENS =

“OPÇÃO1”

MENS =

“OPÇÃO2”

MENS =

“OPÇÃO3”

MENS = “OPÇÃO ERRADA” MENS
MENS =
“OPÇÃO
ERRADA”
MENS

FIM

28

6.4 Exercícios Modulo: Lógica de Programação 1) Faça um teste de mesa do diagrama apresentado

6.4 Exercícios

Modulo: Lógica de Programação

1) Faça um teste de mesa do diagrama apresentado abaixo, de acordo com os dados fornecidos:

INICIO
INICIO
Ler SALBASE Ler GRATIF SALBRUTO = SALBASE + GRATIF
Ler
SALBASE
Ler
GRATIF
SALBRUTO
=
SALBASE
+ GRATIF
Não Sim SALBRUTO < 1000 IR = SALBRUTO * (20 / 100) IR = SALBRUTO
Não
Sim
SALBRUTO
<
1000
IR = SALBRUTO
* (20 / 100)
IR = SALBRUTO
* (15 / 100)
SALLIQ =
SALBRUT - IR
SALLIQ
FIM

29

Modulo: Lógica de Programação Teste o diagrama com os dados abaixo SALBASE GRATIF 3.000,00 1.200,00

Modulo: Lógica de Programação

Teste o diagrama com os dados abaixo

SALBASE

GRATIF

3.000,00

1.200,00

1.200,00

400,00

500,00

100,00

Memória

SALBASE

GRATIF

SALBRUTO

IR

SALLIQ

Dados de Saída

SALLIQ

Elabore um pseudocódigo levando-se em conta o diagrama apresentado:

30

Modulo: Lógica de Programação 6.5 Estrutura de Repetições Definidas Utilizamos a ESTRUTURA DE REPETIÇÕES quando

Modulo: Lógica de Programação

6.5 Estrutura de Repetições Definidas

Utilizamos a ESTRUTURA DE REPETIÇÕES quando desejamos que um conjunto de instruções seja executado um número definido de vezes, ou até que seja alcançada uma condição.

Na ESTRUTURA DE REPETIÇÕES DEFINIDAS o bloco de operações será executado repetidamente um número definido de vezes. Em diagrama de bloco a estrutura é a seguinte:

Não EXECUTOU N VEZES? Sim
Não
EXECUTOU
N VEZES?
Sim

CONTINUA

EXECUTA

BLOCO DE

INSTRUÇÕES

Exemplo: Elevar um número dado ao cubo

PEGAR INICIO CONTADOR = 0 RESULTADO = 1 NÚMERO SOMAR 1 EM CONTADOR. CONTA DOR
PEGAR
INICIO
CONTADOR = 0
RESULTADO = 1
NÚMERO
SOMAR 1 EM
CONTADOR.
CONTA
DOR = 3
Não
MULTIPLICAR
RESULTADO
POR NÚMERO.
Sim

FIM

31

Modulo: Lógica de Programação 6.6 Estrutura de Repetições Indefinidas Neste caso, o bloco de operações

Modulo: Lógica de Programação

6.6 Estrutura de Repetições Indefinidas

Neste caso, o bloco de operações será executado até que uma condição seja verdadeira. Enquanto a condição for falsa o processo se repete.

Exemplo: CONDIÇÃO NÃO BLOCO DE SATISFEITA OPERAÇÕES SIM CONTINUA
Exemplo:
CONDIÇÃO
NÃO
BLOCO DE
SATISFEITA
OPERAÇÕES
SIM
CONTINUA

Nos algoritmos modulares, o bloco instruções repetidas é escrito em um bloco de lógica independente, e o comando de repetição pode ser representado em diagrama de blocos como uma das formas abaixo:

1ª Forma:

BLOCO DE OPERAÇÃO CONDIÇÃO SATISFEITA
BLOCO DE
OPERAÇÃO
CONDIÇÃO
SATISFEITA

2ª Forma:

EXECUTAR

ATÉ CONDIÇÃO

SATISFEITA

Exemplo do algoritmo de elevar ao cubo:

PEGAR INICIO NÚMERO
PEGAR
INICIO
NÚMERO

EXECUTAR

CALCULO

3 VEZES

FIM

RESULTADO = 1

PEGAR INICIO NÚMERO EXECUTAR CALCULO 3 VEZES FIM RESULTADO = 1 CALCULO MULTIPLICAR RESULTADO POR NUMERO

CALCULO

MULTIPLICAR RESULTADO POR NUMERO

VOLTE

PEGAR INICIO NÚMERO EXECUTAR CALCULO 3 VEZES FIM RESULTADO = 1 CALCULO MULTIPLICAR RESULTADO POR NUMERO
PEGAR INICIO NÚMERO EXECUTAR CALCULO 3 VEZES FIM RESULTADO = 1 CALCULO MULTIPLICAR RESULTADO POR NUMERO

32

6.7 Exercícios Modulo: Lógica de Programação 1) Elabore um diagrama de blocos que leia um

6.7 Exercícios

Modulo: Lógica de Programação

1) Elabore um diagrama de blocos que leia um número N até que N = ZEROS. Se N for positivo acumule em ACUM-A, se for negativo, em ACUM- B. No final mostrar ACUM-A e ACUM-B.

2) Elaborar um Diagrama de Blocos para ler números N, até N = ZEROS. Quando N for par acumular o valor em ACUM-P e quando for ímpar acumular em ACUM-I. Exibir ACUM-P e ACUM-I no final do processamento.

33

Modulo: Lógica de Programação 3) Construa um diagrama de blocos para ler números N, até

Modulo: Lógica de Programação

3) Construa um diagrama de blocos para ler números N, até N = ZEROS, e mostrar somente os números maiores que 100. No final mostrar a quantidade total de números maiores que 100.

4) Tendo como dados de entrada a ALTURA e o SEXO das pessoas, ate ALTURA = ZEROS e SEXO = BRANCOS, construir um algoritmo que calcule o peso ideal, utilizando as seguintes fórmulas de peso:

Para homens: (72.7 * ALTURA) - 58 Para mulheres: (62.1 * ALTURA) - 44.7

34

Modulo: Lógica de Programação 5) Faça um algoritmo que determine o maior e o menor

Modulo: Lógica de Programação

5) Faça um algoritmo que determine o maior e o menor entre N números lidos. A condição de parada é a entrada de um valor 0.

6) Faça um algoritmo que conte de 1 a 100 e a cada múltiplo de 10 emita uma mensagem: N “ é múltiplo de 10”.

35

Modulo: Lógica de Programação 7) Uma rainha requisitou os serviços de um monge e disse-lhe

Modulo: Lógica de Programação

7) 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. Faça um algoritmo para calcular o número de grãos que o monge esperava receber.

36

Modulo: Lógica de Programação 8) João Papo-de-Pescador, homem de bem, comprou um microcomputador para controlar

Modulo: Lógica de Programação

8) 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 total 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. João precisa que você faça um diagrama de blocos e um pseudocódigo que acumule na variável P (peso total dos peixes), o peso de cada peixe pescado (variável PP). No final calcular e mostrar a variável E (Excesso) e a variável M (Multa) o valor da multa que João deverá pagar. Caso contrário mostrar tais variáveis com o conteúdo ZERO.

37

Modulo: Lógica de Programação 9) Faça um diagrama de bloco qu e leia N números,

Modulo: Lógica de Programação

9) Faça um diagrama de bloco que leia N números, até N = ZEROS, e mostre uma mensagem indicando se este número é par ou ímpar, e se é positivo ou negativo. No final mostre:

Quantidade Total de Números Impares

Quantidade Total de Números Pares

Quantidade Total de Números Positivos

Quantidade Total de Números Negativos

38

Modulo: Lógica de Programação 10) Elabore um algoritmo que dada a idade de N nadadores,

Modulo: Lógica de Programação

10) Elabore um algoritmo que dada a idade de N nadadores, até idade = ZEROS, acumule a quantidade total de alunos em cada categoria, de acordo com a classificação abaixo:

o

Baby

= até 4 anos

o

Infantil A = 5 a 7 anos

o

Infantil B = 8 a 11 anos

o

Juvenil A = 12 a 13 anos

o

Juvenil B = 14 a 17 anos

o

Adultos

= Maiores de 18 anos

No final mostrar a quantidade de nadadores em cada categoria.

39

Modulo: Lógica de Programação 7 Arquivos de Dados Nos algoritmos que vimos até aqui, os

Modulo: Lógica de Programação

7 Arquivos de Dados

Nos algoritmos que vimos até aqui, os dados estavam na memória do computador, ou seja, após a execução do algoritmo os dados se perdiam. Para resolver esse problema começaremos a trabalhar com arquivos, onde poderemos guardar os dados e também manipula-los. Para isso necessitamos definir alguns conceitos como: campos, registros e arquivos.

7.1 Conceitos Básicos

CAMPO
CAMPO

é

um

espaço

reservado

em

memória

para

receber

informações (dados) - Exemplo: Campo Nome, Campo Endereço

Nome Maria das Graças
Nome Maria das Graças

Nome

Maria das Graças

Nome Maria das Graças

é um conjunto de campos, que juntos definem uma

ocorrência de uma entidade. - Exemplo: Registro de Clientes (definem

REGISTRO

uma ocorrência da entidade Cliente).

COD-CLI

NOME

ENDEREÇO

FONE

00001

MARIA DAS GRAÇAS

RUA DAS DORES,1400

888-9876

ARQUIVO

Clientes da Empresa, onde estão armazenados os dados de todos os clientes da empresa.

é um conjunto de registros da entidade. - Exemplo: O arquivo de

Registro 1 Registro2
Registro 1
Registro2

Os arquivos estudados neste modulo de lógica são chamados de ARQUIVOS SEQUENCIAIS. O modulo de COBOL AVANÇADO mostrara outro tipo de arquivo com mais recursos (VSAM).

40

7.2 Abertura de Arquivos Modulo: Lógica de Programação Toda vez que for necessário trabal har

7.2 Abertura de Arquivos

Modulo: Lógica de Programação

Toda vez que for necessário trabalhar com arquivo, primeiramente

precisamos

ABRIR

o

arquivo

.

Abrir

o

arquivo

significa

estabelecer

comunicação com o periférico (disco, fita) em que o arquivo se encontra, e deixá-lo disponível para leitura/gravação. O símbolo para abertura de arquivo em diagrama de blocos é:

símbolo para abertura de arquivo em diagrama de blocos é: ABRIR ARQUIVO 7.3 Fechamentos de Arquivos

ABRIR

ARQUIVO

7.3 Fechamentos de Arquivos

É necessário o fechamento do arquivo, após o processamento, para que o sistema operacional garanta a integridade de suas informações. Fechar um arquivo também libera o periférico que estava sendo utilizado para uso de outros programas. O símbolo para fechamento de arquivo é igual ao de abertura de arquivo:

FECHAR

ARQUIVO

7.4 Leitura de Arquivos

Após abrir um arquivo é necessário LER os dados que estão em disco e transferi-los para a memória. Cada comando de leitura transfere um registro para a área de memória do computador. O símbolo para leitura de arquivo é

LER ARQUIVO
LER
ARQUIVO

41

Modulo: Lógica de Programação Toda vez que abrimos um arquivo, o computador se posiciona no

Modulo: Lógica de Programação

Toda vez que abrimos um arquivo, o computador se posiciona no início do arquivo. A cada leitura feita, o computador transfere o registro em que esta posicionado para a memória (com todos os seus campos) e avança para o próximo registro. Quando atinge o fim do arquivo, o

a

computador

impossibilidade de continuar as leituras.

envia

um

aviso

(EOF

End

Of

File)

comunicando

Inicio COD-CLI NOME ENDERECO 00001 JOSE SILVA RUA 00002 MARIA RUA 00003 ANTONIO RUA EOF
Inicio
COD-CLI
NOME
ENDERECO
00001 JOSE SILVA
RUA
00002 MARIA
RUA
00003 ANTONIO
RUA
EOF

Registro 1

Registro 2

Registro 3

Os algoritmos que trabalham com arquivos devem sempre testar o EOF após cada leitura do arquivo. Simbolicamente podemos representar esse teste da seguinte maneira.

Exemplo: Contar os registros de um arquivo.

LER REGISTRO CONTAR Não E.O.F. REGISTRO Sim
LER
REGISTRO
CONTAR
Não
E.O.F.
REGISTRO
Sim

Diagrama Completo:

INICIO

42

Modulo: Lógica de Programação ABRIR ARQUIVO NREG = 0 LE REGISTRO não SOMAR 1 EOF

Modulo: Lógica de Programação

ABRIR ARQUIVO NREG = 0
ABRIR
ARQUIVO
NREG = 0
LE REGISTRO não SOMAR 1 EOF EM NREG sim
LE
REGISTRO
não
SOMAR 1
EOF
EM NREG
sim
NREG
NREG
FECHAR FIM ARQUIVO
FECHAR
FIM
ARQUIVO

7.5 Gravação de Arquivos

Da mesma maneira que os registros são lidos de um arquivo, também podemos gravar registros em um arquivo. A gravação consiste na transferência de um registro da memória, para um periférico (disco, fita). O símbolo para gravação de arquivos é:

GRAVAR REGISTRO
GRAVAR
REGISTRO

De maneira semelhante à leitura de arquivos, a gravação é feita registro a registro. Cada novo comando de gravação grava o conteúdo do registro da memória no fim do arquivo.

43

Modulo: Lógica de Programação O que limita o tamanho de um arquivo é o espaço

Modulo: Lógica de Programação

O que limita o tamanho de um arquivo é o espaço de gravação do meio

O que limita o tamanho de um arquivo é o espaço de gravação do meio físico.

44

Modulo: Lógica de Programação 7.6 Macro-Fluxo O macro fluxo é a representação gráfica dos arquivos

Modulo: Lógica de Programação

7.6 Macro-Fluxo

O macro fluxo é a representação gráfica dos arquivos que serão processados em um programa, sem detalhar os algoritmos.

Estes dois exemplos de Macro-fluxo dão uma visão geral dos arquivos envolvidos em cada um dos programas. O primeiro diz que haverá um arquivo de entrada, um processamento e um arquivo de saída. Já o segundo exemplo diz que haverá um arquivo de entrada, um processamento, e a saída será um relatório.

1º Exemplo 2º Exemplo ARQ ARQ E NT CLI
1º Exemplo
2º Exemplo
ARQ
ARQ
E NT
CLI

PROGRAMA

ARQ SAIDA
ARQ
SAIDA

45

PROGRAMA

RELATÓRIOe a saída será um relatório. 1º Exemplo 2º Exemplo ARQ ARQ E NT CLI PROGRAMA

7. 7 Exercício Modulo: Lógica de Programação – Calculando o preço de venda Fluxo e

7. 7 Exercício

Modulo: Lógica de Programação

Calculando o preço de venda

Fluxo e descrição do processamento

o preço de venda Fluxo e descrição do processamento PRODUTO REG. LIDOS REG.GRAVADOS TABVENDA A partir

PRODUTO

REG. LIDOS REG.GRAVADOS
REG. LIDOS
REG.GRAVADOS

TABVENDA

A partir dos registros do arquivo PRODUTO gerar o arquivo TABVENDA, com código de produto e preço de venda, conforme formula a seguir:

PRECO-VENDA-S = PRECO-E * MARGEM-E

Ao final do processamento informar o total de registros lidos e total de registros gravados

Layouts dos arquivos de entrada e saída

PRODUTO

CODPROD-E

DESCRICAO-E

QTDEST-E

PRECO-E

MARGEM-E

 

9(04)

X(25)

9(03)

9(04)V99

9(01)V99

X(09)

TABVENDA

CODPROD-S

DESCRICAO-S

PRECO-VENDA-S

CODPROD-S DESCRICAO-S PRECO-VENDA-S

9(04)

X(25)

9(04)V99

X(07)

Mensagem final – totais de registros lidos e gravados

TOTAIS DO PROCESSAMENTO

: 999

TOTAL DE REGISTROS GRAVADOS: 999

TOTAL DE REGISTROS LIDOS

FINAL DE EXECUCAO

46

7. 8 Exercício Modulo: Lógica de Programação – Calcul ando reposição do estoque Fluxo e

7. 8 Exercício

Modulo: Lógica de Programação

– Calculando reposição do estoque

Fluxo e descrição do processamento

reposição do estoque Fluxo e descrição do processamento 1. Ler os registros do arquivo ESTOQUE gerando
reposição do estoque Fluxo e descrição do processamento 1. Ler os registros do arquivo ESTOQUE gerando
reposição do estoque Fluxo e descrição do processamento 1. Ler os registros do arquivo ESTOQUE gerando

1. Ler os registros do arquivo ESTOQUE gerando o arquivo REPOSICAO com os itens em estoque que deverão ser repostos.

2. Um item deverá reposto quando a quantidade em estoque for menor que a quantidade mínima;

3. Calcular a quantidade de reposição como a diferença entre a quantidade máxima e a quantidade em estoque. QTDREP-S = QTDMAX-E – QTDEST-E.

4. Ao final do processamento informar o total de registros lidos e o total de registros gravados.

Layouts dos arquivos de entrada e saída

ENTRADA – ESTOQUE – tamanho do registro (LRECL) 50 posições

CODPROD-

DESCRICAO-

QTDEST-E

QTDMIN-

QTDMAX-

PRECO-E

 

E

E

E

E

9(04)

X(25)

9(03)

9(03)

9(03)

9(04)v99

X(06)

SAIDA – REPOSICAO – tamanho do registro (LRECL) 20 posições

 

CODPROD-

QTDEST-S

QTDMAX-

 

QTDREP-

 

PRECO-S

 

S

 

S

S

 

9(04)

9(03)

9(03)

9(03)

9(04)V99

X(01)

Mensagem final – totais de registros lidos e gravados

TOTAIS DO PROCESSAMENTO

TOTAL DE REGISTROS LIDOS

TOTAL DE REGISTROS GRAVADOS: 999

: 999

------- FINAL DE EXECUCAO ------

47

Modulo: Lógica de Programação 8 Relatórios

Modulo: Lógica de Programação

8 Relatórios

A impressão de relatórios é o registro de informações processadas pelo computador em um meio de armazenamento de dados chamado de formulário. Para efetuarmos a impressão de relatórios devemos nos preocupar com os seguintes aspectos:

o

Características do formulário

o

Controle de linhas, numeração e salto de página

o

Impressão de cabeçalho e estética da página

8.1 Características do Formulário

A maioria dos formulários possui um formato padrão, isto é, a quantidade de linhas por página e de caracteres por linha são constantes.

8.2 Controle de Linhas, numeração e salto de Paginas

Uma preocupação com o controle de linhas é não permitir que a impressora imprima fora do espaço útil do papel reservado para o texto, pois além de esteticamente não ficar bom, haveria perda de informações.

Para controlarmos o número de linhas impressas, devemos

e não deixar o valor desses contadores

ultrapassarem o número desejado de linhas por página.

criar um

contador de linha e de páginas

48

Modulo: Lógica de Programação 8.3 Impressão de Cabeçalho e Estética de Página Para termos uma

Modulo: Lógica de Programação

8.3 Impressão de Cabeçalho e Estética de Página

Para termos uma idéia melhor da estética do formulário, veja o exemplo abaixo.

Linhas de Detalhe

Área de Cabeçalho:

Cabeçalho

Rodapé

Cia XXXX

pag. 1

Listagem de funcionários

Num.

Nome

Unid

0001

Maria

XG

0002

José

XG

Total de funcionários

2

Local onde devemos colocar linhas de cabeçalho para identificar o assunto a que se refere o conteúdo da página como um todo, e linhas de cabeçalho com o nome de cada coluna de informações. Pode haver outras linhas de cabeçalho de acordo com a necessidade.

Linha de Detalhe:

São as linhas geradas a partir de dados lidos de um arquivo.

Área de Rodapé:

São linhas contendo valores de totalizações de colunas e/ou linhas de identificação da empresa, ou outras informações de fim de pagina.

49

Modulo: Lógica de Programação 8.4 Diagrama de Blocos ESTRUTURADO para Impressão de Relatório Principal Iniciar

Modulo: Lógica de Programação

8.4 Diagrama de Blocos ESTRUTURADO para Impressão de Relatório

Principal
Principal

Iniciar

Processar

Ate EOF

Finalizar

Fim
Fim

Processar

sim ACLIN CABE- =66 ÇALHO
sim
ACLIN
CABE-
=66
ÇALHO
EOF Finalizar Fim Processar sim ACLIN CABE- =66 ÇALHO ACLIN = 8 não COLOCAR CODFUN NOME

ACLIN

= 8

não Fim Processar sim ACLIN CABE- =66 ÇALHO ACLIN = 8 COLOCAR CODFUN NOME UNIDADE EM DETALHE

COLOCAR

CODFUN

NOME

UNIDADE

EM DETALHE

ÇALHO ACLIN = 8 não COLOCAR CODFUN NOME UNIDADE EM DETALHE Iniciar Abrir Arqs ACUM=0 TOTLIN=70
ÇALHO ACLIN = 8 não COLOCAR CODFUN NOME UNIDADE EM DETALHE Iniciar Abrir Arqs ACUM=0 TOTLIN=70

IniciarÇALHO ACLIN = 8 não COLOCAR CODFUN NOME UNIDADE EM DETALHE Abrir Arqs ACUM=0 TOTLIN=70 LER

Abrir Arqs

ACUM=0 TOTLIN=70 LER ARQFUN Fim
ACUM=0
TOTLIN=70
LER
ARQFUN
Fim
IMPRIMIR DETALHE ACLIN + 1 ACUM + 1
IMPRIMIR
DETALHE
ACLIN + 1
ACUM + 1
LER ARQFUNC
LER
ARQFUNC

Fim

Cabeçalho Finalizar SOMAR 1 GRAVAR TOTPAG ACUM MOVE TOTPAG P/CABPAG FECHAR ARQS GRAVAR CAB1 SALTANDO
Cabeçalho
Finalizar
SOMAR 1
GRAVAR
TOTPAG
ACUM
MOVE
TOTPAG
P/CABPAG
FECHAR
ARQS
GRAVAR CAB1
SALTANDO
PAGINA
FIM
GRAVAR
CAB2
GRAVAR
CAB3
Fim

50

Modulo: Lógica de Programação 8.5 Exercícios Fluxo e descrição do processamento Um banco deseja emitir

Modulo: Lógica de Programação

8.5 Exercícios

Fluxo e descrição do processamento

8.5 Exercícios Fluxo e descrição do processamento Um banco deseja emitir uma listagem de todos os

Um banco deseja emitir uma listagem de todos os clientes cujos saldos sejam iguais ou superiores de R$ 1.500,00 e o número da conta seja menor que 10.000. Faça o diagrama de bloco correspondente.

Cabeçalhos em todas as paginas.

50 linhas de detalhe por página.

Layouts dos arquivos de entrada e saída

CADCLI

NUMERO-CONTA-E

NOME-CLIENTE-E

SALDO-ATUAL-E

 

9(05)

X(40)

9(06)V99

 

RELATORIO

 

1

5

10

5

20

5

30

5

40

5

50

5

60

5

5. 70

 

80

 

RELACAO

DE

CLIENTES

/

SALDOS

-

PAG. 99

CB-PAG

NUMERO-CONTA

NOME

SALDO

XX.XXX

X

X

ZZ.ZZ9,99

XX.XXX

X

X

ZZ.ZZ9,99

XX.XXX

X

X

ZZ.ZZ9,99

XX.XXX

X

X

ZZ.ZZ9,99

XX.XXX

X

X

ZZ.ZZ9,99

XX.XXX

X

X

ZZ.ZZ9,99

XX.XXX

X

X

ZZ.ZZ9,99

XX.XXX

X

X

ZZ.ZZ9,99

LD-NUMCONTA

LD-NOME

LD-SALDO

51

Modulo: Lógica de Programação 8.6 Fluxo e descrição do processamento 1. Ler os registros do

Modulo: Lógica de Programação

8.6 Fluxo e descrição do processamento

de Programação 8.6 Fluxo e descrição do processamento 1. Ler os registros do arquivo CADALUNO gerando

1. Ler os registros do arquivo CADALUNO gerando relação de alunos por

sala de aula.

2. Ao final de cada classe informar o total de alunos e a media da classe.

Imprimir após a ultima linha impressa na página.

3. Iniciar a impressão de nova classe em nova pagina.

4. Ao final do processamento imprimir, em pagina separada, o total de

classes, o total de alunos da escola e media entre os alunos da escola:

5. Fórmulas:

Media do aluno :

Média da classe: médias dos alunos da classe / total de alunos da classe

Média geral

(NOTA1 x 2 + NOTA2 x 2 + NOTA3 x 3) / 7

: médias dos alunos da escola / total de alunos da escola

Layouts dos arquivos de entrada e saída

ENTRADA – CADALUNO (classificado por CLASSE-E)

CLASSE-E

NUM-E

NOME-E

ENDE-E

NOTA1-E

NOTA2-E

NOTA3-E

IDADE-E

 

X(03)

9(03)

X(40)

X(40)

99v99

99v99

99v99

9(02)

SAIDA – RELATO – imprimir 50 linhas por pagina

 

1

5

10

5

20

5

30

5

40

5

50

5

60

5

5. 70

80

dd/mm/aaaa ESCOLA DA VIDA - RELACAO DE ALUNOS POR SALA DE AULA PAG. 99

C1-DATA

PAG

CODIGO DA CLASSE xxx

C2-CLASSE

C1-

NUMERO NOME DO ALUNO

 

NOTA1

NOTA2 NOTA3 MEDIA

99.999

x

x

Z9,99

Z9,99 Z9,99 Z9,99

99.999

x

x

Z9,99 Z9,99 Z9,99

Z9,99

99.999

x

x

Z9,99 Z9,99 Z9,99

Z9,99

99.999

x

x

Z9,99 Z9,99 Z9,99

Z9,99

99.999

x

x

Z9,99 Z9,99 Z9,99

Z9,99

99.999

x

x

Z9,99 Z9,99 Z9,99

Z9,99

99.999

x

x

Z9,99 Z9,99 Z9,99

Z9,99

99.999

x

x

Z9,99 Z9,99 Z9,99

Z9,99

99.999

x

x

Z9,99 Z9,99 Z9,99

Z9,99

LD-NUM

LD-NOME

LD-NOTA1 LD-NOTA2 LD-NOTA3 LD-

MEDIA

 

TOTAL DE ALUNOS

999

-

MEDIA DA CLASSE Z9,99

 

T1-TOTAL

T1-MEDIA

TOTAL DE CLASSES

99

-

TOTAL DE ALUNOS

999

-

MEDIA GERAL

Z9,99

T2-TOTCLASSES

T2-TOTALUNOS

52

T2-MEDIAGERAL

Modulo: Lógica de Programação 9 Resumo da Simbologia

Modulo: Lógica de Programação

9 Resumo da Simbologia

 

Símbolo

Função

TERMINAL

 

Indica o INÍCIO ou FIM de um processamento

   

Exemplo: Início do algoritmo

PROCESSAMENTO

Processamento em geral Exemplo: Cálculo de dois números

     

ENTRADA/SAÍDA

Operação de entrada e saída de dados.

 
  Ex: Leitura e Gravação de Arquivos

Ex: Leitura e Gravação de Arquivos

 

DECISÃO

Indica uma decisão a ser tomada Exemplo: Verificação de Sexo

uma decisão a ser tomada Exemplo: Verificação de Sexo   DESVIO Permite o desvio para um
 

DESVIO

Permite o desvio para um ponto qualquer do programa

Permite o desvio para um ponto qualquer do programa ENTRADA MANUAL Indica entrada de dados através

ENTRADA MANUAL

Indica entrada de dados através do Teclado

 
  Exemplo: Digite a nota da prova

Exemplo: Digite a nota da prova

 

EXIBIR

Mostra informações ou resultados Exemplo: Mostre o resultado do calculo

ou resultados Exemplo: Mostre o resultado do calculo RELATÓRIO       Relatórios PROCESSAMENTO

RELATÓRIO

   
 
  Relatórios

Relatórios

PROCESSAMENTO

 

ESTRUTURADO/PREDEFINIDO

Processamento Estruturado / Predefinido

Exemplo: Executar ROTINA -A e retornar ao mesmo ponto do programa.
Exemplo: Executar ROTINA -A e retornar ao mesmo ponto do programa.

Exemplo: Executar ROTINA-A e retornar ao mesmo ponto do programa.

PROCESSAMENTO ESTRUTURADO COM REPETIÇÃO

PROCESSAMENTO ESTRUTURADO COM REPETIÇÃO

Processamento estruturado com condição de

repetição e retorno ao mesmo ponto do comando, após condição satisfeita.

Exemplo: Ler até final de arquivo

53