SlideShare uma empresa Scribd logo
1 de 159
Eng.
Comp.

ALGORITMOS E
ESTRUTURAS DE DADOS
28/11/2013

MATERIAL DA PRIMEIRA
PROVA

1
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Linguagem de Máquina

Eng.
Comp.

28/11/2013
21
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
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
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
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
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
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
História e Evolução da
Computação

Eng.
Comp.

28/11/2013
28
Histórico e evolução

Eng.
Comp.

A primeira tentativa bem-sucedida de criar
uma máquina de contar foi o ÁBACO.

28/11/2013
29
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
Histórico e evolução
JACQUARD
desenvolveu
os
perfurados para entrada de dados.

Eng.
Comp.

cartões

28/11/2013
31
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
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
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
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
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
Histórico e evolução

ENIAC

Eng.
Comp.

28/11/2013
37
Histórico e evolução

Eng.
Comp.

MARK
O Mark também reivindica o título de
primeiro computador.

28/11/2013
38
Eng.
Comp.

28/11/2013
39
Eng.
Comp.

28/11/2013
40
Eng.
Comp.

E hoje??
E o futuro??
28/11/2013
41
Computador ou Tablet?

Eng.
Comp.

28/11/2013
42
Computação nas Nuvens

Eng.
Comp.

28/11/2013
43
TI VERDE

Eng.
Comp.

28/11/2013
44
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
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
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
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
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
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
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
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
Estrutura condicional

Eng.
Comp.

Se condição
Então
Comandos 1
Senão
Comandos 2

28/11/2013
53
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
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
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
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
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
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
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
Prioridades

28/11/2013

Parenteses mais internos
pot rad sqr
* / div mod
+Exemplo:
pot(5,2) – 4/2 + rad(1+3*5)/2
pot(5,2) – 4/2 + rad(1+15)/2
pot(5,2) – 4/2 + rad(16)/2
25 – 4/2 + rad(16)/2
25 – 2 + 4/2
25 – 2 + 2
23 + 2
25

Eng.
Comp.

61
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
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
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
Exemplos

Eng.
Comp.

d = sqr(b) – 4 * a * c

28/11/2013

2 < 5 e 15 / 3 = 5
2<5e5=5
VeV
V

65
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
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
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
Paradigma Imperativo ou
Procedural

Eng.
Comp.

• Primeiro faça isso e depois faça aquilo

28/11/2013

• Sequência de comandos passo-a-passo
• Algol, Basic, C e Pascal

69
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
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
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
Outros
•
•
•
•
•

Linguagens
Linguagens
Linguagens
Linguagens
Etc

Eng.
Comp.

de scripts
para banco de dados
para simulação
visuais
28/11/2013
73
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Fluxograma

INÍCIO
Eng.
Comp.

“Digite dois
números do
tipo real”

• Exemplo 1:

– Solução:
• Fluxograma:

Leia X
Leia Y

Z=X+Y

“O resultado
da soma entre
X e Y é Z”

28/11/2013

FIM

30
segundos

94
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
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
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
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
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
Eng.
Comp.

Comandos para construção
de algoritmos em
pseudocódigo
28/11/2013
100
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
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
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
Blocos

Eng.
Comp.

• Um bloco pode ser definido como um
conjunto de ações, uma ação definida.

28/11/2013

Inicio
.
.
.
.
fim

104
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
Exemplo
TELA

Memória
x

5

y

10

z

50

Eng.
Comp.

1

51

5 <enter>
5 elevado ao cubo = 125
10 <enter>
15
50
1

28/11/2013
106
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
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
Exemplo

Eng.
Comp.

algoritmo exemplo;

28/11/2013

inicio
real: n1, n2, soma;
escreva(„digite um número‟);
leia(n1);
escreva(„digite outro número‟);
leia(n2);
soma  n1 + n2;
escreva(„primeiro número=‟, n1);
escreva(„segundo número=‟, n2);
escreva(„soma=‟, soma);
fim.

