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

Logica de Programação - Conceito I

O documento discute lógica de programação e fornece informações sobre algoritmos, estruturas de dados, diagramas de blocos e operadores. Ele explica o que é lógica de programação e como desenvolver algoritmos usando pseudocódigo. Também descreve tipos de dados, variáveis, vetores e matrizes que podem ser usados em programação.

Enviado por

jesus.janaina
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)
37 visualizações61 páginas

Logica de Programação - Conceito I

O documento discute lógica de programação e fornece informações sobre algoritmos, estruturas de dados, diagramas de blocos e operadores. Ele explica o que é lógica de programação e como desenvolver algoritmos usando pseudocódigo. Também descreve tipos de dados, variáveis, vetores e matrizes que podem ser usados em programação.

Enviado por

jesus.janaina
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/ 61

Lógica de Programação

Israel Zanata Escorizza – Abril/2017


2
1. Lógica de programação
2. Desenvolvendo algoritmos
3. Estruturas de dados
4. Operadores
5. Estruturas de decisão e repetição

3
Lógica de programação

4
Lógica de programação

O que é lógica ?
• A lógica discute o uso de raciocínio em alguma atividade, é o estudo normativo,
filosófico do raciocínio válido se baseando no foco comum referente a harmonia de
raciocínio.
• Examina de forma genérica as formas que a argumentação pode tomar, quais dessas
formas são válidas e quais são falsas.

O que é programação ?
• Programação é o processo de escrita, teste e manutenção de um programa de
computador.

5
Lógica de programação

O que é logica de programação?


• Lógica de programação é encadear pensamentos em uma sequência de instruções para
atingir objetivos com o uso de ferramentas computacionais.

6
Desenvolvendo algoritmos

7
Desenvolvendo algoritmos

O que é um algoritmo ?
• É uma sequência de passos finita para realizar uma tarefa ou resolver um problema.
• Em nosso dia a dia utilizamos algoritmos para realizar nossas atividades, definindo a
sequência de passos que devemos fazer para atingir um objetivo.

Pseudocódigo
• Forma genérica de escrever um algoritmo, utilizando linguagem escrita simples,
independente de linguagem de programação.
• Deve ser de fácil interpretação e rico em detalhes.

8
Desenvolvendo algoritmos

Construindo um algoritmo com pseudocódigo


• Nomear seu algoritmo de forma a identificar sua funcionalidade
• Somente um verbo por frase.
• Frases curtas, simples e objetivas.
• Não usar palavras que permitam múltiplas interpretações.

Construir um algoritmo com pseudocódigo para:


Chegar ao trabalho depois que você acabou de acordar.

9
Desenvolvendo algoritmos

Ir trabalhar
• Levantar da cama
• Fazer a barba
• Tomar banho

• Se secar
• Escolher a roupa
• Vestir a roupa
• Pendurar a toalha
• Tomar café
• Ver noticiário
• Dirigir até o trabalho

• Chegar ao trabalho

10
Desenvolvendo algoritmos

Dividindo o problema
Podemos dividir um algoritmo em três partes principais:

• Entradas: Informações externas que são necessárias para execução.


• Processamento: Execução da sequência de passos informadas no algoritmo.
• Saída: Resultado final do processamento.

Construir um algoritmo com pseudocódigo para:


Calcular a média aritmética de um aluno com quatro notas de provas

11
Desenvolvendo algoritmos

Calcular média

• Receber nota 1
• Receber nota 2 Entrada
• Receber nota 3
• Receber nota 4

• Somar todas notas recebidas


Processamento
• Dividir soma das notas por 4

• Mostrar média das notas Saída

12
Desenvolvendo algoritmos

Teste de mesa
• Teste de mesa é o nome que se dá ao teste manual do algoritmo, seguindo suas
instruções de maneira precisa para validar o procedimento descrito.

13
Diagrama de blocos

14
Diagrama de blocos

O que é o diagrama de blocos ?


• Forma padronizada para representar os passos lógicos de um processamento,
facilitando o entendimento do fluxo de execução.

• Cada símbolo contém a descrição pertinente de como foi utilizado no fluxo, indicando
processamento ou informação que representa.

• Os símbolos são ligados por setas, indicando o fluxo da execução.

15
Diagrama de blocos

Início ou fim de um processamento

Terminador

Passos do processamento

Processamento

Entrada de dados realizadas por fontes externas

Entrada

16
Diagrama de blocos

Ponto onde será efetuada uma escolha entre duas situações possíveis

Decisão

Exibe os resultados obtidos no processamento

Exibição

Indica um documento utilizado pelo processamento, seja para entrada


