LÓGICA DE PROGRAMAÇÃO
Prof. José Geraldo
1.1 Introdução
A Lógica é forma de organizar os pensamentos e demonstrar o
raciocínio de maneira correta. A utilização da lógica é a melhor maneira de
solucionar os problemas e atingir objetivos. Sempre que se pensar, falar e
escrever deve-se colocar o pensamento em ordem.
Um sistema lógico e um conjunto de regras que visam apresentar
formalmente o raciocínio válido.
A Lógica de Programação serve para desenvolver o raciocínio
necessário para a criação de programas de computadores. Nela, lidamos com
os conceitos de programação e com a tradução dos mesmos, o que facilita o
foco na idéia por trás, trabalhando como o pseudo-linguagens.
1.2 Seqüência Lógica
É um conjunto de passos executados até atingir um objetivo ou a
solução de um determinado problema.
1.3 Instruções
São determinações definidas para a realização ou emprego de algo. Na
Linguagem de programação é o que indica a um computador uma ação que
deverá ser executada.
1.4 Exercício
Mover um disco de cada vez para qualquer haste, sendo que nunca deve ser colocado um
disco maior sobre um menor. O objetivo é transferir os três discos da haste A para haste C.
Site: http://pt.scribd.com/doc/40146034/9/Exercicios, pesquisado em
19/02/2012, as 23horas e 33min
1.5 Programas
São processos de automação. Uma tarefa que deixa de ser
desempenhada pelo homem e passa a ser executada pela máquina.
Para que a automação de uma tarefa seja bem-sucedida é necessário
que a máquina que passará a realizá-la seja capaz de desempenhar cada uma
das etapas constituintes do processo a ser automatizado com eficiência, de
modo a garantir o sucesso.
Assim, é necessário que seja especificado com clareza e exatidão o
que deve ser realizado em cada uma das fases do processo a ser
automatizado, bem como a seqüência em que estas fases devem ser
realizadas.
2.1 Tipos de dados.
O processo realizado por um computador é baseado na manipulação
das informações contidas em sua memória. Estas informações podem ser
classificadas em dois tipos:
– Instrução, determinações que comandam o funcionamento do computador e
informar a maneira como devem ser verificado os dados.
– Dados, informações a serem processadas pelo computador.
Os dados são classificados como:
Inteiros
São números positivos ou negativos.
Exemplo: 42, 12, -16, 2012 entre outros.
REAIS
São numéricos positivos, negativos e fracionários.
Exemplo: 21, 0, -56, 1.2, -45.987 entre outros.
CARACTERES
São seqüências contendo letras, números e símbolos especiais.
Obs: Um conjunto de Caracteres deve estar entre aspas (“”).
Exemplo: “Programação”, “Rua Alfa, 52 Apto 1”, “Fone 574-9988”, “04387030”, “ ”, “7” entre outros.
Lógicos
São valores verdadeiros e falsos, sendo que só pode se um o outro.
2.1.1 Exercícios
.
Classifique os dados especificados abaixo de acordo com seu tipo,
assinalando com I os dados do tipo inteiro, com R os reais, com L os literais,
com B os lógicos (booleanos)..
( ) 0.21
()1
( ) “0.”
( ) “José”
( ) 0,35
( ) -0.001
( ) +3257
( ) “+3257”
( ) +3257.
( ) “-0.0”
( ) “.F.”
( ) “abc”
( ) Maria
( ) +36
2.2- Constantes
É um determinado valor fixo que não se modifica ao longo do tempo,
durante a execução de um programa. Conforme o seu tipo, a constante é
classificada como:
2.2.1 - Constante Numérica
Uma constante numérica é formada por uma seqüência de dígitos que:
a) Pode estar ou não precedida de um sinal positivo (+) ou negativo (-);
Exemplo: 26; +3272 ; -21
b) Pode estar ou não seguida de um ponto final (.) e outra seqüência
de dígitos:
Exemplo: 0.21, +3272; 2.16
c) Pode terminar ou não pela letra E seguida de outra seqüência de
dígitos.
Exemplo: 2,8E3, -315,21E
Obs:1- não pode haver espaço em branco entre os caracteres usados
para representar uma constate numérica.
2- a separação entre a parte inteira e a parte decimal cd um
número é feita com ponto decimal (.) e não com vírgula.
2.2.2- Constante Lógica
As duas constantes lógicas são representadas pelas palavras true e
false e são denominadas booleanas.
2.2.3 - Constante Literal.
As constantes literais são formadas por uma seqüência de caracteres
aceitos na implementação da linguagem, incluindo a letras latinas
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
Ou dígitos
0,1,2,3,4,5,6,7,8,9
Exemplo:
1-‘Geraldo’
2-’12345’
3-‘*’
2.2.4 – Exercícios
Identifique o tipo de cada constate:
a)50
b) ‘Casa’
c)’False’
d)0,211
e)True
2.3 Variáveis: nomenclatura, entrada, atribuição e saída de dados.
Variável, no contesto de programação é uma região previamente
identificada. Cada variável corresponde a uma posição de memória do
computado, cujo conteúdo pode ser alterado ao longo do tempo ou durante a
execução de um programa. Embora podendo assumir diferentes valores, ela
só poderá assumir uma valor de cada vez.
Sempre que criamos uma variável, temos o objetivo de armazenar
algum tipo de valor especifico.
Por exemplo, se estivermos desenvolvendo um sistema para calcular o
valor de cada passagem de ônibus que gastamos durante o mês,
precisaremos de variáveis para armazenar o valor de cada passagem, bem
como para armazenar os resultados dos cálculos no final do mês. Assim, o
nome dado à variável deve deixar claro o objetivo da mesma, ou seja,
devemos utilizar nomes sugestivos.
Exemplo1:
Variável
Nome
Conteúdo da Variável
“ José Geraldo”
Exemplo2:
Variável
Idade
Conteúdo da Variável
42
Exemplo3:
soma
Variáveis
A
B
Entrada de Dados:
São as informações fornecidas ao Sistema através do “usuário” .
Atribuição:
É o ato de atribuir um valor a uma determinada expressão
Exemplo1: identificador:= expressão;
Identificador: é o nome da variável á qual será atribuído o valor da
expressão
:= é o denominador operador de atribuição
Expressão: é uma expressão dos tipos já estudados
Obs: A expressão pode ser definida como sendo uma: constante, variável,
expressão matemática, função matemática, expressão booleana,...
O resultado sempre deverá respeitar o tipo da variável definida
Ex2:
X ß5000;
Y ß x * 30;
Saída de Dados:
São as informações visualizadas pelo “usuário”, após o processamento
realizado pelo Sistema.
2.4 Identificadores.
Um identificador é o nome do local onde guardaremos dados. Porem,
para sua criação devermos seguir as seguintes regras:
Devem iniciar com caracteres alfabéticos, nunca por número;
Segundo caractere em diante pode ser numérico;
Pode-se usar símbolo “_” como parte do identificador;
Devem ajudar a lembrar do que se trata a informação guardada
O nome não pode conter espaços ou qualquer caráter especial, exceto
o underline “_”.
O nome não pode ser igual às palavras reservadas da linguagem de
programação em uso.
–
Exemplo: nome e sobrenome
2.5 Operadores Básicos.
+
*
/
div
mod
Operadores aritméticos
Adição
subtração
Multiplicação
Divisão
Divisão inteira ou truncada
Resto da divisão
>
<
>=
<=
==
!=
Operadores relacionais
Maior
Menor
Maior ou Igual
Menor ou Igual
Igual
Diferente
And
Operadores lógicos ou booleanos
E
Or
Not
OU
NOT
3.1 Função “E” ou “AND”.
A função “E” ou “AND” tem como resultado “verdadeiro se e somente
se todas as proposições forem verdadeiras
A
V
F
F
V
B
F
V
F
V
AEB
F
F
F
V
Exemplo: Se sábado fizer sol E acordar cedo então vou à praia
3.2 Função “OU” ou “OR”.
A função “OU” ou “OR” tem como resultado “verdadeiro se pelo uma
das proposições for verdadeiras
A
V
F
F
V
B
F
V
F
V
AEB
V
V
F
V
Exemplo: Se sábado fizer sol OU acordar cedo então vou à praia
3.3 Função “NÃO” OU “NOT”.
A função “NÃO” ou “NOT” tem como resultado a negação da
preposição.
A
V
NÃO A
F
F
V
Exemplo:
A = Vou á praia sábado
Não A = Não vou á praia Sábado
3.4 Exercícios.
Sejam:
X=0, y=1, z = 2, a= “João” ,
Assinale com V as expressões verdadeiras e com F as falsas
Expressões
1)
2)
3)
4)
5)
6)
7)
8)
X>Z E Y=Z-1
X<0 OU Z>X
Y+3<Z E (X*3)<Y
(x>y ou Y>z) E (z<x ou Y>z-2)
NOT(Z>X )
NOT(X>Z ) E (Z+2)>0
NOT( A=’MARIA’)
NOT(X>Z E (Z+2)>0)
Respostas
(
(
(
(
(
(
(
(
)
)
)
)
)
)
)
)
Gabarito:
1-F, 2-V, 3-F, 4-F, 5-F, 6-V, 7-V, 8-V
4.1 Fluxograma.
É uma descrição padronizada em símbolos, que expressa à lógica de
um problema.
Na montagem e no processamento do fluxograma devemos observar
algumas regras básicas, tais como:
4.1.1- O fluxograma deve ser quebrado em vários níveis.
4.1.2- Inicie o fluxograma de cima para baixo e da esquerda para a
direita.
4.1.3- Não pode haver cruzamento nas linhas do fluxograma.
4.2 Simbologias do fluxograma.
Existem diversos símbolos em um fluxograma, no quadro abaixo
alguns dos símbolos que iremos utilizar:
P r o g r a m a , p r o c e d im e n t o o u a ç ã o
.
IN IC IO
T e r m in a l
F IM
C o n e c to r
T e s t e o u d e c is ã o
E n t r a d a M a n u a l ( t e c la d o )
C o n e c t o r d e P á g in a
P a p e l Im p re sso
F it a M a g n é t ic a
D is c o M a g n é t ic o
Imagem/figura retirada dos seguintes sites:
SITE:http://www.google.com.br/url?
sa=t&rct=j&q=&esrc=s&source=web&cd=37&ved=0CFcQFjAGOB4&url=http%3A%2F
%2Fwww.inf.ufrgs.br%2F~cabral%2FLogica.doc&ei=Pb5JT-
bjHYiEtgehp5nvAg&usg=AFQjCNHtjA9Ex9XcdCGljYQLGod8uEOMFA&sig2=AyQ_TUsPsy
a7AYXsWf7_kg
Pesquisa realizada em 19/02/2012, as 23horas e 58min
Site http://ftp.unicamp.br/pub/apoio/treinamentos/logica/logica.pdf
Pesquisa realizada em 20/02/2012, as 0horas e47min
Exemplo: cálculo da média de um aluno sob a forma de um fluxograma.
Início
N1, N2
Média ←
(N1+N2)/2
Média
“Aprovado”
>=7
“Reprovado”
Fim
Imagem/figura retirada dos seguintes sites:
SITE:http://www.google.com.br/url?
sa=t&rct=j&q=&esrc=s&source=web&cd=37&ved=0CFcQFjAGOB4&url=http%3A%2F
%2Fwww.inf.ufrgs.br%2F~cabral%2FLogica.doc&ei=Pb5JTbjHYiEtgehp5nvAg&usg=AFQjCNHtjA9Ex9XcdCGljYQLGod8uEOMFA&sig2=AyQ_TUsPsy
a7AYXsWf7_kg
Pesquisa realizada em 19/02/2012, as 23horas e 58min
Site http://ftp.unicamp.br/pub/apoio/treinamentos/logica/logica.pdf
Pesquisa realizada em 20/02/2012, as 0horas e47min
4.3 Exercícios.
1) Faça um fluxograma para um domingo.
2) Faça um fluxograma para calcular a soma de dois valores obtidos a
partir do teclado.
3) Escreva um algoritmo (fluxograma e pseudocódigo) para calcular a
média entre dois números quaisquer.
4) Faça um fluxograma que descreva a preparação de um bolo de
chocolate.
5) Faça um fluxograma para somar 3 valores inteiros.
6) Faça um fluxograma para mostrar o resultado da divisão de dois
números.
7) Faça um fluxograma para calcular o novo salário de um funcionário.
Sabe-se que os funcionários que recebem atualmente salário de até
R$700,00 terão aumento de 30%; os demais terão aumento de 10%.
5.1 Conceitos de algoritmos.
É uma continuação de comportamentos determinado que, se
forem executados em determinado período de tempo, chegará ao seu objetivo.
O algoritmo se define por uma continuação lógica de passos que
o computador executara fielmente para que se obtenha um resultado
satisfatório.
.
5.2 Estrutura Seqüencial.
Nesta estrutura os comandos são executados numa seqüência prédefinida. Cada passo é executado após o término do passo anterior.
Uma estrutura seqüencial é delimitada pelas palavras-reservadas
Algoritmo e Fim algoritmo e contêm basicamente comandos de atribuição,
comandos de entrada e comandos de saída.
Exemplo:
Algoritmo
Declare variáveis
d1
d2
d3
.
.
.
dn
c1
c2
c3
.
.
.
Cn
fim algoritmo
5.3 Estrutura Condicional.
Nesta estrutura é permitida a tomada de decisão ou seleção no
algoritmo, mediante a tomada lógica de uma ou mais condição.
Obs: Uma condição é uma expressão lógica.
Nela utilizamos as palavras chaves SE , ENTAO, SENÃO, FIM SE.
A principal estrutura condicional pode apresentar-se de duas formas:
5.3.1 Estrutura Condicional Simples.
Nesta estrutura uma condição deverá ser avaliada. De acordo com o
resultado desta avaliação, um procedimento ou um conjunto de procedimentos
serão executados se ela for verdadeira, caso contrário não será executada
Exemplo:
Se condição então
Seqüência A de comandos
Fim se
A seqüência A de comando será executada se a condição for
verdadeira; caso contrário, o comando as ser executado será o que vier logo
após o fim se
5.3.2 Estrutura Condicional Composta.
Nesta estrutura uma condição deverá ser avaliada. Se condição for
verdadeira, a seqüência A de comandos é executada e, a seguir, a estrutura e
abandonada, passando a execução para o comando que vier logo após o
término do fim se e neste caso, a seqüência B de comandos não será
executada. Se condição for falsa, a seqüência A de comandos será saltada e a
seqüência B de comandos será processada.
Exemplo:
Se condição então
Seqüência A de comandos
Senão
Seqüência B de comandos
Fim se
5.4 Exercícios.
1) Faça um algoritmo que leia três valores inteiros, determine e
imprima o menor deles.
2) Faça um algoritmo para imprimir s soma de dois valores inteiros
3) Faça uma algoritmo para calcular as 4 notas bimestrais de um aluno.
Fornecendo com resultado a situação do aluno, aprovado ou
reprovado
Obs: aprovado média >=6.
6.1 Estruturas de Repetição.
A estrutura de repetição executa um bloco de comandos enquanto uma
determinada condição for considerada verdadeira.
Existem 3(três) estruturas de repetição mais usadas, conforme listagem
a seguir.
6.1.1 - Enquanto
Exemplo:
Enquanto condição faça
Seqüência de comandos
Fim Enquanto
A seqüência de comandos será repetida enquanto a condição for
verdadeira. Quando isto não mais ocorrer, a repetição e interrompida, e a
seqüência de comandos, que vier logo após o fim enquanto, passa a ser
executada
6.1.2- Para
Exemplo:
Para variável de controle:= valor inicial até o valor final faça
Seqüência de comandos
Fim para
Nesta estrutura a variável de controle recebe o valor inicial, verifica se
ele ultrapassa o valor final, se não ultrapassa, a seqüência de comandos e
executada, a seguir, a variável de controle recebe o valor sucessor, verifica
novamente, enquanto não ultrapassar ela continua executando a seqüência de
comandos
6.1.3 Repita
Exemplo:
Esta estrutura que efetua um teste lógico no final de um laço,
verificando se é permitido ou não executar novamente o conjunto de
comandos no interior do mesmo.
REPITA
comando_composto
ATÉ QUE <condição>
6.2 Exercícios
Obs: Exercícios: 1,2,3,
Foram retirados do livro:Pascal Estruturado, 2ª edição, editora guanaba
1) Faça um algoritmo para imprimir a soma dos números pares
compreendidos entre 100 e 200, inclusive.
2) Num frigorífico existem 90 bois. Cada boi trás preso em seu pescoço
um cartão contendo seu número de identificação e seu peso. Faça
um algoritmo que escreva número e o peso do boi mais gordo e do
boi mais magro.
3) Uma pesquisa sobre as características físicas da população de
determinada região coletou os seguintes dados, referentes a cada
habitante, para serem analisados:
- sexo (masculino, feminino)
-cor dos olhos (azuis, verdes, castanhos, pretos)
- idade em anos
Para cada habitante, foi digitada uma linha com esses dados e a
última linha que não corresponde a ninguém, conterá o valor de idade
igual a -1. Faça um algoritmo que determine e escreva:
O total de habitante do sexo, feminino cuja idade está entre 18 e 35
anos, inclusive e que tenham olhos verdes
4) Faça um algoritmo para calcular a soma dos salários dos
funcionários de uma empresa. O algoritmo termina quando o usuário
digitar um salário menor que 0;
5) Faça um algoritmo para calcular os 100 primeiros números pares.
6) Faça um algoritmo que escreva 10 vezes o nome da Escola.
7) Faça um algoritmo que leia o nome, sexo e idade de 20 pessoas e
escreva o nome das pessoas que são do sexo masculino e que
tenham mais de 21 anos.
7.1 Variáveis compostas homogenias.
7.1.1 Vetor
Esta variável corresponde à posição de memória, identificas por um
único nome, individualizada por índices, e cujo conteúdo é de um mesmo tipo.
Exemplo:
Suponha-se que as notas de 10 alunos estejam em uma varíavesi
composta, identificada por nota.
70
Nota
90
60
60
58
91
100
47
74
86
Para fazer referencia ao quinto elemento desta variável pode se
escrever
Nota[5]
O conteúdo armazenado é 58. O índice e a constante inteira 5.
Os vetores são declarados anexando-se ao nome da variável um
colchete com o número de posições que o vetor poderá conter:
int idade[100]
Exemplo:
para i de 0 ate 5 passo 1 faça
escreva idade[i]
fim -para
7.1.2 Matriz
A estrutura tem como objetivo principal sua utilização na criação de
tabelas. Caracteriza-se por ser definida uma única variável vinculada
dimensionada com um determinado tamanho. A dimensão de uma matriz é
constituída por constantes inteiras e positivas.
Exemplo:
Algoritmo exemplo_escrita_de_matriz
Var
números : matriz[1..5,1..10] de inteiro
i , j : inteiro
7.2 Exercício
No algoritmo abaixo, quais os valores a serem impressos?
Para K=1 até 8
X(k) := k-1
Fim para
K: = k-1
Enquanto k> 4 faça
Aux := x(k-4)
x(k-4) := x(k)
x(k) := aux
imprima x(k)
k :=k-1
fim enquanto
se x(k)<x(k+2) então
imprima x(k+1)
senão
imprima x(k-1)
fim se
8.1 Conceitos da Linguagem de programação.
Um programa de computador codificação de um algoritmo em uma
determinada linguagem de programação, segundo suas regras, de forma a
permitir que o computador possa entender a seqüência de ações.
8.2 Implementação de algoritmo em Pascal
E a transformação do algoritmo em programas, ou seja, na linguagem
da maquina
Exemplo:
Faça um algoritmo para calcular os 100 primeiros números pares entre
100 e 200.
Em algoritmo
Algoritmo;
Declare soma, para: inteiro;
soma:=0;
par:=98;
par:=par +2
Enquanto par <= 200 faça
Soma:=soma + par;
Par:= par +2;
Fim enquanto
Imprima ( soma)
Fim algoritmo
Em pascal
Program SomaPares;
Var soma, para: integer;
begin
soma:=0;
par:=98;
par:=par +2
while par <= 200 do
Begin
Soma:=soma + par;
Par:= par +2;
End;
Write ( soma)
End.
BIBLIOGRAFIA
FORBELLONE, André. "Lógica de Programação - A Construção de
Algoritmos e Estruturas de Dados". São Paulo: Ed. Makron Books, 1993.
MECLER, Ian & MAIA, Luiz Paulo. Programação e Lógica com Turbo
Pascal. Rio de Janeiro: Ed. Campus, 1989.
FARRER, Harry. Programação Estruturada de Computadores. Rio de
Janeiro: Ed. LTC, 1989.
Sites pesquisados:
http://sitejovem.com.br/wp-content/uploads/2011/07/apostila-logica-deprogramacao-verrissimo-amaral-escola-joao-xxiii.pdf
pesquisado em 19/02/2012, as 213horas e 33min
http://www.slideshare.net/mvbahamut/cap02-6898707
pesquisado em 19/02/2012, as 22horas
http://homepage.ufp.pt/jtorres/ensino/prog/exercicios_programacao_0405.pdf
pesquisado em 19/02/2012, as 22horas e 20min
http://www.ferrari.pro.br/home/documents/FFerrari-CCechinel-Introducao-aalgoritmos.pdf
pesquisado em 19/02/2012, as 22horas e 50min
Download

LÓGICA DE PROGRAMAÇÃO Prof. José Geraldo 1.1 Introdução A