109
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
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
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.
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.
Estrutura de decisão múltipla
PSEUDOCÓDIGO MODELO 5:
se E é n fazer
.
.
.
fim_se

Eng.
Comp.
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.
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.
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.
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.
Fazer-enquanto/do-while
fazer
<corpo do laço>
enquanto (condição_do_laço)

fazer

<ações>
enquanto (<expressão>)

Eng.
Comp.
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.
REPEAT
repetir
<ações>
até_que <condição>
repetir
<ações>
until <condição>

Eng.
Comp.
REPEAT
algoritmo exemplo
var
real: numero
inteiro: contador
inicio
contador  1
repetir
ler(numero)
contador  contador+1
ate_que contador > 30
escrever(„numeros lidos 30‟)
fim

Eng.
Comp.
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.
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

-----

-----
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

-----

-----
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

----

----
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

-----

----
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.
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.
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.
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.
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.
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.
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.
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.
Estruturas de seleção ou
estrutura condicional

Eng.
Comp.
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.
Exemplo
algoritmo exemplo;
inicio
real: nota;
escreva(„digite uma nota‟);
leia(nota);
se(nota<5)
então
inicio
escreva(„reprovado‟);
fim;
fim.

Eng.
Comp.
Estrutura condicional
composta
se (condição)
então
inicio
ação1/ações1
fim;
senão
inicio
ação2/ações2
fim
Se a condição for verdadeira, a ação1/ações1 sob o então
será executada; caso contrário, se a condição for falsa,
teremos a execução da ação2/ações2 que segue a cláusula
senão.

Eng.
Comp.
Exemplo
algoritmo exemplo;
inicio
real: nota;
escreva(„digite uma nota‟);
leia(nota);
Se(nota<5)
então
inicio
escreva(„reprovado‟);
fim
senao
inicio
escreva(„aprovado‟);
fim;
fim.

Eng.
Comp.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Vetores

Eng.
Comp.

• Variável
composta
homogênea
unidimensional
• Conjunto de variáveis de mesmo tipo
• Alocadas sequenciamente na memória
• Índice: referencia sua localização dentro
da estrutura
X [ 10 ]
X[1]
X

20

21

22

23

24

25

26

27

28

1

2

3

4

5

6

7

8

9

29
10
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.
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.
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.
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.
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.
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.
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.
Vetores: Preenchendo um
Vetor
Exemplo2:
for i:=„c‟ to „e‟ do
begin
readln(x[i]);
end;

Eng.
Comp.
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.

Mais conteúdo relacionado

Mais procurados

Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
Aula 2 - Introdução à programação de computadores - parte1
Aula 2 - Introdução à programação de computadores - parte1Aula 2 - Introdução à programação de computadores - parte1
Aula 2 - Introdução à programação de computadores - parte1Pacc UAB
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Cloves da Rocha
 
Aula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasAula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasGustavo Gonzalez
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadoresDaniel Moura
 
Aula 1 Excel básico
Aula 1   Excel básicoAula 1   Excel básico
Aula 1 Excel básicoSaulo Said
 
Sistemas Computacionais - Aula 01 - Apresentação
Sistemas Computacionais - Aula 01 - ApresentaçãoSistemas Computacionais - Aula 01 - Apresentação
Sistemas Computacionais - Aula 01 - ApresentaçãoLeinylson Fontinele
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 
Montagem manutenção de computadores
Montagem manutenção de computadoresMontagem manutenção de computadores
Montagem manutenção de computadoressetilsonadobmov
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisvini_campos
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosRoney Sousa
 
Variáveis, constantes e tipos de dados
Variáveis, constantes e tipos de dadosVariáveis, constantes e tipos de dados
Variáveis, constantes e tipos de dadosBrunoSilvaSantana
 
Aula - Sistemas de Informação
Aula - Sistemas de InformaçãoAula - Sistemas de Informação
Aula - Sistemas de InformaçãoDaniela Brauner
 