de informações ou armazenamento
Documento

17
Diagrama de blocos

Construir um algoritmo com diagrama de blocos para:


Calcular a média aritmética de um aluno, verificando se existe mais notas a receber

Terminador Decisão Processamento

Entrada Exibição Documento

Fluxo

18
Diagrama de blocos
Inicio

Existe
Recebe nota
nota? Sim
Não

Soma notas

Divide somatória
pela quantidade de
notas

Exibir
média

Fim

19
Estruturas de dados

20
Estruturas de dados

Tipos de dados
• Algoritmos manipulam dados que normalmente são fornecidos pelos usuários, e
entregam resultados de um processamento para estes usuários.

• Uma pergunta neste momento é: “Quais tipos de dados poderemos manipular ?”

21
Estruturas de dados

Dados numéricos
• São números inteiros ou reais, positivos ou negativos. (Algumas linguagens de
programação diferem números inteiros de números reais)
• Utiliza-se este tipo de dado quando é necessário realizar operações matemáticas como
soma, subtração e etc.

Dados literais
• São símbolos, que em sua menor unidade são chamados de CARACTERE e sempre
são apresentados entre aspas simples. Por exemplo: ‘A’, ‘b’, ‘1’, ‘ã‘
• Um conjunto de um ou mais CARACTERES é chamado de STRING e sempre são
apresentados entre aspas duplas. Por exemplo: “Linguagem de programação”, “123456”

22
Estruturas de dados

Dados lógicos
• Dados lógicos são utilizados durante o processo de tomada de decisões.

• Estes dados somente assumem os valores:

VERDADEIRO | TRUE | 1 | .T.


ou
FALSO | FALSE | 0 | .F.

23
Estruturas de dados

Variáveis
• São espaços reservados na memória do computador, identificados por um nome único,
para armazenar dados que serão utilizados durante a execução do programa.

• Uma variável possui três atributos:


Nome
Tipo de dado
Informação armazenada

• As variáveis devem ser declaradas no início do código da seguinte maneira


VAR <NOME> : <TIPO>

24
Estruturas de dados

Nomeando variáveis
• Cada linguagem e programação estabelece suas próprias regras de formação de nomes
de variáveis. Adotaremos algumas boas práticas para melhor entendimento.

• O nome da variável deve iniciar com um caractere em minúsculo que defina seu tipo,
c (texto [caractere]), n (numérico), l (lógico), a (vetor [array]) ou o (objeto),

• Sequencialmente ao identificador de tipo, um nome que represente seu conteúdo, com


a primeira letra em maiúsculo.

• O nome da variável não deve conter acentuação, espaços em branco ou caracteres


especiais além de sublinhado ( _ )

Ex: cNome; cCodFor; nNota_1; lAtuVlr

25
Estruturas de dados

Vetores (Array)
• É um conjunto de variáveis, geralmente do mesmo tipo, agrupadas continuamente na
memória do computador.

• As variáveis do tipo vetor devem ser declaradas no início do código da seguinte maneira
VAR <NOME> [<TAMANHO>] : <TIPO>

• Cada dado armazenado é acessado com a utilização de um índice

Índice || 1 || 2 || 3 || 4 || 5 ||
Dado || 10 || 8.5 || 7.5 || 10 || 7 ||

Exemplo
aDado[3] possui o valor 7.5
aDado[1] possui o valor 10

26
Estruturas de dados

Matriz
• São arranjos ordenados como os vetores, porém podem possuir N dimensões.
Computacionalmente, o tipo de uma matriz é um vetor (array) e podem ser definidas
como um vetor de vetores.

• As variáveis do tipo devem ser declaradas no início do código da seguinte maneira


VAR <NOME> [<TAMANHO_1>, <TAMANHO_2>,..,<TAMANHO_N>] : <TIPO>

• Cada dado armazenado é acessado com a utilização de um índice composto


Índice X || 1 || 2 || 3 ||
Índice Y || 1 || 2 || 1 || 2 || 1 || 2 ||
Dados || 5 || 7.5 || 8.4 || 1 || 6 || 4 ||

Exemplo
aDado[2,1] possui o valor 8.4

27
Operadores

28
Operadores

Operadores
• São os símbolos utilizados para realizar uma ação, seja ela atributiva, matemática ou
comparativa.

Operador de atribuição
• É o operador utilizado para definir o valor de uma variável

:= Atribuição (é igual a)

Exemplos
cNome := “Joana”
nMedia := 8.0
lPassou := .T.

29
Operadores

