Buscar

AULAS DE ALGORÍTIMOS - UFSM

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 222 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 222 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 222 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

01.
Fundamentos
da
Computação

Mo4vações
para
Computação

•  Desde
os
tempos
an,gos,
a
humanidade
tem
a

necessidade
de
processar
dados.

•  Em
função
disto,
o
ser
humano
desenvolve
a

capacidade
de
calcular
quan,dades
das
mais
variadas

formas.

•  Nos
primórdios
da
matemá,ca,
u,lizava‐se
os
dedos

como
ferramenta
de
cálculo.

•  Com
o
passar
do
tempo,
os
dados
envolvidos
nos

cálculos
tomam
proporções
maiores.

•  Fato
que
mo,va
o
ser
humano
a
desenvolver
novas

tecnologias
para
processamento
de
dados
em
grande

escala.

João
Pablo
 01.
Fundamentos
da
Computação
 2

Definições
para
Computação

•  Ato
ou
ação
de
computar.
Processamento
de
dados.

Cálculos
com
quan,dades
discretas
ou
analógicas.

•  Conjunto
de
operações
matemá,cas
ou
lógicas
que
se

executam
por
meio
de
regras
prá,cas
previamente

estabelecida.

•  U,lização
de
computador
para
resolução
de
qualquer

problema
ou
aplicação
de
qualquer
espécie.

•  Processamento
de
entradas
bem
definidas
que
gera

como
saída
resultados
capazes
de
resolver
problemas

específicos.

João
Pablo
 01.
Fundamentos
da
Computação
 3

Composição
de
Computadores

•  Computadores
são
essencialmente
divididos
em
duas

partes
dis,ntas,
sendo
estas:

–  Hardware:
nome
que
se
dá
para
a
parte
Ssica
do

computador.
É
tudo
que
se
pode
tocar,
tais
como:

mouse,
teclado,
caixas
de
som,
placas,
fios,
etc.

–  So?ware:
nome
que
se
dá
a
toda
parte
lógica
do

computador.
São
os
programas
que
se
vê
funcionar
na

tela
do
computador,
tais
como:
Windows,
Word,
MSN,

IE,
etc.

•  Hardware
e
so\ware
são
indissociáveis.
Isto
porque:

–  o
so\ware
sem
hardware
é
nada,

–  e
o
hardware
sem
so\ware
é
inú,l.

João
Pablo
 01.
Fundamentos
da
Computação
 4

Estágios
da
Computação

•  Entrada
de
Dados

–  Estágio
em
que
o
usuário
fornece
dados
para
o

computador
através
de
disposi,vos
de
entrada.

•  Ex.:
A
digitação
de
dois
números
para
uma
soma.

•  Processamento
de
Dados

–  Estágio
em
que
o
computador
transforma
os
dados

recebidos
através
de
disposi,vos
de
processamento.

•  Ex.:
A
realização
da
soma
dos
dois
números
digitados.

•  Saída
de
Dados

–  Estágio
em
que
o
usuário
recebe
os
dados
transformados

pelo
computador
através
disposi,vos
de
saída.

•  Ex.:
A
apresentação
na
tela
do
resultado
da
soma.

João
Pablo
 01.
Fundamentos
da
Computação
 5

Organização
de
Computadores

João
Pablo
 01.
Fundamentos
da
Computação
 6

Lógica
de
Funcionamento

•  Um
computador
funciona
baseado
em
sinais
elétricos

de
baixa
voltagem.
Internamente
só
existem
dois

estados
possíveis:

–  ligado,
quando
há
sinal
elétrico;

–  desligado,
quando
não
há
sinal
elétrico.

•  Para
projetar
e
programar
computadores
usa‐se
a

matemá,ca
como
forma
de
abstração,
através
da:

–  Representação
Binária:
Forma
de
representação

numérica
baseada
em
dois
dígitos,
onde
0
equivale
a

desligado
e
1
equivale
a
ligado.

–  Lógica
Matemá7ca:
Área
da
matemá,ca
que
provê
a

fundamentação
necessária
para
programar

computadores.

João
Pablo
 01.
Fundamentos
da
Computação
 7

Unidades
de
Medida

•  Os
computadores
basicamente
u,lizam
dois
,pos
de

unidades
de
medidas,
sendo
estas:

–  Medidas
de
Capacidades:
As
medidas
de
capacidade

informam
o
quanto
de
dados
um
computador
pode

transmi,r
ou
armazenar.

•  Exemplos:
bit
e
Bytes.

–  Medidas
de
Velocidade:
As
medidas
de
velocidade

informam
o
quão
rápido
um
computador
pode
transmi,r

ou
processar
dados.

•  Exemplos:
IPS
e
Hz.

•  Estas
unidades
são
usadas
para
medir
processadores,

discos
rígidos,
barramentos,
redes
de
computadores,

etc.

João
Pablo
 01.
Fundamentos
da
Computação
 8

Medidas
de
Capacidade
(1)

•  bit
(b):

–  representa
um
dígito
binário
(0
ou
1);

–  geralmente
usado
para
medir
transmissão
de
dados
em

redes
de
computadores.

João
Pablo
 01.
Fundamentos
da
Computação
 9

1b
 0
ou
1

1024b
 1
Kilobit
(Kb)

1024Kb
 1
Megabit
(Mb)

1024Mb
 1
Gigabit
(Gb)

1024Gb
 1
Terabit
(Tb)

Medidas
de
Capacidade
(2)

•  Byte
(B):

–  representa
um
caractere
e
equivale
a
8b;

–  geralmente
usado
para
medir
armazenamento
de
dados

em
computadores.

João
Pablo
 01.
Fundamentos
da
Computação
 10

1B
 8
bits

1024B
 1
Kilobyte
(KB)

1024KB
 1
Megabyte
(MB)

1024MB
 1
Gigabyte
(GB)

1024GB
 1
Terabyte
(TB)

Medidas
de
Velocidade

•  Instruções
Por
Segundo
(IPS):

–  representa
quantas
instruções
um
processador
pode

executar
por
segundo.



•  Hertz
(Hz):

–  representa
os
ciclos
de
relógio
por
segundo
e
é

geralmente
usado
para
medir
processadores.

João
Pablo
 01.
Fundamentos
da
Computação
 11

1000Hz
 1
Kilohertz
(KHz)

1000KHz
 1
Megahertz
(MHz)

1000MHz
 1
Gigahertz
(GHz)

1000GHz
 1
Terahertz
(THz)

1.000.000
IPS
 1
Milhão
de
Instruções
Por
Segundo
(MIPS)

Periféricos
de
Entrada

•  É
qualquer
disposi,vo
capaz
de
realizar
entrada
de

dados
para
um
computador.

•  É
sempre
provido
de
uma
interface
de
interação
com
o

meio
externo.

•  Alguns
exemplos
clássicos:

–  teclado,
um
dos
periféricos
mais
usados
para
entrada
de

dados;

–  mouse,
popularizado
a
par,r
do
surgimento
das

interfaces
gráficas;

–  scanner,
equipamento
capaz
de
digitalizar
uma
foto,
um

desenho
ou
assemelhados.


João
Pablo
 01.
Fundamentos
da
Computação
 12

Periféricos
de
Saída

•  É
qualquer
disposi,vo
capaz
de
realizar
a
saída
do

resultado
de
um
processamento
de
dados
por
um

computador.

•  Também
é
dotado
de
uma
interface
de
interação
com
o

meio
externo.

•  Alguns
exemplos
clássicos:

–  impressora,
uma
das
formas
mais
an,gas
de
saída
de

dados;

–  monitor,
exibem
imagens
resultantes
do
processamento

em
uma
tela
CRT,
LCD,
etc.

–  projetor,
mesmo
princípio
do
monitor,
porém
a
imagem

é
maior
e
projetada
e
um
meio
externo.

João
Pablo
 01.
Fundamentos
da
Computação
 13

Unidade
de
Processamento

•  A
Unidade
Central
de
Processamento
(UCP),
Central

Processing
Unit
(CPU),
é
a
parte
do
computador
que

executa
as
instruções
de
um
programa.

•  A
forma,
o
desenho
e
implementação
das
UCPs
têm

mudado
drama,camente
desde
o
seu
surgimento,
mas

o
seu
funcionamento
fundamental
permanece
o

mesmo.

•  A
UCP
também
é
chamada
de
processador,
o
qual
é
um

circuito
integrado
que
realiza
as
funções
de
cálculo
e

tomada
de
decisão
em
um
computador.

•  Todos
os
computadores
e
equipamentos
eletrônicos

baseiam‐se
nele
para
executar
suas
funções.

João
Pablo
 01.
Fundamentos
da
Computação
 14

Compara4vo
entre
Processadores

•  Atualmente,
existem
dois

grandes
fabricantes
de

processadores.

–  Intel

–  AMD

•  Ao
longo
dos
anos
estes

dois
se
alternaram
na

liderança
do
mercado.

•  Um
processador
deve
ser

escolhido
com
base
na

sua
relação
custo/
beneScio.

João
Pablo
 01.
Fundamentos
da
Computação
 15

Unidades
de
Memória

•  Para
computação,
memória
são
todos
os
disposi,vos

que
permitem
que
um
computador
guarde
dados,

temporária
ou
permanentemente.

•  Memória
Principal:


–  é
endereçada
diretamente
pelo
processador,
sem
a
qual

o
computador
não
funciona;


–  contém
as
informações
necessárias
para
o
processador

num
determinado
momento.

•  Memória
Secundária:

–  não
podem
ser
endereçadas
diretamente,
a
informação

precisa
ser
carregada
em
memória
principal
a
priori;

–  não
são
necessárias
para
a
operação
do
computador.

João
Pablo
 01.
Fundamentos
da
Computação
 16

Memória
Principal

•  Randomic
Acess
Memory
(RAM)

–  Memória
de
Acesso
Aleatório,
que
significa
que
os
dados

nela
armazenados
podem
ser
acessados
a
par,r
de

qualquer
endereço.

–  As
memórias
RAM
se
caracterizam
por
serem
voláteis,
ou

seja,
dependem
de
energia
para
manter
dados

armazenados.

•  Read
Only
Memory
(ROM)

–  São
memórias
de
somente
leitura,
não
voláteis
e

permitem
o
acesso
aleatório.

–Para
gravar
uma
memória
deste
,po
são
necessários

equipamentos
específicos.

João
Pablo
 01.
Fundamentos
da
Computação
 17

Memória
Secundária

•  Memória
Flash

–  Variação
do
,po
Eprom
e
são
u,lizadas
em
disposi,vos

de
armazenamento
removíveis:

•  pendrives,
cartões
de
memória,
etc.

–  Os
dados
armazenados
neste
,po
de
memória

permanecem
ali
sem
a
necessidade
de
alimentação.

•  Armazenamento
em
Massa

–  Podem
armazenar
grandes
quan,dades
de
informação
e

servem
para
guardar
dados
por
um
longo
tempo
e

podem
ser:

•  magné4cos:
HD,
Disquetes,
Fitas
DAT;

•  óp4cos:
CDs,
DVDs,
BDs.

João
Pablo
 01.
Fundamentos
da
Computação
 18

Programas
de
Computador
(1)

•  Um
so?ware
é
qualquer
programa
ou
grupo
de

programas
que
instrui
o
hardware
sobre
como
ele
deve

executar
uma
tarefa.

•  Um
programa
é
uma
sequência
de
instruções,
que
é

interpretada
e
executada
por
um
processador.

–  Em
um
programa
correto
e
funcional,
essa
sequência

resulta
em
um
comportamento
desejado.

•  Algumas
caracterís,cas
dos
programas:

–  podem
ser
executado
por
qualquer
disposi,vo
capaz
de

interpretar
e
executar
as
instruções;

–  a
execução
de
um
programa
também
pode
ser

intermediada
por
outro
programa
interpretador.

João
Pablo
 01.
Fundamentos
da
Computação
 19

Programas
de
Computador
(2)

•  Os
programas
são
escritos
em
uma
linguagem
de

programação,
a
qual
é
uma
abstração
para
as
linguagens
de

máquina.

•  A
escrita
de
um
programa
envolve
um
processo
de

engenharia,
o
qual
tem
a
responsabilidade
de
garan,r
sua

qualidade.

•  Funcionamento
de
um
programa:

–  o
programa
é
carregado
de
uma
memória
secundária
para
a

memória
principal;

–  o
processador
encontra
o
ponto
inicial
de
entrada,
Entry

Point;

–  o
processador
dá
início
a
leitura
das
instruções

sucessivamente.

João
Pablo
 01.
Fundamentos
da
Computação
 20

Tipos
de
Programas
(1)

•  Programas
Básicos

–  Os
programas
básicos
são
aqueles
que
gerenciam
o

funcionamento
do
hardware
e
permitem
a
interação
com

o
usuário.

•  Basic
I/O
System
(BIOS),
Sistemas
Operacionais
(OS),

Drivers
de
Disposi,vos,
etc.

•  Programas
Aplica4vos

–  Os
programas
aplica,vos
são
aqueles
que
permitem
aos

usuários
a
realização
de
tarefas
específicas.

•  Aplica,vos
de
Escritório,
Aplica,vos
Mul,mídia,

Aplica,vos
para
Internet,
etc.

João
Pablo
 01.
Fundamentos
da
Computação
 21

Tipos
de
Programas
(2)

•  Programas
Embarcados

–  Os
programas
embarcados
são
escritos
para
funcionarem

em
um
hardware
específico.

•  Equipamentos
de
Automação,
Equipamentos
de

Telecomunicação,
Equipamentos
de
Auto
locomoção,
etc.

•  Programas
de
Serviços

–  Os
programas
de
serviços
são
aqueles
disponíveis
através

da
rede
mundial
de
computadores.

•  Sistemas
de
Busca,
Sistemas
Bancários,
Sistemas
de

Comunicação,
etc.

João
Pablo
 01.
Fundamentos
da
Computação
 22

02.
Noções
de
Sistemas
Operacionais

Visão
Geral
de
Sistemas
Operacionais

•  O
sistema
operacional
é
um
conjunto
de
programas
que

desempenham
ro6nas
necessárias
para
o
correto

funcionamento
do
computador.

•  Estes
programas
tem
como
função
gerenciar
de
forma

o6mizada
os
recursos
de
hardware
e
so?ware
de
um

computador
e
fornecer
ao
programadores
de
aplica6vos
um

conjunto
de
recursos
abstratos
bem
definidos.

•  Os
sistemas
operacionais
também
são
responsáveis
por

prover
uma
interface
de
interação
Homem‐Máquina.

•  Os
sistemas
operacionais
modernos
dispõem
de
interfaces

visuais,
as
quais
se
caracterizam
por
simplificar
e
dar

produ6vidade
às
a6vidades
dos
usuários.

João
Pablo
 02.
Noções
de
Sistemas
Operacionais
 2

Sistemas
Operacionais
sob
Duas
Óp>cas

•  O
sistema
operacional
como
uma
máquina
estendida.

–  A
arquitetura
da
maioria
dos
computadores
em
nível
de

linguagem
de
máquina
é
primi6va
e
de
diQcil
programação.

–  Os
sistemas
operacionais
proveem
uma
camada
de
abstração

capaz
de
gerenciar
a
complexidade
desta
arquitetura.

•  O
sistema
operacional
como
um
gerenciador
de

recursos.