Mais procurados (20)

Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Algoritmo - tipos de dados
Algoritmo - tipos de dadosAlgoritmo - tipos de dados
Algoritmo - tipos de dados
 
Aula 2 - Introdução à programação de computadores - parte1
Aula 2 - Introdução à programação de computadores - parte1Aula 2 - Introdução à programação de computadores - parte1
Aula 2 - Introdução à programação de computadores - parte1
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1
 
Aula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasAula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de Sistemas
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadores
 
Aula 1 Excel básico
Aula 1   Excel básicoAula 1   Excel básico
Aula 1 Excel básico
 
Sistemas Computacionais - Aula 01 - Apresentação
Sistemas Computacionais - Aula 01 - ApresentaçãoSistemas Computacionais - Aula 01 - Apresentação
Sistemas Computacionais - Aula 01 - Apresentação
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Montagem manutenção de computadores
Montagem manutenção de computadoresMontagem manutenção de computadores
Montagem manutenção de computadores
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
 
Variáveis, constantes e tipos de dados
Variáveis, constantes e tipos de dadosVariáveis, constantes e tipos de dados
Variáveis, constantes e tipos de dados
 
Aula - Sistemas de Informação
Aula - Sistemas de InformaçãoAula - Sistemas de Informação
Aula - Sistemas de Informação
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Logica de Programacao
Logica de ProgramacaoLogica de Programacao
Logica de Programacao
 

Destaque

Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014Pedro Guerreiro
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoElaine Cecília Gatto
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenaçãoDaiana de Ávila
 
Aula 1 aed - lógica de programação
Aula 1   aed - lógica de programaçãoAula 1   aed - lógica de programação
Aula 1 aed - lógica de programaçãoElaine Cecília Gatto
 
Estruturas de dados dinâmicos em linguagem C
Estruturas de dados dinâmicos em linguagem CEstruturas de dados dinâmicos em linguagem C
Estruturas de dados dinâmicos em linguagem Cpjclima
 
Estruturas de dados em Python
Estruturas de dados em PythonEstruturas de dados em Python
Estruturas de dados em PythonRicardo Paiva
 
Concurso de Pitch - EDIFPI
Concurso de Pitch - EDIFPIConcurso de Pitch - EDIFPI
Concurso de Pitch - EDIFPIAislan Rafael
 
Algoritmos - Introdução à Computação
Algoritmos - Introdução à ComputaçãoAlgoritmos - Introdução à Computação
Algoritmos - Introdução à ComputaçãoElaine Cecília Gatto
 
aula 10 logica de programacao
aula 10 logica de programacaoaula 10 logica de programacao
aula 10 logica de programacaoAislan Rafael
 
aula 05 - Logica de programacao
aula 05 - Logica de programacaoaula 05 - Logica de programacao
aula 05 - Logica de programacaoAislan Rafael
 
aula 07 - Logica de programacao
aula 07 - Logica de programacaoaula 07 - Logica de programacao
aula 07 - Logica de programacaoAislan Rafael
 
aula 11 de logica de programacao
aula 11 de logica de programacaoaula 11 de logica de programacao
aula 11 de logica de programacaoAislan Rafael
 
Algoritmos - Comandos de Controle de Programa
Algoritmos - Comandos de Controle de ProgramaAlgoritmos - Comandos de Controle de Programa
Algoritmos - Comandos de Controle de ProgramaElaine Cecília Gatto
 
aula 06 - Logica de programacao
aula 06 - Logica de programacaoaula 06 - Logica de programacao
aula 06 - Logica de programacaoAislan Rafael
 
Aula 02 - Lógica de Programação
Aula 02 - Lógica de ProgramaçãoAula 02 - Lógica de Programação
Aula 02 - Lógica de ProgramaçãoAislan Rafael
 

Destaque (20)

Apostila Algoritmos
Apostila AlgoritmosApostila Algoritmos
Apostila Algoritmos
 
Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenação
 
Aula 1 aed - lógica de programação
Aula 1   aed - lógica de programaçãoAula 1   aed - lógica de programação
Aula 1 aed - lógica de programação
 