Operadores matemáticos
• São os operadores utilizados para cálculo matemáticos em dados do tipo numérico.
• Como na matemática, é possível definir prioridades com a utilização de parênteses ( ).

+ Adição
- Subtração
* Multiplicação
/ Divisão
% Resto de divisão
^ Exponenciação

Exemplos
nNota := 8 + 4 + 6 + 5
nMedia := nNota / 4
nDelta := nB ^ 2 - ( 4 * nA * nC )

30
Operadores

Operadores de atribuição composta


• São operadores que atribuem um valor realizando algum tipo de cálculo sempre
referente a variável a esquerda do símbolo

+= Adiciona
-= Subtrai
*= Multiplica por
/= Divide por
%= Resto de divisão por
^= Exponencia

Exemplos
nNota += 8 equivale a nNota := nNota + 8
nValor *= 3 equivale a nValor := nValor * 3

31
Operadores

Operadores de incremento e decremento


• São os operadores utilizados para realizar incremento ou decremento de uma unidade
da variável.

++ Incremento
-- Decremento

• Quando estes operadores são utilizados em um cálculo, podem ser inseridos antes ou
após a variável, entretanto, seu posicionamento influenciará no resultado.

• Quando é inserido a esquerda da variável, é executada a operação, e após considerado


o valor da variável para o cálculo.

• Quando é inserido a direita da variável, é considerado o valor da variável para o cálculo,


e após é executada a operação.

32
Operadores

Operadores de incremento e decremento


Exemplos
nA := 10
nCalc := nA++ * nA

Neste exemplo a variável nCalc possui 110 pois:


Foi considerado nA como 10,
Foi realizada a operação de incremento em nA que agora vale 11
Foram multiplicados os valores identificados 10 e 11

33
Operadores

Operadores de incremento e decremento


Exemplos
nA := 11
nCalc := --nA * nA

Neste exemplo a variável nCalc possui 100 pois:


Foi realizada a operação de decremento em nA que agora vale 10
Foi considerado nA como 10,
Foram multiplicados os valores identificados 10 e 10

34
Operadores

Operadores relacionais
• São os operadores utilizados para comparação dos dados, retornando um valor lógico
verdadeiro (.T.) ou falso (.F.)

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

$ Está contido em (somente para strings)


# Não está contido em (somente para strings)

35
Operadores

Operadores relacionais
• Exemplos

lNumDez := nValor == 10
lNumImpar := (nNum % 2) != 0
lRepetiu := nMedia < 7
lPassou := nMedia >= 7

lNaLista := “Pedro” $ cListaApr

36
Operadores

Operadores lógicos
• São os operadores utilizados para avaliações lógicas, retornando um valor lógico
verdadeiro (.T.) ou falso (.F.)

.AND. E
.OR. Ou
! Negação (Inversão lógica)

• Computacionalmente um falso lógico (.F.) recebe o valor 0 e um verdadeiro lógico (.T.)


recebe o valor 1. Sendo assim, podemos fazer a associação:

.AND. é uma multiplicação, e se o resultado for maior do que zero, é verdadeiro

.OR. é uma soma, e se o resultado for maior do que zero, é verdadeiro

37
Operadores

Operadores lógicos – Tabela verdade


• Uma ferramenta muito importante é a tabela verdade, que apresenta uma perspectiva
visual as operações lógicas.

Operadores lógicos – Tabela verdade - Negação

lVar_1 !lVar_1

.F. .T.

.T. .F.

38
Operadores

Operadores lógicos – Tabela verdade - .AND.

lVar_1 lVar_2 lVar_1 .AND. lVar_2

.F. .F. .F.

.F. .T. .F.

.T. .F. .F.

.T. .T. .T.

39
Operadores

Operadores lógicos – Tabela verdade - .OR.

lVar_1 lVar_2 lVar_1 .OR. lVar_2

.F. .F. .F.

.F. .T. .T.

.T. .F. .T.

.T. .T. .T.

40
Operadores

Operadores lógicos
• As comparações lógicas podem ser encadeadas como operações matemáticas, que
serão executadas uma a uma.
• Como nas operações matemáticas, é possível definir prioridades com a utilização de
parênteses ( ).

Exemplos
lRet := lVar_1 .AND. lVar_2
lRet := lVar_1 .OR. lVar_2
lRet := !lVar_1 .AND. !lVar_2
lRet := !(lVar_1 .OR. lVar_2)
lRet := (lVar_1 .OR. lVar_2) .AND. !lVar_3

41
Operadores

Operadores lógicos – Tabela verdade composta


• Podemos utilizar a tabela verdade para comparações compostas, validando cada passo
das comparações e chegando a um valor final.