–  A
organização
dos
computadores
é
uma
estrutura
de

hardware
muito
heterogênea,
logo,
de
diQcil
integração.

–  Os
sistemas
operacionais
fornecem
uma
alocação
ordenada
e

controlada
de
disposi6vos
entre
os
programas
que
competem

por
eles.

João
Pablo
 02.
Noções
de
Sistemas
Operacionais
 3

Tipos
de
Sistemas
Operacionais
(1)

•  Sistemas
Operacionais
de
Grande
Porte

–  Des6nados
aos
grandes
computadores,
dotados
de
alta

capacidade
de
processamento
e
armazenamento.

•  Ex.:
OS/390.

•  Sistemas
Operacionais
de
Servidores

–  Des6nados
aos
computadores
médios,
dotados
de
uma

boa
capacidade
de
processamento
e
armazenamento.

•  Ex.:
GNU/Linux,
FreeBSD,
MS
Windows
Server
200x.

•  Sistemas
Operacionais
de
Mul>processadores

–  Des6nados
aos
computadores
dotados
por
múl6plas

CPUs.

•  Ex.:
GNU/Linux
e
MS
Windows.

João
Pablo
 02.
Noções
de
Sistemas
Operacionais
 4

Tipos
de
Sistemas
Operacionais
(2)

•  Sistemas
Operacionais
de
Computadores
Pessoais

–  Des6nados
aos
computadores
pessoais
modernos,

dotados
de
capacidade
de
mul6programação.

•  Ex.:
GNU/Linux,
MS
Windows,
Mac
OS
X.

•  Sistemas
Operacionais
de
Computadores
Portáteis

–  Des6nados
aos
computadores
móveis,
com
baixa

capacidade
de
processamento
e
memória.

•  Ex.:
Android
OS,
Symbian
OS,
iOS.

•  Sistemas
Operacionais
Embarcados

–  Des6nados
aos
computadores
de
uso
específico
e
que

não
aceitam
instalação
de
so?ware
adicionais.

•  Ex.:
QNX,
VxWorks.

João
Pablo
 02.
Noções
de
Sistemas
Operacionais
 5

Tipos
de
Sistemas
Operacionais
(3)

•  Sistemas
Operacionais
de
Nós
Sensores

–  Des6nados
aos
pequenos
computadores
que
compõem

nós
de
redes
de
monitoramento
de
perímetro.

•  Ex.:
Tiny
OS.

•  Sistemas
Operacionais
de
Tempo
Real

–  Des6nado
aos
computadores
que
tem
o
tempo
como

parâmetro
fundamental
para
seu
funcionamento.

•  Ex.:
e‐Cos.

•  Sistemas
Operacionais
de
Cartões
Inteligentes

–  Des6nados
aos
cartões
inteligentes
que
possuem
um

chip
de
CPU.

•  Ex.:
So?wares
proprietários.

João
Pablo
 02.
Noções
de
Sistemas
Operacionais
 6

Classificação
dos
Sistemas
Operacionais
(1)

•  Quanto
à
Arquitetura