Estruturas de dados dinâmicos em linguagem C
Estruturas de dados dinâmicos em linguagem CEstruturas de dados dinâmicos em linguagem C
Estruturas de dados dinâmicos em linguagem C
 
Estruturas de dados em Python
Estruturas de dados em PythonEstruturas de dados em Python
Estruturas de dados em Python
 
Concurso de Pitch - EDIFPI
Concurso de Pitch - EDIFPIConcurso de Pitch - EDIFPI
Concurso de Pitch - EDIFPI
 
Algoritmos - Introdução à Computação
Algoritmos - Introdução à ComputaçãoAlgoritmos - Introdução à Computação
Algoritmos - Introdução à Computação
 
Programação lógica
Programação lógicaProgramação lógica
Programação lógica
 
Lógica de programação
Lógica de programaçãoLógica de programação
Lógica de programação
 
aula 10 logica de programacao
aula 10 logica de programacaoaula 10 logica de programacao
aula 10 logica de programacao
 
aula 05 - Logica de programacao
aula 05 - Logica de programacaoaula 05 - Logica de programacao
aula 05 - Logica de programacao
 
aula 07 - Logica de programacao
aula 07 - Logica de programacaoaula 07 - Logica de programacao
aula 07 - Logica de programacao
 
Algoritmos - Comandos de Seleção
Algoritmos - Comandos de SeleçãoAlgoritmos - Comandos de Seleção
Algoritmos - Comandos de Seleção
 
aula 11 de logica de programacao
aula 11 de logica de programacaoaula 11 de logica de programacao
aula 11 de logica de programacao
 
Algoritmos - Comandos de Controle de Programa
Algoritmos - Comandos de Controle de ProgramaAlgoritmos - Comandos de Controle de Programa
Algoritmos - Comandos de Controle de Programa
 
aula 06 - Logica de programacao
aula 06 - Logica de programacaoaula 06 - Logica de programacao
aula 06 - Logica de programacao
 
Aula 02 - Lógica de Programação
Aula 02 - Lógica de ProgramaçãoAula 02 - Lógica de Programação
Aula 02 - Lógica de Programação
 

Semelhante a Material Algoritmos e Estruturas de Dados - 1º Bimestre

Aula 1 aed - introdução à computação
Aula 1   aed - introdução à computaçãoAula 1   aed - introdução à computação
Aula 1 aed - introdução à computaçãoElaine Cecília Gatto
 
Noções de hardware e software
Noções de hardware e softwareNoções de hardware e software
Noções de hardware e softwareCDIM Daniel
 
Aula 1 conhecimentos básicos - hardware
Aula 1    conhecimentos básicos - hardwareAula 1    conhecimentos básicos - hardware
Aula 1 conhecimentos básicos - hardwareCristiano Carvalho
 
Intr. a informática Aulas
Intr. a informática Aulas Intr. a informática Aulas
Intr. a informática Aulas Nmutemba
 
119178832 141.computador
119178832 141.computador119178832 141.computador
119178832 141.computadorPelo Siro
 
Princípios de sistema de informação parte 1
Princípios de sistema de informação parte 1Princípios de sistema de informação parte 1
Princípios de sistema de informação parte 1giovani1
 
119178832 141.computador
119178832 141.computador119178832 141.computador
119178832 141.computadorPedro Ferreira
 
Aulas de Informatica para os cursos de psicologia e RH
Aulas de Informatica para os cursos de psicologia e RHAulas de Informatica para os cursos de psicologia e RH
Aulas de Informatica para os cursos de psicologia e RHssuserc13d5d
 
Aula 1 e 2 - Histórico dos computadores e unidades de medida..pptx
Aula 1 e 2  - Histórico dos computadores e unidades de medida..pptxAula 1 e 2  - Histórico dos computadores e unidades de medida..pptx
Aula 1 e 2 - Histórico dos computadores e unidades de medida..pptxLeandroBarros977326
 
