SDAC
SDAC
Mdulo 1
Introduo Algoritmia
Lgica
Lgica de programao a
tcnica de encadear
pensamentos para atingir um
determinado
objetivo.
Sequncia
Lgica
Sequncia Lgica so
passos executados at
atingir um objectivo ou
soluo de um
problema.
Instrues
Algoritmo
Pegar no rebuado
Retirar o papel
Comer o rebuado
Algoritmos no se aprende:
Copiando Algoritmos
Estudando Algoritmos
Algoritmos s se aprendem:
Construindo Algoritmos
Testando Algoritmos
Programas
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
Fases
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
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
Pseudocdigo
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 raio2
permetro 2 x PI x raio
Escrever (rea, permetro)
Fim
Pseudocdigo
Num algoritmo, podemos definir trs seces:
Cabealho
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.
Exemplo de Fluxograma
Incio
Ler valor 1
Ler valor 2
No
Yes
Yes
Escrever valor
1 maior
Escrever valor
2 maior
Rotina Adeus
Fim
No
Escrever
valores iguais
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
Abordagem Estruturada e
Concepo Top-Down
Elementos Fundamentais de
Programao
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
Tipo de Dados
Caractere
s
Char
Short int
Principais
tipos de
dados
Inteiros
integer
Long int
Reais
Lgicos
Real
Boolea
n
Exemplos em Pseudocdigo
Operadores
Os operadores so meios pelo qual
incrementamos, decrementamos,
comparamos e avaliamos dados dentro
do computador. Temos trs tipos de
operadores:
Operadores Aritmticos
Operadores Relacionais
Operadores Lgicos
Operadores Aritmticos
Adio
Subtraco
Diviso
Mod
div
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.
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
E
NO
NO OU
OR
AND
NOT
XOR
a) Operador AND:
TRUE AND TRUE
TRUE AND FALSE
FALSE AND TRUE
FALSE AND FALSE
=> TRUE
=> FALSE
=> FALSE
=> FALSE
b) Operador OR:
TRUE OR TRUE
TRUE OR FALSE
FALSE OR TRUE
FALSE OR FALSE
=> TRUE
=> TRUE
=> TRUE
=> FALSE
c) Operador NOT:
NOT TRUE
NOT FALSE
=> FALSE
=>
TRUE
d) Operador XOR:
TRUE XOR TRUE
TRUE XOR FALSE
FALSE XOR TRUE
FALSE XOR FALSE
=> FALSE
=> TRUE
=> TRUE
=> 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
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
instruo se falso
Yes
instruo se
verdadeiro
condio
Se condio ento
aco1
fim se
No
Yes
instruo se
verdadeiro
No
Estrutura de Deciso
Condicional Se
se <expresso-lgica> entao
<sequncia-de-comandos>
fimse
se <expresso-lgica> entao
<sequncia-de-comandos-1>
senao
<seqncia-de-comandos-2>
fimse
Exemplo: Caso
clube: caractere
inicio
escreva ("Introduza o seu clube de futebol de futebol: ")
leia (clube)
escolha clube
caso "Benfica", "Sporting"
escreval (" um clube alfacinha.")
outrocaso
escreval (" de outra regio.")
fimescolha
Estrutura de Repetio
Para
Para ... Faa
Esta estrutura repete uma sequncia de comandos n vezes.
para <varivel> de <valor-inicial> ate <valor-limite> [passo
<incremento>] faca
<sequncia-de-comandos>
fimpara
Estrutura de Repetio
Enquanto
Esta estrutura repete uma ude comandos enquanto uma
determinada condio (especificada atravs de uma
expresso lgica) for satisfeita.
enquanto <expresso-lgica> faca
<sequncia-de-comandos>
fimenquanto
Estrutura de Repetio
Repita ... at
repita
<sequncia-de-comandos>
ate <expresso-lgica>
Exemplo
Repita ... at
algoritmo "!!!!!!"
var j: inteiro
inicio
j <- 1
repita
escreva (j)
j <- j + 1
ate j > 10
fimalgoritmo