–  Monolí(co,
o
núcleo
consiste
em
um
único
processo

executado
em
memória
protegida.

–  Micronúcleo,
o
núcleo
consiste
de
funções
mínimas

(comunicação
e
processos).
As
demais
funções
(arquivos

e
memória)
são
executadas
pelas
aplicações
clientes.

–  Sistemas
em
Camadas,
as
funções
do
núcleo
são

executadas
em
camadas
dis6ntas
de
acordo
com
nível
de

privilégio.

–  Máquinas
Virtuais,
fornece
uma
abstração
do
hardware

para
vários
outros
sistemas.

João
Pablo
 02.
Noções
de
Sistemas
Operacionais
 7

Classificação
dos
Sistemas
Operacionais
(2)

•  Quanto
ao
Gerenciamento
de
Processo

–  Monotarefa,
pode‐se
executar
somente
um
processo
por

vez.

–  Mul(tarefa,
vários
processos
podem
ser
carregados
na

memória.
Enquanto
um
ocupa
o
processador
os
demais

aguardam
enfileirados.

–  Mul(processamento,
o
sistema
operacional
distribui
as

tarefas
entre
um
ou
mais
processadores.

•  Quanto
à
Quan>dade
de
Usuários

–  Monousuário,
somente
um
usuário
por
vez.

–  Mul(usuário,
vários
usuários
simultâneos.

João
Pablo
 02.
Noções
de
Sistemas
Operacionais
 8

Tipos
de
Interface
com
Usuário

•  Graphical
User
Interface
(GUI)

–  O
usuário
tem
à
disposição
um
ambiente
de
trabalho

composto
por
menus,
ícones,
janelas
e
outros
itens,
e

interagem
com
o
sistema
através
do
mouse.

•  Text
User
Interface
(TUI)

–  Também
tem
à
disposição
um
ambiente
de
trabalho

composto
por
menus,
janelas
e
botões,
porém
essas

interfaces
não
têm
a
capacidade
de
reproduzir
figuras,
e

a
interação
se
dá
através
do
teclado.

•  Command‐line
User
Interface
(CUI)

–  Funciona
basicamente
com
a
digitação
de
comandos
em

um
terminal,sendo
rela6vamente
pouco
intera6va.

João
Pablo
 02.
Noções
de
Sistemas
Operacionais
 9

Gerenciamento
de
Processos
(1)

•  Um
sistema
operacional
mul6tarefa
é
preparado
para

dar
ao
usuário
a
ilusão
de
que
vários
processo
são

executados
ao
mesmo
tempo.

•  Um
processo
é
um
programa
em
execução,
o
qual

possui
sua
própria
CPU
virtual.
Na
prá6ca,
existe

somente
uma
CPU,
a
qual
troca
a
todo
momento
de
um

processo
para
o
outro.

•  O
sistema
operacional
gerencia
a
troca
de
contexto,
ou

seja,
o
momento
em
que
o
processador
para
de

executar
um
programa
e
começa
a
executar
outro.

•  Complementarmente,
o
sistema
operacional
é

responsável
por
gerenciar
a
criação
e
o
término
de

processos.

João
Pablo
 02.
Noções
de
Sistemas
Operacionais
 10

Gerenciamento
de
Processos
(2)

•  O
sistema
operacional
também
garante
aos
processos

mecanismos
de
comunicação,
tais
como:

–  sinais;

–  sockets;

–  pipes
e
named
pipes;

–  memória
compar6lhada;

–  troca
de
mensagens.

•  Por
fim,
os
sistemas
operacionais
possibilitam
o

mul6processamento,
onde
diferentes
threads
de
um

processo
podem
ser
executadas
simultaneamente
em

processadores
dis6ntos.

João
Pablo
 02.
Noções
de
Sistemas
Operacionais
 11

Gerenciamento
de
Memória
(1)

•  A
memória
principal
é
um
importante
recurso
e
que

deve
ser
gerenciado
com
cuidado,
pois
são
recursos

limitados.

•  Mesmo
nos
computadores
atuais,
as
memórias
são

pequenas
se
comparadas
ao
tamanho
e
a
quan6dade

de
programas
instalados
em
um
computador.

•  O
papel
do
sistema
operacional
é
criar
uma
camada
de

abstração
para
a
hierarquia
de
memória,
gerenciando‐a

de
modo
eficiente.

•  Basicamente
o
sistema
operacional
garante
o
controle

de
uso,
alocação
e
liberação
de
partes
da
memória.

João
Pablo
 02.
Noções
de
Sistemas
Operacionais
 12

Gerenciamento
de
Memória
(2)

•  Complementarmente,
o
sistema
operacional
usa
as

memórias
secundárias
para
dar
aos
processos
uma

percepção
de
memória
ilimitada.

•  Tal
estratégia
chama‐se
memória
virtual,
a
qual
tem
as

seguintes
funções:

–  assegurar‐se
que
cada
processo
tenha
seu
próprio

espaço
de
endereçamento;

–  prover
proteção
da
memória
para
garan6r
que
um

processo
não
use
espaço
que
não
lhe
pertença;

–  possibilitar
que
uma
aplicação
u6lize
mais
memória
do

que
a
fisicamente
existente.

João
Pablo
 02.
Noções
de
Sistemas
Operacionais
 13

Sistemas
de
Arquivos
(1)

•  Todas
as
aplicações
precisam
armazenar
e
recuperar

informações.
Tal
armazenamento
é
feito
em
arquivos.

–  Arquivos
são
unidades
lógicas
de
informações
criadas
por
um

processo,
os
quais
garantem
a
persistência
dos
dados.

•  Os
processos
podem
ler
arquivos
existentes
e
criar
novos

arquivos
de
acordo
com
suas
necessidades
específicas.

•  Em
geral,
as
memórias
secundárias
podem
conter
milhares

de
arquivos
independentes,
os
quais
requerem
um
critério

de
organização
eficiente.

•  Os
sistemas
de
arquivos
implementam
o
critérios
de

gerenciamento
de
arquivos
em
uma
memória
secundária.

João
Pablo
 02.
Noções
de
Sistemas
Operacionais
 14

Sistemas
de
Arquivos
(2)

•  É
responsabilidade
do
sistema
operacional
prover
um

sistema
de
arquivos
capaz
de:

–  estruturar
como
os
arquivos
são
armazenados;

–  garan6r
meios
de
leitura
e
gravação
de
arquivos;

–  estabelecer
regras
de
acesso
aos
arquivos.

•  Principais
sistemas
de
arquivos:

–  Mac
OS
X:
HFS,
HFS+;

–  GNU/Linux:
Ext4,
Reiser;

–  MS
Windows:
FAT
32,
NTFS.

João
Pablo
 02.
Noções
de
Sistemas
Operacionais
 15

Entrada
e
Saída
de
Dados
(1)

•  Além
de
oferecer
abstrações
para
processos,
endereços
de

memória
e
arquivos,
o
sistema
operacional
também

gerencia
os
disposi6vos
de
entrada
e
saída.

–  Para
sistemas
operacionais
é
considerado
disposi6vo
de

entrada
e
saída
qualquer
disposi6vo
com
o
qual
a
unidade
de

processamento
se
comunique.

•  O
sistema
operacional
emite
comandos
para
os
disposi6vos,

intercepta
interrupções,
trata
erros,
além
de
oferecer
uma

interface
entre
o
disposi6vo
e
o
sistema.

•  É
papel
do
sistema
operacional
prover
transparência
entre

os
disposi6vos
de
entrada
e
saída,
garan6ndo
a
mesma

forma
de
acesso,
independente
do
disposi6vo
acessado.

João
Pablo
 02.
Noções
de
Sistemas
Operacionais
 16

Entrada
e
Saída
de
Dados
(2)

•  Hardware
de
Entrada
e
Saída

–  O
sistema
operacional
provê
controladores
que

garantem
o
correto
funcionamento
do
disposi6vo.

–  Também
é
gerenciado
pelo
sistema
operacional
as

estruturas
de
acesso
direto
à
memória
e
interrupções
de

hardware.

•  So?ware
de
Entrada
e
Saída

–  O
sistema
operacional
estabelece
como
os
programas

recebem
e
enviam
dados
para
os
disposi6vos.

–  Os
erros
de
comunicação
entre
programas
e
disposi6vos

também
são
gerenciados
pelo
sistema
operacional.

João
Pablo
 02.
Noções
de
Sistemas
Operacionais
 17

Principais
Sistemas
Operacionais

João
Pablo
 02.
Noções
de
Sistemas
Operacionais
 18

Windows
XP

Windows
7

Windows
Vista

Mac
OS
X

iPhone
OSX

Linux

Android

BlackBerry

SymbianOS

Windows
2000

Fonte:
hKp://www.w3counter.com/globalstats.php

!"#$%&'()*)+,-$.'$/+&012,$
!"#"$%&'("$ )*+$,-./0102"3$4.$52-&6#"$ 7$
8+!9":$'&3.$;"$3.<$.;=.;42:.;="$3"'/.$"$0";=.>4"$
&?/.3.;=&4"@$4.A;&$0":?<=&6#"+$
7+!9";324./&;4"$"3$42&3$&=<&23@$B<&23$3#"$"3$?/2;02?&23$
C&;D"3$0":$"$<3"$4&$0":?<=&6#"+$
*+!E.A;&@$.-.:?(2AB<.$.$.3=&'.(.6&$<:&$/.(&6#"$.;=/.$
D&/4F&/.$.$3"GF&/.+$
H+!I<&23$3#"$"3$=/J3$.3=KC2"3$4&$0":?<=&6#"L$,-?(2B<.$
0&4&$<:+$
M+!E.$B<.$N"/:&$&$:&=.:KO0&$.3=&'.(.0.$&3$'&3.3$?&/&$&$
0":?<=&6#"L$
P+!I<&23$3#"$&3$?/2;02?&23$<;24&4.3$4.$:.424&$4.$
0&?&024&4.+$,-?(2B<.$0&4&$<:&+$
!"#"$%&'("$ )*+$,-./0102"3$4.$52-&6#"$ *$
Q+! I<&23$3#"$&3$?/2;02?&23$<;24&4.3$4.$:.424&$4.$
R.("024&4.+$,-?(2B<.$0&4&$<:&+$
S+! ,-?(2B<.$"$B<.$3#"$"3$?./2NT/20"3$4.$.;=/&4&+$92=.$=/J3$
.-.:?("3+$
U+! ,-?(2B<.$"$B<.$3#"$"3$?./2NT/20"3$4.$3&14&+$92=.$=/J3$
.-.:?("3+$
8)+!E.30/.R&$"$B<.$T@$.$?&/&$B<.$3./R.$&$<;24&4.$4.$
?/"0.33&:.;="+$
88+!E.A;&$<;24&4.$4.$:.:V/2&$.$42N./.;02.$:.:V/2&$
?/2;02?&($4.$:.:V/2&$3.0<;4K/2&+$
87+!I<&($&$/.(&6#"$.;=/.$?/"C/&:&3$.$2;3=/<6W.3+$
!"#"$%&'("$ )*+$,-./0102"3$4.$52-&6#"$ H$
8*+!E.A;&$323=.:&3$"?./&02";&23$0&/&0=./2X&;4"$&3$4<&3$
&'"/4&C.;3$?"331R.23$?&/&$"$0";0.2="+$
8H+!9&/&0=./2X.$4"23$O?"3$4.$323=.:&3$"?./&02";&23+$
,-.:?(2AB<.+$
8M+!E.30/.R&$&3$0(&332A0&6W.3$4.$323=.:&3$"?./&02";&23$
B<&;="$Y$&/B<2=.=</&@$C./.;02&:.;="$4.$?/"0.33"3$.$
B<&;O4&4.$4.$<3<K/2"3+$
8P+!9&/&0=./2X.$"3$O?"3$4.$2;=./N&0.3$0":$"$<3<K/2"+$
8Q+!,-?(2B<.$"$C./.;02&:.;="$4.$?/"0.33"3+$
8S+!,-?(2B<.$"$C./.;02&:.;="$4.$:.:V/2&+$
8U+!,-?(2B<.$"$C./.;02&:.;="$4.$323=.:&3$4.$&/B<2R"3+$
7)+!,-?(2B<.$"$C./.;02&:.;="$.;=/&4&$.$3&14&$4.$4&4"3+$
!"#$%&'()*+,-)$.)/$012)(3'4)/$
5),67/$*7$8923:.$
•! !"#$%&'(")*()("+("',**-./,"+,"0-12(3-1),4"
–! 5,3,"6#,2,6(7"-#("892'("2(8-*"0,*":9-"2-"0-12("+-"93("
;,*3("-"1/,"+-",9)*(4"
•! <(38=3"0,+-"2-"+&>-*":9-"("#$%&'("="("(*)-"+-"0-12(*"
',**-)(3-1)-7"?&2),":9-"(";,*3("3(&2"',30#-@("+,"
0-12(3-1),"=","*('&,'A1&,7"0,+-"2-"+&>-*":9-B"
–! ("#$%&'(")-3"-3"?&2)("("',**-./,"+,"*('&,'A1&,C"
–! ("#$%&'(")-3"-3"?&2)("(",*+-3"+("*(>/,4"
•! 5,12&+-*(1+,"("0,22&8&#&+(+-"+-":9-"("*(>/,"0,+-"
;91'&,1(*"+-2,*+-1(+(3-1)-7"("#$%&'("-12&1("("0,*"-3"
,*+-3"1,"0-12(3-1),4"
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" I"
8923:.$&)$;3.<.<;3.$
•! J-30*-":9-"(#%9=3"0-12(7"-2)-"(#%9=3"
1-'-22(*&(3-1)-"-2)K"(',30(1L(+,"0-#("#$%&'(4"
•! M9)*("3(1&;-2)(./,"+("#$%&'("-2)K"1(";(#("-"1("-2'*&)(7"
0,&2"(38,2"2/,"*-0*-2-1)(.N-2"+,"0-12(3-1),"
L93(1,4"
•! !#%912"-@-30#,2"+-"0*,0,2&.N-2"#$%&'(2B"
–! !"#$%&'$"&(')"*&+,$-$."!"/$0$"&(')"1$"#$%&'$."2"34&+5(6"
3457&546"$/454"$"#$%&'$8"3$4$"-&365("3&#$4"$"/$0$."
–! 96:6";"7$5("%&0,6"<=&"96(;."96(;";"7$5("%&0,6"<=&">&-46."?6#68"96:6";"7$5("%&0,6"<=&">&-46."
–! 96:68"96(;"&">&-46"764$7"@=1'6(."96:6"&"96(;"1:6"
<=&/4$4$7"6"%$(6"-&"364+&0$1$."A=&7"<=&/46="6"%$(6B"
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" O"
012)(3'43=.,-)$*.$8923:.$
•! !"',12)*9./,"+-"(#%,*&)3,2"=",",8P-Q?,";91+(3-1)(#"
+-"),+("("0*,%*(3(./,"+-"',309)(+,*-27"0,+-1+,"2-*"
+-61&+,"',3,"93("2-:9R1'&("+-"0(22,2":9-"?&2(3"
(Q1%&*"93",8P-Q?,"8-3"+-61&+,4"
–! M*+-3"+-"E-12(3-1),"-7"0,*)(1),7"S$%&'(4"
•! !#%,*&)3,2"2/,"*-#(Q?(3-1)-"',3912"1,"',Q+&(1,"+(2"
0-22,(27"0,*"-@-30#,B"
–! C7$"4&+&5'$"-&"/606"-&(+4&%&"6("51#4&-5&1'&("&"=7$"
(&<=D1+5$"-&"3$((6("3$4$"<=&"(&"+61(5#$"*$E&4"6"/606."
–! C7"7$3$"$34&(&1'$"=7$"(&<=D1+5$"-&"76%57&1'6("
1&+&(()456("3$4$"(&"+,&#$4"$6"-&(F16."
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" G"
>)&:73')/$>)4?1747&'.(7/$
•! T3("(./,"="93"(',1)-'&3-1),":9-"("0(*Q*"+-"93"
-2)(+,"&1&'&(#7"(0$2"93"0-*A,+,"+-")-30,"61&),7"0*,+9>"
93"-2)(+,"61(#"0*-?&2A?-#"-"8-3"+-61&+,4"
•! T3"-2)(+,"="("2&)9(./,"()9(#"+,",8P-),4"
•! U-2)(";,*3(7"(#%,*&)3,2"0,+-"2-*"*-+-61&+,"',3,"("
+-2'*&./,"+-"93"',1P91),"+-"(.N-2":9-7",8-+-'&+(27"
*-29#)(3"193("29'-22/,"61&)("+-"0(22,27"(Q1%&1+,"93"
,8P-Q?,4"
•! V&("+-"*-%*(7"93"(#%,*&)3,"+-2Q1(W2-"("*-2,#?-*"93"
0*,8#-3(4"
–! X&@("93"0(+*/,"+-"',30,*)(3-1),"("2-*"2-%9&+,7"',3"
?&2)(2"("(#'(1.(*7"',3,"*-29#)(+,7"("2,#9./,"+,"
0*,8#-3(4"
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" Y"
@.*(-)$*7$>)4?)('.47&')$
•! M82-*?-"("2-%9&1)-"2-:9R1'&("193=*&'(B"
–! F7"Z7"Z7"I7"O7"Y7"[7"ZO7"IZ7444"
–! \9(#"=","+='&3,"-#-3-1),]"
•! E(*("2,#9'&,1(*","0*,8#-3(7"0*-'&2(W2-"&+-1Q6'(*"("
*-%*("+-";,*3(./,"-1)*-",2"1^3-*,27",9"2-P(7","2-9"
0(+*/,"+-"',30,*)(3-1),4"
•! T3("?->"+-61&+,","0(+*/,"+-"',30,*)(3-1),"="
0,22A?-#"'(#'9#(*","+='&3,"-#-3-1),"-":9(#:9-*",9)*,"
-#-3-1),"+-2-P(+,4"
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" _"
A7B+7&:3.,-)$74$012)(3'4)/$
•! J90,1L("("1-'-22&+(+-"+-"+-2'*-?-*"',3,"2-")*,'("
93("#`30(+(4"<(#"0*,'-+&3-1),"#-?(*&("("2-%9&1)-"
2-:9R1'&("+-"0(22,24"
•! J-:9-1'&(./,"="93("',1?-1./,":9-",8P-Q?("*-%-*","
a9@,"+-"-@-'9./,7"+-61&1+,":9(#"(./,"?-3"("2-%9&*4"
•! <(#"a9@,"-2)(8-#-'-"93(",*+-3"2-:9-1'&(#"+-"
-@-'9./,7")(38=3"'L(3(+("+-"-2)*9)9*("2-:9-1'&(#4"
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" b"
Passo 01: pegue uma escada;!
Passo 02: posicione-a embaixo da lâmpada;!
Passo 03: busque uma lâmpada nova;!
Passo 04: suba na escada;!
Passo 05: retire a lâmpada velha;!
Passo 06: coloque a lâmpada nova.!
A717,-)$74$012)(3'4)/$CDE$
•! J90,1L("(%,*("93"*-61(3-1),"0(*(","0*,8#-3("+("
)*,'("+-"#`30(+(4"!"#`30(+("2$"+-?-"2-*")*,'(+("2-"
-2Q?-*":9-&3(+(4"
•! c,"(#%,*&)3,"(1)-*&,*"-2)("2&)9(./,"1/,"-2)K"0*-?&2)(7"
#,%,7"("#`30(+("2-*&(")*,'(+("3-23,":9-"-2Q?-22-"-3"
8,(2"',1+&.N-24"
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" ["
Passo 01: ligue o interruptor;!
Passo 02: se a lâmpada não acender, então:!
!Passo 03: pegue uma escada;!
!Passo 04: posicione-a embaixo da lâmpada;!
!Passo 05: busque uma lâmpada nova;!
!Passo 06: suba na escada;!
!Passo 07: retire a lâmpada velha;!
!Passo 08: coloque a lâmpada nova.!
A717,-)$74$012)(3'4)/$CFE$
•! M"(#%,*&)3,"*-61(+,"&1'#9&9"93("2-#-./,7"8(2-(+("-3"
93("',1+&./,7"(":9(#"+-)-*3&1("2-"(2"(.N-2"
2982-:9-1)-2"2-*/,",9"1/,"-@-'9)(+(24"
•! d2)-")-2)-"',1+&'&,1(#":9-"0-*3&)-",9"1/,":9-","a9@,"
+-"-@-'9./,"0(22-"0,*"93"+-)-*3&1(+,"',1P91),"+-"
(.N-2"=")(38=3"'L(3(+,"+-"-2)*9)9*("+-"2-#-./,4"
•! !,"&1'#9&*"93("-2)*9)9*("+-"2-#-./,"-3"93"(#%,*&)3,"
+-?-W2-",82-*?(*B"
–! :9(#","0,1),"$Q3,"0(*("*-(#&>(./,"+("2-#-./,7"(22&3"
-?&)(W2-"(.N-2"+-21-'-22K*&(2C"
–! :9(#"(2"',1+&.N-2"'-*)("0(*(")-2)(*7"-?&)(1+,":9-",',**("
(#%93"+-2?&,"&1+-2-P(+,"1,"a9@,"+-"-@-'9./,4"
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" e"
G7?7H,-)$74$012)(3'4)/$CDE$
•! J-%9&1+,"("&+-&("+-"*-61(*","0*,8#-3("+(")*,'("+-"
#`30(+(27"290,1L(":9-"2-P("1-'-22K*&,"*-?&2(*"-")*,'(*"
(2"#`30(+(2"+-"93("'(2("),+(4"
•! c,?(3-1)-","(#%,*&)3,"1/,"()-1+-"&1)-%*(#3-1)-7"0,&2"
-#-"+-2'*-?-"(")*,'("+-"93("#`30(+("-"1/,"(")*,'("+-"
?K*&(2"#`30(+(24"
•! J(8-W2-":9-",2"0(22,2"0(*(")*,'("+-"#`30(+(2"2/,"
2-30*-",2"3-23,27"#,%,7"93("(#)-*1(Q?("2-*&("*-0-Q*"
,"a9@,"+-"-@-'9./,")(1)(2"?->-2":9(1)(2";,22-3"(2"
#`30(+(2"-@&2)-1)-2"1("'(2(4"
•! !%,*("',12&+-*(":9-"1/,"="0,22A?-#"2(8-*"(":9(1Q+(+-"
+-"#`30(+(2"+("'(2(4"5,3,"*-2,#?-*","0*,8#-3(]"
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" ZF"
G7?7H,-)$74$012)(3'4)/$CFE$
•! M82-*?-":9-","0*&3-&*,"0(22,"+,"(#%,*&)3,"+-61-"93"
8#,',"+-"*-0-Q./,7",":9(#"&30N-":9-","a9@,"
2982-:9-1)-"2-P("*--@-'9)(+,"()=",")-2)-";(#L(*4"
•! !"'(0('&+(+-"+-";(>-*"',3":9-"93")*-'L,"+,"a9@,"+-"
(.N-2"2-P("-@-'9)(+,"+&?-*2(2"?->-2")(38=3"="
'L(3(+,"+-"-2)*9)9*("+-"*-0-Q./,4"
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" ZZ"
Passo 01: enquanto existir lâmpadas não verificadas, faça:!
!Passo 02: ligue o interruptor;!
!Passo 03: se a lâmpada não acender, então:!
! !Passo 04: pegue uma escada;!
! !Passo 05: posicione-a embaixo da lâmpada;!
! !Passo 06: busque uma lâmpada nova;!
! !Passo 07: suba na escada;!
! !Passo 08: retire a lâmpada velha;!
! !Passo 09: coloque a lâmpada nova.!
G7?7H,-)$74$012)(3'4)/$CIE$
•! !2"*-0-Q.N-2"0,+-3")-*";,*3(2"+&;-*-1'&(+(2B"
–! G&('&"16"H1I+567"0*&3-&*,"2-")-2)("-"+-0,&2"2-"-@-'9)(","
a9@,4"
–! G&('&"16"J577"0*&3-&*,"2-"-@-'9)(","a9@,"-"+-0,&2"2-"
)-2)("("',1+&./,"+-"*-0-Q./,4"
–! H'&4$KL&("M&N15-$(7"1/,"LK")-2)-2"-","a9@,"="*-0-Q+,"93"
1^3-*,"+-"?->-2"+-61&+,"("0*&,*&4"
•! !,"9Q#&>(*"*-0-Q.N-2"+-?-W2-",82-*?(*B"
–! :9(#"(";,*3("+-"*-0-Q./,"3(&2"&1)-*-22(1)-"0(*(","
0*,8#-3(C"
–! :9(&2"(.N-2"+-?-3"6'(*"+-1)*,"-":9(&2"+-?-3"6'(*";,*("
+("*-0-Q./,4"
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" ZI"
0/?7:')/$%4?)('.&'7/$CDE$
•! >)4?17J3*.*7$
–! !"',30#-@&+(+-"0,+-"2-*"-1'(*(+("',3"2&1f1&3,"+-"
?(*&-+(+-4"
–! !"?(*&-+(+-"*-0*-2-1)("93(":9(1Q+(+-"+-"2&)9(.N-2"
+&;-*-1)-2":9-"93"0*,8#-3("0,+-"(0*-2-1)(*4"
–! E(*("'(+("2&)9(./,"+-?-"2-")-*"93("2,#9./,"0*-?&2)(4"
•! %&K7/H2.,-)$
–! T3("+(2"3(&,*-2"*-20,12K?-&2"0-#,"(93-1),"+("
',30#-@&+(+-"="(";,*3("-**f1-("+-"&1?-2Q%(*"93"
0*,8#-3(4"
–! U-?-W2-"2-30*-"892'(*"*-20,2)(2",8P-Q?(2"-"+&*-)(2"
2,8*-"(2"2&)9(.N-2"-1?,#?&+(2"1,"0*,8#-3(4"
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" ZO"
0/?7:')/$%4?)('.&'7/$CFE$
•! 8723L313*.*7$
–! g-+-"("'(0('&+(+-"+-"',30*--12/,"+,"(#%,*&)3,"0,*"
:9(#:9-*",82-*?(+,*4"
–! d2)K"*-#('&,1(+,"',3"("'#(*->("',3":9-"29("#$%&'("-2)K"
-@0,2)(4"
•! @)('.L313*.*7$
–! d@&2)-3"93("%*(1+-"?(*&-+(+-"+-"#&1%9(%-12"+-"
0*,%*(3(./,7"'(+("93"',3"29(2"'(*(')-*A2Q'(24"
–! !#%,*&)3,2"2/,"0,*"+-61&./,"0,*)K?-&27",9"2-P(7"(2"
2,#9.N-2"-2)(8-#-'&+(2"1/,"+-0-1+-3"+-")-'1,#,%&(4"
•! 5,2)93(W2-"92(*"93("#&1%9(%-3"+-"(82)*(./,"'L(3(+,"
E2-9+,'$+&%,4"
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" ZG"
@():7//)$?.(.$>)&/'(+,-)$*7$012)(3'4)/$CDE$
•! E(22,"ZB"?&4"$'&1'$7&1'&"6"&1=1+5$-6."
–! h"P92)(3-1)-","-191'&(+,"+,"0*,8#-3(":9-";,*1-'-","
-1'(3&1L(3-1),"1-'-22K*&,"0(*("("*-2,#9./,"+,"
0*,8#-3(4"
•! E(22,"IB"O&F4$4"-6"&1=1+5$-6"$("&1'4$-$("-&"-$-6(."
–! !,"-@0#,*(*","-191'&(+,"2-"0,+-"+-2',8*&*":9(&2",2"
+(+,2"+-?-3"2-*";,*1-'&+,27"("0(*Q*"+,2":9(&2"("2,#9./,"
="-1'(3&1L(+(4"
•! E(22,"OB"O&F4$4"-6"&1=1+5$-6"$("($I-$("-&"-$-6(."
–! !,"-@0#,*(*","-191'&(+,"2-"0,+-"+-2',8*&*":9(&2",2"
+(+,2"+-?-3"2-*"-3&Q+,2"0(*("',30,*"93"*-29#)(+,"
61(#7",",8P-Q?,"+,"(#%,*&)3,4"
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" ZY"
@():7//)$?.(.$>)&/'(+,-)$*7$012)(3'4)/$CFE$
•! E(22,"GB"M&'&4751$4"6"<=&"-&%&"(&4"*&5'6"3$4$"
'4$1(*647$4"&1'4$-$("&7"($I-$(."
–! c-2)-"0(22,"2-"+K"("',12)*9./,"+,"(#%,*&)3,"
0*,0*&(3-1)-"+&),4"
–! !"0(*Q*"+,2"*-:9&2&),2"&+-1Q6'(+,27";(>W2-"1-'-22K*&,"
-2)(8-#-'-*"("2-:9R1'&("+-"(.N-2"1-'-22K*&(2"0(*("
*-2,#?-*","0*,8#-3(4"
–! 5,3,";-**(3-1)("(9@&#&(*"2-"0,+-"92(*"93"+,2"2-%9&1)-2"3=),+,2B"
•! g=),+,"5(*)-2&(1,C"
•! d1%-1L(*&("i-?-*2(C"
•! <(8-#("+-"U-'&2/,4"
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" Z_"
@():7//)$?.(.$>)&/'(+,-)$*7$012)(3'4)/$CIE$
•! E(22,"YB"P61('4=54"6"$0#645'76."
–! 5,3"8(2-"1,"',1L-'&3-1),"(+:9&*&+,"2,8*-","0*,8#-3("
-"(2"(#)-*1(Q?(2"+-"2,#9./,"#-?(1)(+(2"0(*("-2)-7"0,+-W
2-"-2'*-?-*","(#%,*&)3,4"
•! E(22,"_B"QR&+='$4"6"$0#645'76."
–! H30#&'("-3"-@-'9)(*"),+(2"(2"(.N-2"+-2'*&)(2"2-%9&1+,","
a9@,"-2)(8-#-'&+,"1,"(#%,*&)3,4"
–! !"'(+("&12)*9./,7"(2"(.N-2"-",2"*-29#)(+,2"2/,"
?-*&6'(+,27"%(*(1Q1+,","',**-),";91'&,1(3-1),4"
–! \9(1+,"2/,"&+-1Q6'(+,2"-**,2"1,2"*-29#)(+,27"("2,#9./,"
+-?-"2-*"*-+-61&+(4"
•! d2)("(Q?&+(+-")(38=3"="'L(3(+("+-"<-2)-"+-"g-2(4"
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" Zb"
MN')*)$>.('7/3.&)$
•! M"3=),+,"'(*)-2&(1,"="8(2-(+,"1,"0*&1'A0&,"+("+&?&2/,"
-"',1:9&2)(4"
•! d2)-"3=),+,"',12&2)-"-3"()('(*"93"0*,8#-3("
',30#-@,7"+&?&+&1+,W,"-3"0*,8#-3(2"3-1,*-27"#,%,7"
3(&2";K'-&2"+-"*-2,#?-*4"
•! E(22,2"+,"3=),+,B"
–! E(22,"ZB"-5%5-54"6"346/0&7$"&7"(=$("3$4'&("3451+53$5(S"
–! E(22,"IB"$1$05($4"$"-5%5(:6"3$4$"#$4$1F4"+6&4D1+5$S"
–! E(22,"OB"(&"$0#=7$"3$4'&"1:6"*64"/&7"+6734&&1-5$8"
$305+$4"6"7;'6-6"1$"3$4'&S"
–! E(22,"GB"$1$05($4"6"6/@&'6"3$4$"#$4$1F4"&1'&1-57&1'6"&"
+6&4D1+5$."
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" Z["
O&27&P.(3.$G7K7(/.$
•! E*,'-22,"39&),"9Q#&>(+,"1("K*-(")='1&'(4"
•! E,229&"("61(#&+(+-"+-"+-)-*3&1(*","3()-*&(#"+-"
',12)*9./,"-"("2-:9R1'&("+-"3,1)(%-3"("0(*Q*"+,"
0*,+9),"+-2-P(+,4"
–! M"0*,+9),"-@&2)-"-"="+-23,1)(+,"()="'L-%(*"1,2"2-92"
',30,1-1)-2"3(&2"8K2&',24"
•! c,"'(2,"+,2"(#%,*&)3,2","0*,+9),"=","*-29#)(+,7"-3"
,9)*(2"0(#(?*(27"(2"&1;,*3(.N-2"+-"2(A+(4"
•! !"0(*Q*"+,"*-29#)(+,"0,+-W2-"+-)-*3&1(*"*-?-*2(3-1)-"
,2"+(+,2"+-"-1)*(+(27"8-3"',3,"(2"-)(0(2"+-"
)*(12;,*3(./,"+-2)-2"+(+,24"
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" Ze"
Q.L71./$*7$;7:3/-)$
•! M8P-Q?("8(2&'(3-1)-"*-#('&,1(*"(2"(.N-2":9-"
+-0-1+-3"+-"(#%93("',1+&./,"',3"(2"0*$0*&(2"
',1+&.N-24"
•! U-2)(";,*3("2-"0,+-"-2'#(*-'-*"-"?&29(#&>(*";('&#3-1)-"
:9(&2"?(#,*-2","',1P91),"+-"',1+&.N-2"+-?-"(2293&*"
0(*(":9-"2-"-;-)9-"29("*-20-'Q?("(./,4"
•! J9("(0#&'(./,"2-"+K"0*&1'&0(#3-1)-"1("',12)*9./,"+(2"
2-%9&1)-2"-2)*9)9*(2B"
–! 2-#-./,C"
–! *-0-Q./,"',3")-2)-"1,"&1A'&,C"
–! *-0-Q./,"',3")-2)-"1,"634"
D,/,"E(8#," FG4"H1)*,+9./,"(,2"!#%,*&)3,2" IF"
!"#$%&'()*)+,-$.'$/+&012,$
!"#"$%&'("$ )*+$,-./0102"3$4.$52-&6#"$ 7$
8+!9:$;":.:$</.023&$&=/&>.33&/$?:$/2"$0":$?:$'&/0"$@?.$
<"33?2$&$0&<&024&4.$4.$0&//.A&/$&<.B&3$.(.$:.3:"$.$:&23$
?:&$4.$3?&3$=/C3$0&/A&3D$@?.$3#"E$?:$("'"D$?:$'"4.$.$?:$
:&6"$4.$&(F&F&+$G$@?.$"$;":.:$4.>.$F&H./$<&/&$&=/&>.33&/$
"$/2"$3.:$<./4./$&3$3?&3$0&/A&3I$
7+!J/C3$K.3?1=&3$.$=/C3$0&B2'&23$</.023&:$&=/&>.33&/$?:$/2"L$
<&/&$=&(D$423<M.:$4.$?:$'&/0"$0":$0&<&024&4.$<&/&$4?&3$
<.33"&3+$%"/$:.424&3$4.$3.A?/&B6&$B#"$3.$<./:2=.$@?.$.:$
&(A?:&$:&/A.:$&$@?&BN4&4.$4.$K.3?1=&3$3.K&$2BF./2"/$O$4.$
0&B2'&23+$P?&($&$3.@?CB02&$4.$<&33"3$@?.$<./:2N/2&$&$
=/&>.332&$0":$3.A?/&B6&I$
!"#"$%&'("$ )*+$,-./0102"3$4.$52-&6#"$ Q$
Q+! R"B3=/?&$?:$&(A"/2=:"$.-<(202=&B4"$="4"3$"3$<&33"3$@?.$
4.>.:$3./$3.A?24"3$<&/&$"'=./$?:$4&4"$(2>/"$<"/$
.:</S3N:"$B&$'2'(2"=.0&$4&$?B2>./324&4.+$R"B324./.D$
0":"$<"B="$2B202&(D$@?.$>"0C3$.3=T$.:$F/.B=.$O$'2'(2"=.0&$.$
&2B4&$B#"$<"33?2$"$("0&(2H&4"/$4"$(2>/"+$
U+! R"B3=/?&$?:$&(A"/2=:"$@?.$:"3=/.$="4"3$"3$<&33"3$@?.$
>"0C$3.A?.$<&/&$.30"(;./$"$N<"$4.$/"?<&$0":$@?.$>&2$3&2/D$
&<V3$(.>&B=&/D$(.>&B4"$.:$0"B324./&6#"$&<.B&3$"$=.:<"$
W'":D$B?'(&4"$"?$0;?>"3"X$.$&$=.:<./&=?/&$W@?.B=.D$
:"4./&4"$"?$F/2"X+$
!"#"$%&'("$ )*+$,-./0102"3$4.$52-&6#"$ U$
*+! ,(&'"/.$?:$&(A"/2=:"$?N(2H&B4"$="4&3$&3$.3=/?=?/&3$4.$
0"B=/"(.$W3.@?.B02&6#"D$3.(.6#"$.$/.<.N6#"XD$@?.$.-.0?=.$
?:$K"A"$4&$>.(;&$4.$&0"/4"$0":$&$.3=/&=SA2&$@?.$>"0C$
3.:</.$?3&+$
Y+! ,(&'"/.$?:$&(A"/2=:"$@?.$:">&$=/C3$4230"3$4.$?:&$J"//.$
4.$Z&BV2D$@?.$0"B323=.$.:$=/C3$;&3=.3$W&$[$'$[$0XD$?:&$4&3$
@?&23$3./>.$4.$3?<"/=.$<&/&$=/C3$4230"3$4.$=&:&B;"3$
42F./.B=.3$W8$[$7$[$QXD$"3$:.B"/.3$3"'/.$"3$:&2"/.3+$%"4.[
3.$:">./$?:$4230"$4.$0&4&$>.H$<&/&$@?&(@?./$;&3=.D$4.34.$
@?.$B?B0&$3.K&$0"("0&4"$?:$4230"$:&2"/$3"'/.$?:$:.B"/+$
G$"'K.N>"$S$=/&B3F./2/$"3$=/C3$4230"3$<&/&$"?=/&$;&3=.+$
!"#$%&'()')(*&$+,&-.*&$/0$1234(-'54&$
6-74&$8(-5-9:4&$/0$;*/4&$<=>$
•! !"#"$%&'%&(%#$)*$+,)*$,#-.-+/)*0$1"23*%$&%4%**5#-)$
%&'%&(%#$6.$4)&4%-')$(%$."-*$"7')$&8/%79$"$-&1)#.":;)<$
–! =')$)6$%1%-')$(%$-&1)#."#<$>#"&*.-**;)$(%$&)?4-"*<$
@).6&-4":;)<$=:;)$(%$-&1)#."#3*%<$A&*'#6:;)0$
%&*-&".%&')<$>#"&*.-**;)$(%$4)&B%4-.%&')*<$
•! @).,7%.%&'"#.%&'%0$"$-&1)#.":;)$,)(%$*%#$/-*'"$
4).)$6.$4)&C6&')$(%$("()*$)#D"&-2"()*0$4).$*%&+()0$
4).$*%.E&+4"<$
•! F%,#%*%&'":;)$(%$1"')*0$4)&4%-')*$%$-&*'#6:G%*0$,)#$
.%-)$(%$*-&"-*$(%$6."$."&%-#"$1)#."7-2"("0$,)**8/%7$(%$
*%#$'#"&*.-+("$)6$,#)4%**"("$,%7)$B).%.$)6$,)#$
.5H6-&"*<$
I);)$!"J7)$ KL<$M*'#6'6#"*$N5*-4"*$(%$=7D)#-'.)*$ O$
6-74&$8(-5-9:4&$/0$;*/4&$<?>$
•! @"("$("()$,)**6-$6.$,"(#;)$(%$#%,#%*%&'":;)0$+,)$
,#-.-+/)0$H6%$-&*'#6-$)$4).,6'"()#$*)J#%$4).)$'#"'"#$)$
("()<$
•! P6&(".%&'"7.%&'%0$6*"3*%$&"$4)&*'#6:;)$(%$
"7D)#-'.)*$H6"'#)$+,)*$,#-.-+/)*0$*%&()$%*'%*9$
–! -@'0-(4A$H6"7H6%#$-&1)#.":;)$&6.Q#-4"$H6%$,%#'%&:"$")$
4)&C6&')$()*$&R.%#)*$-&'%-#)*$#%7"+/)*$S&%D"+/"0$&67"$
)6$,)*-+/"T<$
•! MU<9$V%6$/-2-&B)$4).,#)6$O$4"##)*<$
–! (0*2A$H6"7H6%#$-&1)#.":;)$&6.Q#-4"$H6%$,%#'%&:"$")$
4)&C6&')$()*$&R.%#)*$#%"-*$S&%D"+/"0$&67"$)6$,)*-+/"T<$
•! MU<9$V-&B"$".-D"$'%.$W0LX$.%'#)*$(%$"7'6#"<$
I);)$!"J7)$ KL<$M*'#6'6#"*$N5*-4"*$(%$=7D)#-'.)*$ Y$
6-74&$8(-5-9:4&$/0$;*/4&$<B>$
–! .*(*.'0(0A$H6"7H6%#$-&1)#.":;)$4).,)*'"$,)#$4"#"4'%#%*$
&6.Q#-4)*$SK<<ZT0$"71"JQ+4)*$S=<<[0$"<<2T$%$%*,%4-"-*$S\0$]0$^0$
_0$`0$a0$<<<T<$
•! MU<9$b$'#-)$Q$4).,)*')$,)#9$cd6D6-&B)0$[%2-&B)$%$
e6-*-&B)f$<$
–! 2C3-.4A$H6"7H6%#$-&1)#.":;)$H6%$,)**"$"**6.-#$*).%&'%$
6.$(%$()-*$%*'"()*$,)**8/%-*<$
•! MU<9$=$,)#'"$%*'5$"J%#'"$)6$1%4B"("<$
•! g-"$(%$#%D#"0$"*$7-&D6"D%&*$(%$,#)D#".":;)$,#)/%%.$
+,)*$(%$("()*$"(-4-)&"-*0$4).$)$)JC%+/)$(%$1"4-7-'"#$)$
(%*%&/)7/-.%&')$(%$,#)D#"."*<$
I);)$!"J7)$ KL<$M*'#6'6#"*$N5*-4"*$(%$=7D)#-'.)*$ h$
D4@&'*@'0&$0$E*(-,:0-&$<=>$
•! D4@&'*@'0&$
–! i.$("()$Q$4)&*'"&'%$H6"&()$&;)$*)1#%$/"#-":;)$&)$
(%4)##%#$()$'%.,)<$j%6$/"7)#$Q$4)&*'"&'%$(%*(%$)$-&84-)$
"'Q$)$k.$("$%U%46:;)$()$"7D)#-'.)<$
•! MU<9$X0$cl;)$P6.%f0$OXOm0$3K<Xn$
•! E*(-,:0-&$
–! i.$("()$Q$47"**-k4"()$4).)$/"#-5/%7$H6"&()$'%.$"$
,)**-J-7-("(%$(%$*%#$"7'%#"()$%.$"7D6.$-&*'"&'%$&)$
(%4)##%#$()$'%.,)<$o6#"&'%$"$%U%46:;)$()$"7D)#-'.)0$)$
/"7)#$*)1#%$"7'%#":;)$)6$)$("()$Q$(%,%&(%&'%$("$
%U%46:;)$%.$6.$4%#')$.).%&')$)6$4-#46&*'E&4-"<$
•! MU<9$@)'":;)$()$op7"#0$!%*)$("$!%**)"0$q&(-4%$(%$A&r":;)$
I);)$!"J7)$ KL<$M*'#6'6#"*$N5*-4"*$(%$=7D)#-'.)*$ X$
D4@&'*@'0&$0$E*(-,:0-&$<?>$
•! i.$%U%.,7)$H6%$-76*'#"$"$(-1%#%&:"$%&'#%$4)&*'"&'%*$%$
/"#-5/%-*$*%#-"$4)&*'#6:;)$(%$6.$"7D)#-'.)$,"#"$)$
457467)$("$5#%"$(%$6."$4-#46&1%#s&4-"<$
•! !"#"$'"70$Q$&%4%**5#-)$6*"#$"$1p#.67"$t#O0$)&(%9$
–! t$'%.$/"7)#$4)&*'"&'%$(%$Y0WhWL<<<0$-&(%,%&(%&'%$(%$H6"7$
*%C"$4-#46&1%#s&4-"u$
–! %$#0$H6%$#%,#%*%&'"$)$#"-)0$Q$(%,%&(%&'%$(%$
4-#46&1%#s&4-"0$7)D)$Q$/"#-5/%7$"$4"("$%U%46:;)$()$
"7D)#-'.)<$
I);)$!"J7)$ KL<$M*'#6'6#"*$N5*-4"*$(%$=7D)#-'.)*$ L$
F4(5*GH4$/0$I/0@9J.*/4(0&$
•! b*$-(%&+k4"()#%*$*;)$)*$&).%*$("()*$,"#"$"*$
4)&*'"&'%*$)6$/"#-5/%-*$")$7)&D)$()$"7D)#-'.)<$
•! >)()*$)*$-(%&+k4"()#%*$(%/%.$*%#$#%,#%*%&'"+/)*0$)6$
*%C"0$'%#$6.$&).%$H6%$#%.%'"$")$("()$"#."2%&"()<$
•! >".JQ.$(%/%.$*%D6-#$)$*%D6-&'%$4#-'Q#-)$(%$1)#.":;)9$
–! 4).%:"#$,)#$6.$4"#"4'%#%$"71"JQ+4)u$
–! *%#$*%D6-()$,)#$."-*$4"#"4'%#%*$"71"JQ+4)*$)6$
&6.Q#-4)*<$
•! MU%.,7)*$(%$-(%&+k4"()#%*9$
–! :,2-/4&A$l)'"W0$l)'"O0$l).%*0$VQ(-"0$Pv>j0$%'4<$
–! -@:,2-/4&A$Xw0$MSYT0$=9N0$w3x0$l)'"yO0$=z{|0$!}==0$%'4<$
I);)$!"J7)$KL<$M*'#6'6#"*$N5*-4"*$(%$=7D)#-'.)*$ m$
;0.2*(*GH4$/0$E*(-,:0-&$
•! j%.,#%$H6%$1)#$&%4%**5#-)$"#."2%&"#$"7D6.$("()$%.$
.%.p#-"0$1"23*%$&%4%**5#-)$(%47"#"#$%U,7-4-'".%&'%$
6."$/"#-5/%7$(%&'#)$()$"7D)#-'.)<$
•! =$(%47"#":;)$(%$6."$/"#-5/%7$4)&*-*'%.$%.9$
–! (%k&-#$6.$+,)$,#-.-+/)$(%$("()*u$
–! (%k&-#$6.$-(%&+k4"()#$/57-()<$
•! MU%.,7)*$(%$(%47"#":;)$(%$/"#-5/%-*<$
I);)$!"J7)$ KL<$M*'#6'6#"*$N5*-4"*$(%$=7D)#-'.)*$ n$
<tipo>: <identificador>;!
caractere: nome, endereço, data;!
inteiro: idade, parcelas;!
real: peso, altura, cotação;!
lógico: resposta, porta, motor;!
%K7(0&&L0&$1(-'5M9.*&$
•! MU,#%**G%*$"#-'.Q+4"*$*;)$"H6%7"*$46C)*$),%#"()#%*$
*;)$"#-'.Q+4)*$%$46C)*$),%#"&()*$*;)$4)&*'"&'%*$)6$
/"#-5/%-*$()$+,)$-&'%-#)$)6$#%"7<$
I);)$!"J7)$ KL<$M*'#6'6#"*$N5*-4"*$(%$=7D)#-'.)*$ Z$
N70(*/4($ F)@GH4$ %K05724$
~$ =(-:;)$ O$~$O0$U$~$0$2$~$h$
3$ j6J'#":;)$ h$3$W0$2$3$H0$m$3$"$
|$ V67+,7-4":;)$ O$|$h0$"$|$J0$U$|$Y$
y$ o-/-*;)$ n$y$O0$4$y"0$m$y$J$
,)'SU0$T$ U$%7%/"()$"$$ ,)'SO0$YT0$,)'SU0$T$
#"(SUT$ F"-2$H6"(#"("$(%$U$ #"(SZT0$#"(S2T$
.)($ F%*'"$("$(-/-*;)$ Z$.)($h$#%*67'"$W$
(-/$ {6)4-%&'%$("$(-/-*;)$ Z$(-/$h$#%*67'"$O$
%K7(0&&L0&$OC3-.*&$<=>$
•! MU,#%**G%*$7pD-4"*$*;)$"H6%7"*$46C)*$),%#"()#%*$*;)$
7pD-4)*$)6$#%7"4-)&"-*$%$46C)*$)*$),%#"&()*$*;)$
#%7":G%*0$/"#-5/%-*$)6$4)&*'"&'%*$()$+,)$7pD-4)<$
–! !"#$%&'$#()*#+%,-'.%-(/)*;)$),%#"()#%*$H6%$#%"7-2".$
4).,"#":G%*$%&'#%$()-*$/"7)#%*$(%$.%*.)$+,)$,#-.-+/)<$
I);)$!"J7)$ KL<$M*'#6'6#"*$N5*-4"*$(%$=7D)#-'.)*$ WK$
N70(*/4($ F)@GH4$ %K05724$
€$ AD6"7$ Y$€$Y0$U$€$0$O$€$2$
$ V"-)#$ X$$h0$"$$J0$n$$2$
‚$ V%&)#$ W$‚$n0$U$‚$20$$‚$X$
€$ V"-)#$)6$AD6"7$ X$€$Y0$U$€$0$2$€$m$
‚€$ V%&)#$)6$AD6"7$ L$‚€$Z0$"$‚€$U0$J$‚€$n$
‚$ o-1%#%&'%$ W$‚$O0$U$‚$0$Y$‚$2$
%K7(0&&L0&$OC3-.*&$<?>$
–! !"#$%&'$#()012-,'(/$*;)$4)&%4+/)*$J5*-4)*$,"#"$"$
1)#.":;)$(%$,#),)*-:G%*$7pD-4"*<$
•! 6*P02*&Q:0(/*/0$
–! >"J%7"3/%#("(%$Q$)$4)&C6&')$(%$')("*$"*$,)**-J-7-("(%*$
4).J-&"'p#-"*$%&'#%$)*$/"7)#%*$(%$/"#-5/%-*$7pD-4"*0$"*$
H6"-*$,)**6%.$",%&"*$(6"*$*-'6":G%*$Sg%#("(%-#)$)6$
P"7*)T<$
I);)$!"J7)$ KL<$M*'#6'6#"*$N5*-4"*$(%$=7D)#-'.)*$ WW$
N70(*/4($ F)@GH4$
l;)$ l%D":;)$
M$ @)&C6&:;)$
bi$ o-*C6&:;)$
%K7(0&&L0&$OC3-.*&$<B>$
$
•! MU%.,7)*$
I);)$!"J7)$ KL<$M*'#6'6#"*$N5*-4"*$(%$=7D)#-'.)*$ WO$
1$ +$ 1$0$+$
g%#("(%-#)$ g%#("(%-#)$ g%#("(%-#)$
g%#("(%-#)$ P"7*)$ P"7*)$
P"7*)$ g%#("(%-#)$ P"7*)$
P"7*)$ P"7*)$ P"7*)$
1$ +$ 1$4)$+$
g%#("(%-#)$ g%#("(%-#)$ g%#("(%-#)$
g%#("(%-#)$ P"7*)$ g%#("(%-#)$
P"7*)$ g%#("(%-#)$ g%#("(%-#)$
P"7*)$ P"7*)$ P"7*)$
1$ RH4$1$
g%#("(%-#)$ P"7*)$
P"7*)$ g%#("(%-#)$
2 < 5 e 15 / 3 = 4!
V e 5 = 4 !
V e F !
F!
2 < 5 ou 15 / 3 = 4!
V ou 5 = 4 !
V ou F !
V!
8(0.0/S@.-*$/0$N70(*/4(0&$
•! =$#%*)76:;)$(%$%U,#%**G%*$"#-'.Q+4"*$%$7pD-4"*$*%D6%$)$
*%D6-&'%$,"(#;)$(%$,#%4%(s&4-"$(%$),%#"()#%*<$
I);)$!"J7)$ KL<$M*'#6'6#"*$N5*-4"*$(%$=7D)#-'.)*$ WY$
parênteses mais internos!
operadores aritméticos!
operadores relacionais!
operadores lógicos!
parênteses mais internos!
pot!rad!
* !/ !div!mod!
+ !-!
não!
e !ou!
N70(*/4($/0$1'(-P)-GH4$
•! i."$/%2$(%47"#"("$6."$/"#-5/%70$Q$&%4%**5#-)$,)(%#$
"'#-J6-#$6.$/"7)#$"$%*'"<$
•! b$),%#"()#$(%$"'#-J6-:;)$*%#/%$C6*'".%&'%$,"#"$
"#."2%&"#$6.$(%'%#.-&"()$/"7)#$%.$6."$/"#-5/%7$(%$
.%*.)$+,)<$
•! MU%.,7)*$(%$"'#-J6-:;)<$
I);)$!"J7)$ KL<$M*'#6'6#"*$N5*-4"*$(%$=7D)#-'.)*$ Wh$
<variável> ! <valor>;!
lógico: A, B;!
inteiro: X;!
A ! B;!
X ! 8 + 13 div 5;!
B ! 5 = 3;!
D45*@/4&$/0$%@'(*/*$0$T*U/*$
•! b*$"7D)#-'.)*$,#%4-*".$*%#$"7-.%&'"()*$,)#$("()*$
,#)/-()*$,%7)*$6*65#-)*<$!"#"$')#&"#$-*')$,)**8/%7$*%$
(%/%$6*"#$6.$4)."&()$(%$%&'#"("$(%$("()*<$
•! b*$"7D)#-'.)*$'".JQ.$,#%4-*".$%U'%#&"#$,"#"$)*$
6*65#-)*$)*$#%*67'"()*$)J+()*<$!"#"$'"70$6*"3*%$)$
4)."&()$(%$%*4#-'"<$
•! MU%.,7)*$(%$%&'#"("$%$*"8("9$
I);)$!"J7)$ KL<$M*'#6'6#"*$N5*-4"*$(%$=7D)#-'.)*$ WX$
leia(<variável>);!
escreva(<variável>);!
caractere: nome;!
escreva(“Digite seu nome:”);!
leia(nome);!
escreva(“Obrigado ” + nome);!
!"#$%&'()')(*&$+,$-./'(.0,$1$2*(',$!3$
40.5.&$+,$607.(8'9.&$
•! !"#$%&'&#(&)*#+*,#)*-./)&#'&"&#0"#'&.10.2&#)*#
345*+6#'&"#0"3#70.48&#)*-./)39#:#(,;(,/&#3%<&,/2"&#
(&)*#+*,#=/+2&#'&"&#0"#$%&'&6#&#>03%#(&)*#+*,#7&,"3)&#
(&,#/.?"*,&+#&02,&+#$%&'&+9#
•! @&,#>0*+25*+#)*#%*</$/%/)3)*#3+#/.+2,045*+#/.2*,.3+#3&#
$%&'&#+*"(,*#+8&#/.)*.23)3+6#&0#+*136#'&"#,*'0&#(3,3#
)/,*/239#
•! :#$%&'&#(,/.'/(3%#)*#0"#3%<&,/2"&#A#)*-./)&#(&,B#
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# J#
início!
!<comando 1>;!
!<comando 2>;!
!...!
!<comando n>;!
fim.!
-.9,/':(8.&$,9$607.(8'9.&$
•! K#0"3#$&3#(,LM'3#)*#(,&<,3"348&#"3.2*,#&#';)/<&N
7&.2*#$*"#)&'0"*.23)&6#<3,3.M.)&#3#%*</$/%/)3)*#)3#
+&%048&9#
•! !"3#7&,"3#)*#)&'0"*.23,#0"#';)/<&N7&.2*#A#32,3=A+#
)*#'&"*.2L,/&+6#&+#>03/+#+8&#/.=/+O=*/+#(3,3#&+#0+0L,/&+#
*#/<.&,3)&+#(*%&+#'&"(/%3)&,*+9#
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# P#
/* Comentário de bloco servem para fazer anotações maiores, 
pois tudo que estiver entre “/**/” será ignorado pelo 
compilador. */!
início!
!<comando 1>; // Comentários de linha são breves.!
!<comando 2>; // Após o “//” o resto da linha é ignorado.!
!...!
!<comando n>;!
fim.!
%&'()')(*$;,<),/58*0$
•! Q#*+2,020,3#+*>0*.'/3%#)*#0"#3%<&,/2"&#'&,,*+(&.)*#3&#
732&#)*#>0*#&#'&.10.2&#)*#345*+#(,/"/M=3+#+*,L#
*R*'023)&#*"#0"3#+*>0S.'/3#%/.*3,6#)3#"*+"3#7&,"3#
>0*#7&,3"#*+',/23+9#
–! T*#'/"3#(3,3#$3/R&9#
–! T3#*+>0*,)3#(3,3#)/,*/239#
•! @&,#'&.=*.48&6#'3)3#348&#A#+*(3,3)3#(&,#(&.2&N*N
=O,<0%3#UVW6#&$1*M=3.)&#+*(3,3,#0"3#348&#)3#&02,3#*#
30R/%/3.)&#.3#&,<3./X348&#+*>0*.'/3%#)3+#345*+9#
•! Y*"(,*#>0*#+*#*.'&.2,3,#0"#UVW6#)*=*N+*#*R*'023,#&#
(,;R/"&#'&"3.)&#)3#+*>0S.'/39#
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# Z#
=.(9*$>,(*0$+,$607.(8'9.&$
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# [#
/* Descrição sobre o propósito do algoritmo. */!
início!
!/* Declaração de variáveis. */!
!<tipo 1>: <var_1>, <var_2>, <var_n>;!
!<tipo 2>: <var_1>, <var_2>, <var_n>;!
!<tipo n>: <var_1>, <var_2>, <var_n>;!
!/* Corpo do algoritmo */!
!<comando 1>;!
!<comando 2>;!
!<comando 3>;!
!...!
!<comando n>;!
fim.!
%?,9@0.$"#3A$-:05)0.$+,$B.'*$=8/*0$
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# \#
/* Algoritmo que calcula e imprime a média aritmética a 
partir de duas notas informadas pelo usuário. */!
início!
!/* Declaração de variáveis. */!
!real: nota_1, nota_2, nota_final;!
!/* Solicitação e leitura das notas. */!
!escreva(“Informe sua primeira nota:”);!
!leia(nota_1);!
!escreva(“Informe sua segunda nota:”);!
!leia(nota_2);!
!/* Cálculo da nota final por média aritmética. */!
!nota_final ! (nota_1 + nota_2) / 2;!
!/* Impressão do resultado na tela. */!
!escreva(“Sua nota final é: ” + nota_final + “.”);!
fim.!
%?,9@0.$"#CA$D)*/E+*+,$+,$F*'*&$+,$G8/'*$H3I$
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# E#
/* Algoritmo para calcular e imprimir a quantidade de latas 
de tinta e o custo total para pintar tanques cilíndricos. 
Sabe-se que cada lata custa R$ 50,00 e contém 5 litros, sendo 
que cada litro pode pintar 3 m2. */!
início!
!/* Declaração de variáveis. */!
!real: altura, raio, quantidade, custo, área, litro;!
!/*Solicitação e leitura de altura e raio. */ !!
!escreva(“Informe a altura:”);!
!leia(altura);!
!escreva(“Informe o raio:”);!
!leia(raio);!
!...!
%?,9@0.$"#CA$D)*/E+*+,$+,$F*'*&$+,$G8/'*$HCI$
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# ]#
!...!
!/* Cálculo de área, somando a área da base com a área !
 da lateral */!
!área ! (3,14 * pot(raio,2)) + (2 * 3,14 * raio * altura);!
!/* Cálculo quantidade de litros e latas. */!
!litro! área / 3;!
!quantidade ! litro / 5;!
!/* Cálculo do custo. */!
!custo ! quantidade * 50,00;!
!/* Impressão do resultado na tela. */!
!escreva(“Você necessita de “ + quantidade + !
 “ a um custo total de “ + custo + “.”);!
fim.!
%&'()')(*&$+,$;,0,JK.$
•! !"3#*+2,020,3#)*#+*%*48&#(*,"/2*#3#*+'&%^3#)*#0"#
<,0(&#)*#345*+#3#+*,#*R*'023)&#>03.)&#)*2*,"/.3)3+#
'&.)/45*+#+8&#32*.)/)3+9#
•! Q+#'&.)/45*+#+8&#,*(,*+*.23)3+#(&,#*R(,*++5*+#%;</'3+#
&0#,*%3'/&.3/+#*#(&)*"#&0#.8&#+*,#+3M+7*/23+9#
•! _/(&+#)*#*+2,020,3#)*#+*%*48&B#
–! +*%*48&#+/"(%*+V#
–! +*%*48&#'&"(&+23V#
–! +*%*48&#*.'3)*3)3V#
–! +*%*48&#)*#"?%M(%3#*+'&%^39#
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# `#
%&'()')(*$+,$;,0,JK.$;89@0,&$
•! !+3N+*#3#+*%*48&#+/"(%*+#>03.)&#A#(,*'/+&#2*+23,#0"3#'*,23#
'&.)/48&#3.2*+#)*#*R*'023,#0"3#348&9#
•! Q+#+*%*45*+#+/"(%*+#(&++0*"#3#+*<0/.2*#+/.23R*9#
#
•! Q&#3=3%/3,#3#'&.)/48&6#A#<*,3)&#0"#,*+0%23)&#a*,)3)*/,&#&0#
b3%+&9#
–! Y*#3#'&.)/48&#7&,#a*,)3)*/,36#&#$%&'&#“então”#A#*R*'023)&9#
–! Y*#3#'&.)/48&#7&,#b3%+3#=3/#(3,3#&#(,;R/"&#'&"3.)&#3(;+#&#
“fimse”9#
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# ID#
se (<condição>) então!
!<comando 1>;!
!<comando 2>;!
!...!
!<comando n>;!
fimse;!
%?,9@0.$"#LA$B.'*$=8/*0$5.9$6@(.M*JK.$H3I$
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# II#
/* Algoritmo que calcula e imprime a média aritmética a 
partir de duas notas informadas pelo usuário. O algoritmo 
também imprime a mensagem “Aprovado” caso a nota final seja 
igual ou maior que 7,0. */!
início!
!/* Declaração de variáveis. */!
!real: nota_1, nota_2, nota_final;!
!/* Solicitação e leitura das notas. */!
!escreva(“Informe sua primeira nota:”);!
!leia(nota_1);!
!escreva(“Informe sua segunda nota:”);!
!leia(nota_2);!
!/* Cálculo da nota final por média aritmética. */!
!nota_final ! (nota_1 + nota_2) / 2;!
!...!
%?,9@0.$"#LA$B.'*$=8/*0$5.9$6@(.M*JK.$H3I$
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# IJ#
!...!
!/* Impressão do resultado na tela. */!
!escreva(“Sua nota final é: ” + nota_final + “.”);!
!/* Testa e imprime a mensagem se a condição for!
 verdadeira. */!
!se (nota_final >= 7.0) então!
! !escreva(“Você foi aprovado!”);!
!fimse;!
fim.!
%&'()')(*$+,$;,0,JK.$-.9@.&'*$
•! !+3N+*#+*%*48&#'&"(&+23#>03.)&#&'&,,*,#0"3#+/20348&#*"#
>0*#)03+#3%2*,.3M=3+#)*(*.)*"#)*#0"3#"*+"3#'&.)/48&6#
+*.)&#(3,3#0"3#a*,)3)*/,&#*#(3,3#&02,3#b3%+&9#
•! c03.)&#3#'&.)/48&#A#a*,)3)*/,3#*R*'023#&#$%&'&#)&#
“então”9#
•! c03.2&#3#'&.)/48&#A#b3%+3#*R*'023#&#$%&'&#)&#“senão”9#
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# IP#
se (<condição>) então!
!<comando 1>;!
!...!
!<comando n>;!
senão!
!<comando 1>;!
!...!
!<comando n>;!
fimse;!
%?,9@0.$"#NA$6@(.M*JK.$,$O,@(.M*JK.$H3I$$
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# IZ#
/* Algoritmo que calcula e imprime a média aritmética a 
partir de duas notas informadas pelo usuário. O algoritmo 
também imprime a mensagem “Aprovado” caso a nota final seja 
igual ou maior que 7,0, e a mensagem “Reprovado” caso a nota 
final seja menor que 7,0. */!
início!
!/* Declaração de variáveis. */!
!real: nota_1, nota_2, nota_final;!
!/* Solicitação e leitura das notas. */!
!escreva(“Informe sua primeira nota:”);!
!leia(nota_1);!
!escreva(“Informe sua segunda nota:”);!
!leia(nota_2);!
!/* Cálculo da nota final por média aritmética. */!
!nota_final ! (nota_1 + nota_2) / 2;!
!...!
%?,9@0.$"#NA$6@(.M*JK.$,$O,@(.M*JK.$HCI$$
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# I[#
!...!
!/* Impressão do resultado na tela. */!
!escreva(“Sua nota final é: ” + nota_final + “.”);!
!/* Testa e imprime a mensagem de acordo com a avaliação da !
 condição. */!
!se (nota_final >= 7.0) então!
! !escreva(“Você foi aprovado!”);!
!senão!
! !escreva(“Você foi reprovado!”);!
!fimse;!
fim.!
%&'()')(*$+,$;,0,JK.$%/5*+,*+*$H3I$
•! !+3N+*#+*%*48&#*.'3)*3)3#>03.)&6#(&,#.*'*++/)3)*#)*#
(,&'*++3"*.2&6#+8&#3<,0(3)3+#=L,/3+#*+2,020,3+#)*#
+*%*48&9#
•! !+3)3+#>03.)&#3#*R*'048&#)*#0"3#348&#&0#$%&'&#)*#
348&#)*(*.)*#)*#0"#'&.10.2&#)*#'&.)/45*+9#
•! d*+2*+#'3+&+6#(,/"*/,&#+8&#3=3%/3)3+#3+#+*%*45*+#"3/+#
/.2*,.3+6#(3,3#)*(&/+#3+#+*%*45*+#"3/+#*R2*,.3+9#
•! @&)*#*R/+M,#=L,/&+#.O=*/+#)*#*.'3)*3"*.2&6#(&,A"6#
>03.2&#"3/+#*.'3)*3)&6#"3/+#'&"(%*R&#A#&#3%<&,/2"&9#
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# I\#
%&'()')(*$+,$;,0,JK.$%/5*+,*+*$HCI$
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# IE#
se (<condição>) então!
!se (<condição>) então!
! !<comando 1>;!
! !...!
! !<comando N>;!
!fimse;!
senão!
!se (<condição>) então!
! !<comando 1>;!
! !...!
! !<comando N>;!
!senão!
! !<comando 1>;!
! !...!
! !<comando N>;!
!fimse;!
fimse;!
%?,9@0.$"#PA$-0*&&8Q5*JK.$+,$G(8R/7)0.$H3I$
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# I]#
/* Algoritmo que recebe três valores do usuário, verifica se 
eles podem formar um triângulo. Um triângulo é uma figura 
geométrica em que cada lado é menor que a soma dos dois 
outros lados. Caso forme triângulo, o algoritmo o classifica 
(equilátero, isósceles ou escaleno) e imprime a sua 
classificação. Caso não seja triângulo, o algoritmo imprime 
uma mensagem informativa. */!
início!
!/* Declaração de variáveis. */!
!inteiro: A, B, C;!
!/* Solicitação e leitura dos valores. */!
!escreva(“Informe o tamanho do lado A:”);!
!leia(A);!
!escreva(“Informe o tamanho do lado B:”);!
!leia(B);!
!escreva(“Informe o tamanho do lado c:”);!
!leia(C);!
!...!
%?,9@0.$"#PA$-0*&&8Q5*JK.$+,$G(8R/7)0.$H3I$
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# I`#
!...!
!/* Verifica se é triângulo, caso sim classifica, caso não !
 imprime mensagem. */!
!se ((A < B + C) e (B < A + C) e (C < A + B)) então!
! !se ((A = B) e (B = C)) então!
! ! !escreva(“O triângulo é equilátero.”);!
! !senão!
! ! !se ((A = B) ou (A = C) ou (B = C)) então!
! ! ! !escreva(“O triângulo é isósceles.”);!
! ! !senão!
! ! ! !escreva(“O triângulo é escaleno.”);!
! ! !fimse;!
! !fimse;!
!senão!
! !escreva(“Estes valores não forma um triângulo.”);!
!fimse;!
fim.!
%&'()')(*$+,$;,0,JK.$+,$ST0E@0*$%&5.0U*$
•! !+3N+*#+*%*48&#)*#"?%M(%3#*+'&%^3#>03.)&#0"3#=3,/L=*%#
(&)*#3++0"/,#0"#'&.10.2&#)*-./)&#)*#=3%&,*+6#+*.)&#>0*#
(3,3#'3)3#=3%&,#^L#0"3#+*>0S.'/3#)*#/.+2,045*+#(,;(,/39#
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# JD#
escolha <variável>!
!caso <valor 1>:!
! !<comando 1>;!
! !...!
! !<comando n>;!
!caso <valor 2>:!
! !<comando 1>;!
! !...!
! !<comando n>;!
!caso <valor n>:!
! !<comando 1>;!
! !...!
! !<comando N>;!
fimescolha;!
%?,9@0.$"#VA$S,&,&$+.$6/.$H3I$
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# JI#
/* Algoritmo que recebe um número de mês e o imprime por 
extenso. */!
início!
!/* Declaração de variáveis. */!
!caractere: mes;!
!/* Solicitação e leitura do mês. */!
!escreva(“Informe o código do mês:”);!
!leia(mes);!
!/* Seleção e impressão por extenso. */!
!escolha mes!
! !caso “1”:!
! ! !escreva(“Janeiro”);!
! !caso “2”:!
! ! !escreva(“Fevereiro”);!
! !caso “3”:!
! ! !escreva(“Março”);!
! !...!
%?,9@0.$"#VA$S,&,&$+.$6/.$HCI$
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# JJ#
! !...!
! !caso “4”:!
! ! !escreva(“Abril”);!
! !caso “5”:!
! ! !escreva(“Maio”);!
! !caso “6”:!
! ! !escreva(“Junho”);!
! !caso “7”:!
! ! !escreva(“Julho”);!
! !caso “8”:!
! ! !escreva(“Agosto”);!
! !caso “9”:!
! ! !escreva(“Setembro”);!
! !caso “10":!
! ! !escreva(“Outubro”);!
! !...!
%?,9@0.$"#VA$S,&,&$+.$6/.$HLI$
C&8&#@3$%&# DE9#F+2,020,3+#)*#G&.2,&%*#H#@3,2*#DI# JP#
! !...!
! !caso “11”:!
! ! !escreva(“Novembro”);!
! !caso “12”:!
! ! !escreva(“Dezembro”);!!fimescolha;!
fim.!
!"#$%&'()*)+,-$.'$/+&012,$
!"#"$%&'("$ )*+$,-./0102"3$4.$52-&6#"$ 7$
8+!9":3;/<&$<=$&(>"/2;="$?&/&$0&(0<(&/$&3$/&1@.3$4.$<=&$
.A<&6#"$4"$7B$>/&<$CD-7$E$F-$E$9GH$3.:4"$A<.$DH$FH$9$3#"$
I"/:.024"3$?.("$<3<J/2"+$9":324./.$A<.$&$.A<&6#"$?"33<2$
4<&3$/&1@.3+$
7+!9":3;/<&$<=$&(>"/2;="$A<.H$;.:4"$0"="$4&4"3$4.$.:;/&4&$
4"23$?":;"3$A<&23A<./$4"$?(&:"H$%C-8H$K8G$.$LC-7H$K7GH$
2=?/2=&$&$423;M:02&$.:;/.$.(.3+$D$IN/=<(&$A<.$.I.;<&$"$
0J(0<("$OP$4C%H$LG$Q$/&4C?";C-8R-7H7GE?";CK8RK7H7GG+$
S+! 5&6&$<=$&(>"/2;="$?&/&$0&(0<(&/$"$T"(<=.$4.$<=&$.3I./&$4.$
/&2"$UH$.=$A<.$U$O$<=$4&4"$I"/:.024"$?.("$<3<J/2"+$D$
IN/=<(&$?&/&$.I.;<&/$"$0J(0<("$OP$V$Q$WXSY%ZY?";C/H$SG+$
!"#"$%&'("$ )*+$,-./0102"3$4.$52-&6#"$ S$
W+! ,30/.T&$<=$&(>"/2;="$A<.$/.0.'&$4"23$T&("/.3$2:;.2/"3$.$
="3;/.$A<&($4.(.3$O$"$=&2"/+$
[+! ,30/.T&$<=$&(>"/2;="$A<.$(.2&$;/\3$T&("/.3$2:;.2/"3$.$
="3;/.R"3$.=$"/4.=$0/.30.:;.+$]^(2@.$?&/&$;&($<=&$
3.(.6#"$.:0&4.&4&+$
_+! ,30/.T&$<=$&(>"/2;="$A<.$/.0.'&$<=$:`=./"$2:;.2/"$.$
2:I"/=.$3.$.3;.$O$"<$:#"$O$<=$:`=./"$?/2="+$
a+! b.:4"$0"="$4&4"3$4.$.:;/&4&$&$&(;</&$.$"$3.-"$4.$<=&$
?.33"&H$0":3;/<&$<=$&(>"/2;="$A<.$0&(0<(.$3.<$?.3"$24.&($
<3&:4"$&3$3.><2:;.3$IN/=<(&3P$
$c"=.:3P$Ca7+a$Y$dG$e$[*$
$f<(d./.3P$C_7+8$Y$dG$R$WW+a$
!"#"$%&'("$ )*+$,-./0102"3$4.$52-&6#"$ W$
*+! 5&6&$<=$&(>"/2;="$A<.$(.2&$&$&:"$4.$:&302=.:;"$4.$<=&$
?.33"&H$0&(0<(.$.$="3;/.$3<&$24&4.$.H$;&='O=H$T./2gA<.$.$
="3;/.$3.$.(&$hJ$;.=$24&4.$?&/&$T";&/$C8_$&:"3$"<$=&23G$.$
?&/&$42/2>2/$C8*$&:"3$"<$=&23G+$
i+! ,(&'"/.$<=$&(>"/2;="$A<.$(.2&$"$T&("/$4.$4"23$:`=./"3$
2:;.2/"3$.$&$"?./&6#"$&/2;=O^0&$4.3.h&4&+$D?N3$0&(0<(.$.$
&?/.3.:;.$&$/.3?"3;&+$]3.$"3$31='"("3$C$EH$RH$YH$XG$?&/&$
24.:^g0&/$&$"?./&6#"+$
!"#"$%&'("$ )*+$,-./0102"3$4.$52-&6#"$ [$
8)+! ,30/.T&$<=$&(>"/2;="$A<.$(.2&$"$0N42>"$4.$<=$?/"4<;"$.$
="3;/.$&$3<&$0(&332g0&6#"H$0":I"/=.$?&4/#"$&$3.><2/+$
$ $8+++++++++++++++++++++ $D(2=.:;"$j#"R?./.01T.($
$ $7H$S$"<$W+++++++++ $D(2=.:;"$%./.01T.($
$ $[$"<$_+++++++++++++ $V.3;<J/2"$
$ $a+++++++++++++++++++++ $c2>2.:.$%.33"&($
$ $*$&;O$8[++++++++++ $k2=?.@&$.$];.:31(2"3$l"=O3^0"3$
$ $m<;/"3++++++++++++ $9N42>"$Z:TJ(24"$$
!"#$%&'()')(*&$+,$-./'(.0,$1$2*(',$!3$
%&'()')(*&$+,$4,5,678.$
•! !"#$"%&'%'&("#)$#&$*$+,-.#/0(,."1#*$&23%$2#4'$#*(&%$#
).#56)37.89.:%$#"$;(#$<$5'%().#&$*$+)(2$:%$=#
•! !#4'(:+)()$#)$#$<$5',>$"#/3%$&(,>$"1#)$#'2#0(,.#*.)$#
"$&#)$?:3)(#".@#)'("#9.&2("A#
–! (B(03(,-.#)$#5.:)3,-.C#
–! 3%$&(,>$"#?<("=#
•! D':)(2$:%(02$:%$#$<3"%$2#%&E"#+*."#)$#$"%&'%'&("#)$#
&$*$+,-.A#
–! &$*$+,-.#5.2#%$"%$#:.#3:F53.C#
–! &$*$+,-.#5.2#%$"%$#:.#?2C#
–! &$*$+,-.#5.2#B(&3GB$0#)$#5.:%&.0$=#
H.-.#I(@0.# JK=#L"%&'%'&("#)$#M.:%&.0$#N#I(&%$#JO# O#
-./'*+.($,$9:);)0*+.($
•! -./'*+.($
–! P#4'(04'$&#B(&3GB$0#5(*(Q#)$#5.:%(&#)()."#3:9.&2()."#.'#
%&$5R."#)$#56)37."#$<$5'%()."=#
–! M.:%().&$"#"-.#5&3()."#5.0.5(:).#(#3:"%&',-.#(@(3<.#
)$:%&.#)$#'2(#$"%&'%'&(#)$#&$*$+,-.=#
•! 9:);)0*+.($
–! P#4'(04'$&#B(&3GB$0#5(*("#)$#%.%(03Q(&#B(0.&$"#(%&3@'F)."#(#
'2(#B(&3GB$0=#
–! !5'2'0().&$"#"-.#5&3()."#5.0.5(:).#(#3:"%&',-.#(@(3<.#
)$:%&.#)$#'2(#$"%&'%'&(#)$#&$*$+,-.=#
H.-.#I(@0.# JK=#L"%&'%'&("#)$#M.:%&.0$#N#I(&%$#JO# S#
contador ! contador + 1;!
acumulador ! acumulador + valor;!
%&'()')(*$+,$4,5,678.$:.;$<,&',$/.$=/>:?.$
•! T"(8"$#(#$"%&'%'&(#)$#&$*$+,-.#5.2#%$"%$#:.#3:F53.#
4'(:).#:-.#"$#%$2#5$&%$Q(#4'$#.#U'<.#)$#3:"%&',>$"#
)$B$#"$&#$<$5'%().#*$0.#2$:."#'2(#B$Q=#
#
•! I&32$3&(2$:%$V#W#(B(03()(#(#5.:)3,-.A#
–! M(".#"$;(#B$&)()$3&(V#.#@0.5.#)$#3:"%&',>$"#W#$<$5'%().=#
–! M(".#"$;(#9(0"(V#(#3:"%&',-.#(*6"#fimenquanto#W#
$<$5'%()(=#
•! !#5()(#3%$&(,-.#(#5.:)3,-.#W#&$(B(03()(=#
H.-.#I(@0.# JK=#L"%&'%'&("#)$#M.:%&.0$#N#I(&%$#JO# X#
enquanto (<condição>) faça!
!<comando 1>;!
!...!
!<comando N>;!
fimenquanto;!
%@,;50.$"#AB$C.'*$D?/*0$5*(*$<)(;*$EAF$
H.-.#I(@0.# JK=#L"%&'%'&("#)$#M.:%&.0$#N#I(&%$#JO# Y#
/* Algoritmo que calcula e imprime a média aritmética a 
partir de duas notas informadas pelo usuário. O algoritmo é 
capaz de calcular a nota final de uma turma de 50 alunos. */!
início!
!/* Declaração de variáveis. */!
!real: nota_1, nota_2, nota_final;!
!inteiro: contador;!
!/* Inicialização de variáveis. */!
!contador ! 0; !// Variável contadora.!
!/* Laço para obtenção das notas parciais, cálculo de nota!
 final e apresentação do resultado. */!
!enquanto (contador < 50) faça!
! !/* Solicitação e leitura das notas. */!
! !escreva(“Informe sua primeira nota:”);!
! !leia(nota_1);!
! !escreva(“Informe sua segunda nota:”);!
! !leia(nota_2);!
! !...!
%@,;50.$"#AB$C.'*$D?/*0$5*(*$<)(;*$E3F$
H.-.#I(@0.# JK=#L"%&'%'&("#)$#M.:%&.0$#N#I(&%$#JO# Z#
! !...!
! !/* Cálculo da nota final por média aritmética. */!
! !nota_final ! (nota_1 + nota_2) / 2;!
! !/* Impressão do resultado na tela. */!
! !escreva(“Sua nota final é: ” + nota_final + “.”);!
! !/* Incremento do contador para a próxima iteração. */!
! !contador ! contador + 1;!
!fimenquanto;!
fim.!
%&'()')(*$+,$4,5,678.$:.;$<,&',$/.$D?;$
•! T"(8"$#(#$"%&'%'&(#)$#&$*$+,-.#5.2#%$"%$#:.#?2#
4'(:).#"$#%$2#5$&%$Q(#4'$#.#U'<.#)$#3:"%&',>$"#)$B$#
"$&#$<$5'%().#*$0.#2$:."#'2(#B$Q=#
•! I&32$3&(2$:%$V#W#$<$5'%()(#.#@0.5.#)$#3:"%&',>$"V#*(&(#
(*6"#(B(03(&#(#5.:)3,-.#)$#&$*$+,-.=#
•! M(".#(#5.:)3,-.#"$;(#B$&)()$3&(V#.#0(,.#W#3:%$&&.2*3).#
$#.#(07.&3%2.#"$7'$#*(&(#(#*&6<32(#3:"%&',-.=#
H.-.#I(@0.# JK=#L"%&'%'&("#)$#M.:%&.0$#N#I(&%$#JO# [#
faça!
!<comando 1>;!
!...!
!<comando N>;!
enquanto <condição>;!
%@,;50.$"#3B$GH+?*$+*$<)(;*$EAF$
H.-.#I(@0.# JK=#L"%&'%'&("#)$#M.:%&.0$#N#I(&%$#JO# \#
/* Algoritmo que calcula e imprime a média aritmética de 
notas de uma turma. O algoritmo recebe as notas finais de 
cada aluno para realização do cálculo. A turma é de 50 
alunos. */!
início!
!/* Declaração de variáveis. */!
!real: nota_aluno, nota_total, média_turma;!
!inteiro: contador;!
!/* Inicialização de variáveis. */!
!contador ! 0; ! !// Variável contadora.!
!nota_total ! 0;! !// Variável acumuladora.!
!/* Laço para obtenção e totalização das notas de cada!
 aluno. */!
!faça!
! !escreva("Informe a nota do aluno " + (contador + 1) +!
 ": ");!
! !leia(nota_aluno);!
! !...!
%@,;50.$"#3B$GH+?*$+*$<)(;*$E3F$
H.-.#I(@0.# JK=#L"%&'%'&("#)$#M.:%&.0$#N#I(&%$#JO# K#
! !...!
! !/* Totalização das notas de cada aluno. */!
! !nota_total ! nota_total + nota_aluno;!
! !/* Incremento do contador de iterações. */!
! !contador ! contador + 1;!
!enquanto(contador < 50);!
!/* Cálculo da média aritmética da turma. */!
!média_turma ! nota_total / 50;!
!/* Apresentação do resultado do cálculo. */!
!escreva("A média da turma é: " + média_turma + ".");!
fim.!
%&'()')(*$+,$4,5,678.$:.;$I*(?JK,0$+,$-./'(.0,$
•! T"(8"$#$"%&'%'&(#)$#&$*$+,-.#5.2#B(&3GB$0#)$#5.:%&.0$#
4'(:).#"$#%$2#5$&%$Q(#".@&$#.#:]2$&.#)$#3%$&(,>$"#
4'$#.#0(,.#)$B$#9(Q$&=#
#
•! ^#0(,.#"$&G#$<$5'%().#$<(%(2$:%$#.#:]2$&.#)$#B$Q$"#
)$?:3)."#:(#3:"%&',-.#*(&(=#
•! !#B(&3GB$0#)$#5.:%&.0$#)$B$#"$&#3:353(03Q()(#5.2#Q$&.#$V#
(#5()(#3%$&(,-.V#W#3:5&$2$:%()(#)$#'2=#
H.-.#I(@0.# JK=#L"%&'%'&("#)$#M.:%&.0$#N#I(&%$#JO# _J#
para <variável> de <valor inicial> até <valor final> faça!
!<comando 1>;!
!...!
!<comando N>;!
fimpara;!
%@,;50.$"#LB$G*?.($CM;,(.$=/N.(;*+.$EAF$
H.-.#I(@0.# JK=#L"%&'%'&("#)$#M.:%&.0$#N#I(&%$#JO# __#
/* Algoritmo que recebe como entrada 50 números inteiros 
positivos e imprime o maior número informado. */!
início!
!/* Declaração de variáveis. */!
!inteiro: numero, contador, maior;!
!/* Inicialização da variável maior com o menor valor!
 !possível. */!
!maior ! 1;!
!/* Laço que solicita 50 números para o usuário e verifica!
 se é o maior informado. */!
!para contador de 1 até 50 faça!! !escreva(“Informe um número inteiro positivo:");!
! !leia(numero);!
! !...!
%@,;50.$"#LB$G*?.($CM;,(.$=/N.(;*+.$E3F$
H.-.#I(@0.# JK=#L"%&'%'&("#)$#M.:%&.0$#N#I(&%$#JO# _O#
! !...!
! !/* Verifica se é o maior número informado. */!
! !se (numero > maior) então!
! ! !maior ! numero;!
! !fimse;!
!fimpara;!
!/* Apresenta o resultado da verificação. */!
!escreva("O maior número informado foi: " + maior + ".");!
fim.!
10. Exercícios de Fixação
João Pablo 10. Exercícios de Fixação 2
1. Construa um algoritmo que, dado um conjunto de valores 
inteiros e positivos, determine qual o menor valor do 
conjunto. O final do conjunto de valores é conhecido através 
do valor zero, que não deve ser considerado.
2. Construa um algoritmo que verifique se um número inteiro 
informado pelo usuário é ou não primo.
3. A série de Fibonacci é formada pela seguinte sequência: 1, 
1, 2, 3, 5, 8, 13, 21, 34, 55, etc. Escreva um algoritmo que 
gere a série até o vigésimo termo.
4. Sendo H = 1 + 1/2 + 1/3 + 1/4 + ... + 1/N, construa um 
algoritmo para gerar o número H. O número N é fornecido 
pelo usuário.
João Pablo 10. Exercícios de Fixação 3
5. Elabore um algoritmo que calcule !N (Fatorial de N), sendo 
que o valor inteiro de N é fornecido pelo usuário. Observe 
que: !0 = 1; !N = 1 * 2 * 3 * ... * N‐1 * N.
6. A conversão de graus Fahrenheit para Celsius é obtida pela 
fórmula C = 5 / 9 * (F ‐ 32). Construa um algoritmo que 
calcule e escreva uma tabela de graus Celsius em função de 
graus Fahrenheit que variem de 50 a 150 de 1 em 1.
7. A conversão de um número de base 10 em base 2 se dá 
dividindo o número por 2 até que o quociente seja 1, então 
recupera‐se o quociente e todos os restos, começando 
pelo próprio quociente. Construa uma algoritmo que faça 
esta conversão para números naturais.
João Pablo 10. Exercícios de Fixação 4
8. Fulano tem 1,5m e cresce 2cm por ano, enquanto que  
Ciclano tem 1,1m e cresce 3cm por ano. Elabore um 
algoritmo que calcule e imprima quantos anos serão 
necessários para Ciclano ser mais alto que Fulano.
9. Construa um algoritmo que leia um conjunto de dados 
contendo a altura e o sexo de 50 pessoas. Após, calcule e 
imprima: a maior e menor altura do grupo; a média das 
alturas das mulheres; a diferença percentual entre a 
quantidade de homens e mulheres.
João Pablo 10. Exercícios de Fixação 5
10. Uma rainha requisitou os serviços de um monge e disse‐lhe 
que pagaria qualquer preço. O monge, necessitando de 
alimentos, indagou à rainha sobre o pagamento, se poderia 
ser feito em grãos de trigo dispostos em um tabuleiro de 
xadrez, de tal forma que o primeiro quadro deveria conter 
apenas um grão e os quadros subsequentes, o dobro do 
quadro anterior. Faça um algoritmo que calcule o número 
de grãos que o monge espera receber.
1/4Gustavo Rissetti gustavorissetti@gmail.com
10. Exercícios de Revisão
2/4Gustavo Rissetti gustavorissetti@gmail.com
Algoritmos Sequenciais
1) Criar um algoritmo que imprima a média aritmética entre os 
números 8, 9 e 7.
2) Ler um número inteiro e imprimir seu sucessor e seu 
antecessor.
3) Ler dois números inteiros e imprimir a soma, subtração, 
produto e divisão entre eles, mostrando a mensagem adequada 
para cada resultado.
4) Ler dois números (dividendo e divisor) e mostrar o quociente 
da divisão e o resto.
5) Entrar com um número no formato CDU e imprimir invertido: 
UDC. Armazenar o número em uma variável antes de imprimir. 
Exemplo: 123, resultará em 321.
3/4Gustavo Rissetti gustavorissetti@gmail.com
Algoritmos com Seleção
1) Entrar com um número e imprimir a mensagem: é 
múltiplo de 3 ou não é múltiplo de 3.
2) Ler um número inteiro de 3 casas decimais e imprimir se 
o algarismo da casa das centenas é par ou ímpar.
3) Construir um algoritmo que indique se o número digitado 
está no intervalo entre 20 e 90 ou não.
4) Ler um número e imprimir se ele é igual a 5, a 200, a 400, 
se está no intervalo entre 500 e 1000, inclusive, ou se está 
fora dos escopos anteriores.
5) Ler um número entre 1 e 12 e escrever o mês 
correspondente. Verificar se o mês digitado existe.
4/4Gustavo Rissetti gustavorissetti@gmail.com
Algoritmos com Repetição
1) Imprimir todos os números de 1 até 100.
2) Imprimir todos os números de 100 até 1.
3) Imprimir os números pares no intervalo de 1 a 600.
4) Imprimir todos os números de 1 até 100 e a soma deles.
5) Criar um algoritmo que calcule e imprima o valor de b^n. 
O valor de n deverá ser maior que 1 e inteiro, e o valor de 
b maior ou igual a 2 e inteiro.
6) Chico tem 1,50m e cresce 2cm por ano, enquanto Juca 
tem 1,10m e cresce 3cm por ano. Construir um algoritmo 
que calcule e imprima quantos anos serão necessários 
para que Juca seja maior que Chico.
1/34Gustavo Rissetti gustavorissetti@gmail.com
11. Introdução à Linguagem C
2/34Gustavo Rissetti gustavorissetti@gmail.com
Tradução
 Código Fonte Tradutor Código Objeto
 int soma=var1+var2 0001011001011010...
● Montador
•Tradutor para linguagens de segunda geração.
● Compilador
•Traduz todo o programa de uma vez.
● Interpretador
•Traduz o programa instrução por instrução.
3/34Gustavo Rissetti gustavorissetti@gmail.com
A Linguagem C
● A linguagem C foi criada por Dennis Ritchie, em 1972, no centro 
de Pesquisas da Bell Laboratories.
• Sua primeira utilização importante foi a reescrita do Sistema 
Operacional UNIX, que até então era escrito em assembly.
● É uma linguagem de propósito geral, sendo adequada à 
programação estruturada.
• Normalmente é usada para escrever compiladores, analisadores 
léxicos, bancos de dados, editores de texto, etc..
• Características:
● portabilidade, modularidade, compilação separada, recursos de baixo 
nível, geração de código eficiente, confiabilidade, regularidade, 
simplicidade e facilidade de uso.
4/34Gustavo Rissetti gustavorissetti@gmail.com
Estrutura Básica de um Programa C
 diretivas para o pré-processador
 declaração de variáveis globais
 main(){
 declaração de variáveis locais da função main
 comandos da função main
 }
5/34Gustavo Rissetti gustavorissetti@gmail.com
Diretivas para o Processador
● As diretivas para o processador servem para fazer a 
inclusão de bibliotecas ao código-fonte.
● Bibliotecas
• Contêm funções pré-definidas, utilizadas nos programas.
● Para incluir uma biblioteca no código:
• #include <nome da biblioteca>
• Exemplos:
● #include <stdio.h> → Funções de entrada e saída
● #include <stdlib.h> → Funções padrão
● #include <math.h> → Funções matemáticas
● #include <string.h> → Funções de texto
6/34Gustavo Rissetti gustavorissetti@gmail.com
Dev-C++ (1)
● O Dev-C++ engloba num único aplicativo todas as 
ferramentas necessárias para programar em C/C++.
• Pode ser obtido em: http://www.bloodshed.net/devcpp.html
● O pacote compõe um ambiente completo de 
desenvolvimento para a criação, debug e compilação de 
código-fonte.
● A aparência do Dev-C++ segue a tradição dos programas do 
gênero.
• A maior porção da tela está disponível para a edição de texto. 
Mas o aplicativo não deixa de lado o espaço para o 
explorador de arquivos e classes nem a área dedicada às 
mensagens de erros e avisos do compilador.
7/34Gustavo Rissetti gustavorissetti@gmail.com
Dev-C++ (2)
● Usando a IDE
• Inicie o Dev-C++ pelo atalho na área de trabalho ou pelo 
menu iniciar.
• Crie um novo arquivo, com os comandos
● File
– New Source File
• Edite o programa do próximo slide.
8/34Gustavo Rissetti gustavorissetti@gmail.com
Dev-C++ (3)
#include <stdio.h>
#include <stdlib.h>
int main(void){
 printf(“Esse eh o meu primeiro programa!”);
 system(“PAUSE”);
 return 0;
}
9/34Gustavo Rissetti gustavorissetti@gmail.comDev-C++ (4)
● Salve o programa com o nome primeiroPrograma.cpp 
● Compile o programa com os comandos:
• Executar → Compilar
• Ou simplesmente digitando CTRL+F9.
● Se houver algum erro de sintaxe, aparece uma ou mais 
mensagens no rodapé da janela.
• Neste caso, corrija o programa e repita.
● Se não houver erros, execute o programa com:
• Executar → Executar
• Ou simplesmente digitando CTRL+F10.
10/34Gustavo Rissetti gustavorissetti@gmail.com
Lembre-se
● Termine todas as linhas com ; (ponto e vírgula)
● Sempre salve o programa antes de compilar.
● Sempre compile o programa antes de executar.
● Quando ocorrer um erro de compilação, dê um duplo clique 
sobre a mensagem de erro para destacar a linha que 
contém erro no código-fonte.
• Verifique também a linha anterior, que pode ser a 
responsável pelo erro, especialmente se faltar um ;
● Use comentários, iniciados por //
11/34Gustavo Rissetti gustavorissetti@gmail.com
Template
● Para desenvolver os algoritmos já vistos, use sempre o seguinte template, 
colocando o algoritmo (em C) entre as duas chaves do método main().
#include <stdio.h>
#include <stdlib.h>
int main(void){
 // Aqui vai o algoritmo, traduzido para a linguagem C.
 // Deixar esses dois comandos no final da função main():
 system(“PAUSE”);
 return 0;
}
12/34Gustavo Rissetti gustavorissetti@gmail.com
Declarações em C
● Declaram as variáveis e seus tipos.
• Os nomes das variáveis devem conter apenas letras, dígitos e o 
símbolo _ (sublinhado/underline).
● Os principais tipos são: int, float, double e char.
● Exemplos:
int n, quantidade_valores;
float x, y, somaValores;
char sexo, nome[40];
● Em C, letras maiúsculas são diferenciadas de letras minúsculas.
int n, N;
• N e n são duas variáveis diferentes...
13/34Gustavo Rissetti gustavorissetti@gmail.com
Declarações: Algoritmo x C
● Algoritmo
real: n1,n2,n3,media;
● C
#include <stdio.h>
#include <stdlib.h>
int main(void){
 float n1,n2,n3,media;
 system(“PAUSE”);
 return 0;
}
14/34Gustavo Rissetti gustavorissetti@gmail.com
Comando de Atribuição
● Atribui o valor da direita à variável da esquerda.
● O valor pode ser:
• uma constante;
• uma variável;
• ou uma expressão.
● Exemplos
x = 4; → lê-se: x recebe 4
y = x + 2;
y = y + 4;
valor = 2.5;
sexo = 'F'
15/34Gustavo Rissetti gustavorissetti@gmail.com
Atribuição: Algoritmo x C
● Algoritmo
real: n1;
n1 ← 10.5;
● C
#include <stdio.h>
#include <stdlib.h>
int main(void){
 float n1;
 n1 = 10.5;
 system(“PAUSE”);
 return 0;
}
16/34Gustavo Rissetti gustavorissetti@gmail.com
Entrada de Dados
● Função scanf()
scanf("formatos", &var1, &var2,...)
• Para cada tipo de variável, existe um “formato” de leitura.
• O & indica que é para ler o valor e armazenar no endereço daquela variável.
● Exemplos
int i, j;
float x;
char c, nome[32];
scanf("%d", &i);
scanf("%d %f", &j, &x);
scanf("%c", &c);
scanf("%s", nome);
%d → int
%f → float
%lf → double
%c → char
%s → char[] (palavras)
17/34Gustavo Rissetti gustavorissetti@gmail.com
Entrada de Dados: Algoritmo x C
● Algoritmo
real: n1,n2,n3;
leia(n1);
leia(n2);
leia(n3);
leia(n1, n2, n3);
● C
#include <stdio.h>
#include <stdlib.h>
int main(void){
 float n1,n2,n3;
 scanf(“%f”, &n1);
 scanf(“%f”, &n2);
 scanf(“%f”, &n3);
 scanf(“%f %f %f”,&n1,&n2,&n3);
 system(“PAUSE”);
 return 0;
}
18/34Gustavo Rissetti gustavorissetti@gmail.com
Operadores Matemáticos
Operador Exemplo Comentário
+ x + y Soma x e y
- x - y Subtrai y de x
* x * y Multiplica x e y
/ x / y Divide x por y
% x % y Resto da divisão de x por y
++ x++ Incrementa em 1 o valor de x
-- x-- Decrementa em 1 o valor de x
19/34Gustavo Rissetti gustavorissetti@gmail.com
Entrada de Dados: Algoritmo x C
● Algoritmo
real: n1,n2,n3,media;
leia(n1);
leia(n2);
leia(n3);
media ← (n1+n2+n3)/3;
● C
#include <stdio.h>
#include <stdlib.h>
int main(void){
 float n1,n2,n3,media;
 scanf(“%f”, &n1);
 scanf(“%f”, &n2);
 scanf(“%f”, &n3);
 media = (n1+n2+n3)/3;
 system(“PAUSE”);
 return 0;
}
20/34Gustavo Rissetti gustavorissetti@gmail.com
Saída de Dados
● Função printf()
printf("formatos", var1, var2,...)
• Para cada tipo de variável, existe um “formato” de leitura.
● Exemplos
int i, j;
float x;
char c, nome[32];
printf("%d", i);
printf("%d %f", j, x);
printf("%c", c);
printf("%s", nome);
%d → int
%f → float
%lf → double
%c → char
%s → char[] (palavras)
21/34Gustavo Rissetti gustavorissetti@gmail.com
Saída de Dados: Algoritmo x C
● Algoritmo
inteiro: i, j;
real: x;
i ← 1;
j ← 2;
x ← 3.4
escreva(i);
escreva(j, x);
● C
#include <stdio.h>
#include <stdlib.h>
int main(void){
 int i,j;
 float x;
 i = 1;
 j = 2;
 x = 3.4;
 printf(“%d”, i);
 printf(“%d, %f”, j, x);
 system(“PAUSE”);
 return 0;
}
22/34Gustavo Rissetti gustavorissetti@gmail.com
Exemplos (1)
#include <stdio.h>
#include <stdlib.h>
int main(void){
 // Definição de variáveis
 double n1, n2, n3, media;
 // Entrada de dados
 printf(“Digite os valores de n1, n2 e n3:”);
 scanf("%lf %lf %lf",&n1, &n2, &n3);
 // Operação
 media = (n1 + n2 + n3) / 3; 
 // Saída de dados
 printf("%lf", n1);
 printf("%lf", n2);
 printf("%lf", n3);
 printf("%lf", media);
 system("PAUSE");
 return 0;
}
23/34Gustavo Rissetti gustavorissetti@gmail.com
Exemplos (2)
#include <stdio.h>
#include <stdlib.h>
int main(void){
 // Definição de variáveis
 int i, j;
 float x;
 char c, nome[32];
 // Entrada de dados
 printf(“Digite os valores de i, j, x, c e nome:”);
 scanf("%d",&i);
 scanf("%d %f",&j, &x);
 scanf("%c",&c);
 scanf("%s",nome);
 // Exibição de dados
 printf("%d", i);
 printf("%d, %f", j, x);
 printf("%c", c);
 printf("%s", nome);
 system("PAUSE");
 return 0;
}
24/34Gustavo Rissetti gustavorissetti@gmail.com
Exemplos (3)
#include <stdio.h>
#include <stdlib.h>
int main(void){
 // Declaração de variáveis
 int n, quantidade_valores;
 float x, y, somaValores;
 char sexo, nome[32];
 // Operação
 somaValores = 1 + 1;
 // Exibição de dados
 printf("somaValores=%f", somaValores);
 system("PAUSE");
 return 0;
}
25/34Gustavo Rissetti gustavorissetti@gmail.com
Exemplos (4)
#include <stdio.h>
#include <stdlib.h>
int main(void){
 // Definição de variáveis
 double n1, n2, n3, media;
 // Entrada de dados
 printf(“Digite n1, n2 e n3:”);
 scanf("%lf %lf %lf",&n1,&n2,&n3);
 // Operação
 media = (n1 + n2 + n3) / 3; 
 // Saída de dados
 printf("%lf", media);
 system("PAUSE");
 return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(void){
 // Definição de variáveis
 double n1, n2, n3, media;
 // Entrada de dados
 printf(“Digite n1, n2 e n3:”);
 scanf("%lf %lf %lf",&n1,&n2,&n3);
 // Operação
 media = (n1 + n2 + n3) / 3; 
 // Saída de dados
 Printf("%.2lf", media);
 system("PAUSE");
 return 0;
}
26/34Gustavo Rissetti gustavorissetti@gmail.com
Operadores de Atribuição
Operador Exemplo Comentário
= x = y Atribui o valor de y a x
+= x += y Equivale a x = x + y
-= x -= y Equivale a x = x - y
*= x *= y Equivale a x = x * y
/= x /= y Equivale a x = x / y
%= x %= y Equivale a x = x%y
27/34Gustavo Rissetti gustavorissetti@gmail.com
Funções Matemáticas
#include <math.h>
Função Exemplo Comentário
ceil ceil(x) Arredonda o número real para cima
cos cos(x) Cosseno de x (x em radianos)
exp exp(x) e elevado à potencia x
fabs fabs(x) Valor absoluto de x
floor floor(x) Arredonda o número real para baixo
log log(x) Logaritmo natural de x
log10 log10(x) Logaritmo decimal de x
pow pow(x,y) Calcula x elevado à potência y
sin sin(x) Seno de x
sqrt sqrt(x)

Outros materiais