Você está na página 1de 43

Programao e Sistema de Informao

Mdulo 1
Introduo Algoritmia
Introduo Lgica de Programao
Lgica
Sequncia Lgica
Lgica de programao a
tcnica de encadear
pensamentos para atingir
um determinado
objetivo.
Sequncia Lgica so
passos executados at
atingir um objectivo ou
soluo de um
problema.
A lgica de programao necessria para pessoas que desejam
trabalhar com desenvolvimento de sistemas e programas, permite
definir a sequncia lgica para o desenvolvimento.
Instrues
Instrues so um conjunto de regras ou normas definidas
para a realizao ou emprego de algo. Em informtica, o
que indica a um computador uma ao elementar
a executar.
Por exemplo, se quisermos fazer uma omelete de batatas, temos
que colocar em prtica uma srie de instrues:
descascar as batatas, bater os ovos, fritar as batatas, etc...
Essas instrues tem que ser executadas numa ordem adequada; no se pode
descascar as batatas depois de fritas.
Uma instruo tomada em separado no tem muito sentido; para obtermos o
resultado, precisamos colocar em prtica o conjunto de todas as instrues, na
ordem correcta.
Algoritmo
Um algoritmo uma sequncia finita de instrues que
levam a execuo de uma tarefa.
Exemplos de algoritmos no computacional:
Comer um rebuado:
Pegar no rebuado
Retirar o papel
Comer o rebuado
Deitar o papel no lixo
Somar dois nmeros quaisquer:
Escreva o primeiro nmero no rectngulo A
Escreva o segundo nmero no rectngulo B
Somar o nmero do rectngulo A com o
nmero do rectngulo B
Colocar o resultado no rectngulo C
Algoritmo no a soluo de um problema, pois, se assim fosse,
cada problema teria um nico algoritmo. Algoritmo um dos
caminhos para a soluo de um problema.
Algoritmos no se aprende:
Copiando Algoritmos
Estudando Algoritmos

Algoritmos s se aprendem:
Construindo Algoritmos
Testando Algoritmos
Aprender algoritmos no se consegue a no ser atravs de
muitos exerccios.
Programas
Os programas de computadores nada mais so do que
algoritmos escritos numa linguagem de computador
(Pascal, C, C#, Perl, Java, Python, Visual Basic entre
outras) e que so interpretados e executados por uma
mquina, no caso um computador.
Um programa por natureza muito especfico e rgido em
relao aos algoritmos da vida real.
Exerccios
Faa um algoritmo para somar dois nmeros e
multiplicar o resultado pelo primeiro nmero.

Descreva com detalhes a sequncia lgica para
trocar um pneu de um carro.

