Você está na página 1de 44

Faculdade de Ciências

Universidade Agostinho Neto

Curso: Ciências da Computação

LÓGICA DE
PROGRAMAÇÃO
•Avaliação
Prova Escrita (Exame)
projecto
Media Final = 60% Exame +40% Projecto
• Aulas
2 Aulas Semanal
1 Aula de Laboratorio Semanal

Docente: Msc. Dikiefu Fabiano


Curso: Ciência da computação
Índice
2. Operadores
1. Introdução à Lógica de Programação
3. Tipo d expressões
1. Noções da Lógica
4. Avaliação de expressões
2. Conceito de Algoritmo. 5. Comandos de entrada e saída de dados
3. Formas de Representação de 6. Estruturas de controlo
Algoritmos 1. Estruturas de Selecção
4. Descrição Narrativa 2. Estruturas de Repetição
7. Matrizes
5. Fluxograma Convencional
1. Matrizes unidimensional
6. Pseudocodigo
2. Matrizes multidimensionais
2. Tipos de Dados
8. Registos
3. Variáveis
1. o de
1. Conceito e utilidade de variáveis
2. Definição de variáveis em algoritmo
3. Mapeamento de variáveis na memoria
4. Expressões
1. Conceitos
Introdução à Lógica de Programação
Noções de Lógica
 A lógica pode ser relacionado com a correcção, pois uma das
suas preocupações é determinar quais operações são válidas e
quais não, fazendo análise das formas e leis do pensamento.
 De ponto de vista filosófico, ela procura saber por que
pensamos assim não de outro jeito.
 Ela é a arte de bem pensar, que é a ciência das formas de
pensamento. Visto que a forma mais complexa do pensamento
é raciocínio, a lógica estuda a correcção do raciocínio.
 A lógica tem em vista a ordem razão, isso dá a entender que a
nossa razão pode funcionar desordenamente. Por isso, a lógica
estuda e ensina a colocar ordem no pensamento.
Lógica de Programação
 Significa o uso correcto das leis do pensamento, da ordem de
razão e do processamento de raciocínio e simbolização formais na
programação de computadores, com objectivo de racionalização e
o desenvolvimento de técnicas que cooperem para a produção de
soluções logicamente válidas e coerentes, que resolvam com
qualidade os problemas que se deseja programar.
 Um mesmo raciocínio pode ser expresso em qualquer um dos
idiomas existentes, mas continuará representando o mesmo
raciocínio, usando apenas outra convenção. O mesmo acontece
com lógica de programação, que pode ser concebida pela mente
treinada e pode ser representada em qualquer uma da inúmeras
linguagens de programação existentes.
 Para representar fielmente a lógica de programação utilizamos os
algoritmos.
Conceito de Algoritmo

 Algoritmo é um conjunto finito de regras, bem definidas, para a


solução de um problema em um tempo finito e com um número
finito de passos.

 Serve como modelo para programas, pois sua linguagem é


intermediaria a linguagem humana e as linguagens de
programação, sendo então, uma boa ferramenta na validação da
lógica de tarefas a serem automatizadas.

 Os algoritmos, servem para representar a solução de qualquer


problema, mas no caso de processamento de dados, eles devem
seguir as regras basicas de programação para que sejam
compatíveis com as linguagens de programação.
Formas de Representação de Algoritmos
Formas de representação de algoritmos
Há diversas formas de representação de algoritmo. Essas formas
diferem entre si pela quantidade de detalhes de implementação que
fornecem ou, inversamente, pelo grau de abstracção que
possibilitam com a relação a implementação do algoritmo em
termos de linguagem de programação especifica.

Dentre as principais formas de representação de algoritmos


destacam se:
 Descrição narrativa;
 Fluxograma convencional;
 Pseudocodigo (ou linguagem estruturada).
Descriçao Narrativa

Nesta forma de representação os algoritmos são expressos directamente em


linguagem natural

Receita de Bolo Tomando um Banho


1. Misture os ingredientes 1. Entrar no banheiro e tirar a roupa
2. Unte a forma com manteiga 2. Abrir a torneira do chuveiro
3. Despeje a misture na forma 3. Entrar na agua
4. Se houver coco ralado então despeje sobre a 4. Ensaboar-se
mistura 5. Sair da agua
5. Leve a forma ao forno 6. Fechar s torneira
6. Enquanto não estiver pronto deixa a forma 7. Enxugar-se
no forma 8. Vestir-se
7. Retire do forno
8. Deixar esfriar
Descriçao Narrativa
Exemplos: continuação

Troca de pneu furado Cálculo da media de um aluno


1. Afrouxar ligeiramente as porcas 1. Obter as suas 2 notas de prova
2. Suspender o carro 2. Calcular a media aritmetica
3. Retirar as porcas e o pneu 3. Se a media for maior ou igual a
4. Colocar o pneu reserva 10,
5. Apertar as porcas 4. O aluno foi aprovado
6. Baixar o carro 5. Senão
7. Dar o aperto final nas porcas 6. Aluno reprovado
Fluxograma Convencional
 É uma representação gráfica de algoritmo onde formas
geométricas diferentes implicam acções (instruções
comandos) distintas.

 Tal propriedade facilita o entendimento das ideias


contidas nos algoritmos e justifica sua popularidade.

 Esta forma é aproximadamente intermediária a


descrição narrativa e ao pseudocodigo (sub item
seguinte), pois é menos imprecisa que a primeira e, no
entanto, não se preocupa com detalhes de
implementação do programa.
Fluxograma Convencional

Inicio e fim de programa Operação de saida

Decisão

Operação de atribuição Operação de entrada de dados


Fluxograma Convencional (Exemplo)

Calculo da media de um aluno


sob a forma de um fluxograma inicio
Partindo do simbolo inicial, há
sempre um único caminho
N1, N2
orintado a ser seguido,
representando a existência de
Media(N1+N2)/2
uma única sequência de
execução das instruções.
Media
>=10

Aprovado Reprovado

Fim
Pseudocódigo

 Esta forma de representação de algoritmo é rica em detalhes,


como a definição dos tipos das variáveis usadas no
algoritmo. Por assemelhar-se bastante a forma em que os
programas são escritos, encontra muita aceitação.

 Na verdade, esta representação e suficientemente geral para


permitir a tradução de um algoritmo nela representado para
uma linguagem de programação especifica seja praticamente
directa.
Pseudocódigo
A forma geral da representação de um algoritmo na forma de pseudocódigo

Algoritmo <nome_do_algoritmo>
<declaracao_de_variaveis>
<subalgoritmos>

inicio
<corpo do algoritmo>
fimalgoritmo

Algoritmo é uma palavra que indica o início da definição de um algoritmo em forma de


pseudocódigo.
<nome_do_algoritmo> é um nome simbolico dado ao algoritmo com a finalidade de distingui-
lo dos demais.
<declaração de variaveis> consiste em uma porção opcional onde são declaradas as
variaveis globais usadas no algoritmo principal e, eventualmente, nos subalgoritmos.
Início e fimalgoritmo são respectivamente as palavas que delimitam o inicio e o termino do
conjunto de instruções do corpo do algoritmo.
Pseudocodigo (Exemplo)

Representação do algoritmo do calculo da media de um aluno, na


forma de um pseudocodigo.
//Algoritmo Calculo_Media
real n1, n2, media:
inicio
leia n1, n2
media (n1+n2)/2
Se media >= 10 então
Escreva “Aprovado”
Senao
Escreva “Reprovado”
Fim-se
fimalgoritmo
Tipo de Dados

Temos três tipos de dados:

1. Dados Numéricos
2. Dados Cadeia de caracteres
3. Dados Lógicos
Tipos de Dados Numéricos
Os dados numéricos são divididos em duas classes: os inteiros e os reais

 Dados numéricos inteiros

São aqueles que não possuem componentes decimais ou fraccionários, podendo ser positivo
ou negativo (conjunto  e ).
Ex: 15 – numero inteiro positivo
- 20 – numero inteiro negativo
0 – numero inteiro

 Dados numéricos reais

São aqueles que podem possuir componentes decimais ou fraccionários, podem também ser
positivo ou negativos. (conjunto ).
Ex:
15.75 – numero real positivo com duas casas decimais
- 20.4 – numero real negativo com uma casa decimal
0.0 – numero real com uma casa decimal
0. - numero real com zero casa decimal
Tipos de Dados Cadeia de Caracteres

 O tipo de dados cadeia de caracteres é constituído por uma


sequencia de caracteres contendo letras, dígitos e /ou símbolos
especiais.
 Este tipo de dados é também chamado alfanumérico, do inglês
string.
 Usualmente, as cadeia de caracteres são representados nos
algoritmos pela colecção de caracteres, delimitado em seu inicio
e termino com o carácter aspas (“”).
 Diz-se que o dado do tipo de dados cadeia de caracteres possui
um comprimento dado pelo numero de caracteres nele contido.
Cadeia de Caracteres(Exemplos)

 “QUAL ?” – cadeia de caracteres de comprimento 6


 “ ” – cadeia de caracteres de comprimento 1
 “qUaL ?!$” – cadeia de caracteres de comprimento 8
 “1-2+3=4” – cadeia de caracteres de comprimento 7
 “0” – cadeia de caracteres de comprimento 1
Tipos de Dados Lógicos (booleanos)

• O tipo de dado lógico é usado para representar dois


únicos valores possíveis: Verdadeiro (V) e falso (F).
• É comum encontrar-se em outras referencias outros tipos
de pares de valores lógicos como sim/não, 1/0, true/false.
Constantes

Um dado é constante quando não sofre


nenhuma variação no decorrer do tempo, ou
seja, seu valor é constante desde o início até
ao fim da execução do algoritmo, assim
como é constante para execução diferentes
no tempo.
Exemplo:
◦ Pi=3,1414… ; 5, 15272 ... “Não Fume”
Variável

 Um dado é classificado como variável quando


tem a possibilidade de ser alterado em algum
instante no decorrer do tempo, ou seja,
durante a execução do algoritmo em que é
utilizado, o valor do dado sofre alterações ou
o dado é dependente da execução em um certo
memento ou circunstância.
 Exemplo:
◦ Idade, cotação de divisa, altura, nome ou idade de
uma pessoa, etc…
Formação de identificadores
Exemplo:
Basicamente, uma variável possui três
atributos: um nome(identificador), um • SALARIO  correcto
tipo de dado associado a mesma e a
informação por ela guardada. • 1ANO  incorrecto

 O nome da variável deve • A CASA  incorrecto


necessariamente começar com uma • SAL/HORA  incorrecto
letra;
 O nome da variável não pode conter • SAL_HORA  correcto
nenhum símbolo especial excepto o
sublinha (_). • _DESCONTO  incorrecto
Sintaxe de definição de uma variáveis

 Todas as variáveis utilizadas em algoritmo devem ser definidas


antes de serem utilizadas. Isto é necessário para permitir que o
compilador reserve um espaço na memória para as mesmas.

Sintaxe:
<tipo_de_dado> <nome_da_variavel>
<tipo_de_dado> <nome_da_variavel>, <nome_da_variavel>, …

Exemplo:
string caracter
inteiro idade, qtd
real salario
logico trabalha
Exercícios

Classifica os dados especificados abaixo de acordo com seu tipo, assinalando


com I os dados do tipo inteiro, com R os reais, com C o caractere, com B os
lógicos (booleanos), e com N aqueles para os quais não e possível definir o
tipo de dado

( ) 0.21 ( )1 ( )V ( )”0” ( )1% ( )


