2. Informática
28/11/2013
• O termo foi criado na França em 1962.
• information automatique = informação automática.
• Definição: é a ciência que estuda o tratamento
automático e racional da informação; encarregada pelo
estudo e desenvolvimento de máquinas e métodos para
processar informação.
• Principais funções:
– Desenvolvimento de novas máquinas;
– Desenvolvimento de novos métodos de trabalho;
– Construção de aplicações automáticas existentes.
Eng.
Comp.
2
3. Computação
28/11/2013
• A palavra computador vem de computar que tem sua
orgiem no latim do verbo computare qu significa
contar ou calcular. Portanto, um computador, no
sentido mais geral, é qualquer recurso, ou
equipamento que ajude o homem a contar ou calcular.
• É um dispositivo físico capaz de realizar cálculos e
fazer decisões lógicas com uma velocidade de milhões
e até bilhões de vezes mais rápida do que o homem
pode fazer e com grande precisão, desde que receba
as instruções adequadas.
Eng.
Comp.
3
4. Computação
28/11/2013
• Por que surgiu a computação?
– A computação surgiu da idéia de auxiliar o homen
nos trabalhos rotineiros e repetitivos – cálculos e
gerenciamento. É uma ferramenta útil e necessária.
• Vantagens:
– Rapidez de execução;
– Confiabilidade dos resultados obtidos – precisão;
– Grande capacidade de armazenamento de
informações.
Eng.
Comp.
4
5. Evolução dos modernos
equipamentos de computação
28/11/2013
• É comum se dividir em gerações os computadores
de acordo com a tecnologia dos componentes
usados em seus circuitos eletrônicos.
• Com base nessa tecnologia e mais no critério de
que esses computadores tenham sido projetados
para
serem
comercializados,
é
possível
estabelecer dados aproximados para início e
término de cada geração.
• Na verdade, a divisão de computadores em
gerações é muito mais complexa e se baseia na
análise de diversas outras características,
principalmente as funcionais.
• Todavia a escolha da tecnologia dos componentes
como critério, é um bom ponto de partida.
Eng.
Comp.
5
6. 1940 – 1952
Eng.
Comp.
• 1ª Geração de Computadores:
– É constituído por todos os computadores
construídos à base de válvulas à vácuo e cuja
aplicação fundamental se deu nos campos
científicos e militar. Exemplo: IBM 360, MARK I e
UNIVAC.
28/11/2013
6
7. 1952 – 1964
Eng.
Comp.
• 2ª Geração de Computadores:
– A substituição de válvula pelo transistor deu início à
chamada segunda geração de computadores.
Utilização de linguagens de alto nível: cobol, fortan,
algol. Exemplos: IBM 1401, IBM 7094.
28/11/2013
7
8. 1964 – 1971
Eng.
Comp.
• 3ª Geração de Computadores:
28/11/2013
– Nesta geração, o elemento mais significativo é o
circuito integrado – CI. Surgido em 1964 e que
consiste no encapsulamento de uma grande
quantidade
de
componentes
discretos
–
resistências, condensadores, diodos, transistores –
instalando-se um ou vários circuitos numa pastilha
de silicone. Tecnologia SSI – integração em baixa
escala – e MSI – integração em média escala.
Grandes
desenvolvimentos
dos
sistemas
operacionais. Exemplos: UNIVAC 1108, IBM 360.
8
9. 1971 – 1981
Eng.
Comp.
• 4ª Geração de Computadores:
– Em 1971 aparece o microcomputador, que consiste
na inclusão de toda a CPU de um computador num
único circuito integrado. LSI – integração em
grande
escala.
Microcomptuadores;
redes.
Exemplos: IBM 3090, PC.
28/11/2013
9
10. 1981 – ?
Eng.
Comp.
• 5ª Geração de Computadores:
– Componentes em:
Altíssima escala de integração VLSI
Ultra grande escala de integração ULSI
Altíssima velocidade de processamento
Processamento paralelo
28/11/2013
•
•
•
•
10
11. Esquema do pessoal de
informática
28/11/2013
• O pessoal de informática pode ser classificado em:
• Direção: encarregado de dirigir e coordenar uma central
de processamento de dados – CPD – para obter um bom
rendimento da equipe.
• Análise: encarregado do desenvolvimento de aplicações
no que diz respeito ao projeto e desenvolvimento de
algoritmos. Dar apoio técnico aos usuários.
• Programação: encarregado de transcrever para
linguagem de computador os algoritmos elaborados na
fase de análise.
• Implementação e operação: execução dos programas,
distribuíção dos resultados e mantenção diária dos
sitemas existentes.
Eng.
Comp.
11
12. Sistema de computação
•
Eng.
Comp.
Um sistema de computação é formado por usuários, software e
hardware. O objetivo é processar dados. Processamento de dados:
execução de processos sobre o dados original, para transformá-lo em
uma informação.
HARDWARE
SOFTWARE
USUÁRIOS
PROCESSAMENTO
SAÍDA
28/11/2013
ENTRADA
ARMAZENAMENTO
12
13. Software: conceitos básicos
Eng.
Comp.
• Software ou Programa é a parte lógica que data o
equipamento físico com a capacidade par realizar
algum trabalho. O programa nada mais é do que uma
sequencia de instruções escritas em uma linguagem
de programação, informando ao hardware o que fazer
em que ordem. O software pode ser dividido em dois
grandes grupos de programas: os básicos e os
aplicativos.
28/11/2013
• Softwares básicos são software destinados à operar e
manter um sistema de computação. Incluem-se nesta
categoria os sistemas operacionais – SO, os utilitários,
os compiladores e os interpretadores.
13
14. Sistema Operacional
28/11/2013
• É o software que controla o hardware, atuando como
interface entre o computador e o usuário.
• É responsável pelo trafego dos dados entre os componentes
do sistema e por checar ininterruptamente todos os
dispositivos do computador para tomar atitudes baseadas nas
detecções feitas.
• Cada linha de computadores tem o seu próprio SO. Exemplos:
DOS, OS/2, SYTE 7, UNIX.
• Alguns Sos começaram a englobar um ambiente operacional,
que permite uma interface gráfica com o usuário,multiplas
janelas na tela, como por exemplo o windows 95 e 98.
• Os Sos podem ser classificados em diversas categorias.
Eng.
Comp.
14
15. Sistemas multitarefa e
monotarefa
Eng.
Comp.
• Monotarefa:
– permite a execução de um único programa
aplicativo. Somente um programa pode ser
carregado para a memória.
28/11/2013
• Multitarefa:
– permite que vários programas aplicativos sejam
carregados para a memória. Somente um deles
está ativo em um determinado instante,
porém, todos estão disponíveis para uso.
Exemplo: windows 95.
15
16. Sistemas monousuário e
multiusuário
Eng.
Comp.
• Monousuário:
– Permite que apenas um usuário trabalhe com
ele.
28/11/2013
• Multiusuário:
– Diversas pessoas, usando terminais ou micros
em rede, usam os recursos de um computador
central.
16
17. Sistemas multiprocessados
Eng.
Comp.
• São máquinas mais sofisticadas que possuem diversas
CPUs para agilizarem o processamento, executando
várias tarefas simultaneamente, uma em cada CPU.
Exemplo: windows NT, UNIX, etc.
que
um
de
etc.
28/11/2013
• Utilitários ou programas auxiliares: são programas
ajduam a manter e aumentar a eficiência de
sistema de computação, como os utilitários
compactação de arquivos, protetores de tela,
Exemplo: Norton Utilities, PKZIP, etc.
17
18. Sistemas multiprocessados
Eng.
Comp.
• Compilador: traduz o programa fonte escrito em uma
linguagem de alto nível – por exemplo, Pascal – para a
linguagem de máquina, gerando o programa
executável que o computador consegue entender e
processar diretamente.
28/11/2013
• Interpretador: interpreta cada comando de programa
fonte e executa as instruções que a ele correspondem,
sem gerar um programa executável. Mais lentos que
os compiladores.
18
19. Linguagem de programação
Eng.
Comp.
• É um conjunto de regras que permitem ao
homem escrever os programas – conjunto
de instruções – que ele deseja que sejam
executadas pelo computador.
28/11/2013
19
20. Linguagem de Máquina
Eng.
Comp.
• É um conjunto de instruções capazes de ativar
diretamente os dispositivos eletrônicos do computador.
Ela é constituída somente por zero ou um, o que
dificulta a leitura e a compreensão pelas pessoas.
• Bit: binary digit ou digito binário, 0 ou 1. É a menor
unidade de informação e apresenta dois estados
identificáveis. Sim ou não, chave ligada ou desligada.
28/11/2013
• Byte: é um conjunto de 8 bits, e constitui a unidade
de medida básica e universal para a capacidade de
armazenamento de todos os dispositivos do
computador.
20
22. Programas aplicativos
Eng.
Comp.
• São programas especializados e que
realizam
tarefas
específicas,
como
processador de textos, planilha eletrônica,
gerenciador de banco de dados, folha de
pagamento, controle de estoques, etc.
28/11/2013
22
23. Hardware
Eng.
Comp.
• É a parte física de um sistema de computação, ou
seja, todos os elementos materiais que o
compõem – circuitos eletrônicos, dispositivos
mecânicos, elétricos e magnéticos, etc.
• Componentes básicos de um computador:
– Dispositivo de entrada e saída – periféricos;
– Memória;
– Unidade central de processamento – UCP;
28/11/2013
• Dispositivos de entrada: serve para receber os
dados e programas preparados pelo homem e
transformá-los em sinais eletromagnéticos – bits –
manipuláveis pelo computador.
23
24. Hardware
28/11/2013
• Memória: é o dispositivo que armazena informações.
Existem dois tipos principais de memória: memória
principal ou central e memória auxiliar ou secundária.
• Memória principal ou central: é a memória interna do
computador, caracterizada por ser de alta velocidade.
Encarregada de armazenar os programas e dados
necessários para que o sistema realize um
determinado trabalho. É constituída principalmente
por RAM e ROM.
• RAM – random access memory ou memória de acesso
aleatório: Onde ficam armazenados os dados, os
resultados intermediários onde ficam os programas
que estão sendo executados pela UCP.
Eng.
Comp.
24
25. Hardware
28/11/2013
• ROM – ready only memory ou memória exclusivamente de
leitura: Onde as informações são gravadas uma única vez,
geralente pelo fabricante e nunca mais são alteradas. A
memória ROM é não volátil, isto é, mesmo com o
desligamento do computador, as informações nela contidas
não são perdidas.
• PROM: não pode ser alterada – circuitos internos.
• EPROM: luz ultravioleta – apaga e remove, programada.
• EAROM: tensão em um dos pinos, processos elétricos – altera
e romove.
• Memória auxiliar: é um dispositivo de armazenamento de
longo prazo, no qual o computador armazena dados que
poderão ser posteriormente utilizados.
Eng.
Comp.
25
26. Unidade central de
processamento
28/11/2013
• É a principal unidade de controle e processamento de um
computador. Tem como funções coordenar, controlar e
realizar todas as operações do sistema. É constituída por:
– Unidade lógica e aritmética – ULA: realiza todos os
cálculos – operações aritméticas e lógicas.
– Unidade de controle – UC: controla as intruções dos
programas que estão na memória, fazz com que o
dispositivo de entrada leia os dados, tranfira os valores
adequados da memória para a ULA, armazena e
recupera
dados
e
resultados
intermediários
armazenados na memória e passa os resultados para o
dispositivo de saída.
Eng.
Comp.
26
27. Números Binários
28/11/2013
• Os números binários compõem o sitema
numérico de base 2, e é formado por zeros e
uns (0 e 1). Os numeros binários foram
adotados nos computadores por motivos de
precisão e economia, pois construir um
circuito eletrônico capaz de detectar a
diferença entre dois estados – presença ou
ausência de corrente elétrica – é muito mais
fácil e barato do que construir um circuito
que detecte a difrerença entre dez estados
diferentes.
Eng.
Comp.
27
30. Histórico e evolução
Eng.
Comp.
O primeiro instrumento moderno de calcular – na verdade, uma
somadora – foi construído pelo físico, matemático e filósofo francês
Blaise PASCAL, em 1642.
28/11/2013
30
32. Histórico e evolução
MÁQUINA de BABBAGE
Base
do
funcionamento
computador:
Eng.
Comp.
de
um
28/11/2013
– Alimentação de dados, através de cartões
perfurados.
– Uma unidade de memória, onde os números
podiam ser armazenados e reutilizados.
– Programação sequencial de operações – hoje
chamado de sistema operacional.
32
33. Histórico e evolução
Eng.
Comp.
Herman HOLLERITH
28/11/2013
- Juntou os cartões de Jacquard e o
conceito de impulsos elétricos para
transmissão de dados.
- Reconhecimento no censo americano de
1890.
- Tempo muito menor gerando economia.
33
34. Histórico e Evolução
Eng.
Comp.
Guerra e Computação: o que tem a ver?
- As guerras trouxeram para a computação
um enorme desenvolvimento.
-
28/11/2013
Os
governos
incentivaram
o
desenvolvimento de equipamentos que
pudessem calcular trajetórias precisas,
construir mísseis, e etc...
34
35. Histórico e evolução
28/11/2013
Alan TURING cria o
Colossus, máquina que,
uma
vez
plugada,
programada e alimentada,
resolvia qualquer questão
de criptografia em poucos
minutos.
Eng.
Comp.
35
36. Histórico e evolução
Eng.
Comp.
ENIAC (Eletronic Numerical Integrator And Computer)
O computador mais famoso desta época. Foi
construído em 1946.
28/11/2013
– 17.840 válvulas
– Pesava 4 toneladas
– 30 metros de comprimento e 3 metros de
altura
– Ocupava área de 180 m2
– Capacidade de 5.000 somas por segundo
36
45. Lógica de programação
28/11/2013
• Significa o uso correto das leis de pensamento, da “ordem
de razão” e de processos de raciocínio e simbolização
formais na programação de computadores, objetivando
racionalidade e o desenvolvimento de técnias que
cooperem para produção de soluções logicamente válidas e
coerentes, que resolvam com qualidade os problemas que
se deseja programar.
• Programação: é responsável pela instrução do computador
do que e de como um problema deve ser resolvido.
• Algoritmo: é uma sequencia ordenada e sem ambiguidade
de passos que visam atingir um objetivo bem definido e,
consequentemente levam à solução de um problema.
Eng.
Comp.
45
46. Lógica de programação
Eng.
Comp.
• Em um algoritmo, é importante salientarmos:
– Deve descrever exatamente quais são as instruções
que devem ser executadas e em que sequencia;
– Eficiente: resolve o problema com o mínimo de
recursos;
– Eficaz: consegue resolver o problema em qualquer
28/11/2013
situação. Todas as situações de exceção, que possa
alterar o comportamento do algoritmo devem ser
especificados e tratados.
46
47. Como construir um algoritmo
Problema
Análise Preliminar
Desenvolva
um
algoritmo para resolver
o problema
Entenda o problema com a
maior precisão possível
Se o resultado não for
satisfatório,
altere
o
algoritmo e teste novamente
Solução
Teste de
qualidade
Produto Final
Alteração
Algoritmo pronto para ser
aplicado – implementado
28/11/2013
Execute o algoritmo
para vários testes cujos
resultados
sejam
conhecidos
Eng.
Comp.
47
48. Exemplo
Eng.
Comp.
• Algoritmo para troca de uma lampada queimada.
1.
2.
Remova a lâmpada queimada
Coloque um a nova lâmpada
• Detalhando ou refinando os passos:
– Vamos trocar uma lâmpada de rosquear. Se a lâmpada está
queimada não é necessário fazer o teste se está ou não
funcionando. Temos uma lâmpada em casa igual àquela que
queimou – voltagem e potência. Temos uma lâmpada para trocar
pela outra. Temos uma escada para auxiliar na troca.
28/11/2013
• Sempre enumerar os passos a serem executados.
• Primeiro fazer a grosso modo e depois detalhar.
48
49. Exemplo
28/11/2013
1.1. Coloque uma escada embaixo da lâmpada
queimada.
1.2. Suba na escada até alcançar a lâmpada queimada.
1.3. Gire a lâmpada queimada no sentido anti-horário
até que ela se solte.
2.1. Escolha uma nova lâmpada da mesma
potência/vontagem da queimada.
2.2. Posicional a lâmpada nova no soquete.
2.3. Gire a lâmpada no sentido horário, até que ela se
firme.
2.4. Desça da escada.
Eng.
Comp.
49
50. Exemplo
Eng.
Comp.
• Ordenando os passos:
28/11/2013
1.1. Coloque uma escada embaixo da lâmpada
queimada.
2.1. Escolha uma nova lâmpada da mesma
potência/vontagem da queimada.
1.2. Suba na escada até alcançar a lâmpada queimada.
1.3. Gire a lâmpada queimada no sentido anti-horário
até que ela se solte.
2.2. Posicional a lâmpada nova no soquete.
2.3. Gire a lâmpada no sentido horário, até que ela se
firme.
2.4. Desça da escada.
50
51. Detalhando mais ainda os
passos – versão 1
1.
2.
3.
28/11/2013
Coloque uma escada embaixo da lâmpada queimada.
Escolha uma lâmpada nova.
Enquanto a potência/voltagem não for a mesma da queimada.
– Descarte a lâmpada escolhida.
– Escolha outra lâmpada.
4. Suba um degrau da escada.
5. Enquanto não possa alcançar a lâmpada queimada
– Suba um degrau da escada.
6. Gire a lâmpada no sentido anti-horário.
7. Enquanto a lâmapda nao estiver livre do soquete
•
Gire a lâmpada no sentido anti-horário.
8. Posicione a nova lâmpada no soquete.
9. Gire a lâmpada no sentido horário.
10. Enquanto a lâmpada não estiver firme no soquete.
– Gire a lâmpada no sentido horário.
11. Desça da escada.
Eng.
Comp.
51
52. Detalhando mais ainda os
passos – versão 2
1.
2.
3.
–
28/11/2013
Coloque uma escada embaixo da lâmpada queimada.
Escolha uma lâmpada nova.
Enquanto a potência/voltagem não for a mesma da queimada.
– Descarte a lâmpada escolhida.
– Escolha outra lâmpada.
4. Suba um degrau da escada.
5. Enquanto não possa alcançar a lâmpada queimada
– Suba um degrau da escada.
6. Gire a lâmpada no sentido anti-horário.
7. Enquanto a lâmapda nao estiver livre do soquete
•
Gire a lâmpada no sentido anti-horário.
8. Posicione a nova lâmpada no soquete.
9. Gire a lâmpada no sentido horário.
10. Enquanto a lâmpada não estiver firme no soquete.
– Gire a lâmpada no sentido horário.
11. Desça um degrau da escada.
12. Enquanto não possa alcançar o chão.
Eng.
Comp.
Desça um degrau da escada.
52
54. Tipos de dados
28/11/2013
• O objetivo principal de qualquer computador é a resolução de
problemas através da manipulação de dados, que podem ser de
vários tipos.
• Tipos primitivos: tipos de dados básicos utilizados na construção
de algoritmos.
– Inteiro: informação pertencente ao conjunto dos números
inteiros. Exemplo: -10, 0, 5, 100.
– Real: informação pertencente ao conjunto dos números reais.
Exemplo: 5.2 (tem que usar ponto e não vírgula), -3.93, 0.0,
7.
– Caracter: informação composta por um conjunto de
caracteres alfanuméricos. Exemplo: „a‟, „ABC‟, “F10B5‟, „$?!5‟.
– Lógico: informação que pode receber (assumir) apenas dois
valores possíveis: verdadeiro (V) ou falso (F).
Eng.
Comp.
54
55. Tipos de dados
28/11/2013
• Constante: um dados é constante quando não se
modifica durante a execução do algoritmo (programa).
Pode ser de qualquer tipo primitivo.
• Variáveis: um dado é variável quando possui um
conteúdo (valor) que pode variar durante a execução
de algoritmo (programa).
• Embora a variável possa assumir diferentes valores,
ela só pode armazenar um valor a cada instante. Toda
variável é conhecida no algoritmo por um nome ou
identificador. Ele é formado por uma única letra ou
então por uma letra seguida de letras ou dígitos.
Exemplo: X, Y, Z, salário, ano, etc.
Eng.
Comp.
55
56. Observações
28/11/2013
• O cálculo – em computação – é feito com dados,
geralmente são números, porém podem ser
caracteres. O computador faz cálculos, o programa
executa as instruções que damos. Dados são jogados
dentro da variável ou constante.
• Tipos primitivos são utilizados no algoritmo, porque já
vem definido na linguagem. A maioria das linguagens
utilizam os quatro tipos de dados.
• Tipo inteiro: números dos conjuntos dos números
inteiros, positivos, negativos e nulos.
• Números naturais: só números inteiros positivos.
• Tipo real: mais abrangentes, casas decimais. A casa
decimal é representada por ponto e não vírgula.
Eng.
Comp.
56
57. Observações
28/11/2013
• Os números inteiros está contido no conjunto dos
números reais.
• O caracter tem que vir com apóstrofo – ou aspas
simples – „ABC‟ – cadeia de caracteres.
• Tipo lógico: ou é verdadeiro ou é falso. Por
exemplo: x = 7 > 2, então x = V.
• Tipo constante: espaço de memória onde o dado é
jogado e não muda o valor. Exemplo: pi = 3.14.
• Variável: espaço de memória do computador onde
é guardado um dado e pode ser alterado.
• Cada espaço tem um nome obrigatoriamente. Três
espaços de memória para três variáveis.
Eng.
Comp.
57
58. Observações
28/11/2013
• Se chama variável porque os valores podem
se alterar. Só precisa saber o nome da
variável.
• Geralmente a variável terá um nome parecido
com o programa – nome sugestivo.
• O DOS só reconhece 8 digítos – caracteres.
• O tamanho do espaço – ou seja, bytes de
memória – vai variar conforme o tipo das
variáveis.
• O número máximo para os números inteiros
são (faixa de valores): -32.756 a 32.756.
Eng.
Comp.
58
59. Observações
Eng.
Comp.
O 7 é apagado e substituído
por -3. Só podemos guardar
um valor em cada espaço.
Memória
7
0
Y
-5
1
Z
28/11/2013
X = -3
Y=0
Z=1
X
2
X=7
Y=2
Z = -5
-3
59
60. Expressões aritméticas
Eng.
Comp.
• São expressões em que os operadores são aritméticos e os
operandos são constantes e/ou variáveis numéricos.
Operadores Aritméticos
Operador
Função
Operadores Aritméticos
Operador
Função
Adição
pot(x,y)
Potenciação. Ex: pot(2,3) = 8
-
Subtração
rad(x,y)
Radiciação. Ex: rad(4) = 2
*
Multiplicação
sqrt(x)
sqrt(4)
/
Divisão
mod
div
sqr(x)
Resto da divisão. Ex: 9 mod 4 = 1
Quociente da divisão. Ex: 9 div 4 = 2
Quadrado de x. Ex: sqr(4) = 16
28/11/2013
+
60
62. Expressões lógicas
Eng.
Comp.
• São expressões cujos operadores são lógicos, ou relacionais e cujos
operandos são relações, constantes e/ou variáveis do tipo lógico.
• Operadores relacionais: são utilizados para realizar comparações
entre dois valores do mesmo tipo. Estes valores podem ser
constantes, variáveis ou expressões aritméticas.
Operador
Função
Igual a
>
Maior que
<
Menor que
>=
Maior ou igual a
<=
Menor ou igual a
<>
28/11/2013
=
Diferente
62
63. Expressões lógicas
Eng.
Comp.
Ou ( v )
28/11/2013
• O resultado obtidode uma expressão
realcional é sempre um valor lógico – V ou
F. Exemplo:
2 * 4 = 24 / 3
8=8
Operador
Função
V
Não ( ~ )
Negação
Operadores Lógicos:
E(^)
Conjunção
Disjunção
63
64. Tabelas verdade
Eng.
Comp.
• Sejam p e q proposições:
Negação
Conjunção
Disjunção
p
não p
p
q
peq
p
q
p ou q
V
F
F
F
F
F
F
F
F
V
F
V
F
F
V
V
V
F
F
V
F
V
V
V
V
V
V
V
Prioridades:
não
e ou
Prioridades entre todos os parênteses:
Parênteses mais internos
Operadores aritméticos
Operadores relacionais
Operadores lógicos
28/11/2013
O resultado de uma expressão lógica é sempre um valor lógico – V ou F.
64
66. Exemplos
28/11/2013
não V ou pot(3,2) / 3 < 15 - 35 mod 7
não V ou 9 / 3 < 15 - 35 mod 7 (operadores atitméticos)
não V ou 3 < 15 - 35 mod 7 (operadores atitméticos)
não V ou 3 < 15 - 0 (operadores relacionais)
não V ou 3 < 15 (operadores relacionais)
não V ou V (operadores lógicos)
F ou V (operadores lógicos)
V
Eng.
Comp.
66
67. Exemplos
Eng.
Comp.
não ( 5 < > 10 / 2 ou V e 2 – 5 > 5 – 2 ou V )
não ( 5 < > 5 ou V e 3 > 3 ou V )
não ( F ou V e F ou V )
não ( V e F ou V )
não ( F ou V )
não ( V )
F
28/11/2013
67
68. Paradigmas de Programação
Eng.
Comp.
• Um paradigma de programação fornece e
determina a visão que o programador
possui sobre a estruturação e execução do
programa.
28/11/2013
68
70. Paradigma Declarativo ou
Funcionais
Eng.
Comp.
• Qual é o problema?
• Descrever um problema, sem se preocupar com qual
algoritmo será utilizado para resolvê-lo.
• Algoritmo “universal”, capaz de solucionar qualquer problema.
O problema se adapta a esse algoritmo, e não o contrário.
• Linguagem Prolog;
28/11/2013
• Baseia-se em verdades universais e regras de inferência.
70
71. Paradigma funcional
Eng.
Comp.
• Subdividir o problema em outras funções e resolver cada uma
separadamente, pois os
utilizados posteriormente.
resultados
encontrados
serão
• Sobre o paradigma funcional, é fácil ilustrar através de um
fluxograma.
• Cada bloco recebe no topo uma entrada de dados e retorna,
na base, os dados de saída.
28/11/2013
• A solução geral é dividida em várias funções que, no final, se
associam para mostrar o resultado na tela.
• Linguagem Haskell
71
72. Paradigma orientado a objetos
Eng.
Comp.
• Um conjunto de classes faz a interação
entre objetos (instâncias) e, com a troca
de mensagens entre eles, forma-se o
software como um todo.
28/11/2013
• Linguagem Java
72
74. Linguagens de Baixo Nível
Eng.
Comp.
• Linguagem Assembly
• São linguagens simbólicas ou código de
máquina
• Abstração de dados baixa
28/11/2013
74
75. Linguagens de Médio Nível
Eng.
Comp.
• São linguagens dificieis de programar pois
estão tanto na camada mais alta quanto
na mais baixa
• Abstração de dados média
28/11/2013
• Linguagem C
75
76. Linguagens de Alto Nível
Eng.
Comp.
• São mais fáceis de programar
• O programador não precisa saber vários
detalhes sobre o computador para usar estas
linguagens
• Linguagem Java
28/11/2013
• Abstração de dados alta
76
77. Interpretação e Compilação
Ambos são tradutores de código
Interpretador não gera executável
Compilador gera executável
Interpretador interpreta as linhas de
código e não mostram erros
• Compilador analisa a gramática e sintaxe
da linguagem e aponta erros. Só funciona,
de fato, depois que os erros são
eliminados.
Eng.
Comp.
•
•
•
•
28/11/2013
77
78. Introdução
Eng.
Comp.
• Existem diversas formas de representação de algoritmos, mas
não há um consenso com relação à melhor delas.
• Algumas formas de representação de algoritmos tratam os
problemas apenas em nível lógico, abstraindo-se de detalhes
de implementação muitas vezes relacionados com alguma
linguagem de programação específica.
28/11/2013
• Por outro lado existem formas de representação de algoritmos
que possuem uma maior riqueza de detalhes e muitas vezes
acabam por obscurecer as idéias principais do algoritmo,
dificultando seu entendimento.
78
79. Introdução
Eng.
Comp.
• Dentre as formas de representação de
algoritmos mais conhecidas podemos
citar:
28/11/2013
• Descrição Narrativa;
• Fluxograma Convencional;
• Pseudocódigo, também conhecido como
Linguagem Estruturada ou Portugol.
79
80. Narração Descritiva
Eng.
Comp.
• Nesta forma de representação os algoritmos são expressos
diretamente em linguagem natural. Exemplo de uma receita
de bolo:
Misture os ingredientes
Unte a forma com manteiga
Despeje a mistura na forma
Se houver coco ralado
então despeje sobre a mistura
Leve a forma ao forno
Enquanto não corar
deixe a forma no forno
Retire do forno
Deixe esfriar
28/11/2013
–
–
–
–
–
–
–
–
–
–
80
81. Narração Descritiva
Eng.
Comp.
• Exemplo de um pneu furado:
Troca de um pneu furado:
Afrouxar ligeiramente as porcas
Suspender o carro
Retirar as porcas e o pneu
Colocar o pneu reserva
Apertar as porcas
Abaixar o carro
Dar o aperto final nas porcas
28/11/2013
–
–
–
–
–
–
–
–
81
82. Narração Descritiva
Eng.
Comp.
• Exemplo do cálculo da média de um
aluno:
Cálculo da média de um aluno:
Obter as suas 2 notas de provas
Calcular a média aritmética
Se a média for maior que 7,
o aluno foi aprovado,
senão ele foi reprovado
28/11/2013
–
–
–
–
–
–
82
83. Narração Descritiva
Eng.
Comp.
• Esta representação é pouco usada na prática
porque o uso da linguagem natural muitas vezes
dá
oportunidade
a
más
interpretações,
ambigüidades e imprecisões.
• Uma instrução mais precisa seria: "afrouxar a
porca, girando-a 30º no sentido anti-horário".
28/11/2013
• Por exemplo, a instrução "afrouxar ligeiramente as
porcas" no algoritmo da troca de pneus está
sujeita a interpretações diferentes por pessoas
distintas.
83
84. Fluxograma
28/11/2013
• É uma representação gráfica de algoritmos onde formas
geométricas diferentes implicam ações (instruções, comandos)
distintos.
• Tal propriedade facilita o entendimento das idéias contidas nos
algoritmos e justifica sua popularidade.
• Esta forma é aproximadamente intermediária à descrição
narrativa e ao pseudocódigo (subitem seguinte), pois é menos
imprecisa que a primeira e, no entanto, não se preocupa com
detalhes de implementação do programa.
• Nota-se que os fluxogramas convencionais preocupam-se com
detalhes de nível físico da implementação do algoritmo.
• Por exemplo, figuras geométricas diferentes são adotadas para
representar operações de saída de dados realizadas em
dispositivos distintos, como uma fita magnética ou um monitor
de vídeo.
Eng.
Comp.
84
85. Fluxograma
Eng.
Comp.
• O pacote office possui os símbolos do fluxograma. Na aba INSERT,
na parte ILLUSTRATIONS, existe o botão SHAPES. Na setinha
aparecem os símbolos de desenho, entre eles o FLOWCHART, ou
FLUXOGRAMA.
28/11/2013
85
86. Fluxograma
SÍMBOLO
FUNÇÃO
Eng.
Comp.
DESCRIÇÃO
Representa todo tipo de ação (em Matemática seriam
as Operações Aritméticas e Lógicas, a Atribuição, etc).
Process Alternate
ou Processo
Alternativo
Raramente utilizado, indica uma forma diferente de se
fazer o mesmo processo.
Decision ou
Decisão
Uma ação que é efetuada de acordo com uma
condição. Exemplo: Se o aluno tirou nota 7, então ele
está aprovado, caso contrário, está reprovado.
Data ou Dados
Representa o símbolo de dados, entrada e saída
simultaneamente.
Predefined Process
ou Processo PréDefinido
Raramente utilizado. Processo já conhecido que será
aplicado ao fluxo.
28/11/2013
Process ou
Processo
86
87. Fluxograma
SÍMBOLO
FUNÇÃO
Eng.
Comp.
DESCRIÇÃO
Document ou
Documento
Símbolo utilizado para indicar a criação de um
documento.
Multi-Document
ou Múltiplos
Documentos
Símbolo utilizado para indicar a criação de vários
documentos.
Utilizado para inicar e terminar o fluxograma
Preparation ou
Preparação
Raramente utilizado.
Manual Input ou
Entrada Manual
28/11/2013
Terminator ou
Terminador
Corresponde à instrução de entrada de dados através
do teclado. Atualmente é considerado o símbolo para
qualquer entrada de dados.
87
88. Fluxograma
SÍMBOLO
FUNÇÃO
Eng.
Comp.
DESCRIÇÃO
Manual Operation
Raramente utilizado. Corresponde à operação
ou Operação Manual manual de algum processo.
Connector ou
Conector
Raramente utilizado.
Off-Page Connector
ou Conector Fora de
Página
Raramente utilizado.
Símbolo que corresponde ao cartão perfurado,
que não é mais utilizado atualmente.
28/11/2013
Card ou Cartão
Punched Tape ou Fita Símbolo que corrresponde à fita perfurada, que
Perfurada
não é mais utilizada atualmente.
88
89. Fluxograma
SÍMBOLO
FUNÇÃO
Eng.
Comp.
DESCRIÇÃO
Summing Junction ou
Tem a função da tabela verdade E.
Somador
OR – OU
Collate ou
Agrupamento
Seta de Fluxo
Símbolo utilizado para agrupar dados.
Símbolo utilizado para classificar os dados, por
exemplo, em ordem alfabética
28/11/2013
Sort ou Classificação
Tem a função da tabela verdade OU.
Indica para onde está indo a informação
89
90. Fluxograma
SÍMBOLO
FUNÇÃO
Eng.
Comp.
DESCRIÇÃO
Internal Storage ou
Armazenamento
Interno
Raramente utilizado. Símbolo que representa o
armazenamento em memória.
Extract ou Extração
Símbolo utilizado para extração de dados. Em
banco de dados, através de comandos SQL,
conseguir extrair algumas informações, até então
tidas como desconexas, da base de dados.
Merge ou Mesclar
Símbolo utilizado para mesclar os dados. No excel,
esse “comando” transforma duas colunas em uma.
Delay ou Atraso
Referente aos dados que estão guardados.
Referente à tempo de atraso. Por exemplo, quanto
tempo o resultado de uma conta, vai ficar
aparecendo na tela?
28/11/2013
Stored Data ou
Dados Armazenados
90
91. Fluxograma
SÍMBOLO
FUNÇÃO
Eng.
Comp.
DESCRIÇÃO
Sequential Storage
Access ou
Armazenamento de
Acesso Sequencial
Símbolo para armazenamento de dados de forma
sequencial, significa que os dados serão acessados
na ordem na qual foram armazenados.
Magnetic Disk ou
Disco Magnético
Símbolo para armazenamento de dados, no caso o
disco rígido (HD)
Display ou Exibição
É considerado também o símbolo para SAÍDA de
dados, como uma impressora ou monitor.
28/11/2013
Símbolo para armazenamento de dados direto,
Direct Access Storage
significa que os dados podem ser recuperados
ou Armazenamento
diretamente sem passar por outros dados na
de Acesso Direto
seqüência.
91
92. Exemplos
Eng.
Comp.
• Exemplo 1:
– Desenvolva uma solução para o problema a seguir
utilizando as formas de representação “descrição
narrativa”, “fluxograma” e “algoritmo” para demonstrar o
seu raciocínio.
ser desenvolvido
do tipo real. O
Em seguida, o
e apresentar o
28/11/2013
– Problema: O software (ou programa) a
deve solicitar ao usuário dois números
usuário deve digitar esses números.
programa deve somar esses números
resultado na tela.
92
93. Exemplos
•
Eng.
Comp.
Exemplo 1:
– Solução:
28/11/2013
• Descrição narrativa:
– Apresentar na tela uma mensagem para o usuário,
informando-o que deverá digitar dois números do tipo real.
– Após ler a mensagem, o usuário deverá inserir os números,
através do teclado, que serão lidos e armazenados em duas
variáveis diferentes;
– Em seguida, será aplicada a operação de soma nos dois
operandos, isto é, nos dois números que foram inseridos
pelo usuário, sendo o resultado armazendo em uma terceira
variável;
– O resultado será então apresentado na tela para o usuário
por um período de tempo, finalizando assim o programa.
93
95. Fluxograma
Eng.
Comp.
• Exemplo 1:
– Solução:
28/11/2013
• Algoritmo:
1. Início do algoritmo;
2. Apresentar na tela a seguinte mensagem para o usuário:
“Digite dois números do tipo real”;
3. Ler o número X e ler o número Y;
4. Somar o número X com o número Y;
5. Colocar o resultado em Z;
6. Apresentar na tela a seguinte mensagem para o usuário: “A
soma entre os números X, „X‟, e Y, „Y‟, é Z, „Z‟ ”.
7. Manter a mensagem na tela por 30 segundos.
8. Fim do algoritmo
95
96. Exemplos
Eng.
Comp.
• Exemplo 2:
– Desenvolva uma solução para o problema a seguir utilizando as
formas de representação “descrição narrativa”, “fluxograma” e
“algoritmo” para demonstrar o seu raciocínio.
28/11/2013
– Problema: O software (ou programa) a ser desenvolvido deve
solicitar que o usuário digite as quatro notas que obteve em
suas quatro provas. O usuário deve digitar esses números que
são do tipo real. Em seguida, o programa deve fazer a média
desses números e apresentar o resultado na tela.
96
97. Exemplos
•
28/11/2013
Exemplo 2:
– Solução:
• Descrição narrativa:
– Apresentar na tela uma mensagem para o usuário, informando-o
que deverá digitar os valores das notas das quatro provas que
realizou.
– Após ler a mensagem, o usuário deverá inserir os números,
através do teclado, que serão lidos e armazenados em quatro
variáveis diferentes;
– Em seguida, será aplicada duas operações;
» uma que soma os quatro operandos e armazena o
resultado em uma variável SOMA;
» outra que divide o resultado da SOMA pelo valor 4 (quatro)
e armazena o resultado da variável em MÉDIA;
– O resultado, MÉDIA, será então apresentado na tela para o
usuário por um período de tempo, finalizando assim o programa.
Eng.
Comp.
97
98. Fluxograma
• Exemplo 2:
INÍCIO
“Digite os
valores das
quatro provas”
Eng.
Comp.
– Solução:
• Fluxograma:
Leia X, Y, Z, W
SOMA = X + Y + Z + W
FIM
30
segundos
28/11/2013
MÉDIA = SOMA / 4
“A nota final do
aluno é: , MÉDIA”
98
99. Fluxograma
•
Eng.
Comp.
Exemplo 2:
– Solução:
28/11/2013
• Algoritmo:
1. Início do algoritmo;
2. Apresentar na tela a seguinte mensagem para o usuário:
“Digite as quatro notas das provas (tipo real)”;
3. Ler os números X, Y, Z e W;
4. Somar os números X, Y, Z e W;
5. Colocar o resultado em SOMA;
6. Dividir a SOMA por 4;
7. Colocar o resultado em MÉDIA;
8. Apresentar na tela a seguinte mensagem para o usuário: “A
média final do aluno é: , MÉDIA”;
9. Manter a mensagem na tela por 30 segundos;
10. Fim do algoritmo.
99
101. Declaração de variáveis
Eng.
Comp.
• Permite definir o nome das variáveis e o tipo
de dado que elas poderão armazenar.
tipo: identificador;
Ex.:
28/11/2013
inteiro: A;
real: altura, peso;
101
102. Comando de atribuição
Eng.
Comp.
• Permite que se forneça (atribua) um valor a
uma determinada variável. O tipo do dado
deve ser compatível com o tipo da variável.
Identificador expressão;
• Ex.:
28/11/2013
A 7;
Altura 1, 70;
Peso 60;
A 3 + 2;
Peso altura * 10;
102
103. Comandos de entrada e saída:
Entrada de dados.
28/11/2013
leia (identificador);
• Sua finalidade é atribuir o dado a ser fornecido
pelo usuário à variável identificada. Sendo:
• identificador: o nome da variável ou variáveis,
cujos conteúdos serão mostrados.
• expressão: um valor ou valores que serão
mostrados aos usuários através de um dispositivo
de saída.
• Ex.:
escreva(A);
escreva(„você pesa‟, pesa, „quilos‟);
Eng.
Comp.
103
104. Blocos
Eng.
Comp.
• Um bloco pode ser definido como um
conjunto de ações, uma ação definida.
28/11/2013
Inicio
.
.
.
.
fim
104
105. Exemplo
Considere as seguintes entradas
para o algoritmo em questão:
28/11/2013
inteiro: x, y;
x=5
y = 10
real: z;
leia(x);
escreva(x, „elevado ao cubo=‟, pot(x,3));
leia(y);
escreva(x+y);
Rastreie o algoritmo e mostre quais
são os valores armazenados nas
z x*y;
variáveis em cada passagem e qual a
saída na tela.
escreva(z);
z z+1;
x (y+x)mod2;
Eng.
Comp.
105
107. Estrutura sequencial
Modelo geral de algoritmo
Eng.
Comp.
algoritmo nome;
28/11/2013
início
//declaração de variáveis;
ação1;
ação2;
.
.
.
açãon;
fim
107
108. Exemplo
Eng.
Comp.
• Construa um algoritmo para ler dois números. Em seguida,
calcule a soma desses números, armazenando o resultado em
outra variável. Imprima os dados iniciais e a soma.
algoritmo exemplo;
inicio
inicio
OU
real: x, y, z;
leia(x, y);
escreva(x, y);
z x + y;
escreva(z);
fim
28/11/2013
real: x, y, z;
leia(x);
escreva(x);
leia(y);
escreva(y);
z x + y;
escreva(z);
fim
algoritmo exemplo;
108
110. Pascal – estrutura básica
Eng.
Comp.
program nome;
uses wincrt;
begin
.
.
.
end.
28/11/2013
NÚMEROS DE CASAS DECIMAIS: formatar a saída com
A:5:2
Primeiro digitar o programa e salvar, depois compilar e
executar.
110
111. Pascal – tipos de dados
Eng.
Comp.
• Inteiro: integer (operadores de soma, divisão,
multiplicação, subtração, mod e div)
• Real: real (operadores de soma, subtração,
multiplicação e divisão)
• Caracter: char
• Cadeia de caracteres: string
• Lógico: boolean (true ou false)
28/11/2013
• DECLARAÇÃO DE VARIÁVEIS
• Var: lista de identificação
111
112. Estrutura de decisão múltipla
PSEUDOCÓDIGO MODELO1:
PSEUDOCÓDIGO
MODELO 2:
conforme_seja expressão (E)
fazer
e1: ações
caso_de E fazer
.
.
.
.
e2: ações
Fim_fazer
.
.
se_não
ação
fim_conforme
Eng.
Comp.
113. Estrutura de decisão múltipla
PSEUDOCÓDIGO
MODELO 3:
PSEUDOCÓDIGO
MODELO 4:
opção E de
.
.
Fim_opção
conforme E fazer
.
.
fim_conforme
Eng.
Comp.
114. Estrutura de decisão múltipla
PSEUDOCÓDIGO MODELO 5:
se E é n fazer
.
.
.
fim_se
Eng.
Comp.
115. Estrutura de decisão múltipla
MODELO 6:
conforme_seja (expressão) fazer
caso expressão constante: [sentença]
caso expressão constante: [sentença]
outros: [sentença]
fim_conforme
Eng.
Comp.
116. Estrutura de decisão múltipla
EM PASCAL:
readln (seletor);
CASE seletor OF
alvo1:
BEGIN
Instruções
END;
alvo2:
BEGIN
Instruções
END;
ELSE comando4;
END;
Eng.
Comp.
117. Estrutura de decisão múltipla
EXEMPLO:
algoritmo DiasSemana
var
inteiro: DIA
inicio
ler(DIA)
conforme_seja DIA fazer
1: escrever(‘SEGUNDA’)
2: escrever(‘Terça’)
se-não
escrever(‘erro’)
fim_conforme
fim
Eng.
Comp.
118. Estrutura de decisão múltipla
EXEMPLO:
algoritmo DiaSemana
var
inteiro: DIA
inicio
ler(DIA)
conforme_seja DIA fazer
1: escrever(‘SEGUNDA’)
2: escrever(‘Terça’)
se_não
escrever(‘erro’)
fim_conforme
fim
Eng.
Comp.
120. Fazer-enquanto/do-while
algoritmo exemplo
var
inteiro: num, digitoSig
inicio
num 198
escrever(‘Numero: ’, num)
escrever(‘Numero em ordem inversa: ’)
fazer
digitoSig = num MOD 10
escrever(digitoSig)
num = num DIV 10
enquanto num > 0
fim
Eng.
Comp.
123. Estrutura de Repetição sem
teste
• A estrutura PARA repete a execução do bloco em um número
definitivo de vezes pois ela possui limites fixos. Esta estrutura
é utilizada quando sabe-se de antemão o número de vezes que
o laço deverá ser executado.
Para V de Vi até Vf passo P faça
Início
ação/ações;
Fim para;
•
•
•
•
V = variável de controle do tipo inteiro;
Vi = valor inicial da variável V;
Vf = valor final da variável V;
P = é o valor do incremento dado a variável V;
Eng.
Comp.
124. Estrutura de Repetição sem
PASSO 1:
teste 0 + 1 = 1
Eng.
Comp.
1+1=2
2+1=3
......
• Exemplo1:
algoritmo exemplo1;
PASSO – 1
início
3–1=2
inteiro: cont;
2–1=1
para cont de 1 até 3 passo 1 faça 1 – 1 = 0
Não existe 0 – 1, portanto, no
início
PASSO -1, pára no 1, não chega
escreva(„número = ‟, cont);
a 0.
fim para;
cont Vi
Vf
Passo 1
cont
fim.
1
1
3
1+1=2
2
2
1
3
2+1=3
3
3
1
3
3+1=4
4
4
1
3
-----
-----
125. Estrutura de Repetição sem
teste
Eng.
Comp.
• Exemplo2:
algoritmo exemplo2;
início
inteiro: cont;
para cont de 5 até 7 passo 1 faça
início
escreva(„número = ‟, cont);
fim para;
cont
fim.
Vi
Vf
Passo 1
cont
5
5
7
5+1
6
6
5
7
6+1
7
7
5
7
7+1
8
8
5
7
-----
-----
126. Estrutura de Repetição sem
teste
Eng.
Comp.
• Exemplo3:
algoritmo exemplo3;
início
inteiro: cont;
para cont de 1 até 500 passo 1 faça
início
escreva(„número = ‟, cont);
fim para;
cont Vi
fim.
Vf
Passo 1
cont
1
1
500
1+1
2
....
1
500
.....
....
500
1
500
500 + 1
501
501
1
500
----
----
127. Estrutura de Repetição sem
teste
Eng.
Comp.
• Exemplo4:
algoritmo exemplo4;
início
inteiro: cont;
para cont de 3 até 1 passo -1 faça
início
escreva(„número = ‟, cont);
fim para;
cont
fim.
Vi
Vf
Passo -1
cont
3
3
1
3-1
2
2
3
1
2-1
1
1
3
1
1-1
0
0
3
1
-----
----
128. Estrutura de Repetição em
Pascal
• Passo 1:
for variável := valorInicial to valorFinal do
Begin
Comandos;
End;
• Passo -1:
for variável := valorInicial to valorfinal do
Begin
Comandos;
End;
• A variável deve ser, obrigatoriamente do
tipo integer.
Eng.
Comp.
129. Estrutura de Repetição
• Pseudocódigo
Para variável de VI
até VF passo P faça
Início
Comandos;
Fim para;
• Pascal
PASSO 1
For variável := VI to VF do
Begin
Comandos;
End;
PASSO -1
For variável := VI downto
VF do
Begin
Comandos;
End;
Eng.
Comp.
130. Contadores e somatórios
• Exemplo: calcular e imprimir a soma dos cinco
primeiros números inteiros positivos.
0
1.
2.
3.
4.
5.
6.
1
2
3
4
5
Zerar somatório: soma 0
Definir valor inicial: num 1
Inicializar contador: cont 1
Realizar operação desejada: soma soma + num
Variar valor inicial: num num + 1
Incrementar/decrementar contador: cont cont +
1
Eng.
Comp.
131. Contadores e somatórios
algoritmo exemplo;
início
inteiro: soma, num, cont;
soma 0;
num 1;
para cont de 1 até 5 passo 1 faça
inicio
soma soma + num;
num num + 1;
fim para;
escreva („soma = ‟, soma);
fim.
Eng.
Comp.
132. Estrutura de Repetição com
teste de condição no início –
Enquanto/Faça
While condição do
Begin
Comandos;
End;
• Enquanto uma condição é verdadeira, uma ação ou ações são
executadas repetidamente (enquanto, faça)
Enquanto condição faça
Início
Ação/ações
Fim enquanto;
Eng.
Comp.
133. Estrutura de Repetição com
teste de condição no início –
Enquanto/Faça
• Exemplo: imprimir os números inteiros de 0 a 3.
algoritmo exemplo;
início
inteiro: n;
n 0;
enquanto n <= 3
início
escreva („num = ‟, n);
n n+1;
fim enquanto;
fim.
Eng.
Comp.
134. Estrutura de Repetição com
teste de condição no início –
Enquanto/Faça
• A estrutura enquanto pode ser escrita como:
Inicialização
Enquanto condição faça
Início
.....
incremento / decremento
.....
Fim enquanto;
Lema: um comando leia, ou de atribuição, antes do enquanto
para entrar na repetição e, um ocmando leia, ou de
atribuição, antes de fim enquanto para sair da repetição.
Eng.
Comp.
135. Estrutura de Repetição com
teste de condição no início –
Enquanto/Faça
• Exemplo: ler vários números e imprimí-los até que o número
digitado seja zero.
algoritmo exemplo;
início
real:n;
escreva(„digite um número ou zero para finalizar‟);
enquanto n<>0 faça
início
escreva(„n = ‟, n);
escreva(„digite um número ou zero para final‟);
leia(n);
fim enquanto;
fim.
Eng.
Comp.
137. Estrutura condicional simples
se (condição)
então
inicio
ação/ações
fim;
Se a condição for verdadeira, a ação/ações sob o então será
executada; caso contrário – se a condição for falsa – encerra-se
a seleção.
Eng.
Comp.
141. Vetores
• Variáveis compostas homogêneas: é um conjunto de dados
do mesmo tipo.
• Variáveis compostas homogêneas unidimensionais: são
variáveis compostas que necessitam de apenas um índice
para individualizar um elemento do conjunto. Essas variáveis
são chamadas de vetores.
• Declaração:
nome_do_vetor: vetor[1..dimensao] de tipo_de_dados;
• Em que 1 .. Dimensao é a quantidade de elementos do vetor;
• Exemplo:
nota: vetor[1..50] de reais;
Eng.
Comp.
142. Vetores
• Exemplo:
• Media: vetor[1..5] de reais;
Posição do elemento no vetor
Conteúdo do vetor
media[1]
3.2
media[2]
5.7
media[3]
9.5
media[4]
10
media[5]
1.3
Eng.
Comp.
143. Vetores
algoritmo exemplo;
inicio
inteiro: i;
n: vetor[1..4] de reais;
para i de 1 até 4 passo 1 faça
inicio
escreva(„digite um número‟);
leia(n[i]);
fim para;
escreva(„posição valor‟);
para i de 1 até 4 passo 1 faça
inicio
escreva(i, n[i]);
fim para;
fim.
Eng.
Comp.
144. Vetores
• Declaração de vetores em pascal:
nome_do_vetor: array[1 ... dimensao] of
tipo_do_dado;
• Em que 1 ... Dimensao é o tamanho do vetor.
• Exemplo:
var
v: array[1..6] of integer;
• Atribuindo valores avulsos ao vetor:
• V[5] 28; (posição 5 recebe o valor 28)
Eng.
Comp.
145. Vetores
program vetor1;
var
n,i,maior:integer;
nro:array[1..100] of integer;
begin
write('forneca a quantidade de numeros: '); readln(n);
writeln;
for i:=1 to n do
begin
write('forneca o ',i,'o. numero: ');
readln(nro[i]);
end;
writeln;
maior:=nro[1];
for i:=2 to n do
begin
if (nro[i] > maior)then maior:=nro[i];
end;
writeln('maior numero: ',maior);
readln;
end.
Eng.
Comp.
146. Vetores
Não é possível:
Não se pode ler todo um vetor diretamente com um comando
read. Não se pode escrever: read(v);
É necessário ler elemento por elemento, diretamente, ou com
um laço de repetição como for.
Não se pode escrever todos os elementos de um vetor com um
único comando write. Não é permitido escrever: write(v).
Também nesse caso cada elemento deve ser tratado como uma
variável independente, por exemplo:
for i:= 1 to 6 do write(v[i]:3);
Eng.
Comp.
147. Vetores
Não é possível copiar os valores dos elementos de um vetor para outro com
um único comando de atribuição. Ou seja, dados dois vetores v e w, ambos
do mesmo tamanho e do mesmo tipo, não é permitido fazer: w:= v; .
Também aqui é necessário trabalhar elemento a elemento, e o comando for
mais uma vez é indicado:
for i:= 1 to 6 do w[i]:= v[i];
Não existe comandos ou funções que dão o tamanho (número de elementos)
de um vetor.
Não é permitido tentar acessar uma posição fora do intervalo de posições
definido para o vetor. A tentativa causará um erro em tempo de execução e o
programa abortará. No caso do vetor v acima, por exemplo, não é permitido
escrever:
v[8]:= 20,
read(v[8])
ou write (v[8]) porque a faixa de
valores das posições vai de 1 a 6 apenas.
Eng.
Comp.
148. Vetores
A faixa de valores das posições não precisa começar em 1. Qualquer
intervalo de valores pode ser usado na definição de um vetor. Por
exemplo, podemos definir um vetor assim:
var v:array[15..20] of real;
Nesse caso o vetor v terá apenas os elementos: v[15], v[16], v[17],
v[18], v[19] e v[20]
As posições não precisam ser necessariamente números inteiros.
Podem ser qualquer tipo ordinal, ou seja, que possa ser definido por
uma seqüência ordenada de valores.
Por exemplo, os caracteres em Pascal formam uma seqüência
ordenada na tabela de caracteres, e podem portanto serem
marcadores de posição em um vetor.
Eng.
Comp.
149. Vetores
Podemos definir um vetor assim:
var letras: array['a'..'z'] of integer;
Nesse caso os elementos do vetor são: letras['a'],
letras['b'], ….., letras['z']
Um uso possível para esse vetor poderia ser que
cada posição poderia guardar a quantidade de
vezes que a letra dessa posição aparece em uma
determinada frase.
Eng.
Comp.
151. Vetores
• Tamanho do vetor: quantidade de
elementos que o vetor poderá armazenar
VAR
nome_da_variavel: ARRAY[índice_inicial ..
índice_final] OF tipo_dos_dados_do_vetor;
• nome_da_variavel é o nome da variável
do tipo vetor;
Eng.
Comp.
152. Vetores
VAR
nome_da_variavel: ARRAY[índice_inicial ..
índice_final] OF tipo_dos_dados_do_vetor;
• índice_inicial é o valor correspondente ao
índice da primeira posição do vetor;
• índice_final é o valor correspondente ao
índice da última posição do vetor;
• tipo_d0s_dados_d0_vetor é o tipo básico
dos dados que serão armazenados no vetor.
Eng.
Comp.
153. Vetores
• O valor do índice_inicial deve ser maior ou
igual ao valor do índice_final
• Exemplo1:
Var
Vetor1: ARRAY[1..10] of integer;
• Exemplo 2:
Var
Vetor2: ARRAY[5..9] of real;
Eng.
Comp.
154. Vetores
• O índice também pode ser representando por
caracteres
• Exemplo3:
Var
Vetor1: ARRAY[„C‟.. „G‟] of integer;
• Os valores que indicam o índice_inicial e o
índice_final devem representar valores fixos
literais ou constantes, não podendo ser substituídos
por variáveis.
• Literal é um valor fixo, definido quando se escreve
o programa. Por exemplo, x:=10.3, 10.3 é um
literal.
Eng.
Comp.
155. Vetores
•
•
•
•
Exemplo 4: x: ARRAY[1..10] of real;
Exemplo 5: vet: ARRAY[5..9] of char;
Exemplo 6: x: ARRAY[„D‟.. „G‟] of integer;
Exemplo 7:
– Const min = 3;
– Const max = 7;
– V: ARRAY[min..max] of integer;
Eng.
Comp.
156. Vetores: Atribuindo Valores
x[4] := 5; //atribui o valor 5 à posição 4 do vetor
vet[3]:=„F‟; //atribui o valor F à posição 3 do vetor
Y[„d‟]:=4.1; //atribui o valor 4.1 à posição d do
vetor
Eng.
Comp.
157. Vetores: Preenchendo um
Vetor
Significa atribuir valores à todas as suas
posições
Usar um FOR para isto!
Exemplo1:
for i:=1 to 7 do
begin
readln(x[i]);
end;
Eng.
Comp.
159. Vetores: Imprimindo um Vetor
Exemplo 1:
for i:=1 to 10 do
begin
writeln(x[i]);
end;
Exemplo 2:
for i:=„c‟ to „e‟ do
begin
writeln(x[i]);
end;
Eng.
Comp.