Sendo a comparação lógica: (lVar_1 .OR. lVar_2) .AND. !lVar_3

lVar_1 lVar_2 lVar_3 lVar_1 .OR. lVar_2 !lVar_3 (lVar_1 .OR. lVar_2) .AND. !lVar_3

.F. .F. .F. .F. .T. .F.


.F. .F. .T. .F. .F. .F.
.F. .T. .F. .T. .T. .T.
.F. .T. .T. .T. .F. .F.
.T. .F. .F. .T. .T. .T.
.T. .F. .T. .T. .F. .F.
.T. .T. .F. .T. .T. .T.
.T. .T. .T. .T. .F. .F.

42
Operadores

Construir a tabela verdade para a operação lógica


!(lVar_1 .AND. lVar_2) .OR. (lVar_1 .AND. lVar_3)

43
Operadores

lVar_1 lVar_2 lVar_3 lVar_1 .AND. lVar_2 !(lVar_1 .AND. lVar_2) lVar_1 .AND. lVar_3 !(lVar_1 .AND. lVar_2) .OR. (lVar_1 .AND. lVar_3)

.F. .F. .F. .F. .T. .F. .T.


.F. .F. .T. .F. .T. .F. .T.
.F. .T. .F. .F. .T. .F. .T.
.F. .T. .T. .F. .T. .F. .T.
.T. .F. .F. .F. .T. .F. .T.
.T. .F. .T. .F. .T. .T. .T.
.T. .T. .F. .T. .F. .F. .F.
.T. .T. .T. .T. .F. .T. .T.

44
Estruturas de
decisão e repetição

45
Estruturas de decisão e repetição

Estruturas de decisão
• Os comandos de decisão são utilizados em algoritmos onde o fluxo da solução não é
obtiva através da utilização de ações puramente sequenciais, avaliado condições
lógicas para optar qual fluxo deve ser seguido a partir daquele ponto.

46
Estruturas de decisão e repetição

Estruturas de decisão – IF...ELSE


• A estrutura IF...ELSE (SE/SENÃO) permite a verificar se determinada condição é
verdadeira ou falsa, dividindo o código em duas ramificações distintas até o final da
estrutura, onde o código volta a ser único.

• A estrutura IF...ELSE (SE/SENÃO) permite que criemos desvios no código, não sendo
obrigatório a inclusão de ações vinculadas a cada resultado.

47
Estruturas de decisão e repetição – IF...ELSE

CODIGO
Ações anteriores
IF <CONDIÇÃO>
...
...
Falso ( .F. ) Condição Verdadeiro ( .T. ) ...
lógica ELSE
...
Ações vinculadas ...
Ações vinculadas
ao resultado ...
ao resultado falso
verdadeiro ENDIF

Unificação do fluxo
ao final da
estrutura

48
Estruturas de decisão e repetição – IF...ELSE

CODIGO

Ações anteriores IF <CONDIÇÃO>


...
...
...
Condição Verdadeiro ( .T. )
ENDIF
lógica
Ações vinculadas
Falso ( .F. )
ao resultado
verdadeiro

Unificação do fluxo
ao final da
estrutura

49
Estruturas de decisão e repetição

Estruturas de decisão – DO...CASE


• A estrutura DO...CASE (CASO) permite a verificar diversas condições consecutivas,
executando as ações vinculadas a primeira condição com retorno verdadeiro.

• Podemos considerar esta estrutura como um IF...ELSE para N possibilidades o que é


muito útil na solução de problemas de grande complexidade onde diversas
combinações de condições podem ser utilizadas.

50
Estruturas de decisão e repetição – DO...CASE
CODIGO
Ações anteriores
DO CASE
CASE <CONDIÇÃO_1>
...
Condição Verdadeiro ( .T. ) Ações vinculadas a ...
lógica 1 condição lógica 1 CASE <CONDIÇÃO_2>
...
Falso ( .F. ) ...
CASE <CONDIÇÃO_N>
Condição Verdadeiro ( .T. ) Ações vinculadas a ...
lógica 2 condição lógica 2 ...
OTHERWISE
Falso ( .F. ) ...
...
ENDCASE
Condição Verdadeiro ( .T. ) Ações vinculadas a
lógica N condição lógica N

Falso ( .F. )
Ações de falha de
todas condições
(opcional)
Unificação do fluxo
ao final da
estrutura

51
Estruturas de decisão e repetição

Estruturas de repetição (Laços)


• Os comandos de repetição são utilizados em algoritmos onde é necessário que
determinadas ações sejam executadas por um número determinado de vezes, ou até
que uma condição seja verdadeira.