Inform 9º ano
Inform 9º anoInform 9º ano
Inform 9º anoluizcviola
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a InformáticaDaniel Brandão
 
01 introducao vaston
01 introducao vaston01 introducao vaston
01 introducao vastonsilfisica
 

Semelhante a Material Algoritmos e Estruturas de Dados - 1º Bimestre (20)

Introdução a computação
Introdução a computaçãoIntrodução a computação
Introdução a computação
 
Aula 1 aed - introdução à computação
Aula 1   aed - introdução à computaçãoAula 1   aed - introdução à computação
Aula 1 aed - introdução à computação
 
Introdução à Computação
Introdução à ComputaçãoIntrodução à Computação
Introdução à Computação
 
Noções de hardware e software
Noções de hardware e softwareNoções de hardware e software
Noções de hardware e software
 
Apostila SO
Apostila SOApostila SO
Apostila SO
 
Aula 1 conhecimentos básicos - hardware
Aula 1    conhecimentos básicos - hardwareAula 1    conhecimentos básicos - hardware
Aula 1 conhecimentos básicos - hardware
 
SO001.pdf
SO001.pdfSO001.pdf
SO001.pdf
 
Intr. a informática Aulas
Intr. a informática Aulas Intr. a informática Aulas
Intr. a informática Aulas
 
Computação
ComputaçãoComputação
Computação
 
Portugues
PortuguesPortugues
Portugues
 
Introducao a informatica
Introducao a informaticaIntroducao a informatica
Introducao a informatica
 
119178832 141.computador
119178832 141.computador119178832 141.computador
119178832 141.computador
 
Princípios de sistema de informação parte 1
Princípios de sistema de informação parte 1Princípios de sistema de informação parte 1
Princípios de sistema de informação parte 1
 
119178832 141.computador
119178832 141.computador119178832 141.computador
119178832 141.computador
 
Aulas de Informatica para os cursos de psicologia e RH
Aulas de Informatica para os cursos de psicologia e RHAulas de Informatica para os cursos de psicologia e RH
Aulas de Informatica para os cursos de psicologia e RH
 
Aula 1 e 2 - Histórico dos computadores e unidades de medida..pptx
Aula 1 e 2  - Histórico dos computadores e unidades de medida..pptxAula 1 e 2  - Histórico dos computadores e unidades de medida..pptx
Aula 1 e 2 - Histórico dos computadores e unidades de medida..pptx
 
Inform 9º ano
Inform 9º anoInform 9º ano
Inform 9º ano
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a Informática
 
AC nova-aula 1.pptx
AC nova-aula 1.pptxAC nova-aula 1.pptx
AC nova-aula 1.pptx
 
01 introducao vaston
01 introducao vaston01 introducao vaston
01 introducao vaston
 

Mais de Elaine Cecília Gatto

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaElaine Cecília Gatto
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaElaine Cecília Gatto
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Elaine Cecília Gatto
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCElaine Cecília Gatto
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxElaine Cecília Gatto
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Elaine Cecília Gatto
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarElaine Cecília Gatto
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesElaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationElaine Cecília Gatto
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfElaine Cecília Gatto
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Elaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoElaine Cecília Gatto
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsElaine Cecília Gatto
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoElaine Cecília Gatto
 

Mais de Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 

Último

DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfIedaGoethe
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfPastor Robson Colaço
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaaulasgege
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISVitor Vieira Vasconcelos
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 

Último (20)

DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGIS
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 

Material Algoritmos e Estruturas de Dados - 1º Bimestre

  • 1. Eng. Comp. ALGORITMOS E ESTRUTURAS DE DADOS 28/11/2013 MATERIAL DA PRIMEIRA PROVA 1
  • 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
  • 28. História e Evolução da Computação Eng. Comp. 28/11/2013 28
  • 29. Histórico e evolução Eng. Comp. A primeira tentativa bem-sucedida de criar uma máquina de contar foi o ÁBACO. 28/11/2013 29
  • 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
  • 31. Histórico e evolução JACQUARD desenvolveu os perfurados para entrada de dados. Eng. Comp. cartões 28/11/2013 31
  • 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
  • 38. Histórico e evolução Eng. Comp. MARK O Mark também reivindica o título de primeiro computador. 28/11/2013 38
  • 41. Eng. Comp. E hoje?? E o futuro?? 28/11/2013 41
  • 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
  • 61. Prioridades 28/11/2013 Parenteses mais internos pot rad sqr * / div mod +Exemplo: pot(5,2) – 4/2 + rad(1+3*5)/2 pot(5,2) – 4/2 + rad(1+15)/2 pot(5,2) – 4/2 + rad(16)/2 25 – 4/2 + rad(16)/2 25 – 2 + 4/2 25 – 2 + 2 23 + 2 25 Eng. Comp. 61
  • 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
  • 65. Exemplos Eng. Comp. d = sqr(b) – 4 * a * c 28/11/2013 2 < 5 e 15 / 3 = 5 2<5e5=5 VeV V 65
  • 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
  • 69. Paradigma Imperativo ou Procedural Eng. Comp. • Primeiro faça isso e depois faça aquilo 28/11/2013 • Sequência de comandos passo-a-passo • Algol, Basic, C e Pascal 69
  • 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
  • 94. Fluxograma INÍCIO Eng. Comp. “Digite dois números do tipo real” • Exemplo 1: – Solução: • Fluxograma: Leia X Leia Y Z=X+Y “O resultado da soma entre X e Y é Z” 28/11/2013 FIM 30 segundos 94
  • 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
  • 100. Eng. Comp. Comandos para construção de algoritmos em pseudocódigo 28/11/2013 100
  • 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
  • 106. Exemplo TELA Memória x 5 y 10 z 50 Eng. Comp. 1 51 5 <enter> 5 elevado ao cubo = 125 10 <enter> 15 50 1 28/11/2013 106
  • 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
  • 109. Exemplo Eng. Comp. algoritmo exemplo; 28/11/2013 inicio real: n1, n2, soma; escreva(„digite um número‟); leia(n1); escreva(„digite outro número‟); leia(n2); soma  n1 + n2; escreva(„primeiro número=‟, n1); escreva(„segundo número=‟, n2); escreva(„soma=‟, soma); fim. 109
  • 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.
  • 119. Fazer-enquanto/do-while fazer <corpo do laço> enquanto (condição_do_laço) fazer <ações> enquanto (<expressão>) 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.
  • 122. REPEAT algoritmo exemplo var real: numero inteiro: contador inicio contador  1 repetir ler(numero) contador  contador+1 ate_que contador > 30 escrever(„numeros lidos 30‟) 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.
  • 136. Estruturas de seleção ou estrutura condicional 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.
  • 138. Exemplo algoritmo exemplo; inicio real: nota; escreva(„digite uma nota‟); leia(nota); se(nota<5) então inicio escreva(„reprovado‟); fim; fim. Eng. Comp.
  • 139. Estrutura condicional composta se (condição) então inicio ação1/ações1 fim; senão inicio ação2/ações2 fim Se a condição for verdadeira, a ação1/ações1 sob o então será executada; caso contrário, se a condição for falsa, teremos a execução da ação2/ações2 que segue a cláusula senão. Eng. Comp.
  • 140. Exemplo algoritmo exemplo; inicio real: nota; escreva(„digite uma nota‟); leia(nota); Se(nota<5) então inicio escreva(„reprovado‟); fim senao inicio escreva(„aprovado‟); fim; fim. 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.
  • 150. Vetores Eng. Comp. • Variável composta homogênea unidimensional • Conjunto de variáveis de mesmo tipo • Alocadas sequenciamente na memória • Índice: referencia sua localização dentro da estrutura X [ 10 ] X[1] X 20 21 22 23 24 25 26 27 28 1 2 3 4 5 6 7 8 9 29 10
  • 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.
  • 158. Vetores: Preenchendo um Vetor Exemplo2: for i:=„c‟ to „e‟ 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.