Escolar Documentos
Profissional Documentos
Cultura Documentos
Cincia da Computao
Tecnologia em Anlise e
Desenvolvimento de Sistemas
CONTEDO
ORGANIZAO DE COMPUTADORES;
ALGORITMOS;
DESCRIO DE ALGORITMOS;
BIBLIOGRAFIA.
1
29/11/2016
ORGANIZAO DE COMPUTADORES
O que um Computador:
durante sculos era uma pessoa que fazia clculos;
ORGANIZAO DE COMPUTADORES
Computador Simplificado (CS):
computador hipottico que utiliza objetos comuns de um escritrio;
elementos do CS:
4. mquina de calcular;
5. mquina de escrever.
2
29/11/2016
ORGANIZAO DE COMPUTADORES
Computador Simplificado (CS):
funes dos elementos do CS:
ORGANIZAO DE COMPUTADORES
Exemplo 1:
instrues:
E01: pegue um carto na bandeja e copie o seu valor em E16;
E02: pegue um carto na bandeja e copie seu valor em E15;
E03: some o contedo de E15 ao de E16 e coloque o resultado em E16;
E04: imprima o contedo de E16;
E05: pare.
cartes:
5, 3.
Exerccio:
escreva um conjunto de instrues para fazer o CS somar dois valores
(contidos em dois cartes) e subtrair um terceiro valor (contido num terceiro
carto) e imprimir o resultado.
3
29/11/2016
ORGANIZAO DE COMPUTADORES
Exemplo 2:
instrues:
E01: pegue um carto na bandeja e copie o seu valor em E16;
E02: pegue um carto na bandeja e copie seu valor em E15;
E03: some o contedo de E15 ao de E16 e coloque o resultado em E16;
E04: volte a E02;
E05: pare.
cartes:
7, 1, 4, 3, 5, 2.
ORGANIZAO DE COMPUTADORES
Exemplo 3:
instrues:
E01: pegue um carto na bandeja e copie o seu valor em E16;
E02: pegue um carto na bandeja e copie seu valor em E15;
E03: se no houver mais cartes avance para E06;
E04: some o contedo de E15 ao de E16 e coloque o resultado em E16;
E05: volte a E02;
E06: imprima o contedo de E16;
E07: pare.
cartes:
7, 1, 4, 3, 5, 2.
4
29/11/2016
ORGANIZAO DE COMPUTADORES
Exemplo 4:
instrues:
E01: pegue um carto na bandeja e copie o seu valor em E16;
E02: se no houver mais cartes avance para E06;
E03: pegue um carto na bandeja e copie seu valor em E15;
E04: some o contedo de E15 ao de E16 e coloque o resultado em E16;
E05: volte a E02;
E06: imprima o contedo de E16;
E07: pare.
cartes:
7, 1, 4, 3, 5, 2.
ORGANIZAO DE COMPUTADORES
Exemplo 5:
instrues:
E01: pegue um carto na bandeja e copie o seu valor em E16;
E02: pegue um carto na bandeja e copie seu valor em E15;
E03: se o contedo de E15 for igual a 1 avance para E06;
E04: some o contedo de E15 ao de E16 e coloque o resultado em E16;
E05: volte a E02;
E06: imprima o contedo de E16;
E07: pare.
cartes:
7, 1, 4, 3, 5, 2, 1.
10
5
29/11/2016
ORGANIZAO DE COMPUTADORES
Estrutura de um Computador Digital:
11
ORGANIZAO DE COMPUTADORES
Estrutura de um Computador Digital:
memria
unidade aritmtica
e lgica
unidade central de
processamento
(UCP)
12
6
29/11/2016
ORGANIZAO DE COMPUTADORES
Estrutura de um Computador Digital:
funes dos componentes de um computador real:
13
ALGORITMOS
Algoritmos no Dia a Dia:
indicaes de como chegar a uma determinada rua;
receita de culinria;
14
7
29/11/2016
ALGORITMOS
Exemplo (substituio de uma lmpada):
refinamento 1:
7. desa a escada.
15
ALGORITMOS
Exemplo (substituio de uma lmpada):
refinamento 2:
8
29/11/2016
ALGORITMOS
Algoritmos em Computao:
computadores, infelizmente, s fazem aquilo que se manda, e no
necessariamente o que se deseja que eles faam;
17
ALGORITMOS
Algoritmos em Computao:
o refinamento sucessivo um bom mtodo para a elaborao de um
algoritmo:
18
9
29/11/2016
ALGORITMOS
Algoritmos em Computao:
o processo de soluo de um problema por meio de um programa de
computador:
problema elaborao de um
soluo do
problema algoritmo para
resolver o problema
implementao soluo em forma
(passo difcil) de algoritmo
traduo do algoritmo
implementao
soluo como um para uma linguagem
programa de computador de programao
Adaptado de TREMBLAY, BUNT (1983)
19
ALGORITMOS
Definies:
... uma sequncia ordenada, e sem ambiguidade, de passos que levam
soluo de um dado problema.
TREMBLAY, BUNT (1983)
20
10
29/11/2016
DESCRIO DE ALGORITMOS
Linguagens para Algoritmos:
tanto a fraqueza quanto o poder de uma linguagem natural se devem
ao seu carter vago e sua impreciso;
algumas opes:
21
DESCRIO DE ALGORITMOS
Elementos de Algoritmos:
identificadores;
tipos de dados;
variveis e constantes;
operadores;
expresses;
blocos;
22
11
29/11/2016
DESCRIO DE ALGORITMOS
Identificadores:
um identificador uma sequncia de smbolos (caracteres) que d
nome a uma entidade (varivel, tipo de dado, etc.) que parte da
descrio de um algoritmo;
exemplos:
letra A
dgito B612
C3PO
letra
R2D2
SOMA
23
DESCRIO DE ALGORITMOS
Tipos de Dados:
um tipo estabelece a natureza (caracterstica) do dado que
manipulado por um algoritmo;
24
12
29/11/2016
DESCRIO DE ALGORITMOS
Variveis:
uma varivel uma entidade que armazena um valor (dado) de um
tipo e conhecida pelo seu identificador;
SOMA
varivel
SOMA
25
DESCRIO DE ALGORITMOS
Variveis:
sintaxe da declarao (definio) de uma varivel (PORTUGOL):
,
inteiro : identificador ;
real
exemplos:
caractere inteiro : VALOR;
real : R1, R2;
lgico caractere : FRASE;
lgico : TEM;
26
13
29/11/2016
DESCRIO DE ALGORITMOS
Constantes:
uma constante uma entidade com caractersticas semelhantes s de
uma varivel, porm, o seu valor nunca muda durante a execuo do
algoritmo;
exemplos:
const PI 3.14;
const PHI 1.618;
27
DESCRIO DE ALGORITMOS
Operadores:
um operador um smbolo que associado a um valor (constante ou
varivel) ou a um par de valores para formar uma expresso;
tipos de operadores:
aritmticos;
relacionais;
lgicos;
atribuio.
28
14
29/11/2016
DESCRIO DE ALGORITMOS
Operadores:
aritmticos (PORTUGOL e FLUXOGRAMA):
29
DESCRIO DE ALGORITMOS
Operadores:
relacionais (PORTUGOL e FLUXOGRAMA):
tabela verdade:
A B AB AB A
F F F F V onde:
F V F V V A, B so variveis do tipo lgico;
F o valor FALSO;
V F F V F
V o valor VERDADEIRO.
V V V V F
30
15
29/11/2016
DESCRIO DE ALGORITMOS
Operadores:
um tipo especial de operador, denominado operador de atribuio,
representa o armazenamento do resultado de uma expresso em uma
varivel;
exemplos:
VALOR 42;
identificador expresso ; R1 1.73;
FRASE UEZO;
TEM VERDADEIRO;
31
DESCRIO DE ALGORITMOS
Operadores:
precedncia:
parnteses e funes;
exponenciao;
adio e subtrao;
comparaes;
no;
e;
ou;
atribuio.
32
16
29/11/2016
DESCRIO DE ALGORITMOS
Expresses:
uma expresso uma combinao de valores, operadores e
parnteses que, quando avaliada, produz um novo valor;
exemplos:
inteiro : A, B, TOTAL; resp: lgico : X;
A 3; 3 inteiro : A, B; resp:
A A + 2; 5 A 5; 5
B A * 2 1; 9 B 3; 3
TOTAL B + A ** 2 * (7 A); 59 X (A < B) (B = 3); VERDADEIRO
real : C1, C2, RES; resp: caractere : S1, S2; resp:
C1 3.72; 3.72 S1 Fulano; Fulano
C2 C1 1.02; 2.70 S2 Ol + S1; Ol Fulano
RES C1 / C2; 1.38 OBS.: + pode ser usado para
unir sequncias de caracteres. 33
DESCRIO DE ALGORITMOS
Expresses:
a avaliao de uma expresso deve levar em considerao tambm os
tipos das variveis (ou constantes) envolvidas;
exemplos:
inteiro : A, B, C, M1, M2;
real : T1, T2; resp:
A Bem vindo; ERRO
B VERDADEIRO; ERRO
C (7 < 2) (2 5) ERRO
M1 (5 + 8) / 2; 6 (INCORRETO)
M2 3 * 5.4; 16 (INCORRETO)
T1 (9 2) / 3 * 4.0; 8.0 (INCORRETO)
T2 5 + (8.0 3) / 2; 7.5 (CORRETO)
34
17
29/11/2016
DESCRIO DE ALGORITMOS
Exerccios:
1. inteiro: A, B;
real: C, D, X;
A 7; B 2; C 3.1; D 2.5;
X A / B + C D;
2. lgico: A, B, C, D, E;
A VERDADEIRO; B FALSO; C VERDADEIRO; D FALSO;
E no A ou B e no (C ou D);
3. lgico: X;
inteiro: A, B, C, D;
A 8; B 3; C 9; D 4;
X A mod B < 5 e C div D 0;
35
DESCRIO DE ALGORITMOS
Boas Prticas:
algumas dicas para escrever algoritmos de qualidade:
1 - algoritmos devem ser feitos para serem lidos por seres humanos;
2 - escreva comentrios quando estiver escrevendo o algoritmo;
3 - escreva comentrios que acrescentem alguma informao til;
4 - use comentrios no prlogo;
5 - utilize espaos em branco para melhorar a legibilidade;
6 - escolha nomes representativos para as suas variveis;
7 - escreva um comando por linha;
8 - utilize parnteses para aumentar a legibilidade das expresses;
9 - utilize indentao para mostrar a estrutura lgica do algoritmo;
10 - os comentrios devem ser alterados quando o algoritmo alterado.
OBS.: em PORTUGOL, qualquer sequncia de caracteres entre { } um comentrio. 36
18
29/11/2016
DESCRIO DE ALGORITMOS
Blocos:
um bloco um conjunto de comandos com uma funo bem definida;
sintaxe de um bloco:
PORTUGOL FLUXOGRAMA
incio incio
<declaraes de variveis>
...
<comandos>
fim.
fim
37
DESCRIO DE ALGORITMOS
Comandos Bsicos (Entrada):
um comando de entrada obtm dados do ambiente externo, o que
permite a construo de algoritmos de carter geral;
PORTUGOL
exemplos:
,
leia (VALOR);
leia ( identificador ) ; leia (R1, R2);
leia (FRASE);
leia (TEM);
FLUXOGRAMA exemplo:
onde:
leia leia
vi uma varivel;
v1, v2, ..., vn VALOR, R1
i {1, 2, ..., n}.
38
19
29/11/2016
DESCRIO DE ALGORITMOS
Comandos Bsicos (Sada):
um comando de sada fornece dados ao ambiente externo;
PORTUGOL
,
imprima ( identificador ) ;
expresso exemplos:
imprima (VALOR);
carectere
imprima (O resultado : , R1 + R2);
FLUXOGRAMA exemplo:
onde:
imprima imprima
vi uma varivel (ou constante);
v1, v2, ..., vn Total: , R1 + R2
i {1, 2, ..., n}.
39
DESCRIO DE ALGORITMOS
Controle de Fluxo de Execuo (Estrutura Sequencial):
uma estrutura sequencial um conjunto de comandos que so
executados numa sequncia linear de cima para baixo;
40
20
29/11/2016
DESCRIO DE ALGORITMOS
Controle de Fluxo de Execuo (Estrutura Sequencial):
uma estrutura sequencial um conjunto de comandos que so
executados numa sequncia linear de cima para baixo;
C1 leia
A
C2
BA*5
...
imprima
Resposta: , B
Cn
fim
41
DESCRIO DE ALGORITMOS
Exerccios:
1. Escreva um algoritmo que leia trs valores inteiros, calcule e imprima
a mdia desses valores.
42
21
29/11/2016
DESCRIO DE ALGORITMOS
Controle de Fluxo de Execuo (Estrutura de Deciso):
uma estrutura de deciso permite decidir qual ao deve ser
executada com base no resultado de um teste;
43
DESCRIO DE ALGORITMOS
Controle de Fluxo de Execuo (Estrutura de Deciso):
uma estrutura de deciso permite decidir qual ao deve ser
executada com base no resultado de um teste;
C1 F
V1 > V2
...
V
imprima
Cn V1
fim 44
22
29/11/2016
DESCRIO DE ALGORITMOS
Exerccios:
1. Escreva um algoritmo que leia um valor inteiro, verifique e imprima se
esse valor mpar.
45
DESCRIO DE ALGORITMOS
Controle de Fluxo de Execuo (Estrutura de Deciso):
uma estrutura de deciso permite decidir qual ao deve ser
executada com base no resultado de um teste;
23
29/11/2016
DESCRIO DE ALGORITMOS
Controle de Fluxo de Execuo (Estrutura de Deciso):
uma estrutura de deciso permite decidir qual ao deve ser
executada com base no resultado de um teste;
imprima imprima
Cn Cm V1 V2
fim 47
DESCRIO DE ALGORITMOS
Exerccios:
1. Escreva um algoritmo que leia dois valores inteiros, verifique e escreva
se o primeiro valor ou no divisvel pelo segundo.
48
24
29/11/2016
DESCRIO DE ALGORITMOS
Controle de Fluxo de Execuo (Estrutura de Repetio):
uma estrutura de repetio permite executar repetidamente um
conjunto de aes enquanto uma condio permanece vlida;
49
DESCRIO DE ALGORITMOS
Controle de Fluxo de Execuo (Estrutura de Repetio):
uma estrutura de repetio permite executar repetidamente um
conjunto de aes enquanto uma condio permanece vlida;
incio F
F I 10
V
V leia
A AA*2
C1
I1 II+1
...
imprima
Cn A
fim 50
25
29/11/2016
DESCRIO DE ALGORITMOS
Exerccios:
1. Escreva um algoritmo que leia um conjunto de valores inteiros, calcule
e imprima a soma e o produto desses valores.
51
estruturas complementares:
abandono;
26
29/11/2016
PORTUGOL exemplo:
repita incio
inteiro : A, I;
C1; leia (A);
C2; I 1;
... repita
Cn; A A * 2;
at <condio>; I I + 1;
at I > 10;
imprima (A);
fim.
53
FLUXOGRAMA exemplo:
incio
AA*2
C1
leia
A II+1
...
F
I1 I > 10
Cn
V
F imprima
A
V
fim
54
27
29/11/2016
55
PORTUGOL exemplo:
para v de i at l passo p faa incio
inteiro : A, I;
C1;
leia (A);
C2; para I de 1 at 10 passo 1 faa
... A A * 2;
Cn; fim para;
fim para; imprima (A);
fim.
onde:
v a varivel de controle;
i o valor inicial de v;
l o valor final de v;
p valor do incremento de v.
56
28
29/11/2016
FLUXOGRAMA exemplo:
incio I de 1 at 10 F
F
passo 1
V leia V
A AA*2
C1
imprima
...
A
Cn
fim
57
58
29
29/11/2016
59
PORTUGOL exemplo:
<repetio> <condio> incio
inteiro : A, I;
C1 ; leia (A);
... I 1;
Cn; enquanto I 10 faa
<deciso> <condio> A A * I;
abandone; se A < 100
ento I I + 1;
<fim deciso> seno abandone;
<fim repetio> fim se;
fim enquanto;
imprima (A);
fim.
60
30
29/11/2016
FLUXOGRAMA exemplo:
repetio incio F
I 10
deciso V
leia
A AA*I
F
I1 A < 100
V
II+1
imprima
A
fim 61
62
31
29/11/2016
PORTUGOL exemplo:
escolha <expresso> incio
inteiro : V;
caso v11 : ... : v1n : C1; leia (V);
caso v21 : ... : v2m : C2; escolha V * 10
... caso 10 : 20 : 30
caso vp1 : ... : vpk : Cp; imprima (PQ);
seno Cp+1; caso 80 : 90 : 100
fim escolha; imprima (GD);
seno
onde: imprima (ERRO);
vij um valor (rtulo); fim escolha;
i {1, 2, ..., p}; fim.
j {1, 2, ..., r};
r o nmero de rtulos do caso i.
63
FLUXOGRAMA exemplo:
incio
leia
V
v11 : ... : v1n vp1 : ... : vpk seno
C1 ... Cp Cp+1 V * 10
10 : 20 : 30 80 : 90 : 100 seno
imprima imprima imprima
PQ GD ERRO
fim
64
32
29/11/2016
33
29/11/2016
68
34
29/11/2016
VET 1 2 3 4 5 ndices
valores
69
70
35
29/11/2016
tipo <identificador> = matriz [li1 : ls1, li2 : ls2, ..., lin : lsn] <tipo bsico>;
onde:
lid e lsd so valores inteiros e positivos;
lid o limite inferior da dimenso d da matriz;
lsd o limite superior da dimenso d da matriz;
lid lsd;
d {1, 2, ..., n}.
71
MAT 1 2 3 4 ndices
1
2 valores
3
ndices valores
72
36
29/11/2016
73
,
<tipo bsico> : identificador ;
<outro tipo>
74
37
29/11/2016
75
76
38
29/11/2016
BIBLIOGRAFIA
Bsica:
GUIMARES, A. M., LAGES, N. A. C., Algoritmos e Estruturas de Dados,
LTC, Rio de Janeiro, 1994;
77
BIBLIOGRAFIA
Complementar:
FARRER, H. et al, Algoritmos Estruturados, 3 edio, LTC, Rio de Janeiro,
1999;
39
29/11/2016
FIM
40