• Estruturas de repetições são extremamente poderosas porem, devemos nos atentar que
nosso código seja capaz de finalizar estas repetições, ou então o programa executará
estas ações indefinidamente. Em programação chamamos esta condição de “programa
em loop”.

52
Estruturas de decisão e repetição

Estruturas de repetição – WHILE...END


• A estrutura WHILE...END (ENQUANTO) deve ser utilizada quando o número de
repetições não é conhecido e as instruções devem ser realizadas somente se
determinada condição de referência for verdadeira ( .T. ).

• Caso a condição de referência seja falsa na primeira análise, as instruções não serão
executadas.

53
Estruturas de decisão e repetição – WHILE...END

CODIGO

Ações anteriores WHILE <CONDIÇÃO>


...
...
...
Condição Falso ( .F. ) END
referencia

Verdadeiro ( .T. )

Ações de repetição

Continuidade do
fluxo ao final da
estrutura

54
Estruturas de decisão e repetição

Estruturas de repetição – DO...WHILE


• A estrutura DO...WHILE (FAÇA/ENQUANTO) é muito parecida com a WHILE...END
(ENQUANTO). A diferença é que a verificação da condição de referência é realizada ao
final da estrutura de repetição, fazendo com que ao menos uma vez, as instruções
serão realizadas.

55
Estruturas de decisão e repetição – DO...WHILE

CODIGO
Ações anteriores
DO
...
...
...
WHILE <CONDIÇÃO>
Ações de repetição

Condição
referencia Verdadeiro ( .T. )

Falso ( .F. )
Continuidade do
fluxo ao final da
estrutura

56
Estruturas de decisão e repetição

Estruturas de repetição – FOR...TO...NEXT


• A estrutura FOR...TO...NEXT (DE/ATE) deve ser utilizada quando o número de
repetições é conhecido, com a utilização de uma variável de controle.

• Cada repetição recebe o nome de passo e é avaliado em uma condição lógica de


referência e o próximo passo somente é executado em caso verdadeiro ( .T. ). Desta
forma a estrutura compreende um controle do número de passos executados.

• Em algumas linguagens como o ADVPL, é possível definir o incremento da variável de


controle utilizando o parâmetro STEP

• Caso a condição de referência seja falsa na primeira análise, as instruções não serão
executadas.

57
Estruturas de decisão e repetição – FOR...TO...NEXT
CODIGO
Ações anteriores
FOR <VAR_CONTROLE> := <INICIALIZADOR> TO <CONDIÇÃO> STEP <PASSO>
...
...
...
Condição Falso ( .F. )
...
referencia NEXT <VAR_CONTROLE>

Verdadeiro ( .T. )

Ações de repetição

Incremento da
variável de controle

Continuidade do
fluxo ao final da
estrutura

58
Estruturas de decisão e repetição

Construir um algoritmo para:


Calcular a média aritmética de um aluno e verificar se este passou de ano.

Regras:
• Receber o nome do aluno
• Receber 4 notas em um vetor.
• Realizar o cálculo da média aritmética.
• Se nota menor do que 5.0, o aluno repetiu de ano
• Se nota entre 5.0 e 7.4, o aluno está de recuperação
• Se nota maior ou igual a 7.5, o aluno passou de ano.
• Se o aluno está de recuperação: receber nova nota
• Calcular nova média (Somar média anterior com nova nota e dividir por 2).
• Se nota maior ou igual a 6.0, aluno passou. Se não, aluno está reprovado.

59
Estruturas de decisão e repetição
CalcularMedia
VAR cNome : literal
VAR aNotas[4] : vetor
VAR nMedia : numérico
VAR nX : numérico

nMedia := 0
cNome := Receber_Nome

FOR nX := 1 TO 4 STEP 1
aNotas[nX] := Receber_Nota
nMedia += aNotas[nX] / 4
NEXT

DO CASE
CASE nMedia < 5.0
Mensagem: Aluno + cNome + repetiu de ano.
CASE nMedia >= 5.0 .AND. nMedia <= 7.4
nMedia := (nMedia + Receber_Nota_Rec) / 2
IF nMedia >= 6.0
Mensagem: Aluno + cNome + passou de ano.
ELSE
Mensagem: Aluno + cNome + repetiu de ano.
ENDIF
CASE nMedia > 7.4
Mensagem: Aluno + cNome + passou de ano.
ENDCASE

60
/totvs Israel Zanata Escorizza
@totvs SQUAD GCT/GCP

blog.totvs.com Israel.escorizza@totvs.com.br

company/totvs

fluig.com Obrigado =)

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy