Escolar Documentos
Profissional Documentos
Cultura Documentos
Assunto
Sistema Computacional
Programação de Sistema Computacional
Lógica de Programação & Algoritmo
Ambientes/Linguagens de Programação
1
03/05/2013
Sistema Computacional
Um sistema computacional consiste num conjunto de
dispositivos eletrônicos (hardware) capazes de processar
informações de acordo com um programa (software).
Sistema
Computacional
Software
Hardware
Peopleware 3
Memória
2
03/05/2013
Memória
6,8 (6 + 8) / 2 7
Memória
3
03/05/2013
4
03/05/2013
Noções de Lógica
Lógica: Ciência que estuda as formas do pensamento
(“regras do pensar”).
Sempre que pensamos a lógica nos acompanha.
Um bebê sabe que precisa chorar para receber atenção.
Um casal com 3 filhos notou um vaso estava quebrado,
enquanto 2 das crianças estavam na escola. Quem é o culpado?
A gaveta está fechada. A caneta está dentro da gaveta.
Precisamos primeiro abrir a gaveta para depois pegar a caneta.
O pensamento (e a lógica) pode ser expresso através da
palavra falada ou da palavra escrita.
10
5
03/05/2013
Noções de Lógica
Exemplos de aplicação da lógica
11
Atividade 1
Resolva os seguintes problemas de lógica
P1 – Uma lesma deve subir um poste de 10m de altura. De
dia sobe 2m e à noite desce 1m. Em quantos dias atingirá o
topo do poste?
P2 - Três gatos comem três ratos em três minutos. Cem
gatos comem cem ratos em quantos minutos?
P3 - O pai do padre é filho do meu pai. O que eu sou do
Padre?
P4 - Se um bezerro pesa 75 kg mais meio bezerro, quanto
pesa um bezerro inteiro?
12
6
03/05/2013
Atividade 1
Resolva os seguintes problemas de lógica
P5 – Qual o próximo número da seqüência 7,8,10,13,17,?
P6 – Um pai de 80kg e suas 2 filhas (40kg cada), precisam
sair de uma ilha com um barco. Porém a capacidade do
barco é de 80kg. Como farão para sair da ilha?
P7 – Usando uma jangada, um camponês precisa atravessar
uma cabra, um leão e um fardo de capim para a outra
margem do rio. A jangada só tem lugar para ele e mais outra
coisa. O que ele deve fazer para atravessar o rio com seus
pertences intactos?
13
RESPOSTAS - Atividade 1
Respostas
R1 - 9(nove) dias. No nono dia a lesma sobe 2(dois) metros,
atinge o topo e evidentemente não desce 1 metro
R2 – 3 (três) minutos
R3 – Tio
R4 – 150 (cento e cinqüenta) kg
R5 – 22
R6 – Vão as duas filhas. Uma delas volta. O pai sai. A outra
filha volta. As duas filhas saem juntas.
R7 - Primeiro leve a cabra, volte e pegue o capim; deixe o
capim e leve a cabra de volta; deixe a cabra e leve o leão,
depois é só voltar e pegar a cabra.
14
7
03/05/2013
Noções de Lógica
Proposição: é um enunciado verbal, ao qual deve ser
atribuído, sem ambiguidade, um valor lógico verdadeiro (V) ou
falso (F).
Exemplos de proposições:
Tiago Henrique é Professor (V)
3 + 5 = 10 (F)
5 < 8 (V)
Contra-exemplos de Proposições:
Onde você vai ?
3+5
Os estudantes jogam vôlei. (quais ?)
15
Noções de Lógica
Operações Lógicas: são usadas para formar novas
proposições a partir de proposições existentes.
Considerando p e q duas proposições genéricas, pode-se
aplicar as seguintes operações lógicas básicas sobre elas
Operação Símbolo Significado
Negação ~ Não
Conjunção ^ E
Disjunção v OU
Definindo a prioridade:
Usar parênteses Ex:((p v q)^(~q)) ou
Obedecer (~) > (^) > (v)
16
8
03/05/2013
Noções de Lógica
Exemplos de aplicação das operações lógica
Considere:
p = 7 é primo = (V)
q = 4 é impar = (F)
Então:
4 NÃO é impar = ~q = (~F) = (V)
7 NÃO é primo = ~p = (~V) = (F)
17
Noções de Lógica
Exemplos de aplicação das operações lógica (Cont.)
Considere:
p = 7 é primo = (V)
q = 4 é impar = (F)
Então:
7 é primo OU 4 NÃO é impar = p v ~q = (V v (~F)) = (V v V) =
(V)
7 é primo OU 4 é impar = p v q = (V v F) = (V)
4 é impar OU 7 é primo = q v p = (F v V) = (V)
4 é impar OU 7 NÃO é primo = q v ~p = (F v (~V)) = (F v F ) =
(F)
18
9
03/05/2013
Noções de Lógica
Exemplos de aplicação das operações lógica
Resumindo: p q ~p p^q pvq
V V F V V
V F F F V
F V V F V
Ou seja: F F V F F
Não (~) troca o valor lógico. Se é F passa a ser V e vice-versa
19
Atividade 2
Considerando p = V e q = F, resolva as seguintes
expressões lógicas
1. ~p
2. ~q
3. p ^ q
4. p v q
5. (~p) ^ q
6. (~p) v q
7. p ^ (~q)
8. p v (~q)
9. (~p) ^ (~q)
10. (~p) v (~q)
20
10
03/05/2013
RESPOSTAS - Atividade 2
Considerando p = V e q = F, resolva as seguintes
expressões lógicas
~p = F
~q = V
p^q=F
p v q =V
(~p) ^ q = F
(~p) v q = F
p ^ (~q) = V
p v (~q) = V
(~p) ^ (~q) = F
(~p) v (~q) = V
21
Algoritmo
Vamos estudar uma forma única de representação.
É o pensamento descrito como uma sequência de passos
que visam atingir um objetivo.
Algoritmos no dia-a-dia: Receita de bolo, orientação para
se chegar em um endereço, etc.
Qual sua importância na programação?
Representar o raciocínio, independentemente de detalhes
computacionais, que podem ser acrescentados mais tarde;
Focalizar primeiro na resolução algorítmica do problema,
possibilitando depois codificá-la em qualquer linguagem.
22
11
03/05/2013
Sistemas de Numeração
12
03/05/2013
Sistemas de Numeração
Conseqüência: O sistema de numeração mais seguro deveria
ser aquele com o menor número de símbolos (dígitos).
Conclusão: o melhor sistema de numeração para uma
máquina seria o binário com apenas dois dígitos, o zero (0) e o
um (1).
Sistemas de Numeração
Um possível problema no uso de máquinas binárias: o
número binário precisa de mais dígitos para ser escrito do que
o decimal.
26
13
03/05/2013
Sistemas de Numeração
Uma solução: o uso de dispositivos eletrônicos baseados na
tecnologia dos semicondutores, como os transistores.
27
Sistemas de Numeração
14
03/05/2013
Sistemas de Numeração
Classificação
Sistemas de Numeração Posicionais
Sistemas de Numeração Não Posicionais
29
Sistemas Posicionais
Nos sistemas de numeração posicional, o valor do dígito
em um número depende da posição que ele ocupa neste
mesmo número.
1989 = 1000+900+80+9
1989 = 1x103 + 9x102 + 8x101 + 9x100
30
15
03/05/2013
Sistemas Posicionais
A representação posicional fornece uma forma
simplificada para a escrita de números e permite a
representação de qualquer número com um alfabeto
(uma coleção de símbolos) restrito de dígitos.
31
Sistemas Posicionais
Outros Exemplos de Sistemas Posicionais
Sistema posicional binário
base R = 2
alfabeto {0, 1}
Sistema posicional octal
base R = 8
alfabeto {0, 1, 2, 3, 4, 5, 6, 7}
Sistema posicional hexadecimal
base R = 16
alfabeto {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
32
16
03/05/2013
33
Geração de Inteiros
Algoritmo de avanço de dígitos:
Avançar um dígito de um alfabeto ordenado consiste em
substituí-lo pelo próximo dígito na hierarquia. O dígito de
maior valor do conjunto é sempre avançado para o
aquele de menor valor na hierarquia.
0 1 2 3 4 5 6 7 8 9 0
Algoritmo de geração de inteiros:
a) o primeiro inteiro é o zero
b) o próximo inteiro é obtido do precedente na lista
avançando-se seu dígito mais à direita. No caso deste
dígito avançar para zero, avança-se, então, o dígito
adjacente à esquerda.
34
17
03/05/2013
Geração de Inteiros
Exemplo: Gerar os 26 primeiros inteiros do sistema
decimal.
0123456789
10 11 12 13 14 15 16 17
18 19 20 21 22 23 24 25
35
Transformações de Base
Passagem de uma base R para a base 10
converte-se a base e cada dígito do número para o equivalente
decimal.
decompõe-se o número de acordo com a estrutura posicional
e, usando aritmética decimal, efetuam-se as operações de
produtos e somas.
Notação: (...)R ler como o número do parêntesis
expresso na base R.
(1101)2=1x23+1x22+0x21+1x20=8+4+0+1=13
(2B0)16=2x162+(11)x161+0x160= 512+176+0=688
36
18
03/05/2013
Transformações de Base
Passagem de uma base 10 para a base R
Parte inteira: Algoritmo da divisão repetida
Divide-se o inteiro decimal repetidamente pela base R até
que se obtenha um quociente inteiro igual a zero. Os
restos das divisões sucessivas, lidos do último para o
primeiro, constituem o número transformado para a base
R.
(341) = (2331)
10 5
37
Transformações de Base
Passagem de uma base 10 para a base R
Parte fracionária: Algoritmo da multiplicação repetida
A parte fracionária é multiplicada por R. A parte inteira
desse produto é guardada e a parte fracionária é
novamente multiplicada por R. O processo é repetido até
que se obtenha um número com parte fracionária nula ou
até que se considere a aproximação suficiente.
As partes inteiras dos produtos sucessivos, lidas da
primeira para a última, formam a parte fracionária do
número transformado.
38
19
03/05/2013
Transformações de Base
Passagem de uma base 10 para a base R
Parte fracionária: Algoritmo da multiplicação repetida.
Exemplo:
39
Transformações de Base
Mudança de base entre base binária e base de potência de
2
A base para a qual se quer a transformação é expressa no
formato 2n . Se essa base for R=8, por exemplo, o valor de “n”
é 3 porque 8 = 23. Formam-se grupos, a partir da direita do
número binário, contendo uma quantidade de dígitos igual ao
número “n”. Esses grupos de “n” dígitos são lidos e
representados como os dígitos do sistema para o qual se quer
a transformação.
transformação para a base hexadecimal.
40
20
03/05/2013
Transformações de Base
Exemplos:
41
Operações Aritméticas
Soma na base 10, Soma na base 2, Soma na base R
(explicar com exemplos no quadro)
Complemento de 1: O complemento de 1 de um
número binário é obtido trocando-se cada dígito 1 por 0
e vice-versa. A notação C1 (...) é usada para designar o
complemento de um do número entre parêntesis.
Complemento de 2: O complemento de 2 de um
número binário é obtido trocando-se inicialmente todos
os 0s por 1s e vice-versa. Após isso adiciona-se 1 ao
número obtido. Notação C2(...)
42
21
03/05/2013
Operações Aritméticas
Subtração por complemento de 1: Soma-se o
minuendo ao complemento de 1 do subtraendo. O bit
que se propaga após a última coluna da adição é somado
de volta ao bit menos significativo do resultado.
(resolver exemplo no quadro)
43
22
03/05/2013
45
46
23
03/05/2013
47
1101
+1011
11000
48
24
03/05/2013
11101
+ 1001
100110
Ainda outro exemplo, efetuar 1012+1112+102
1 1
101
111
+ 10
1110
49
50
25
03/05/2013
Cont.
No caso “b”, o resultado será 1, mas ocorrerá um transporte
para a coluna seguinte, que deve ser acumulado no
subtraendo.
Exemplificando, vamos efetuar 11102 – 10012
1110
-1001
0101
51
• Soma: • Subtração:
1
11102 10002
+ 11012 - 1112
110112 12
52
26
03/05/2013
• Soma: • Subtração:
1 10
11102 00002
+ 11012 - 1112
110112 12
53
• Soma: • Subtração:
1 10
11102 01002
+ 11012 - 1112
110112 12
54
27
03/05/2013
• Soma: • Subtração:
1 10
11102 01102
+ 11012 - 1112
110112 00012
55
56
28
03/05/2013
11110
11110+
1011010
57
58
29
03/05/2013
59
60
30
03/05/2013
61
62
31
03/05/2013
63
64
32
03/05/2013
65
Exercícios
Efetue as operações binárias
a) 10001+1111 b) 1110+1001011 c) 1011+ 11100
d) 110101+1011001+1111110 e) 1100+1001011+11101
66
33
03/05/2013
Códigos – Aula 5
Código BCD
Quando números, letras ou palavras são
representados por um grupo especial de símbolos,
dizemos que eles estão codificados, sendo o grupo de
símbolos denominado código.
CODIFICAÇÃO EM BINÁRIO PURO: Um número
decimal é representado pelo seu número binário
equivalente.
68
34
03/05/2013
Código BCD
Para ilustrar, considere o número 874 em decimal:
87410 = 11011010102
69
Código BCD
A principal vantagem do código BCD é a relativa
facilidade de conversão para decimal e vice-versa.
Apenas os grupos de 4 bits dos dígitos de 0 a 9
precisam ser memorizados. Essa característica de fácil
conversão é especialmente importante do ponto de
vista do hardware porque nos sistemas digitais são os
circuitos lógicos que realizam as conversões mútuas
entre BCD e decimal.
70
35
03/05/2013
71
72
36
03/05/2013
73
37
03/05/2013
início
...
fim
75
Declaração de Variáveis
Utilizado para especificar os nomes e os respectivos tipos
das variáveis necessárias no algoritmo
76
38
03/05/2013
Declaração de Variáveis
Exemplos:
77
Bloco de Comentário
Serve para explicar um determinado trecho do algoritmo,
para torna-lo mais claro, facilitando seu entendimento por
outras pessoas ou posteriormente.
{ <comentário> }
Exemplo:
{ Isto é um exemplo de comentário }
78
39
03/05/2013
Instrução de Entrada
Usada para ler dados de entrada do algoritmo.
leia(<variáveis>);
onde:
<variáveis> - conterão os dados lidos.
79
Instrução de Entrada
Exemplos:
leia(a,b,c);
leia(nome);
leia(sexo);
leia(pratica_esporte);
80
40
03/05/2013
Instrução de Saída
Usada para mostrar os resultados do processamento dos
dados de entrada.
escreva(<resultados>);
onde:
<resultados> - geralmente é o conteúdo de uma ou mais
variáveis com a resposta do problema.
81
Instrução de Saída
Exemplos:
82
41
03/05/2013
Instrução de Atribuição
Utilizado para atribuir um determinado valor a uma
variável.
<variável> <expressão>;
onde:
<variável> - nome de uma variável
<expressão> - um valor do mesmo tipo da variável ou uma
expressão lógica ou aritmética.
83
Instrução de Atribuição
Exemplos
D B^2-4*A*C;
nome “Paulo”;
Pratica_Esporte TRUE;
Sexo ‘M’;
84
42
03/05/2013
Estruturas de Controle
Baseado na lógica estruturada, Bohn e Jacopini* provaram
que apenas três estruturas são suficientes para explicar a
solução de qualquer problema, inclusive tornando-os
estruturados e mais legíveis.
São elas:
Estrutura Seqüencial
Estrutura de Repetição
Estrutura de Seleção
* Bohm, Corrado; and Giuseppe Jacopini (1966). "Flow Diagrams, Turing
Machines and Languages with Only Two Formation Rules". Communications of the
ACM 9 (5): 366–371.
85
Estruturas de Controle
Estrutura Seqüencial:
os comandos ou instruções vão sendo executados
na ordem em que aparecem no algoritmo.
86
43
03/05/2013
Estruturas de Controle
Estrutura de Repetição:
comandos são executados repetidas vezes até que
uma condição de parada seja satisfeita
87
Estruturas de Controle
Estrutura de Seleção:
Conforme o resultado de uma expressão lógica,
determinados comandos são executados e outros
não, caracterizando assim uma seleção de
comandos
TRUE
FALSE
88
44
03/05/2013
Instruções de Seleção
Tipo simples:
se <sentença> então
<comandos>;
fim-se
OBS.:
<comandos> serão executados apenas se <sentença> resultar
em TRUE.
89
Instruções de Seleção
Exemplo:
se A>0 então
B A + 1;
A 0;
fim-se
90
45
03/05/2013
Instruções de Seleção
Tipo composto:
se <sentença> então
<comandos1>;
senão
<comandos2>;
fim-se
OBS.:
<comandos1> serão executados apenas se <sentença>
resultar em TRUE. Em caso contrário, <comandos2> serão
executados.
91
Instruções de Seleção
Exemplo:
se A>B então
B A + 1;
A 0;
senão
A 0;
B A + 1;
fim-se
92
46
03/05/2013
Instruções de Repetição
Enquanto / Fim-Enquanto
<comandos>;
fim-enquanto;
OBS.:
<comandos> serão executados enquanto <sentença> resultar
em TRUE.
93
Instruções de Repetição
Exemplo:
94
47
03/05/2013
Instruções de Repetição
Repita / Até
repita
<comandos>;
até <sentença>;
OBS.:
<comandos> serão executados até que <sentença> resulte em
TRUE.
95
Instruções de Repetição
Exemplo:
repita
leia(B);
escreva(B);
A A - 1;
até A<1;
96
48
03/05/2013
Instruções de Repetição
Para / Até / Fim-Para
OBS.:
<variável> - contador do tipo inteiro
<inicial> - valor inicial da variável
<final> - valor final da variável
97
Instruções de Repetição
Exemplo:
98
49
03/05/2013
Estrutura de um Algoritmo
Um algoritmo em Portugol* tem a seguinte estrutura:
início
<declaração de variáveis>
<inicialização de variáveis>
<corpo lógico do algoritmo>
fim
100
50
03/05/2013
101
102
51
03/05/2013
103
52
03/05/2013
Ambientes/Linguagens de Programação
Pseudocódigo C
declare
Início {
Fim }
Caracter Char
Inteiro Int
Real Double
Lógico Boolean
Leia Scanf
Escreva Printf
105
Ambientes/Linguagens de Programação
Pseudocódigo PASCAL
declare Var
Início Begin
Fim End
Caracter Char
Inteiro Integer
Real Real
Lógico Boolean
Leia Read
Escreva Write
106
53
03/05/2013
Próximos passos?
Praticar a leitura e entendimento de Algoritmos de sua
área de aplicação
Aprender uma Linguagem de Programação para
Computadores
Programação!
107
Exemplo 1 - Fluxograma
Achar o valor da expressão: D = B2 - 4AC.
Início
Fim
108
54
03/05/2013
Ler os valores de A, B e C
Calcular a expressão D = B2 - 4AC
Mostrar o resultado desse cálculo
109
Pseudocódigo - Exemplo 1
Achar o valor da expressão: D = B2 - 4AC.
Início
Declare A,B,C,D: real; { Declaração de variáveis }
Leia(A,B,C);
D B^2 - 4*A*C; { Operação de atribuição }
Escreva(D);
Fim.
110
55
03/05/2013
Exemplo 2 - Fluxograma
Achar o maior de dois números A e B.
Início
Ler A, B
Comparar
A com B
Fim
111
112
56
03/05/2013
Pseudocódigo - Exemplo 2
Achar o maior de dois números A e B.
Início
Declare A,B; { Declaração de variáveis }
Leia(A,B);
Se A = B Então Escreva(“A e B iguais”);
Senão Se A>B Então Escreva(“A é maior”);
Senão Escreva(“B é maior”);
Fim-Se
Fim-Se
Fim.
113
Fluxograma
Utiliza desenhos geométricos básicos para descrever o fluxo da
entrada, processamento e saída de dados.
114
57
03/05/2013
Fluxograma
Outras formas geométricas...
115
Fluxograma
EXEMPLO DE FLUXOGRAMA
116
58
03/05/2013
Estrutura de Seleção
Desvio condicional simples
117
Estrutura de Seleção
Desvio condicional simples
Fluxograma
118
59
03/05/2013
Estrutura de Seleção
Desvio condicional simples
Ler dois valores numéricos, efetuar a adição e apresentar o seu
resultado caso o valor somado seja maior que 10.
119
Estrutura de Seleção
Desvio condicional simples
120
60
03/05/2013
Estrutura de Seleção
Desvio condicional composto
121
Estrutura de Seleção
Desvio condicional composto
Fluxograma
122
61
03/05/2013
Estrutura de Seleção
Desvio condicional composto
123
Estrutura de Seleção
Desvios condicionais encadeados (ou aninhados)
124
62
03/05/2013
Estrutura de Seleção
Desvio condicional encadeado
125
Estrutura de Repetição
Existem comandos apropriados para efetuar a repetição:
enquanto;
repita; e
para.
126
63
03/05/2013
Estrutura de Repetição
Estrutura enquanto
127
Estrutura de Repetição
Estrutura enquanto
128
64
03/05/2013
Estrutura de Repetição
Estrutura enquanto
Pedir a leitura de um valor para a variável X, multiplicar este valor por 3
atribuindo-o à variável de resposta R e apresentar o valor obtido,
repetindo esta seqüência por 5 vezes.
1. Criar uma variável para servir como contador com valor inicial 1;
2. Enquanto o contador for menor ou igual a 5, processar os passos 3, 4, 5;
3. Ler um valor para a variável X;
4. Multiplicar o valor de X por 3, guardando o resultado em R;
5. Apresentar o valor contido na variável R;
6. Acrescentar +1 ao contador;
7. Quando o contador for maior que 5, encerrar o processamento do looping.
129
Estrutura de Repetição
Estrutura enquanto
130
65
03/05/2013
Estrutura de Repetição
Estrutura repita
131
Estrutura de Repetição
Estrutura repita
132
66
03/05/2013
Estrutura de Repetição
Estrutura repita
Pedir a leitura de um valor para a variável X, multiplicar este valor por 3
atribuindo-o à variável de resposta R e apresentar o valor obtido,
repetindo esta seqüência por 5 vezes.
133
Estrutura de Repetição
Estrutura repita
134
67
03/05/2013
Estrutura de Repetição
Estrutura para
135
Estrutura de Repetição
Estrutura para Processamento
predefinido ou
Preparação
136
68
03/05/2013
Estrutura de Repetição
Estrutura para
Pedir a leitura de um valor para a variável X, multiplicar este valor por 3
atribuindo-o à variável de resposta R e apresentar o valor obtido,
repetindo esta seqüência por 5 vezes.
137
Estrutura de Repetição
Estrutura para
138
69
03/05/2013
Exercícios
Faça um fluxograma que leia dois números, calcule e
imprima a soma desses dois números.
Faça um fluxograma que leia um número e informe se o
dobro do número é maior que 35.
Faça um fluxograma que leia dois números e informa se o
primeiro é igual ao segundo.
Faça um fluxograma que leia a idade e a altura de várias
pessoas. Calcule e informe a média das alturas das
pessoas com mais de 50 anos. Para encerrar o programa
digite zero para idade.
Entrar com vários números e imprimir quantos números
foram digitados.
139
70