Faa um algoritmo detalhado para trocar uma
lmpada.
Desenvolvimento do algoritmo
Regras para construo do
Algoritmo
Usar somente um verbo por frase.
Imaginar que se est a desenvolver um algoritmo para
pessoas que no trabalham com informtica.
Usar frases curtas e simples.
Ser objetivo.
Procurar usar palavras que no tenham sentido
duvidoso.
Fases
ENTRADA: So os dados de entrada do algoritmo.
PROCESSAMENTO: So os procedimentos utilizados para
chegar ao resultado final.
SADA: So os dados j processados.
Vimos que ALGORITMO uma sequncia lgica de
instrues que podem ser executadas.
Entretanto ao Construir um algoritmo, precisamos primeiro
dividir o problema apresentado em trs fases fundamentais.
ENTRADA PROCESSAMENTO SADA
Exemplo de Algoritmo
Imagine o seguinte problema: Calcular a mdia final dos alunos. Os alunos
realizaro 3 provas: P1, P2 e P3.
Onde: Mdia Final = (P1+P2+P3)/3
Para construir o algoritmo proposto, faremos trs perguntas:
a) Quais so os dados de entrada?
R: Os dados de entrada so P1, P2 e P3
b) Qual ser o processamento a ser utilizado?
R: O procedimento ser somar todos os dados de entrada e dividi-los por 3: (P1 +
P2 + P3)/3
c) Quais sero os dados de sada?
R: O dado de sada ser a mdia final
Receber a nota da prova1
Receber a nota de prova2
Receber a nota de prova3
Somar todas as notas e dividir o resultado por 3
Mostrar o resultado da diviso
Algoritmo: Calcular Mdia do aluno
Outro Exemplo de Algoritmo
Algoritmo do clculo do mltiplo de um nmero.
Algoritmo do clculo dos mltiplos de um nmero:
1. Anotar o limite dos mltiplos (limite)
2. Anotar o nmero do qual se quer saber os mltiplos (nmero)
3. O primeiro mltiplo o prprio nmero (mltiplo = nmero)
4. Enquanto o mltiplo for menor que o limite indicado fazer:
4.1. Anotar o mltiplo
4.2. O novo mltiplo ser igual ao mltiplo anterior mais o
nmero (mltiplo = mltiplo + nmero)
5. Fim do algoritmo.
Teste do Algoritmo
Aps desenvolver um algoritmo este dever sempre ser testado.
Deve-se seguir as instrues do algoritmo de maneira precisa
para verificar se o procedimento utilizado est correto.
Exemplo:
Nota da Prova 1
Nota da Prova 2
Nota da Prova 3
Utilizar a tabela abaixo:
P1 P2 P3 Mdia
Exerccios
Identifique os dados de entrada, processamento e sada no
algoritmo seguinte
Receber cdigo da pea
Receber valor da pea
Receber Quantidade de peas
Calcular o valor total da pea (Quantidade * Valor da pea)
Mostrar o cdigo da pea e seu valor total
Faa um algoritmo para Calcular o stock mdio de uma pea,
sendo que STOCKMDIO = (QUANTIDADE MNIMA + QUANTIDADE
MXIMA) /2
Teste o algoritmo anterior com dados sua escolha.
Formas de Apresentao dos
Algoritmos para Computador
Pseudocdigo
Os algoritmos podem ser descritos em uma linguagem chamada
pseudocdigo.
Os algoritmos so independentes das linguagens de programao.
Ao contrrio de uma linguagem de programao no existe um
formalismo rgido de como deve ser escrito o algoritmo.
O algoritmo deve ser fcil de se interpretar e fcil de codificar.
O algoritmo deve ser o intermedirio entre a linguagem falada e a
linguagem de programao.
A pseudolinguagem pode ser visto como a tentativa de fundir a
expressividade da linguagem natural e o rigor lgico de esquemas
como o fluxograma.
A pseudolinguagem permite a descrio do algoritmo de uma forma
linear, fcil de ler e fcil de compreender.
Exemplo de pseudocdigo
Algoritmo circunferncia
[Este algoritmo d as caractersticas de uma circunferncia]
Dados
raio: inteiro
rea, permetro: reais
PI 3,14159
Incio
Ler (raio)
rea PI x raio
2
permetro 2 x PI x raio
Escrever (rea, permetro)
Fim
Pseudocdigo
Num algoritmo, podemos definir trs seces:
Cabealho
dado o nome ao algoritmo. Comea com a palavra "Algoritmo".
Declaraes
Descrio das variveis usadas.
Corpo
Contm a sequncia dos passos (aes) do algoritmo.
Inicia-se com a palavra "Incio e termina com "Fim".
Comentrios
Cada passo do algoritmo pode iniciar com um comentrio entre dois
parnteses retos. Estes comentrios do uma breve descrio do
passo ou dum grupo de passos seguintes.
Os comentrios so uma parte importante do algoritmo.
Eles servem para tornar a leitura, do algoritmo, mais fcil e clara.
Fluxogramas
uma forma padronizada e eficaz de representar os
passos lgicos de um determinado processamento.
Define uma sequncia de smbolos, com significado
bem definido.
A principal funo a de facilitar a visualizao dos
passos de um processamento.
Atualmente, a utilizao restringe-se ao apoio na
documentao do algoritmo, valendo pela vantagem
grfica da apresentao das interligaes.
Alguns Smbolos Usados na Construo de Fluxogramas
Processamento em geral (ex. soma de dois nmeros)
Leitura/Escrita de dados (escrever a nota da prova 1)
Incio/Fim de processamento (ex. inicio do algoritmo)
Conector de fluxos (Ligao entre partes do fluxograma)
Deciso condicional
Escolha mltipla
Subprograma
Linha de fluxo
Exemplo de Fluxograma
Algoritmo Comparar
Dados
valor1, valor2: Inteiros
frase: Caracteres
Incio
Ler (valor1, valor2)
Se valor1 > valor2 ento
frase valor1 maior
Seno
Se valor1 < valor2 ento
frase valor2 maior
Seno
frase valores iguais
Fim se
Fim se
Escrever (frase)
Chamar Rotina Adeus
Fim
Incio
Ler v alor 1
Ler v alor 2
Valor 1 > Valor 2
Escrev er v alor
1 maior
Escrev er v alor
2 maior
Escrev er
v alores iguais
Valor 1 < Valor 2
Rotina Adeus
Yes
No
Yes
No
Fim
Abordagem Estruturada e
Concepo Top-Down
Numa linguagem estruturada como por ex. o Pascal distingue-se
a parte onde so declarados os dados e o corpo com as
instrues do programa parte declarativa e parte operativa.
A abordagem top-down procura identificar os pontos essenciais
da questo; parte-se dos pontos mais gerais para os seus
componentes mais particulares, em nveis sucessivos mais
concretos, at ao nvel de pormenor desejado.
Elementos Fundamentais de
Programao
Constantes, Variveis e Tipos de
Dados
Variveis e constantes so os elementos bsicos que um
programa manipula.
Uma varivel um espao reservado na memria do
computador para armazenar um tipo de dado determinado.
Variveis devem receber identificadores (nomes) para
poderem ser referenciadas e modificadas quando necessrio.
Um programa deve conter declaraes que especificam de
que tipo so as variveis que ele utilizar e por vezes um
valor inicial.
Tipos de dados podem ser por exemplo: inteiros, reais,
caracteres, alfanumrico, lgico, etc.
As expresses combinam variveis e constantes para calcular
novos valores.
Constantes
Constante um determinado valor fixo que no
se modifica durante a execuo de um
programa.
Conforme o seu tipo, a constante classificada
como sendo numrica, lgica e literal
(caracteres).
Variveis
Varivel a representao simblica dos
elementos de um certo conjunto.
Cada varivel corresponde a uma posio de
memria, cujo contedo pode se alterado ao
longo do tempo durante a execuo de um
programa.
Embora uma varivel possa assumir diferentes
valores, ela s pode armazenar um valor a cada
instante.
Tipo de Dados
As variveis e as constantes podem ser basicamente de quatro tipos:
Numricas, caracteres, caracteres ou lgicas.
Numricas: especficas para armazenar nmeros, que posteriormente
podero ser utilizados para clculos. Podem ser ainda classificadas
como Inteiras ou Reais.
As variveis do tipo inteiro so para armazenamento de nmeros
inteiros e as Reais so para o armazenamento de nmeros com casas
decimais.
Caracter: Especficas para armazenar um carcter (caracteres
individuais). Os caracteres disponveis so geralmente os caracteres da
Tabela ASCII. Este tipo de dado pode assumir qualquer carcter da
referida Tabela ASCII, mas apenas um de cada vez.
Caracteres: Especficas para armazenar uma cadeia de caracteres
alfanumricos (adequados ao manuseamento de texto). As aspas ()
so delimitadores da cadeia de caracteres.
Lgicas: Armazenam somente dados lgicos que podem ser Verdadeiro
ou Falso.
Tipo de Dados
Principais
tipos de
dados