“jose” ( ) 0.35 ( )F ( )T ( ) 0.001 ( )
+3257 ( ) “- 0.0” ( ) “F” ( ) +3 ( )”abc” ( )F
( )C ( ) Maria ( ) +36
Exercícios

 Explique o que esta errado nos identificadores incorrectos

( ) valor ( ) _b248 ( ) nota *do *aluno ( ) a1b2c3


( ) 3X4 ( ) Maria ( ) Km/h ( ) xyz
( ) nome empresa ( ) sala_04 ( )”nota” ( ) ah!

 Supondo que as variáveis NB, NA, NMAT e SX sejam utilizadas para


armazenar a nota, o nome, o numero de matricula e o sexo de um aluno,
declare-as correctamente, associando o tipo adequado ao dado que será
armazenado.
Expressões
O conceito de expressão em termos computacionais esta
intimamente ligado ao conceito de expressão (ou formula)
matemática, onde um conjunto de variáveis e constantes
numéricas relacionam-se por meio de operadores aritméticos
compondo uma formula que, uma vez avaliada resulta num valor.

Ex.: area = base * altura * 0,5


 ou
area = (base * altura) /2

Matemática
Computacional
Operadores

 Operadores são elementos operacionais que actuam


sobre operandos e produzem um determinado resultado.
 Temos três tipos de operadores:
 Aritméticos
 Relacionais
 Lógicos
 De acordo com o número de operandos sobre os quais os
operadores actuam, os últimos podem ser classificados
em:
 Binários
 unários
Operadores Aritméticos

Os operadores aritméticos são utilizados para obter


resultados aritméticos. Além da adição, subtracção,
multiplicação e divisão, podem utilizar também o operador
para exponenciação.
Operação Símbolo

Adição +
Subtracção –

Multiplicação *

Divisão /
Exponenciação **
Expressões Aritméticas
são aquelas cujo o resultado da avaliação é do tipo numérico, seja ele
real ou inteiro. Somente o uso de operadores aritméticos e variáveis
numéricas é permitido em expressões deste tipo.
operador tipo operação prioridade

+ binário Adição 4 Operadores aritméticos e sua


ordem de prioridade
- binário subtracção 4

* binário multiplicação 3

/ binário divisão 3

** binário exponenciação 2

+ unário Manutenção de 1
sinal
- unário Inversão de sinal 1
Operadores Aritméticos (Exemplo)

Exemplos:
a) 1+7*2**2-1=28 b) 3*(2+7)/(5+1)

Solução: Solução:

1+7*4-1 3*9/(5+1)
1+28-1 3*9/6
29-1 27/6
28 4.5

c) 3*(1-2)+4*2=5 (tpc)
Operadores Relacionais
Os operadores relacionais são utilizados para comparação de
números e caracteres. Estes operadores sempre retornam valores
lógicos (Verdadeiro ou Falso/ True ou False)

Para se estabelecer prioridade no que diz respeito a qual operação


executar primeiro, utiliza-se os parênteses.
Operador Símbolo

Igual a =
Diferente de <> Ou != ou 

Maior que >


Menor que <

Maior ou igual que >=

Menor ou Igual que <=


Operadores Relacionais (Exemplo)

1. Tendo A = 7 e B = 10, temos Símbolo utilizado para comparação entre


expressões.
Expressão Resultado

A=B F
A <> B V sim
Idade>=100
A>B F
A<B V
A >= B F
não

A <= B V
Expressões
Tipo de Expressões

Expressões lógicas: são aquelas cujo resultado da avaliação é


um valor lógico (V ou F)

E (AND): Uma expressão E é verdadeira


operador tipo operação prioridade se todas condições forem verdadeiras.
OU/OR: Uma expressão OU é
OU (OR) BINARIO Disjunção 3
verdadeiras se pelo menos uma das
condições for verdadeiras.
E (AND) BINARIO Conjunção 2
NÃO(NOT): Uma expressão NÃO
inverte o valor da expressão ou condição.
NÃO(NOT) UNARIO Negação 1