Caracteres

Inteiros

Reais

Lgicos

Real

Char

Short int

integer

Long int

Boolean

Exemplos em Pseudocdigo
Total Produto * Quantidade
Nome: caracteres[20]
Preo 23,5
Casar Verdadeiro
Saltar 1
Idade: inteiro
Mdia, Nota1, Nota2: reais

Operadores
Operadores Aritmticos
Operadores Relacionais
Operadores Lgicos
Os operadores so meios pelo qual
incrementamos, decrementamos,
comparamos e avaliamos dados dentro
do computador. Temos trs tipos de
operadores:

Operadores Aritmticos
Os operadores aritmticos so os utilizados para obter resultados
numricos.
Alm da adio, subtrao, multiplicao e diviso, podem utilizar
tambm o operador para exponenciao.
Alguns smbolos para os operadores aritmticos so:
+ Adio
- Subtraco
/ Diviso
Mod Resto da diviso (Resto)
div Diviso inteira (Quociente)
* multiplicao
^ potenciao
Operadores Relacionais
Os operadores relacionais so utilizados para
comparar String de caracteres e nmeros.
Os valores a serem comparados podem ser
caracteres ou variveis.
Estes operadores sempre retornam valores
lgicos (Verdadeiro ou Falso / True ou False)
Para estabelecer prioridades no que diz respeito
a qual operao executar primeiro, utilize os
parnteses.
Os operadores relacionais so:
=
Igual a
<>
Diferente de
>
Maior que
<
Menor que
>=
Maior ou igual a
<=
Menor ou igual a
Operadores Lgicos
Os operadores lgicos servem para combinar
resultados de expresses, retornando se o
resultado final verdadeiro ou falso.
Os operadores lgicos so:
OU OR
E AND
NO NOT
NO OU XOR
a) Operador AND:
TRUE AND TRUE => TRUE
TRUE AND FALSE => FALSE
FALSE AND TRUE => FALSE
FALSE AND FALSE => FALSE

b) Operador OR:
TRUE OR TRUE => TRUE
TRUE OR FALSE => TRUE
FALSE OR TRUE => TRUE
FALSE OR FALSE => FALSE

c) Operador NOT:
NOT TRUE => FALSE
NOT FALSE => TRUE

d) Operador XOR:
TRUE XOR TRUE => FALSE
TRUE XOR FALSE => TRUE
FALSE XOR TRUE => TRUE
FALSE XOR FALSE => FALSE
Instrues Bsicas
Comando de escrita:
Escrever(Paula)
Escrever(A minha idade : , IDADE)
Comado de leitura:
Ler(NOME)
Ler(IDADE, NOME)
Instrues de atribuio
A VALOR
NUM 3
A 3 + B / 2
CIDADE Lisboa

Estruturas Fundamentais de
Programao
Num algoritmo ou programa muitas vezes
necessrio:

Utilizar determinadas condies para decidir se se deve executar
uma ou outra ao ou aes
Repetir uma srie de instrues um determinado nmero de
vezes ou enquanto se verifica uma condio
As estruturas de controlo das sequncias de um
algoritmo podem classificar-se em:

1.Estruturas de deciso ou seleo;
2.Estruturas de repetio.
Estrutura de Deciso
Condicional Se
A deciso ter sempre como resposta o
resultado VERDADEIRO ou FALSO.
Essas decises interferem diretamente na
execuo do programa.
Se condio ento
aco1
seno
aco2
fim se
condio
Yes
No
instruo se f also
instruo se
v erdadeiro
Se condio ento
aco1
fim se
condio
No
Yes
instruo se
v erdadeiro


se <expresso-lgica> entao
<sequncia-de-comandos>
fimse

se <expresso-lgica> entao
<sequncia-de-comandos-1>
senao
<seqncia-de-comandos-2>
fimse

Estrutura de Deciso
Condicional Se

Você também pode gostar