Operadores lógicos e sua relação de prioridade


Expressões
Tipo de Expressões

Expressões literais: são aquelas cujo o resultado da avaliação é


um valor literal(string em inglês).

Os tipos de operadores existentes variam de uma linguagem de


programação para outra, não havendo uma padronização.

Ex.:
“ANG”+”OLA” e o resultado da avaliação é ANGOLA.
Expressões
Linearização de Expressões

Para a construção de algoritmos todas as expressões aritméticas


devem ser linearizados, ou seja, colocadas em linha.

Ex:
Matemática Computacional

 (2/3+(5-3))+1
Expressões
Operadores Especiais (MOD e DIV)

MOD  Retorna o resto da divisão entre 2 números inteiros


DIV  retorna o valor inteiro que resulta da divisão entre dois números
inteiros.

13 DIV 2 = 6
13 MOD 2 = 1
Expressões
Regras de avaliação de expressões
Regras são essenciais para a correcta avaliação de expressões.

 Operadores de maior prioridade devem ser avaliados primeiro. Em


caso de empate, a avaliação se faz da esquerda para direita.
 O uso de parênteses em expressões força a avaliação das mesmas
com maior prioridade.
 Os diversos tipos de operadores devem ser avaliados na seguinte
sequencia dentro de uma expressão complexa: primeiro os
aritméticos e literais; a seguir, os relacionais e, por ultimo os
lógicos.
Expressões (Exercícios)
1. Dada a declaração de variáveis:
inteiro A, B, C
real X,Y,Z
string NOME, RUA
logico L1, L2
Classifique as expressões seguintes de acordo com o tipo de dado do resultado da
sua avaliação, em I (inteiro), R (real), S(string), B(lógico) ou N (quando não
pode defini-la).

a) ( ) A+B+C j) ( ) A+X/Z
b) ( ) A+B+Z k) ( ) AB=L1
c) ( ) NOME + RUA l) ( )(A=B)
d) ( ) AB m) ( )X+Y/A
e) ( )JAY n) ( )X=Z/A
f) ( )NOME RUA o) ( )L1**L2
g) ( ) L1 OU L2 p) ( )A+B/L2
h) ( )RUA<> NOME q) ( )X<L1/RUA
i) ( ) A + B/C
Expressões(Exercícios)
Para as mesmas variáveis declaradas no exercício 1, as quais são dadas os
valores seguintes:
A=1, B=2, C=3, X=2.0, Y=10.0, Z=-10, L1=V, L2=F, NOME=“Pedro”,
RUA=“Amilcar”

a) A+B/C
b) A+B+C
c) A/B/C
d) X**B
e) -(X**B )
f) NOME + RUA
g) L1 OU L2
h) (L2 E (NÃOL1))
Comandos de entrada e saída de dados

O computador não é uma máquina isolada, pois ele precisa se


comunicar com o mundo exterior através do vídeo, impressora,
teclado, discos, etc. Para realizar esta comunicação existem
comandos que permitem que informações sejam exibidas, como
também existem comandos que permitem que informações sejam
colocadas na memória do computador através do teclado do PC.
Com esta finalidade, utilizaremos os comandos de entrada e saída.

Os comandos que iremos estudar são:


LEIA(Receba)
ESCREVA(Mostre)
Comandos de entrada e saída de dados
Exemplos:
1. Escreva um algoritmo para ler um valor numérico do teclado e atribui-lo a uma variável de
tipo numérica.

// Algoritmo LerNumero
inteiro num
inicio
LEIA(num)
fimalgoritmo
2. Escreva um algoritmo para escrever na tela uma mensagem

//Algoritmo EscreveMsg
//Algoritmo EscreveMsg
string msg
inicio
inicio
ESCREVA(“Olá Programadores”) ou
msg “Olá Programadores”
fimalgoritmo ESCREVA(msg)

fimalgoritmo

Você também pode gostar