Você está na página 1de 63

CURSO DE INTRODUO A INFORMTICA

Fundamentos de
Linguagem C++

 
 
  !"$#%&#"(')*),+!#.-0/!& +!!# 12435768:9; <=

SERRA / ES

UCL

Apostila de Informtica Bsica

Apresentao

O texto que segue um resumo dos tpicos fundamentais sobre a linguagem C.


C uma linguagem poderosa, robusta, flexvel e madura. Conhecer todos os seus detalhes, truques
e armadilhas requer um estudo criterioso e profundo. Mas o C uma linguagem de sintaxe simples e
elegante que permite rpido entendimento pelo programador iniciante. Desde sua criao, o C tornou-se
uma linguagem popular tanto entre programadores profissionais quanto iniciantes.
Neste contexto, procuramos abordar os tpicos essenciais da linguagem que nos permite escrever
um programa completo e til.
Esperamos ter alcanado os objetivos propostos, e em prximas edies, aprimor-las.

Jean Carlo Ferreira de Oliveira


Jos Eduardo dos Santos Bastos
Alessandro Colodeti

UCL

Apostila de Informtica Bsica

INTRODUO
A evoluo do processamento de dados automtico tem como ponto de partida o sculo 19, onde
ocorreram diversas tentativas para se construir aparelhos mecnicos capazes de efetuar operaes
matemticas. Hoje, estes aparelhos no so mais mecnicos e sim eletrnicos. Os computadores ganharam
um grande espao de utilizao, onde no so mais usados apenas para efetuar operaes matemticas.
Desta forma, grande o nmero de pessoas interessadas em aprender a utilizar os seus recursos, no s
como usurios, mas tambm como profissionais que desenvolvem e buscam solues para problemas
especficos de cada profisso existente.
Esta apostila tem por finalidade introduzir o leitor aos conceitos de programao de computadores,
fazendo uso da linguagem C. Est sendo considerado que o estudante no possui conhecimento da sintaxe
desta linguagem, mas j tem familiaridade com a lgica de programao a nvel bsico.
A linguagem C foi projetada por Dennis M. Richie e Brian W. Kernighan em 1972, no
laboratrios da Bell, sendo derivada da linguagem ALGOL 68 e baseada na linguagem B de Ken Tompson,
que por sua era uma evoluo da linguagem BCPL. Esta poderosa linguagem nasceu da necessidade de
uma forma mais fcil que a linguagem de montagem: assembly.
Entre as principais caractersticas do C, podemos citar:
O C uma linguagem de alto nvel com uma sintaxe bastante estruturada e flexvel tornando sua
programao bastante simplificada.

Programas em C so compilados, gerando programas executveis.

O C compartilha recursos tanto de alto quanto de baixo nvel, pois permite acesso e programao direta
do microprocessador. Com isto, rotinas cuja dependncia do tempo crtica, podem ser facilmente
implementadas usando instrues em Assembly. Por esta razo o C a linguagem preferida dos
programadores de aplicativos.
O C uma linguagem estruturalmente simples e de grande portabilidade. O compilador C gera cdigos
mais enxutos e velozes do que muitas outras linguagens.
Embora estruturalmente simples (poucas funes intrnsecas) o C no perde funcionalidade pois permite
a incluso de uma farta quantidade de rotinas do usurio. Os fabricantes de compiladores fornecem uma
ampla variedade de rotinas pr-compiladas em bibliotecas.
A grande aceitao da linguagem decorre da elegncia em conciliar seu poder de programao em baixo
nvel com seu alto grau de portabilidade, ou seja, um programa escrito em C pode ser rodado em qualquer
plataforma.

UCL

Apostila de Informtica Bsica

Sumrio
Apresentao_______________________________________________________________________________ 2
INTRODUO _____________________________________________________________________________ 3
Sumrio ___________________________________________________________________________________ 4
1.

O que a Lgica ? ____________________________________________________________________ 5


Existe Lgica no dia-a-dia ? _______________________________________________________________ 5
Algoritmizando a Lgica __________________________________________________________________ 5

2.

Algoritmos __________________________________________________________________________ 6
Mtodo para a construo de Algoritmos _____________________________________________________ 8
Formas de Representao Algortmica _______________________________________________________ 8

3.

Constantes, Variveis, Expresses, Operadores e Funes de Biblioteca ______________________ 12


Constante _____________________________________________________________________________ 12
Variveis _____________________________________________________________________________ 14
Expresses ____________________________________________________________________________ 16
Operadores ____________________________________________________________________________ 17
Funes de biblioteca____________________________________________________________________ 17

4.

Comandos __________________________________________________________________________ 19
Comandos de Atribuio _________________________________________________________________ 19
Comandos de Entrada e Sada de Dados _____________________________________________________ 20
Estrutura Seqencial ____________________________________________________________________ 23
Comentrios___________________________________________________________________________ 23

5.

Estrutura de Controle de Fluxo de Programao __________________________________________ 24


Estrutura Condicional ___________________________________________________________________ 24
Estrutura de Repetio___________________________________________________________________ 27

6.

O Ambiente C++ Builder _____________________________________________________________ 34


A Janela Principal ______________________________________________________________________ 34
A janela Form _________________________________________________________________________ 37
A janela Code Editor ____________________________________________________________________ 37
A janela Object Inspector ________________________________________________________________ 37

7.

EXERCCIOS PROPOSTOS __________________________________________________________ 41

>@?:ABDCFECGH0IKJML
_________________________________________________________________________ 41
N@O:PQDRFSRTU0VXWY
__________________________________________________________________________ 43
Z@[:\]D^F_^`a0bdcfe
__________________________________________________________________________ 43
g@h:ijDkFlkmn0oXpq
__________________________________________________________________________ 44
r@s:tuDvFwvxy0zd{f|
__________________________________________________________________________ 46
}@~:DF0df
__________________________________________________________________________ 49
@:DF0df
__________________________________________________________________________ 49
@:DF0df
__________________________________________________________________________ 53
@:DF0K0
_________________________________________________________________________ 53
@:DF0K:
_________________________________________________________________________ 53
@:DF0K
_________________________________________________________________________ 54
@: F0K0
_________________________________________________________________________ 54
@:DF0K
_________________________________________________________________________ 55
@:DF0K0

_________________________________________________________________________ 55

UCL

Apostila de Informtica Bsica

1. O que a Lgica ?
A Lgica trata da correo do pensamento. Como filosofia, ela procura saber por que pensamos
assim e no de outro jeito. Como arte ou tcnica, ela nos ensina a usar corretamente as leis do pensamento.
Poderamos dizer tambm que a Lgica a arte de pensar corretamente e, visto que a forma mais
complexa do pensamento o raciocnio, a Lgica estuda ou tem em vista a "correo do raciocnio".
Podemos ainda dizer que a Lgica tem em vista a "ordem da razo". Isto d a entender que a nossa razo
pode funcionar desordenadamente, pode por as coisas de pernas para o ar. Por isso a Lgica ensina a
colocar Ordem no Pensamento.
Exemplos:
a) Todo mamfero animal.
Todo cavalo mamfero.
Portanto, todo cavalo animal.
b) Kaiton pas do planeta Stix.
Todos os Xinpins so de Kaiton.
Portanto, todos os Xinpins so Stixianos.

Existe Lgica no dia-a-dia ?


Sempre que pensamos, a Lgica ou a Lgica nos acompanha necessariamente. Tambm quando
falamos, pois a palavra falada a representao do pensamento; e, visto que a palavra escrita a
representao da palavra falada, tambm pensamos quando escrevemos, utilizando a Lgica ou a Ilgica.
Da percebemos a importncia da Lgica na nossa vida no s na teoria, como tambm na prtica, j que
quando queremos pensar, falar ou escrever corretamente precisamos colocar Ordem no Pensamento, isto
, utilizar Lgica.
Exemplos:
a) A gaveta est fechada.
A bala est na gaveta.
Preciso primeiro abrir a gaveta, para depois pegar a bala.

Algoritmizando a Lgica
Construir algoritmos objetivo fundamental de toda a programao, mas, afinal, o que
Algoritmo?
"Algoritmo uma seqncia de passos que visam atingir um objetivo bem definido."
Apesar de achar este nome estranho, algoritmos so comuns em nosso cotidiano, como, por
exemplo, uma receita de bolo. Nela est descrita uma srie de ingredientes necessrios, uma seqncia de
diversos passos aes - a serem cumpridos para que se consiga fazer determinado tipo de bolo - objetivo
bem definido aguardado ansiosamente por todos. Para aprimorar nosso conceito de algoritmo, vamos
tornar mais evidente alguns outros conceitos, como, por exemplo, o de ao:
UCL

Apostila de Informtica Bsica

"Ao um acontecimento que a partir de um estado inicial, aps um perodo de tempo finito, produz
um estado final previsvel e bem definido", em que:
"Estado a situao atual de dado objeto."

Portanto, podemos redefinir Algoritmo como:


"Algoritmo a descrio de um conjunto de aes que, obedecidas, resultam numa sucesso finita de
passos, atingindo o objetivo."
Em geral, um Algoritmo destina-se a resolver um problema: fixa um padro de comportamento a
ser seguido, uma norma de execuo a ser trilhada, com vistas a alcanar, como resultado final, a soluo
de um problema.

2. Algoritmos
Como visto, um Algoritmo destina-se a resolver um problema: fixa um padro de comportamento a
ser seguido, uma norma de execuo a ser trilhada, com vistas a alcanar, como resultado final, a soluo
de um problema.
"Algoritmo a descrio de um conjunto de aes que, obedecidas, resultam numa sucesso finita
de passos, atingindo o objetivo."
ou
Algoritmo um conjunto de aes/instrues ordenadas logicamente e com um objetivo
especfico a atingir.
Podemos, ento, descrever uma atividade bem cotidiana, como, por exemplo, trocar uma lmpada.
Apesar de aparentemente bvias demais, muitas vezes fazemos esse tipo de atividade inconscientemente.
Sem percebermos seus pequenos detalhes. Vejamos se ela fosse descrita passo a passo:

pegue uma escada;


posicione-a embaixo da lmpada;
busque uma lmpada nova;
suba na escada;
retire a lmpada velha;
coloque a lmpada nova.

Involuntariamente, j seguimos uma determinada seqncia de aes que, representadas neste


algoritmo, fazem com que ele seja seguido naturalmente por qualquer pessoa, estabelecendo um padro de
comportamento (qualquer pessoa agiria da mesma maneira).
A seqenciao um conveno com o objetivo de reger o fluxo de execuo, determinando qual
ao vem a seguir.
Reexaminando o algoritmo anterior, notamos que ele tem um objetivo bem definido: trocar uma
lmpada. Porm, e se a lmpada no estivesse queimada? O algoritmo faz com que ela seja trocada do
mesmo modo, portanto, o algoritmo no prev essa situao.
UCL

Apostila de Informtica Bsica

Para solucionar esse problema, podemos efetuar um teste, verificando se a lmpada est ou no
queimada:
ligue o interruptor;
se a lmpada no acender, ento:
pegue uma escada;
posicione-a embaixo da lmpada;
busque uma lmpada nova;
suba na escada;
retire a lmpada velha;
coloque a lmpada nova.
O que ocorreu neste algoritmo foi a incluso de um teste seletivo (condio) que determina qual ou
quais aes sero executadas (note que anteriormente todas o eram), dependendo do resultado da inspeo
da condio.
Existem muitas formas de resolver um problema, afinal cada pessoa pensa e age de maneira
diferente. Isto significa que para este mesmo problema poderamos ter diversas solues diferentes e
corretas (se todas atingissem o mesmo resultado), e portanto somente o bom senso capaz de indicar qual
delas a mais adequada.
Esta soluo aparentemente adequada, porm, no prev a possibilidade de que a lmpada nova
no funcione e, portanto, no atinja o objetivo nesta situao especfica. Devemos ento trocar a lmpada
diversas vezes, se necessrio, at que funcione:
ligue o interruptor;
se a lmpada no acender, ento:
pegue uma escada;
posicione-a embaixo da lmpada;
busque uma caixa de lmpadas novas;
suba na escada;
retire a lmpada velha;
coloque a lmpada nova;
enquanto a lmpada no acender, faa:
retire a lmpada;
coloque outra lmpada.
A condio (lmpada no acender) permaneceu, e estabelecemos um fluxo repetitivo que ser
finalizado assim que a condio for falsa, ou seja, que a lmpada acenda. Percebemos que o nmero de
repeties indefinido, e que depende apenas da condio estabelecida, o que leva a repetir as aes at se
alcanar o objetivo: trocar a lmpada queimada por uma que funcione.
Todo o exemplo foi desenvolvido a partir do problema de descrevermos, os passos necessrios para
efetuar a troca de uma lmpada, ou seja, construir um algoritmo para esse fim.
Inicialmente, tnhamos um pequeno conjunto de aes que deveriam ser executadas, todas passo a
passo, uma aps a outra, compondo uma ordem seqencial de execuo, a estrutura seqencial.
Notamos, ento, que nem sempre todas as aes previstas deveriam ser executadas. Tal
circunstncia sugeriu que um determinado conjunto de aes fosse evitado, selecionado conforme o
resultado de uma condio. Construmos assim uma estrutura seletiva atravs de um teste condicional que
permitia ou no que o fluxo de execuo passasse por um determinado conjunto de aes.
Quando nos deparamos com a inviabilidade da aplicao da estrutura de seleo para a verificao
do xito na troca da lmpada, precisamos repetir um mesmo trecho do algoritmo, o que foi feito alterandoUCL

Apostila de Informtica Bsica

se o fluxo de execuo de modo que este passasse pelo mesmo trecho diversas vezes, enquanto a condio
no fosse satisfeita; construindo assim, uma estrutura de repetio.
Devemos ressaltar que qualquer pessoa, fundamentada na prpria experincia, seria capaz de
resolver o problema na prtica, envolvendo inclusive circunstncias inusitadas que pudessem surgir.
Porm, um computador no tem conhecimento prvio e nem adquire experincias, o que implica que
devemos determinar em detalhe todas as aes que ele deve executar, prevendo todos os obstculos e a
forma de transp-los, isto , descrever uma seqncia finita de passos que garantam a soluo do
problema. Tal atividade realizada pelos programadores, que podemos chamar de "construtores de
algoritmos".

Mtodo para a construo de Algoritmos


Podemos especificar um mtodo que traduza uma sequncia lgica que leve construo de
algoritmos:
i) Ler atentamente o enunciado
justamente o enunciado do exerccio que fornece o encaminhamento necessrio resoluo do
problema, que se torna, portanto, dependente de sua completa compreenso.
ii) Retirar do enunciado a relao das entradas de dados
Atravs do enunciado podemos descobrir quais so os dados que devem ser fornecidos, a partir dos
quais desenvolveremos os clculos.
iii) Retirar do enunciado a relao das sadas de dados
Atravs do enunciado podemos descobrir quais so os dados que devem ser emitidos para compor o
resultado final, objetivo do algoritmo.
iv) Determinar o que deve ser feito para transformar as entradas nas sadas especificadas.
nesta fase que teremos a construo do algoritmo propriamente dito, pois, a partir de alguns
requisitos especificados, devemos determinar qual sequncia de aes capaz de transformar um conjunto
definido de dados nas informaes de resultado.
v) Construir o algoritmo
Com base no conhecimento disponvel a respeito do problema, podemos montar o algoritmo
definitivo.
vi) Executar o algoritmo
Implica executar todas as aes descritas seguindo o fluxo de execuo estabelecido, verificando se
os resultados obtidos correspondem ao esperado quando da montagem do algoritmo, detectando ento
algum possvel erro no desenvolvimento deste. Essa atividade conhecida por teste de mesa.

Formas de Representao Algortmica


Para se obter uma melhor clareza dos algoritmos; costuma-se desenvolv-los e ilustr-los com o
auxlio de diagramas.
Nos exemplos usaremos o algoritmo para trocar um pneu furado:
1
2

UCL

abrir o porta-malas
retirar o estepe e o macaco

Apostila de Informtica Bsica

3
4
5
6
7
8
9
10
11
12
13

o estepe est ok?


se sim, coloc-lo prximo ao pneu furado
se no, regularizar sua condio
afrouxar os parafusos da roda
posicionar o macaco
enquanto o carro estiver baixo
levantar o carro
retirar os parafusos e o pneu furado
colocar o estepe e os parafusos
abaixar o carro e retirar o macaco
apertar os parafusos
guardar o macaco e o pneu furado
fechar o porta-malas
providenciar o conserto do pneu furado

Os diagramas mais conhecidos so:

Portugol: um pseudolinguagem de programao (simbiose do Portugus com o ALGOL e


PASCAL), ou seja uma notao de um programa. A idia permitir que com um conjunto bsico
frases construdas seja possvel pensar na soluo do problema e que esta soluo seja facilmente
implementada no computador. o mais utilizado.

F*
*7 4:
d7 :0X *
(: %0!0





~


 


  !#"%$&'()!$
*,+-$.%/
0$2143!
+ 15$!16'$
'
78295:<;%:8=>
?,8@A>;B>;%8
CD ;%>2??8 D 95EF:HG D ?0I>2: J8
K!LNM O
PQFO
R0SUT%ORRS
V LPW
S
XLQFYRO
R0S2Z4[O2RO
\] Z5S
Z6L^S
Z4[.PL]!Z6\]!RO
_
S
Z
` SaSbTcO
R0SALdZ!QeL[.LLfS2Zg[hO!RO\i]5Z5S2Z
j,kO!Y lOR,SmTcO
RRSUL^RLQeYRO
R0SAnfOT%O
T%S
j.[L!RoQeO
R,S
Z4[.ORO!\i]!ZdS
Z
p,qr!str!s0uUvAr
w%rwcuAxfuzy{xbq}|iqsr2tu
~

%,6.oe^A
2
Hc

%<!0%
FA
6.

UCL

d(

Diagrama de Blocos: algumas figuras geomtricas e dizeres so usados para representar as


diversas operaes do computador, sendo ligados por setas, para indicar a seqncia de sua
execuo. Tambm muito comum a sua utilizao.

Apostila de Informtica Bsica

Exemplo do caso do pneu furado com diagrama de Blocos:


Incio

Abrir o porta-malas

Retirar o estepe e o
macaco

estepe
ok?

no

sim
Coloc-lo prximo ao
pneu furado

Regularizar sua
condio

Afrouxar os parafusos
da roda
Posicionar o
macaco

o carro
est baixo?

no

sim
Levantar o
carro

Retirar os parafusos
e o pneu furado
Colocar o estepe e
os parafusos
Abaixar o carro e
retirar o macaco

Apertar os parafusos

Guardar o macaco e
o pneu furado

Fechar o porta-malas

Providenciar o conserto do pneu furado

Fim

UCL

Diagrama de Chapin (ou Nassi-Sneider): s permite representar as estruturas de controle de


forma padronizada.

Apostila de Informtica Bsica

10

Exemplo do caso do pneu furado com diagrama de Chapin:


Abrir o porta-malas
Retirar o estepe e o macaco
estepe ok?

sim

Coloc-lo prximo
ao pneu furado

no

Regularizar sua
condio

Afrouxar os parafusos da roda


Posicionar o macaco
Repita

sim

o carro est baixo?

Levantar
o carro

no

Interrompa

Retirar os parafusos e o pneu furado


Colocar o estepe e os parafusos
Abaixar o carro e retirar o macaco
Apertar os parafusos
Guardar o macaco e o pneu furado
Fechar o porta-malas
Providenciar o conserto
do pneu furado

UCL

C++: Nesta apostila, alm das representaes em Portugal e Diagrama de Blocos, os algoritmos
tambm sero representados na linguagem C++, para que o leitor v se acostumando com os
termos tcnicos que sero utilizados.

Apostila de Informtica Bsica

11

3. Constantes, Variveis, Expresses, Operadores e Funes de


Biblioteca
Constante
Uma constante um determinado valor fixo que no se modifica ao longo do tempo, durante a
execuo de um programa.
Uma constante pode ser um nmero, um valor lgico ou uma seqncia de caracteres quaisquer
com algum significado para o problema em estudo. Conforme o seu tipo, a constante classificada como
sendo numrica, lgica ou literal.

b
!Fbe26.f
<%

A representao de uma constante numrica nos algoritmos feita no sistema decimal, podendo ser
um nmero com ou sem parte fracionria, positivo ou negativo e at mesmo nmero exponencial.
Ex.:
a) 25;
b) 3,1416;
c) 7,8 x 10;
d) -15.
Portugol
inicio
constante A
fim

-15;
Linguagem C

main
{
const A = -15;
}

Algoritmo

in cio

con s t = -1 5

fi m

b
!Fbe265.<%2
um valor lgico, isto , que s pode ser falso ou verdadeiro, usado em proposies lgicas. No
Portugol e no Fluxograma a constante lgica representada pela palavra falso ou verdadeiro, j na
linguagem C, pelas respectivas palavras false ou true.
Portugol
inicio
constante A
fim

false;
Linguagem C

main
{
const A = false;
}

UCL

Algoritmo

in cio

con st A = false

fim

Apostila de Informtica Bsica

12

b
!Fbe26<e

Uma constante deste tipo pode ser qualquer seqncia de caracteres ( letras, dgitos ou smbolos
especiais) que conforme um literal com algum significado para o problema em estudo.
Toda constante literal apresentada ser colocada entre aspas para que no seja confundida com
outro item qualquer.
O numeral entre aspas considerado como uma seqncia de dgitos (literal), e no como uma
constante numrica.
Ex.:
a) Jos e Silva;
b) terra;
c) 123456;
d) falso.
Portugol
inicio
constante A
fim

Algoritmo

cH

in cio

Linguagem C

co ns t A = "terra"

main
{
const A = terra;
}

fim

Exerccios:
1. Identificar o tipo de cada uma das constantes abaixo:
a) 21;
b) BOLA;
c) VERDADEIRO;
d) 0,21 x 10;
e) falso
2. Dar o tipo de cada uma das constantes
a) 613
b) 613,0
c) -613
d) 613
e) -3,012 * 1015
f) 17*1012
g) -28,3 * 10 -23
h) Fim de Questo
i) verdadeiro

UCL

Apostila de Informtica Bsica

13

Variveis
Varivel uma posio de memria cujo contedo
pode variar ao longo do tempo durante a
execuo de um programa. Embora ela possa assumir diferente valores, ela s pode armazenar um valor a
cada instante.
Toda varivel identificada por um identificador. Assim, por exemplo, num algoritmo para
clculo das razes de uma equao do 2 grau (ax + bx + c), os identificadores A, B e C podem representar
as posies de memria que armazena os coeficientes, neste caso, fazendo o papel das variveis na
Matemtica.

-<%
d

Um identificador formado por um ou mais caracteres, sendo que o primeiro caractere deve
obrigatoriamente ser uma letra e os caracteres seguintes podero ser alfanumricos, no sendo permitido o
uso de smbolos especiais.
recomendado que o nome das variveis sejam os mais significativos possveis, refletido da
melhor maneira a natureza de seus valores armazenados. Isto ajuda muito no entendimento do algoritmo.
Ex.:
Identificadores permitidos
Identificadores no permitidos
A
X5
5B
x.y
NOTA
A32B
E(13)
B@D
matricula
A_13
A-B
NOTA[11]

0c<!
!A
B!<.c2
As variveis s podem armazenar valores de um mesmo tipo, de maneira que tambm so
classificadas como sendo numricas, lgicas e literais.
Para indicar o tipo de uma ou mais variveis usada a declarao de variveis. No momento que
se declara uma varivel, feita a associao do nome escolhido, ou identificador, com a respectiva posio
de memria que o mesmo passa a simbolizar.
Uma vez declara da varivel, qualquer referncia que se faa ao seu identificador implica a
referncia ao contedo do local da memria representado pelo mesmo.
Varivel
inteiro
real
real
real
caracter
caracter
lgico

UCL

Descrio
Variveis do tipo numricas
Contagem, pequenos nmeros, controle de lao.
16 bits; -32768 a 32767.
Cientfica (7 dgitos de preciso)
32 bits; 3,4x10-38 a 3,4x10+38.
Cientfica (15 dgitos de preciso)
64 bits; 1,7x10-308 a 1,7x10+308.
Cientfica (19 dgitos de preciso)
80 bits; 3,4x10-4932 a 1,1x10+4932.
Variveis do tipo literal
Um nico byte, um nico caracter.
8 bits; 0 a 256.
Qualquer conjunto de caracteres alfanumricos.
8 bits; -128 a +128.
Variveis do tipo lgica
Conjunto de valores FALSO ou VERDADEIRO
em proposies lgicas.

C++
int
short int
float
double
long double
char
AnsiString
bool

Apostila de Informtica Bsica

14

Portugol
inicio
inteiro: COD, MAT;
caracter[40]: NOME;
caracter: SEXO;
lgico: APROVADO;
fim
Linguagem C
main
{
int: COD, MAT;
caracter[40]: NOME;
caracter: SEXO;
boolean: APROVADO;
}

Algoritmo

in cio

i n te ir o :

C OD, M AT
caracter[4 0 ]: N O M E
caracter: S E X O
l g ico : A P R O V A D O

f im

Exerccios:
1. Assinalar com um X os identificadores vlidos:
(
(
(
(
(

) VALOR
) X2
)3x4
) xyz
) NOTA

UCL

(
(
(
(
(

) SALRIO-LQUIDO
) NOTA*DO*ALUNO
) MARIA
) NOMEDAEMPRESA
) AH!

(
(
(
(
(

) SALRIO_BRUTO
) A1B2C3
) KM/H
) SALA215
) m{a}

Apostila de Informtica Bsica

15

Expresses
5!hd524,<FAe<%
Denomina-se expresses aritmticas aquelas cujos operadores so aritmticos e cujos operandos
so constantes e/ou variveis do tipo numrico.
O conjunto de operaes bsicas adotado e a notao utilizada no Portugal e Fluxograma
semelhante ao que se conhece da Matemtica, a saber:
Algoritmo

C++

adio
+
multiplicao
*
potenciao
pow(x,n)
Sendo x o nmero que se deseja elevar e n o ndice da
potenciao
Ex.: 9 = pow(9,3)

Algoritmo

C++

subtrao
diviso
/
radiciao
sqrt(x)
Sendo x o nmero de que se deseja obter a raiz
quadrada.
Ex.: 100 = sqrt(100)

Obs1.: No permitido omitir o operador de multiplicao, o que comum nas expresses matemticas.
Isto evita confuso quanto aos nomes de variveis, pois numa expresso da forma AB+C, no possvel
saber se AB nome de uma varivel ou a multiplicao entre o contedo de duas variveis, cujos nome so
A e B.
Obs2.: Nas expresses matemticas, as operaes guardam entre si uma relao de prioridade, tal como
na Matemtica:
Prioridade
1
2
3

Operao
potenciao, radiciao
multiplicao, diviso
Adio, subtrao

Para se obter uma seqncia de clculo diferente, vrios nveis de parnteses podem ser usados
para quebrar as prioridades definidas. No permitido o uso de colchetes ou chaves, uma vez que estes
smbolos so utilizados para outras finalidades.
Ex.:

P (P A) (P B ) (P C )
b) A B (C + D / (E 1) F ) + G
a)

5!hd526 5 <%2
comum nos algoritmos surgirem situaes em que a execuo de uma ao, ou seqncia de
subaes, est sujeita a uma certa expresso lgica.
Denomina-se expresso lgica a expresso cujos operadores so lgicos e cujos operandos so
relaes, constantes e/ou variveis do tipo lgico.

UCL

Apostila de Informtica Bsica

16

Operadores
hh!
 6!h<%!
Dentro de relaes lgicas, usaremos os conectivos lgicos usuais:
Algoritmo
e
ou
no

C++
&&
||
!

Ex.:
a) se (resto(x,2) = 0) e (resto(x,3) = 0) ento
A = nmer o divisvel por 6
b) se (cabelos = azuis) ou (olhos = vermelho) ento
tipo = mulher do tipo extica
c) se no(mulher = bonita) ento
resultado = no entra na festa

hh!
 6
%!
Uma expresso relacional uma comparao realizada entre dois valores do mesmo tipo bsico.
Estes valores so representados na relao atravs de constantes, variveis ou expresses aritmticas, estas
ltimas para o caso de valores numricos.
Os operadores relacionais, que indicam a comparao a ser realizada entre os termos da relao,
so conhecidos da Matemtica, a saber:
Algoritmo
= igual a


 
> maior que

C++
==
<>
>

Algoritmo
< menor que

!"#$
%'&( )+*-,.*/'021/4353

C++
<
>=
<=

O resultado obtido de uma relao sempre um valor lgico.

Funes de biblioteca
Uma funo um sub-programa (tambm chamado de rotina). Esta funo recebe informaes,
as processa e retorna outra informao. Por exemplo, podemos ter uma funo que receba um valor
numrico, calcule seu logaritmo decimal e retorne o valor obtido. Existem dois tipos de funes: funes de
biblioteca e funes de usurio. Funes de biblioteca so funes escritas pelos fabricantes do
compilador e j esto pr-compiladas, isto , j esto escritas em cdigo de mquina. Funes de usurio
so funes escritas pelo programador. Nesta seo trataremos somente das funes de biblioteca, funes
de usurio sero vistas no captulo 3.

68749:<;>=?@7BA>CD=$9
Antes de usar uma funo preciso saber como a funo esta declarada, isto , quais so os
parmetros que a funo recebe e quais so os para metros que a funo retorna. Estas informaes esto
contidas no manual do usurio do compilador ou em sua documentao on-line.
Sintaxe: A sintaxe de declarao de uma funo :
tipo_ret nome(tipo_1, tipo_2, ...)
UCL

Apostila de Informtica Bsica

17

onde nome o nome da funo, tipo_1, tipo_2, ... so os tipos (e quantidade) de parmetros de
entrada da funo e tipo_ret o tipo de dado de retorno da funo. Alm dos tipos usuais, existe ainda o
tipo void (vazio, em ingls) que significa que aquele parmetro inexistente.
Exemplo: A funo cos() da biblioteca math.h declarada como:
double cos(double);
Isto significa que a funo tem um parmetro de entrada e um parmetro de sada, ambos so do
tipo double.
Exemplo: A funo getch() da biblioteca conio.h declarada como:
int getch(void);
Isto significa que a funo no tem parmetros de entrada e tem um parmetro int de sada.
Para podermos usar uma funo de biblioteca devemos incluir a biblioteca na compilao do
programa. Esta incluso feita com o uso da diretiva #include colocada antes do programa principal.
Exemplo: Assim podemos usar a funo no seguinte trecho de programa:
#include <math.h>
// incluso de biblioteca
void main()
{
// inicio do programa principal
double h = 5.0;
// hipotenusa
double co;
// cateto oposto
double alfa = M_PI_4;
// angulo: /4
co = h * cos(alfa);
// calculo: uso da funcao cos()
}
// fim do programa
.

EF'GIHJG>KJHJLNM!OPQ$F'RBH F"S.LTNUWV"O4H F'OXQK Y[Z]\<Q+F'^@ZBT>_`O$FaHJTbM!O4c O4FFdQTNMeO$F


A seguir segue uma lista de todas as bibliotecas disponveis no compilador Turbo C++ 3.0
Borland: Ao longo do texto veremos o uso de muitas funes cobrindo uma boa parte destas bibliotecas,
porm o leitor que desejar tornar-se "fluente" na linguagem C pode (e deve) estud-las com profundidade.
alloc.h
assert.h
bcd.h
bios.h
complex.h
conio.h
ctype.h
dir.h
dirent.h
dos.h
errno.h
fcntl.h
float.h
fstream.h
generic.h
graphics.h
io.h
iomanip.h
iostream.h
limits.h
locale.h
malloc.h
math.h
mem.h
process.h
setjmp.h
share.h
signal.h
stdarg.h
stddef.h
stdio.h
stdiostr.h
stdlib.h
stream.h
string.h
strstrea.h
sys\stat.h
sys\timeb.h
sys\types.h
time.h
values.h
Vejamos algumas funes disponveis nas bibliotecas C.
Biblioteca math.h
int abs(int i);
double fabs(double d);
Calcula o valor absoluto do inteiro i e do real d, respectivamente.
double sin(double arco);
double cos(double arco);
double tan(double arco);
UCL

Apostila de Informtica Bsica

18

double asin(double arco);


double acos(double arco);
double atan(double arco);
Funes trigonometricas do ngulo arco, em radianos.
double ceil(double num);
double floor(double num);
Funcoes de arredondamento para inteiro.
ceil() arredonda para cima. Ex. ceil(3.2) == 3.0;
floor() arredonda para baixo. Ex. floor(3.2) == 4.0;
double log(double num);
double log10(double num);
Funcoes logaritmicas: log() logaritmo natural (base e), log10() logaritmo decimal (base
10).
double pow(double base, double exp);
Potenciacao: pow(3.2,5.6) = 3.25.6.
double sqrt(double num);
Raiz quadrada: sqrt(9.0) = 3.

4. Comandos
Os comandos de programao usados na construo dos Algoritmos so os seguintes:

Atribuio

Entrada e Sada de Dados

Comandos de Atribuio
A partir dos conceitos obtidos at aqui, defini-se comando como sendo a descrio de uma ao a
ser executado em um dado momento.
O primeiro dos comandos considerado denomina-se comando de atribuio. Este comando
permite que se fornea um valor a uma certa varivel, onde a natureza deste valor tem de ser compatvel
com tipo da varivel na qual est sendo armazenado.
O comando de atribuio tem a forma geral apresentada a seguir:
onde:
Identificador

Expresso

identificador f

g hdi$j gk k o

o nome da varivel qual est sendo atribudo o valor;


o smbolo de atribuio;
pode ser uma expresso aritmtica, expresso lgica ou expresso literal de cuja a
validao obtido o a ser atribudo varivel.

Ex.:
a) km n-o
c) media x
UCL

y@z{|}~I

b) cor p sq r4t u vtsqdw


d) sim s
+Jd
Apostila de Informtica Bsica

19

Portugol

Algoritmo

inicio
real: media, soma;
inteiro: n;
soma ]
n
media 
fim

in cio

real: m ed ia, s o m a
in teiro : n

s o ma 1 0

Linguagem C
main
{
float: media, soma;
int: n;
soma = 10;
n = 2;
media = soma/n;
}

n 2

med ia s o ma/n

f im

Comandos de Entrada e Sada de Dados


As unidades de entrada e sada so dispositivos que possibilitam a comunicao entre o usurio e o
computador.
Por exemplo, atravs de um teclado, o usurio consegue dar entrada ao programa e aos dados na
memria do computador. Por sua vez, o computador pode emitir resultados e outras mensagens para o
usurio atravs de uma impressora.
Durante o planejamento de um algoritmo, o programador dever determinar o melhor momento em
que dever ser feita a entrada dos dados para o programa e a sada dos resultados obtidos para o usurio.
Os comandos de entrada e sada so as ferramentas para esta finalidade.
Um comando de entrada construdo de acordo com a forma geral:
leia lista-de-identificadores
onde:
leia
lista-de-identificadores

uma palavra chave;


so os nomes das variveis, separados por virgula, nas quais sero armazenados
os valores provenientes do meio de entrada

Ex.:
a) leia NOTA, NUM;
b) leia NOME< SEXO;
Analogamente, um comando de sada tem a forma geral:
escreva lista-de-identificadores e/ou constantes
onde:
UCL

Apostila de Informtica Bsica

20

escreva
lista-de-identificadores

o nome da varivel qual est sendo atribudo o valor;


so os nomes das variveis, cujos contedos sero mostrados ao usurio atravs
de um meio de sada. Alm dos contedos das variveis, o valor de uma constante
pode ser emitido diretamente.

Ex.:
a) escreva NOME, SAL_BRUTO;
b) escreva A,X,35
Ex.: Foram digitados trs linhas, onde cada uma delas contm o nome e a idade de um aluno, como se
segue:
P A U L O , 17
M A R IA , 14
J O S , 15

UCL

Apostila de Informtica Bsica

21

Considerando as duas formas de exibio abaixo:


Portugol

Algoritmo

inicio
caracter[40]: nome1, nome2, nome3;
inteiro: idade1, idade2, idade3;
leia nome1, idade1, nome2, idade2, nome3, idade3;
escreva nome1, idade1, nome2, idade2, nome3, idade3;
fim

in cio

caracter[4 0 ]: n o me1 ,
n o me2 ,n o me3 ;
in teiro ; id ad e1 , id ad e2 ,
id ad e3 ;

es crev a n o me1 , id ad e1 ,
n o me2 , id ad e2 , n o me3 ,
id ad e3 ;

Linguagem C
#include<iostream.h>
main
{
char[40]: nome1, nome2, nome3;
int: idade1, idade2, idade3;
cin>> nome1 >> idade1 >> nome2 >> idade2 >> nome3 >> idade3;
cout<< nome1 <<i dade1 << nome2 << idade2 << nome3 << idade3;
}

leia n o me1 , id ad e1 ,
n o me2 , id ad e2 , n o me3 ,
id ad e3 ;

f im

Como ser exibido na tela do computador:


P A U L O 17 M A R IA 14 J O S E 15

Portugol

Algoritmo

inicio
caracter[40]: nome1, nome2, nome3;
inteiro: idade1, idade2, idade3;
leia nome1, idade1, nome2, idade2, nome3, idade3;
escreva nome1, idade1;
escreva nome2, idade2;
escreva nome3, idade3;
fim

in cio

caracter[4 0 ]: n o me1 ,
n o me2 ,n o me3 ;
in teiro ; id ad e1 , id ad e2 ,
id ad e3 ;

escrev a n o me1 , id ad e1 ,
n o me2 , id ad e2 , n o me3 ,
id ad e3 ;

Linguagem C
#include<iostream.h>
main
{
char[40]: nome1, nome2, nome3;
int: idade1, idade2, idade3;
cin>>nome1>>idade1>>nome2>>idade2>>nome3>>idade3;
cout<<nome1<<idade1;
cout<<nome2<<idade2;
cout<<nome3<<idade3;
}

UCL

escrev a n o me1 , id ad e1

escrev a n o me2 , id ad e2

escrev a n o me3 , id ad e3

f im

Apostila de Informtica Bsica

22

Estrutura Seqencial
Num algoritmo aparecem em primeiro lugar as declaraes seguidas por comandos que, se no
houver indicao em contrrio, devero ser executados numa seqncia linear, seguindo-se o texto em que
esto escritos, de cima para baixo.
Portugol

Algoritmo
in c io

inicio
<declaraes>
<declaraes>
.
.
.
<declaraes>
<comandos>
<comandos>
.
.
.
<comandos>
fim

< d eclara es >


< d eclara es >

<co man d o s >

.
.
.

< co man d o s >

f im

Comentrios
Como o prprio nome diz, um comentrio uma explicao ou mesmo uma nota a respeito do
programa que tem como objetivo trazer clareza e facilidade para as pessoas que tero em compreender o
que nela est escrito.
Ex.:
MAT
{nmero de matrcula do aluno}
NOTA
{total de pontos obtidos no semestre letivo}
COD
{cdigo do curso}
NOME
{nome completo do aluno}
Portugol
inicio
inteiro: COD; {cdigo do curso}
caracter[40]: NOME; {nome do aluno}
fim

Algoritmo

in cio

Linguagem C
main
{
int: COD; //cdigo do curso
caracter[40]: NOME; //nome do aluno
/* para comentrios longos no C++, basta iniciar
o bloco que deseja comentar com barra e asterisco e
finalizar com asterisco e barra, semelhante ao feito
com este bloco de comentrio */
}

UCL

in te ir o : C O D ;{c d ig o d o cu rs o }
caracte r[4 0 ]: N O M E;{n o me d o
alu n o }

f im

Apostila de Informtica Bsica

23

5. Estrutura de Controle de Fluxo de Programao


Estrutura Condicional
A estrutura condicional permite a escolha do grupo de aes e estruturas a ser executado quando
determinadas condies, representadas por expresses lgicas, so ou no satisfeitas.
Estas estruturas podem se apresentar de duas formas.

4!s>] <NIB]-.J$
Portugol

se (condio)
<comandos>;
<comandos>;
<comandos> ;
fim-se;

Algoritmo

co n d io

Linguagem C

F
<co man d o s >
<co man d o s >
<co man d o s >

if (condio)
{
<comandos>;
<comandos>;
<comandos> ;
}
Neste caso, a seqncia de comandos s ser executada se a condio for verdadeira.
Ex.:
Portugol
Algoritmo
inicio
inteiro: A, B, C;
leia A, B, C;
se (A+B<C)
escreva MENSAGEM;
fim-se;
fim

in cio

in teiro : A , B , C

leia A , B , C

Linguagem C
A +B >C

#include<iostream.h>
main
{
int: A, B, C;
cin>>A>>B>>C;
if (A+B<C)
{
cout<<MENSAGEM;
}
}

"M EN S A G EM "

f im

Neste exemplo, aps serem definidos os tipos das variveis, A, B, C, os valores de A, B, C sero lidos; em
seguida, caso a soma de A + B seja menor do que C, uma mensagem ser escrita. Se A + B for maior ou
igual a C, nenhuma ao ser empreendida.
UCL

Apostila de Informtica Bsica

24

igual a C, nenhuma ao ser empreendida.

4!s>] <NIB"I.44!
Portugol

Algoritmo

se (condio)
<comandos>;
seno
<comandos>;
fim-se;

co n d io

Linguagem C

if (condio)
{
<comandos>;
}
else
{
<comandos>;
}

< co man d o s >

<co man d o s >

Neste caso, uma seqncia de comandos ser executada se a condio for verdadeira e outra se a condio for falsa.
Ex.:
Portugol
Algoritmo
inicio
inteiro: A, B, X, Y;
leia A, B;
se (A=B)
X
5;
in cio
Y s
seno
X - 1,5;
in teiro : A , B , X , Y
Y - 2,5;
fim-se;
escreva X, Y;
leia A , B
fim
Linguagem C
#include<iostream.h>
main
{
int: A, B, X, Y;
cin>>A>>B;
if (A==B)
{
X=1,5;
Y=2,5;
}
else
{
X= - 1,5;
Y= - 2,5;
}
cout<<X<<Y;
}

A =B

V
X 1 ,5
Y 2 ,5

X 1 ,5
Y 2 ,5

f im

Neste exemplo, aps serem definidos os tipos das variveis, A, B, X, Y, os valores de A, B sero lidos; em seguida, se o valor
contido em A for igual ao valor contido em B sero atribudos a X e Y os valores 1,5 e 2,5,respectivamente, caso contrrio o
valor contido em A for diferente do valor contido em B, sero atribudos a X e Y os valores - 1,5 e - 2,5 ,respectivamente;
finalmente, os valores contidos em X e Y sero escritos.

Exerccios de Fixao
1- Dado o seguinte Algoritmo abaixo, que valores sero escritos?

UCL

Apostila de Informtica Bsica

25

incio
A,B,C,I,J,K: inteiro;
A +>
C

I
4
B 1/5;
J C x 3/4;
se B > J
K 6 2I ;
C

fim

seno
K e! I;
fim-se;
escreva B,J,K;

2 - Faa um algoritmo para ler a Altura, Sexo e Idade de N pessoas, e informar:


Sendo:
0 < Idade <= 10 Crianas
10 < Idade <= 16 Adolescente
16 < Idade <= 22 Jovens
22 < Idade <= 50 Adulto
Idade <= 10 Velhos
a) A mediana e mdia das Alturas das Crianas, Adolescente, Jovens, Adultos e Velhos.
b) Porcentagem de Homens e Mulheres em cada faixa de idade.
3 - Dados 3 valores a, b e c, verifique se eles podem ser os comprimentos dos lados de um tringulo e, se
forem, verificar se compem um tringulo equiltero, issceles ou escaleno. Se eles no formarem um
tringulo, escrever uma mensagem. Sabendo:
propriedades: o comprimento de cada lado de um tringulo menor do que a soma dos
comprimentos dos outros 2 lados.
definio 1: chama-se tringulo equiltero, o tringulo que tem os comprimentos dos 3 lados
iguais.
definio 2: chama-se tringulo issceles, o tringulo que tem os comprimentos de 2 dos
lados iguais
definio 3: chama-se tringulo escaleno, o tringulo que tem os comprimentos dos 3 lados
diferentes.
4 - Foi realizada uma pesquisa de algumas caractersticas fsicas da populao de uma certa regio, a qual
coletou os seguintes dados referentes a cada habitante para serem analisados:

Sexo (M para masculino e F para feminino)

Cor dos olhos (A para azuis, V para verdes e C para castanhos)

Cor dos cabelos (L para louros, C para castanhos e P para pretos)

Idade
Faa um algoritmo que determine e escreva:

A maior idade dos habitantes;

A porcentagem (%) de indivduos do sexo feminino (F), cuja idade est entre 18 e 35 anos (inclusive)
e que tenham olhos verdes (V) e cabelos louros (L).
Obs.: o final do conjunto de habitantes reconhecido pelo valor 1 entrado como idade.

UCL

Apostila de Informtica Bsica

26

Estrutura de Repetio
A estrutura de repetio permite que uma seqncia de comandos seja executada repetidamente at
que uma determinada condio de interrupo seja satisfeita. Esta estrutura pode ser delimitada pelos
comandos: para e enquanto, e respectivamente pela expresso fim-para e fim-enquanto.
A condio de interrupo que deve ser satisfeita representada por uma expresso lgica.

b>!JXb+d4> N 4<N!<>>N!BI
Portugol
para varivel expresso at condio faa
<comandos>;
<comandos>;
fim-para;
Linguagem C

Algoritmo
v ariv el ex p res s o

F
co n d io

V
<co man d o s >

for (varivel =expresso;condio;expresso++)


{
<comandos>;
<comandos>;
}

ex p res s o + +

Neste caso, uma seqncia de comandos ser executada para uma varivel com um valor inicial, variando de acordo
com a expresso++ , at que este valor assuma o valor da condio de interrupo.

UCL

Apostila de Informtica Bsica

27

Ex.:
Portugol
inicio
inteiro: PAR, SOMA;
SOMA0;
para (PAR0; PAR<200; PAR++)
SOMASOMA+PAR;
fim-para;
escreva SOMA;
fim;

Algoritmo
in cio

in teiro : PA R , SO MA

SOMA 0

F
SO M A < 2 0 0

Linguagem C

#include<iostream.h>
SO M A = SO M A + P A R
main
{
int: PAR, SOMA;
PAR ++
SOMA=0;
for (PAR=0; PAR<200; PAR++)
{
if (PAR%2==0)
{
SOMA
SOMA=SOMA+PAR;
}
}
f im
cout<<SOMA;
}
Este programa ir exibir a soma dos nmeros pares contidos num intervalo entre 0 e 200.

Obs.: dada a varivel par do tipo inteiro:


int par;
par = par + 1;
equivale a:
par += 1;
equivale a:
par ++;

b>!JXb+d4>>IB4 e+4!I<NJ 
Portugol
enquanto (condio)
<comandos>;
<comandos>;
fim-enquanto;

Algoritmo
v ariv el ex p resso

F
co n d io

Linguagem C
while (condio)
{
<comandos>;
<comandos>;
}

<co man d o s >

ex p resso ++

Neste caso, uma seqncia de comandos ser executada somente se a condio for verdadeira e persistir enquanto ela
for verdadeira.
UCL

Apostila de Informtica Bsica

28

Ex.:
Portugol
inicio
int: num1;
int fat 1;
leia num1;
se (num1<= 0)
escreva Nmero invlido;
fim-se;
seno
enquanto (num1 >= 1)
fat fat *num;
num1 num1 1;
fim-enquanto;
fim-se;
escreva num1, fat;
fim;

Linguagem C
#include<iostream.h>
main
{
int: num1;
int fat=1;
cin>>num1;
if (num1<= 0)
{
cout<<Nmero invlido;
}
else
{
while (num1 >= 1)
{
fat = fat *num1;
num - -;
}
}
cout<<num1<<fat;

Algoritmo

in cio

i n te ir o: n u m 1 ,f a t 1

Leia n u m1

n u m1<= 0

V
n u m 1 > =1

V
"N mero in v lid o "
fat = fat * n u m1

n u m1 = n u m1 -1

n u m1 , fat

f im

Este programa ir calcular o fatorial de n nmeros.

UCL

Apostila de Informtica Bsica

29


    !"#$%& ' "(*)+", Portugol

Algoritmo
v ariv el ex p ress o

Faa
<comandos>;
<comandos>;
ate que (condio);

< co man d o s>

ex p ress o ++

Linguagem C
do
{

<comandos>;
<comandos>;
}while (condio);

co n d io

Neste caso, uma seqncia de comandos ser executada, ser analisada a condio e se for satisfeita ir
continuar com o looping.

UCL

Apostila de Informtica Bsica

30

Ex.:
Portugol

Algoritmo
in cio

inicio
int: num1, fat 1;
leia num1;
se (num1<= 0)
escreva Nmero invlido;
fim-se;
senao
faa
fat fat *num1;
num1 num1 - 1;
at que (num1 = 1);
escreva num1, fat;
fim-se;
fim

i n te ir o:

n u m 1 ,f a t 1

Leia n u m1

n u m1 < = 0

V
fa t = fat * n u m1

n u m1 = n u m1 -1
" N mero in v lid o "

n u m 1 =1

Linguagem C
#include<iostream.h>
main
{
int: num1, fat = 1;
cin>>num1;
if (num1<= 0)
{
cout<<Nmero invlido;
}
else
{
do
{
fat = fat *num1;
num1 --;
}while (num1==1);
cout<<num1<<fat;
}
}

n u m1 , fat

f im

Este programa ir calcular o fatorial de n nmeros.

Exerccios
1- Dado o seguinte Algoritmo abaixo, que valores sero escritos?
incio
A,Q, TERMO: inteiro;
/10
A.
20
Q.
340
TERMO .
repita
se TERMO >= 2000
interrompa;
fim-se;
UCL

Apostila de Informtica Bsica

31

escreva TERMO;
TERMO 5 6 78:9<;>=@?BA
fim-repita;
fim
2 Fazer um algoritmo que calcule o valor de N! (fatorial de N), sendo que o valor inteiro de N encontrase disponvel em uma unidade de entrada e que:
a) N! = 1 x 2 x 3 x ... x (N-1) x N;
b) 0! = 1, por definio.
2 Uma pesquisa sobre algumas caractersticas fsicas da populao de uma determinada regio coletou os
seguintes dados, referentes a cada habitante, para serem analisados:
sexo (masculino, feminino);
cor dos olhos (azuis, verdes, castanhos);
cor dos cabelos (louros, castanhos, pretos);
idade em anos.
Para cada habitante, foi digitada uma linha com esses dados e a ltima linha, que no corresponder a
ningum, conter o valor igual a -1.
Fazer um algoritmo que determine e escreva:
a) a maior idade dos habitantes;
b) a porcentagem de indivduos do sexo feminino cuja idade esta entre 18 e 35 anos inclusive e que
tenha m olhos verdes e cabelos louros.
3 Para se determinar o nmero de lmpadas, necessrias para cada cmodo de uma residncia, existem
normas que do o mnimo de potencia de iluminao exigida por metro quadrado conforme a utilizao do
cmodo
Seja a seguinte tabela tomada como exemplo:
UTILIZAO
quarto
sala de TV
salas
cozinha
varandas
escritrio
banheiro

CLASSE
1
1
2
2
2
3
3

POTENCIA /m
15
15
18
18
18
20
20

Suponde que s sero usadas lmpadas de 60W, fazer um algoritmo que:


a) Leia um nmero indeterminado de linhas contendo cada uma:
cmodo de uma residncia;
classe de iluminao deste cmodo;
as duas dimenses do cmodo.
b) Calcule e escreva:
b.1) para cada cmodo:
o cmodo;
a rea do cmodo;
potncia de iluminao;
nmero de lmpadas necessrias.
b.2 para toda a residncia>
total de lmpadas;
total de potncia.
UCL

Apostila de Informtica Bsica

32

4 Escrever um algoritmo para fazer uma tabela de sen A, com A variando de 0 a 1,6 radiano de dcimo
em dcimo, usando a srie abaixo, com erro inferior a 0,0001. Imprimir tambm o nmero de termos
usados.

senA = A

A3 A5
+
3!
5!

5 Calcule e informe a soma da srie de Fibonacci at o n-zimo termo, sabendo:


seqncia de Fibonacci = 1, 1, 2, 3, 5, 8, ...

UCL

Apostila de Informtica Bsica

33

6. O Ambiente C++ Builder


Ao executar o C++ Builder, ser carregada a interface grfica mostrada na figura 1.1, que
semelhante a de outras linguagens de programao, como, por exemplo, o Visual Basic ou o Delphi.
Barra de Menus

Janela de Objetos
(Object TreeView)
)))TreTrTreeView)

Janela
Formulrio
(Form)

Guia de
Componentes

Code Editor
(Cdigo Fonte)

Propriedades/ Evetos
(Object Inspector)

Fig6.1.:Ambiente C++ Builder 6 Enterprise Suite

Como podemos notar, aparecem na tela quatro janelas que parecem independentes, mas na
realidade so gerenciadas pela janela principal. Esse um aplicativo SDI (Multi -Window Single
Document Interface), diferente, por exemplo, do Microsoft Word que um aplicativo MDI (Multiple
Document Interface), em que existe uma janela superior que contm todas as demais janelas abertas. Em
aplicativos MDI, as janelas inferiores ficam restritas aos limites da janela superior, ao passo que anos
aplicativos SDI (como C++ builder) as janelas inferiores no fica restrita janela superior; elas so
independentes.

A Janela Principal
A janela principal composta por onze menus drop-down, sendo um dos mais importantes,
especialmente quanto ao aprendizado do C++ Builde, o menu Help. A partir desse menu voc pode acessar
o tutorial do C++ Builder ou explorar a ajuda on-line.

UCL

Apostila de Informtica Bsica

34

Para acessar a ajuda, basta clicar sobre o menu Help, submenu Contents, ou usar as teclas de
atalho ALT+H+C. A ajuda on-line do C++ Builder tambm sensvel a contexto, bastando voc pressionar
a tecla F1 a qualquer momento, que ser exibida a ajuda referente ao item atualmente selecionado.

Fig6.2.:Menu Help

Fig6.3.: Janela do Help

A janela principal contm ainda uma barra de ferramentas e as guias de componentes.

Help Contents
Remove File from Project
Add File to Project
Open Project
Save All
Save
Open
New
Fig6.4.: Barra de Ferramentas (Superior)

Step Over
Trace InTo
Pause
Run
New Form
Toggle Form/Unit
View Form
View Unit
Fig6.5..: Barra de Ferramentas (Inferior)

UCL

Apostila de Informtica Bsica

35

A Barra de Ferramentas se divide em ferramentas de arquivo representadas nas e ferramentas de


Debug (ferramentas de depurao) mostradas na figura 6.4 e 6.5.
Boto NEW Abre um novo projeto. Ao clicar no boto New da barra de ferramentas, ser aberta
a janela New Itens, na qual voc deve escolher o tipo de projeto que deseja criar (aplicao, DLL, Console
Wizard, etc.). Para isso basta dar um duplo-clique com o mouse no cone correspondente.
Boto OPEN Abre um projeto anterior salvo em disco. Para isso basta indicar o caminho na
caixa de dilogo comum Open (Abrir) do Windows.
Boto SAVE Salva o cdigo corrente em disco. Deve-se tomar cuidado aqui, pois esse boto no
salva o projeto e outras Units em uma caixa de dilogo comum Save (Salvar) do Windows.
Boto SAVE ALL Salva o projeto e todas as Units. O C++ Builder pede para que seja atribudo
um nome s Units em uma caixa de dilogo comum Save (Salvar) do Windows.
.
Boto OPEN PROJECT Abre a caixa de dilogo Open (abrir) do Windows para que voc
indique o caminho do projeto salvo em disco (geralmente em extenso .BPR).
Boto ADD FILE TO PROJECT Permite que se adicione ao projeto corrente uma Unit (cdigo
fonte) salva em disco. Os arquivos Unit possuem a extenso .CPP.
Boto REMOVE FILE FROM PROJECT Ao cliclar sobre este boto, o C++ Builder vai abrir
uma janela listando todas as Units do projeto atual. Para remover, basta selecionar uma ou mais das Units
listadas e clicar sobre o boto OK; todas sero removidas.
Boto HELP CONTENTS Abre o contedo da ajuda on-line do C++ Builder.
Boto VIEW UNIT Ao clicar com o boto esquerdo do mouse sobre esse boto, ser carregada
uma janela (com o ttulo: View Unit) com o nome de todas as Units (cdigo fonte em C) do projeto atual.
Selecione uma e clique sobre o boto OK, ou d um duplo-clique sobre o nome da Unit que deseja
visualizar. Ela ser mostrada na janela Code Editor. Tambm possvel visualizar mais de uma Unit ao
emosmo tempo; basta selecionar as Units que desejar, usando as teclas Ctrl ou Shift e o boto esquerdo do
mouse (da mesma forma que se selecionam pastas e arquivos no Windows Explorer).
Boto VIEW FORM Clicando com o boto esquerdo do mouse sobre esse boto, ser aberta
uma janela (com o ttulo: View Form) que contm o nome de todos os Forms (formulrios) criados na
aplicao. Para visualizar um formulrio especfico, selecione seu nome na lista de formulrios disponveis
e clique sobre o boto OK, ou d um duplo-clique sobre o nome do Forms que desejar abrir mais de um
Form ao mesmo tempo, basta selecionar os Forms que desejar, usando as teclas Ctrl ou Shift e o boto
esquerdo do mouse (da mesma forma que se selecionam pastas e arquivos no Windows Explorer).
Boto TOGGLE FORM/UNIT Esse boto usado para alternar entre as janelas Form e Code
Editor. Voc acar essa ferramenta bastante til quando os formulrios de seu aplicativo tiverem a
dimenso tal que se sobreponham janela de edio de cdigo (Code Editor).
Boto NEW FORM Ao clicar sobre esse boto, ser criado um novo formulrio em sua
aplicao.
Boto RUN Inicia a execuo do aplicativo em desenvolvimento (atalho: tecla F9).

UCL

Apostila de Informtica Bsica

36

Boto PAUSE Pra a execuo do aplicativo em desenvolvimento, mas no termina sua


execuo. Para prosseguir a execuo do aplicativo, basta clicar sobre o boto RUN. Caso deseje finalizar
a execuo, basta escolher a opo PROGRAM RESET no menu RUN ou teclar Ctrl+F2.
Boto TRACE INTO - Ferramente de depurao que pra a execuo do aplicativo a cada
procedimento chamado. Podemos acessar essa ferramenta teclando F7.
Boto STEP OVER Mais importante ferramente de depurao. Utilizando esse boto ou tecla de
atalho F8, podemos executar um aplicativo passo a passo, ou seja, uma linha de cdigo por vez.

A janela Form

A Form ou Formulrio uma janela de


aplicao padro do Microsoft Windows. Ela o
componente principal de uma aplicao Win32
GUI. Com ela podemos criar caixas de dilogo,
janelas MDI, ou qualquer outro tipo de aplicao,
apenas acrescentando os objetos visuais, como, por
exemplo, uma caixa de texto (Edit) ou um rtulo
(Label).
Fig6.6.: Form1

A janela Code Editor


A Code Editor a janela que vai permitir que
voc implemente os cdigos do seu programa. Esses
cdigos so escritos em linguagem C e vo dizer para
cada componente da
aplicao como se
comportar

na

Fig6.7.: Code Editor

ocorrncia de um evento.

A janela Object Inspector


A janela Object Inspector permite ao programador alterar as
propriedades de um dado objeto em tempo de projeto (enquanto o
programa est sendo contrudo). Quando alguma propriedade de um
objeto alterada no momento em que o programa est rodando, diz-se
UCL
Fig6.7.:Object Inspector

Apostila de Informtica Bsica

37

que a propriedade foi alterada em tempo de execuo. Essa janela permite tambm definir os eventos aos
quais o objeto deve reagir.
Dando um clique com o boto esquerdo do mouse sobre a guia propriedades (Properties) da janela
Object Inspector, temos acesso s propriedades de um objeto (por exemplo, Caption de um objeto Form).
Qualquer alterao em uma das propriedades se faz visvel na tela, de forma que as caractersticas iniciais
de um objeto podem ser controladas e alteradas quantas vezes forem necessrias. importante notar que os
contedos dessa janela Objecto Inspector variam conforme o objeto selecionado, de forma que as
propriedades vlidas para um objeto podem no ser vlidas para outro.
Na guia eventos (Events) encontramos os eventos relacionados ao nosso objeto selecionado. Dessa
forma, podemos definir para quais eventos queremos que nosso objeto execute alguma coisa. aqui que
entramos com a programao em C. Basta escolher o evento que desejamos tratar, por exemplo,
OnMouseMove do objeto Form, e dar um duplo-clique com boto esquerdo do mouse sobre a rea de
entrada do evbento. Notamos que a janela Code Editor se abre, esperando que um cdigo seja digitado.
Obs.: As janelas Form e Object Inspector somente sero utilizadas quando trartarmos de Linguagem
Orientada a Objeto.

CBDFEHG+IEI#GHJ4K#LMINPOQGSR$TGHJUNVJ4W

Os programas tratados nesta apostila podero ser


desenvolvidos utilizados um compilador C++, como, por
exemplo. Borland C++ ou Turbo C. Para desenvolv-los
utilizando o C++ Builder, basta clicar sobre o boto New
da barra de ferramentas ou por meio da barra de menus
clicar sobre File, submenu New. Ser aberta a janela New
itens (fig6.8); escolha o cone Console Wizard.

Fig6.8.:New Itens

UCL

Apostila de Informtica Bsica

38

Na janela Console Application Wizard (fig.: 6.9) escolha o tipo de cdigo como C++ (cdigo
compatvel com a linguagem C++). Clicando sobre a opo C++ do campo Source Type, selecione a caixa
de verificao Use VCL (para adicionar a biblioteca de componentes v isuais da linguagem) e a caixa de
verificao Console Application (para definir o programa
como uma aplicao WIN32 Console). Finalmente clique
sobre o boto OK para que todos os Forms seja fechados e a
janela Code Editor seja mostrada para que voc digite seu
programa.

Fig6.9.:Janela Concole Wizard

Como podemos perceber na figura.6.10, um programa C composto por:


Uma descrio das Bibliotecas
#include <Nome da biblioteca extenso .h)
Declao do Programa Principal (main)
int main (int argc, char *argv[ ])
Um conjunto de Chaves marcando o Incio e
o Fim do programa
{
//Cdigo em C
return(0);
}
Fig6.10.: Tela em que ser digitado o algoritmo.

A saber:
- int main (int argc, char *argv[ ]) : Funo reservada para iniciar a execuo do programa. Esta funo
dever ser nica em todo o programa
- chaves:

Toda funo C++ deve comear com uma chave de abertura de


bloco ( e deve terminar com uma chave de fechamento de bloco).
As chaves delimitam o corpo da funo.

- Espaos em branco :

Os espaos em branco, tabulaes e puladas de linha podem ser


inseridas vontade, pois o compilador ignora esses caracteres.

- #include <vcl.h>:

A diretiva #include provoca a incluso de outro arquivo no


programa-fonte. A diretiva #include substituda pelo contedo do
arquivo indicado antes de o programa ser compilado, exemplo,
vcl.h, iostream.h, math.h, entre outras.

UCL

Apostila de Informtica Bsica

39

- iostream.h:

Arquivo que contm declaraes necessrias ao uso do objeto cout


e cin, alm dos operadores << e >>.

- math.h:

Arquivo que contm declaraes necessrias ao uso de funes


matemticas, como: sqr, pow, tg e outras.

- cout :

(pronuncia-se C out) um objeto de uma classe de I/O (leitura e


impresso) predefinida em C++. Este objeto est associado sada
padro (geralemte o vdeo).

- cin:

(pronuncia-se C in) um objeto de uma c lasse de I/O (leitura e


impresso) predefinida em C++. Este objeto est associado
entrada padro (geralemte o teclado).

A linguagem C permite certa liberdade ao programador de forma que quanto mais experincia ele
tiver, melhor ser o cdigo que ele capaz de criar;
Vias de regra, todo o cdigo devem ser escritas em caracteres minsculos salvo algumas
excees.

UCL

Apostila de Informtica Bsica

40

7. EXERCCIOS PROPOSTOS
XMY$Z[H\]^\_^`acb'd
egf(hjigkl4m^npoql@rs:tUiUricuvwi:r'iyxQtylzxHmigzmsUx
iHf{qe1|
}~
~ 

U441 ^
c 1
' 4
pM$yHU
(gU (j4(j#gH+c'g^qgg qUwUUUg
H ' '
 '
U
1
H @
cU'

  "!# $&%"$')(*+,.-)/ 012324 56798:;5
<>=@?#ABCED6FGAHD IKJ+LI
M N>O.PRQSM T.U+V
WGXZY3[*X
\^]`_&a7b.cR_
d*e:fKeg
\^c,h#ijb.c,k l
m*g)nRo4f
\^]`_&k _#]pi6bqk
r fZo3d*f
\skjb@_>t
c,h"c+]6c+l
d*e:fKeg
uv
d*e:fKeg
wxy
d*e:fKeg
mzgno+f

m*g)nRo4f
{&| }
~*)R4
{
~*)R4

`,
@> )~*3Z)9K)zZ3qKq4 Kj)R, *
)

) +
"

)+

>
K

:K

@)3+):KE: j9)3*;):K#4)9:# )+K36)R39j)*>)*& 77j.Z3*9)


,:44
z.
`&R&:j
,:),* +KK )z6#R7# #q
+RR96

UCL

Apostila de Informtica Bsica

41

) *:9 
)K9
744.^9z*::) s9:Kj)4)4:K
+ 
 
 
 

+ $
687
@ 7
E#7
J7
NO



 

   "!#%$'&(*)
,.-/-103254
92;:=< > 0?4
4.A B.-,#ACBD2;:
:#F#GH2I0
0<A8B#F?KL2MG
PRQ S#TCU V W

XOZY\[H]#^8_.`ba%cdea/fg`LhCikj/]cD]Rj/fIflanm#`H^C[Rioa/fIaprqLdea/fnflsaft
jeO u3vxw
y z {H|}5~%D{?;
 {{{b#g Zx;5HD5D b
 5?3x;
r%lgnH%/LRD%\CRH8//Dgrl#? %/He/ln/D rMnn#HCrM\Rk?l\n k8//n

B
C
X=
E
D
F
A+

R?Zx#R5?x###R .?'M

2 X 2 3X ( + )
+
2
Y=
2X
X 1

X +1
X

#HI

I Hb% ?#\8.b%/8nH8%/Inn#? orHgrllR/




3xI? 3;H1 5

 
   
 
  !#" $ %'&"(
 +,-. $  (/.0!#"1&23/45%6087*9! $ 1&:"4;<
) *
>= @?'A )CBEDGFIH'J A )-JKLHNMIO P QSR*T!UNVXWZY [*\ YX]-^NP1_:UNW3U'U-QSQGTG`a\ YcbVZTNQedgfaWgh.\IijU-Q#hkUNVlTGhLmCVnYXo-UNQ<p
U3q

[q

X=

2 B 4 A + 2 F 3
3 2A

45

4 H (3 H )
Y = 2H
3X

2H

o3q X = (a b ) + (e + f ) * i
(c d ) + (g + h ) j
r svuGwcxyr{
t
z2|:}<~<N*z~k2--uGzu<}Nj:u<N*z}N*X~E}vG~3jG }Cnu4 z5 |z#1z2'gkt'-:u<N~3L--Nz
-z2*v}><X|:za~k>z*-N }C -->z!zau<}CjNS *lN~z*u-N~3-Nl}N~3}-u4z egk.u.:uG-z*u z2|I}N~E>--z}G*L8uG
egkw
a:X

UCL

.'5S*-NlNI
' X!3

@Nl3>6NX3N
!

4ak kLNak2L 

'
Apostila de Informtica Bsica

42

gk3S3

:g

@Nl3> 
@Nl3G
4ak >
4akN c
4ak
2L .NX3 .<5EN4kLN

.I3Xl:N*--N L3-g*jlN3- G5LNaNI38N**,4 L a*-4a I  NZ


vN3c n>
kL 

 "!$#
%&('*),+,)-/.0)1 2$3465 78.939:;)4)<1 =4>) ?>?@=@2- 5A/7B=C?D5A;E6346.F),+CG$=C?>H=-/.9):;=,?@?I3/)KJMLF3N.9=O PH/),H=ORQ=S3O TU=C?I3OVW178- 4X)O
T*4I3EY5Z?@?I[3O\]-^)IO_`)584a43O/b]5ZH)CH$=Ocd?e7B)CH3O$b]cfT*Ogf=1Z=,E63A =,h
iK&RjF),H/3W),?f?@=2- 5A/7k=,?]5A Ea34Y.9),+G/=,?lH$=m-/.nEB- A$o5 3A p@45 3/J>LF3N.9=O5H),H/=Do,)4Y2$3W=>3q?@=@-9?@)1 p465Z3<r/4k- 7k3so,3A$?e5 H/=4X=tJ
)& uwv@xy z{6|Z}<~/{k k}Wk@;m{,x@ vaD>
~ uwB $|} z{6| }W{XC,@~;{Xz"9x {x|ZY| ,x,C }$"$/}sv@xy z{6| }<~ {k k}/
 w 6 Wkk D/ @,aCs@t
*,,m/n $689sm$ $6 M<^Xt
s 6 FK9 / /DCk$

s 6 F`I@Z6 < Y$k/

s 6 F`I@Z6 W8 /

CR,l/ $aBqX" `m;CID>@ 8 /mwk /ZlI@/Z$,@@$>@,D$q9,6M
@8m<,>/`CI"f8 ]W
KR,l/ $aBqXK
 RR9DR@aY9/D/I6,Kf@s $//K
,@@$`W DK9,lD sCk>k,
C9
 
  
 !"
#$%&' () *%+,.-/$01
,0 2%34(5362728329+5:;39<+=5>2865?12%> , @
4)> ,AB,C1
,D6, @E5F2G3 H IJFIJKLJM
I%JMN"JPOQIJSRTVU"RM
WX$Y%MZ'[(X)Y\
]EYM
O^X)IJ[ _M
IYa`%RBJcb
_ d
efJTK[ J O_EKB_g_ih jG[J _'X$OkKLY%[ml
Y%[_FJ;noi[J _X)OmKBY9[QIJDKpJ'MIJMNJ O\
qdsrYtqL[ JFYOu_v$Z'[(X)YOuwYU^JX$NYI%J OuWPYM%N(YOEIJFxzy{|}KB_u[ _~Y^rrGJF{|}KB_[u_^;\
_ P_RT_'v gY[^XNTYKL_'[_v$J[YYcT=JyaM%T=J[YIJl
Y%[_ O?N)[ _qB_vl
_ I_ OJ.M%T=J[YfIJ8I%JKBJMIJM%N(JO.IJRT
U"R
MWX)YzM
Z[^X$Y\pe~KB%O_v$J'X$NR
[_yQJPOuW[ J_`R
_vQYY9TJ'yQOu_'v$Z[(X$Yq[^RNY%ysYOL_vY9[uJDOGIJ OW YzMN_ IYOKB_[ _W_ I_NX KBY.I%J
X TKBY%O N(YJFUXML_'v TJMN^J;`9Rp_'vYO_vZ[^XYGv`%R
X$IYIYU"R
MWX)YzM
Z[^X$Y \
d _ _ERT_v gY%[(XN"TY`RBJFW _vWRvJF_ET= IzX)__[^XNTN)XW_~I%J;niL_'v$Y[ J OkXMNJX[YO\
d;K
[ J YIJFRT_R
NYzT=cLJ'vBaW_v)W R
v$_ IYKLJv)_~OuYtT_~IYGK[J PYIJ~U^Zq[^XW _~WPYcTVYKL[ J YIYOEX TKpY%O NYOF$n{%|IY
K
[ J YIJU^Zq[(X)W _^daJ_KBJ[WPJMN(_gJTIY[JDLJMIJPIY%[ajx|IYK
[J Y?IJGU^Zq[^XWP_(d\ _ _RT_vg9Y%[^XN)TY=`%RLJiv)JX$_GY
M
YcT=JIY_RN(YcT=zJ'vLJFYiK[uJDPYIJU^Zq
[(X$WP_JX TK
[(X T=_7YGMYzT=JIYG_R
NYzT=cLJ'vJ~YK
[J PYUXM
_v$\
pz %))

sm E %("p'$m
uFF$ ~Fi)^9zL$%; 
( EB 
csm E %("p'F $
$m
PQm V %^$=GB ~ m%9B$DL %EcL%(Q9Pm;
Pus$u
PiLBi aE
csm E %("p'c
UCL

Apostila de Informtica Bsica

43

msfL9sizB%L
sE
$m 
   c          P

P m"! E# $&%%(' )*# %,+B.-%/# %-102#43'%-5+B36-7893F:%<;='0'&' #>+L?' #@'%G36-^A):B%


6C D EGF"H:FIJKF"L M&NO(P Q*J>NRSFTOFUM&V"OWF"O NX QYV"O=J4NXZF.XVWMI[P \QYV] ^ _<^a`bdc edc fg/chi:c(jkc l:F"LlI[LV m>imm/n1QYV"OYJoN^
6g D[p.J>RqL PrF\qZN<N9V"sVTOl"tlTPN<F:l"P J4FTc&u?F:H:FUIJvFL MNO(PAQJoN,RqF"OWF l:F"LlI[LF"O F.XN/J4F ZNXQYV"O=J4NXwZFw] ^ _<^ ^
h6DExF:H:F>IJyF"L M&NO(P QAJ4NzRqF"OWFol:F"Ll{IqLFTOFoX
|TO(PV}E[Pa~qN\[F"l:l"PFTQ(|<m |:XP J4NQYV"O=J4N^SpX
|"O?PV>Q*V{JF}X
VM/I[P \Q*V}u?NO=J4F/`
i/ci/c fc bdc dc hdcibc f[ic bc(j
e6D EGF"H:FIJKF"L M&NO(P Q*J>NRSFTOFwLV"OGIJ[F"LNOxV l:FTLlI&LrF"Ox<fd<Ub<d<U6<jfm6
im"DEF:H6FwI&JvFTL M&NO?PQAJ4NRqF"OWF LV"OV.V:X
lTOV&VTOUN@NdJ4V cPZF{ZV.V X
V"sN>ZVwIJ\J>VTON9PA\&ZV"QYV"O=J@P \[F:ZN>Z&V F"L I[\&NX^:p9N
u=P \[F"L[V{Xl"OWVqF N9QYNQ*FTL&ZV FTL Iq\[NXL PZNX
^
ii
D@] FTOFl:F:ZF\[NQ*FZVl"NdJ<R[OFc Q(VJ X
VNk@NdJ@VZNR[OWN&ZI[Q*N8l6NJ>R&O
F"ZNc NqF"LNO@VN8P J<RNXQYN&^wEGF:H"FoIJ
F"L M&NO?P QAJ4NodISV9V:Xl"OWV&F9N}qFTLNOwQ*NQYF"LS~[OYIQ(NcGNoP J<R[NXWQYNoQYNQYF"Ll6N~OF6Z NV9N9[F"LNOQYNQYF"LxL t I[PZN}Z&VQYN&ZF:X F:X\[NQYF:X
^
N\[X?PZVTOV.mm\NQ*F6X
i/f:D[F"LNOFR[OWNsP J4F:ZN<ZV] RNZV XV"O l:F"LrlIqLF6Z&NIqX
FT\qZN X
V F X|"O?PV
S=

1
1
1
1
1
+ 3 + 3 + 3 + 3 +...
3
1
3
5
7
9

XV"\&ZN = 3 S32
u?F"V"OxIJF"L M&NdO(PAQAJ4N,RqFTOF.l"F"LrlWI[LF"OV V6X
l"OWVqV"O N,[F"LNO ZV]Gl:N/JKi.QYV"O=J NX
ib"DExF:H:FUIJF"L M&NO?P QAJ4N,RFO
FLV"OxIJqF"LNOxVIJqF"LNOG\[^"p,RqXWcl6F"LlI[LV.F XVMIqP \QYV V"s/R&OWV:X
X:NS`
Y=

( X + 1) ( X + 2) ( X + 3)
1!

2!

3!

+...+

(X + N )
N!

i/:DExF:H:FUIJF"L M&NO?P QAJ4N,RFO


F XN/J4F"O NX1OWV:XWQYNXZ&F ZP &PX:N,RqNO b9ZVfmm,\J4VTONX
^
i"DExF:H:FUIJF"L M&NO?P QAJ4N9IqV l:F"LlI[LV F P RNQYV"\IX
F ZV.im,QO?P"\ MI&LrNX^
P RSNdQYV"\ISXF 8:("Y :"Y"Y
"x::U" &? A4,
:r&r
 T: :? "Y"W&xY</
,W:.k6&.:
"x::U" &? A4,
:r&r
 T: 1
qxY>q{,W:. W"r 8/r:[/&
"x""x" &? A 9q :"[{"Wq d4 q? 4" W1*TY4:
/[ *
T(r:
1000 997 994 991

+...
1
2
3
4

SWrr[w&
"G w&&"6 W:"w :"W& >
4d4(?
/G@:4 =W:
 "T*{4&Y 9:"W:"Y"W::
"W[ YW: wW:5"W =T&Y"/K: W:"Y"xG q6
6@:>  4"W} ["Y"=@:o,r[[["?W[[ ,(?[:o }@"S  4"Wo.[&Y:.
 o"[W: r ["::
 {

q9
 ,a<&W:
"9:"9r["dqT(
 d4T
"T(r q=[Y
""?  dq>q":
:  !" #$%&'"($)*+-,/. .0212&1213"(2#5462#789#:;(<4=&>8+?,3@A.0B&020"(2#
C"(6&(DE6DFGH I!J%7K=LMN@A.*OP%7Q;6#: /%7<SR#TE;*#TI* UV W %7XE =5Y=I(%Z5E !8"6#$%7%[=<
\F9I KXE6R#$E%]\!8"6#:^%7&D=<=)*%$GDKQ!_%7<R#TES=%$&?D=<*%K2

UCL

Apostila de Informtica Bsica

44

`Ba>bdcecgfhjik>lm8n-oqpsrmut(cv:cxw
c$adk>yzc{fh}|6c~S2vy{fh}|6c~=vd[
a>gc~SCf6~cvw?j 2`B x}^ xx} D
a>bdcecgfhjik>lm8n-oqpsrmut(cv:c]~yv'fh| c~=v'y]f=h}c~92v>i5t($cX~f6~y?c\7y2f6zy?yXBt*v$y7w
Y=

( X + 1) ( X + 2) ( X + 3)
1!

2!

3!

+...+

(X + N )
N!

^ag[cfhc2f(c=zc yz yGyvqh[z6ccy\t6c~c|*v$cC($y68=f(yc]hyTh/c?yh8t6v$y5yvqh[z6chBhcv$cyv


2^ *yv$y|*c?NGcChc*8y\c=c]fhc\chyTh/c*8$z6c~y 2B *8y|*y\7yXvsQ Czyv:c^D6c\2c*yhja$
^a?c3fhct(c~c|*v$cDyvqh[z6ccQhP/Czc~ AB 'Gce^c5fh_i kVl8mn-oqp-rmt(cv:cDv zcvgfhc 6B|6cD^p{n-oT[lN(c
yv>G=vqhc=c5Qh_s^cv:c^yv:y^sc{t*vTzhyXzv:c{t(c~c|v7c]z|*yXvGz=7
^a>bdcecgfh_c~ *=vGzLhNf(y\c~Sf~Sy\c-=zt6y=f67c\*yx 9vTzS=2f*~S=7
z tQy=fc cGy cy
^a>bdcecgfh_c~ *=vGzLhtcXv:c\c~f6~cv>c\v$yc\*y]f6c=vGz~9yv$7=b(=vqh8f6~cBw v7yc kVc^*N5kVc
2asb'cec{fhc~ *=vTzh t(cv7c?c~9f*~9c7vgc?Xv:yc\y-v7Cf ~gb'=vhf ~cw v$yc5

v$cz9 B9`6 B*

=7asb'c2yv'fhc~ *=vTzhD=f y\c~f6~yy7v7yC| c\ | cX~v>y\D26yw


1 3 5 7
99
S = + + + +...+
1 2 3 4
50

Basb'c2yv'fhc~ *=vTzhD=f y\c~f6~yy7v7yC| c\ | cX~v>y\DyBw


1 2 3 4 5
10
S = + + ...+
1 4 9 16 25
100

a>bdcecgfhdn-m[lDndi r[it(cv$c?^c~f6~cvw
c$a

50

2 N
N 1

50

N 1

$a

50

N
N 1

Ba

50

2N
N 1

y$a

50

N 1

UCL

Apostila de Informtica Bsica

45

B\8*7(T68A=662$M= QX*6C QQ8S7Q*$=M*7=2G6 =\-=


6*=-XLX[*[{ 6=/j6:=Q T(=*5^]6:x N(5Q[686:^g2 A
*$7D7XQLXg$=TQJ[Q(3d 6* 6=?D7(C*/^\66Q:2
x[S 7 *{(?8*775\\=7B6$? =>?^{6:B6 6*=
^5[=M$S3x2MQ*/:DCJ$(Dg ($>TNd-[Dd [=  86T [A6
$=G
$ -'$6
D
2A222

N 
F =

: -g (
D
2A222

9
C + 32
5

Bg[=$6q[/X*$$(*= 6*$](T6=*_/* q[6


M2(>*X:8\S3(M==V$ (?D> 8_Q 86T $=Tx=$$*3*
8*98CX 6^ =*]=(?{(79$52 T\G=^[ 92

?$ 57B$ X:*$/$ 56SQ  =$87X N =2*9 


$=*C2*q
A6=8?TS\*] d6G-q*6=? $G\?2*7
A 3 A5
A7
+

Xxs*6=:120
g5040
226g6}6T>?= D 266$**\22

SenA = A

g=62

N g (7>7S*^7G2([ d2Dd  !#" $&%(')*+," $.-0/1+324+5$670/8,%.0/9";:3%.+5<=*+


-!&$6>/?!< +@*A+-0/1+324+5$A6B C 5D. E.F GH IKJML NPO3Q5RTSU>VXWYV Z[N]\.NO^Q0R1_NPO3Q3`aS.VXbAU9Q

5&~Y;

Ndc

efhgjilkmN n9o p3qr5stvuAwyx{zT|~}t{xP|~|?{|?4t


x{&0.Mt

zhjxlm0n9o p3qr5stvuAwyx{zT|~}t{x|d|?{|?4t
l8 |~
{&0.M
{

T=3? 3.0 h {T~m{ ??4Aa 5=


{&0.M
~,T

mMa?;A;.
5=T55 .9Y7h (>5 (3>&^KaAP .^P3a4Pl45a=&P

UCL

Apostila de Informtica Bsica

46

T55 .~Y 4(;5 @a;l.5>&1] 93 ?.  ^@A.5 ?~A?3 a5 {3.0@3P3a45=&>


A  
 Y(0.  5  .>h^ 9 .X=,(3;a 5? .4^?K.5
 ]^  > 5~ ,Y;
 Y(l
]] 0YAA~Y;#(h>3;#h;]@a9]A.4 
 Y..0Y.#BY5=]  ?3(
4P5 ~]A ^5>9& 1 ( 
=T55 .9Y7h A 5 !5?.lXAB5 ?A{ ~ ,5A=5 ]"
#
$A   & % 7,4^dA ?B?A  ].,?3a>?;?  &70( .5 {?5
9]@ 5YA9Y; A  5   
]a>A(0 A?5 ?l('&
(])$]A A?5 +*]-,/.0.  09?A .~Y(0.B"*  a21]3A5- (5?  A  5~?B3 4 3
 25  AB57 P  
6]7$.,;m(5 &^K ? Y.B~21[0. 5 .&?Y 4a2= 98 5XX(??B,.]A  &>&A 4 .,3 13
 ?  5AB+
]
$A " 5~>hA: .h.5 1?5 ; <~mA5 .~YX4(  0     ?3.@
 09YX5;  Ad7]
5 155;15 593P&>= ;>A~A45 TAA35^0=5;9> A? 7,0.7 5?@5 +
@]=T55 .9Y7hA M01^&3001B (5?'CD,E.!..  Y(0AYF ~ =?1(YB!
,0.5G$]A,  a:% 7hA.m(5 ?l1]5 :9] 5&~Y;,=H
?GI ~ .5 1 (**.K.5; (A
A G 5   @{ J( ~  PA.5 1'CK.0
,!,^
3]& & 5 &M' 3^  5@5 @~@^5 2La d7B 25  AB5Aha@{ P0 (:3]: aA
(2La d9 # .5.A;&~P0 .a~ X&M5B5 Y{&M0A9{3Y.lB3  5 T(.!
,G$]A,5 !.5~ 9  +*5!  &M .>  @7,0..0.  5~?.;?55 .9YX A=H
?GI  ~ A5B.* !A.  (01P@N 5  5A7(53 10 +*BB5O
A GI  9 4{(0.BP9 ?3Q9  ?  .5B7,E@!@.R (5  5X(0(K ?5 +*] B5
 GI  ~ A5B.* S;I RTVUNWYX R 5  5AX5d15 ]+*5BB5
AI  9hA5B.  5~19d J. >  4a XB # 4Z 5  5A;5K ?5 +]* 5BAB5BA?;A5?
    33aY.B9  5B 3[ @)WJW WFW \
,05G$]AFW&.B'].BB5.(PA5. :95 5&~Y;,=H
?GI  ~ '
W &P &>A5Y. 1&A"=^ `_Da<6! .!
A GI  9 4
W & a;P0 ({d1  : 5?Kb* : # 
.J_ac^a;7C6 .
 GI  ~ '
W &P &>A5Y.l?. ?&("0^d] A NC #  .
,=Th 5 .&9XX4?(   ?.&5;?  & 5 1]lY7#^3a." ?.;Kb*3(0
d>?5{h:? .]4  ?.&5;?4.#^3a 9)~a 5Bfe eH0^-^cH33!&I~  ;3Y5B  ?.&5;?4^571a3^K-]
.!.!Hg.0.:H9.0.hh =^3. M33a.A  &55*^0PY  ^d5BA= a;A8 &7,A &> ] 5 a?"
iT3
? 4 ^ a  
(.^3.YBA3.5 *35Y  ?35BA;  ( ,YA9A(aXB5*]
1a5? jM35 5 ??;.51Kk
??B 25 3&0d #   ^a0>?3^" .Y93' 1 01f
]:..!H/.!.!H/.!.P 
, # F$ ].lW&435O3?   !.4^?Y 395 YKY7  ;a5~ T ~ lW35O09 
7  ;a5~ (9d,5>&^3m59 != 3  &FW&Ph^55~ (' ^~,5A=35O3~>!
,0(5$KA,?5>5+*#AJ,/.!.3bTnMIhWfoFp 9&B45B4.,A5~F]qLA3J .>frs,E.tu,:t&@ # pAhY 95&5 A
 & 1]h aAK  Pr
.0@0p

,065
$hhm^3>2 *4F,E.!.Y3/TnIhWYoFpY.~B45B4A5Bv]qLa3  fr
,0.t:,&t!@ # ph. J (~ ?5 5w89
3?aYB~B45B:H
$5B
UCL

xTqL93^
Apostila de Informtica Bsica

47

y&z0{:|!}0{&}!~

y:zF"2w  RE}!}~

02PY+:B:2+bf:/hYF
!w&!+Pw2Y
+bb Q ++G0=E:+bP:Q2 &0hsF9+2&
=PMhf ;Y;2:&:
0}2PY+v:2+++J&'Y/hYFh!::2Pw2Y
++P+Q +2+2G0b0&h++M>&0hsFu' h 
292+B!u'w2:&R92
y:|2Y+!J:JN"O+2+:7dbhYF
:w:+MwYs +!+f+2+2w2P0+0h++'
h
mv97+
+P/hYFB 92+P&m 22+2w222:m2P!P&"m
u"f:ZO+M2!+M)7P:"+2)2+M9:"2:b0Fh
Y2:w&:'O2::!7!m20!)
h!fP&2hO+2YdZ:wh2!E`20
O"b2O2+"b22P-2+J&+Kh0hY2&2!=
+2&2!M2";&
:w+:290++b
h
mY!dw!: "b+2""mk&"b
=:+:m:+:2
:2h
:++
S"=h+:+ + :>::Rb&N+:&mm"!0:OY f!777:+ :>2!::!
&m"!:!BO2::"
Ybw
:++ P: mhO20 20
m2w2JB!u'wQ&P+/  2::P:Bw+B+:P 02
Ybw
:++v P: mhO20F":"b2+P+Fmh2!0&OR!9wQ:P+= h 2:w::!P+!:G>E92
Y w
:++J P: mhO20 +"b"m2&J+Fmm0:OF9wQ:b0J&h
:w&P:MO+B+:'0Oh22w+
!+Q0w29b=F!=0R9!!2h7'2Mw27+!2!:29R2&+:":07!2mh!S2:!9NE
w277:R&=0:07J!&Y2f&7!2h h!G>E92R/J77&'F=0Fv0:2 h02!
0YN/R):7f=
0P!&;O2! "7!)"Nw2:Nv+":+9R++:+":7w2:& ":/mm
+:! "Y=v: :!2h+
S++N:2 &0hsZ09R  FZ&FFf !gN92:F++9+")N
:>Y
Pw 9fw&2!
9OF:!F&2v!w2:&!2h+"
:2f:Z09F++N9+"R:F"&FFARO!+:FA-";d9+:Fw29h++R2
!
mY
!/
B  YsGF=:P92": ':+72; 
:'&F!F":B
2 9 '2Em";:"
GP2m7' :  ! &  : P  2 
: ; & " 09 0 w :


S +M
 G + :



() +*
;:

,

LK

 

.  /#0 





 



 1

!# <

MN
4 -$#O 1
C

 

  

=  >8?%1 

 1  .

P

/

2 3

%@-

1
4 5#6 7

$ 1 A

!#

<

;[\2

 !

" $# !%&



 '

B.

#W!CERHX'//

CVRHX'  

#W!CERHZ'//

CVRHZ'  

- 
4 1



EDF

# FGH



  

5  . 3  

SQ

S>Y Q

  -#6 7

!CERHZ/^

! 

/



E 



-# '

# `



9 m 

`

# 

!7 & : u ! w

-#O 1

Ba -# '

9 w 
:  ; - w  = &
:)+2  w !   & m -
h w 0 &
22  w " " 0& P Y :
: & 2 

&s
 v  =
!+ :2
  
w h
v b
S +M 2 h
!
BO:O + w  &
 
: )
GP2m u w :  
:+ h"
BO:O 09
h h F w h w w &  Y2 u F
= ) h  7 0 2 0    G :  2 !9 )
2 /
 9 9 b  w & ! w
h hO2
w
" = w B  
 !
Y HKbA

 #O 
= GH

5#

c# 

h

!

_ " 7kl

: m

,



- 

-n

#W d

/

.  /#0 

`
4 



 Ji /

" $#

Z +_ 
4 -p

E

%\ 

 1

UCL



.*

<

-S

/#

= 



#O e

` <

# 

 -

/

iW c

3 -#  H#f - /#W g

,j

# 

g F+ !

. -'9:

B

8

0 0.

oc-#   W (



a#3$

5# . $I

8

/p

 #O  5# 

 +q 1

-#O F #O  $# <!

V

$# -

3 -# # <

-#  ]

B# F

!

sr

#3 Ba /#O d

-#O -I



k.

-

 98

JI

YQ

: "
&
9 "+ : :   w
u  :'
 :  09  M w w 

L_ .- 

! 

# $C

 -#6

CVRS?'  

 

-]

 

/" 98

#OECER7S?' T

 P
= !



2 h
!+2 " F
&   &M
: : 
: "

 ! v u : h  : w w !9
+2  0 2m 2
 S  !

A
A

-



 

 

 !#

`

4 

&

/#

0#  J `

/p



 

- -+

- .I

3I

$# - # 

 

 1
a# - +i

  

!

VZ

J L



Z

- - I

- I

-  V_tVoc# ] -` 

/.# 

0.ic f

, j B8

# . mI

Apostila de Informtica Bsica

48

v&w
u

zV~ma~~4~J|~|-zV|-z~fy~>zw

xy{zV|x1}W~<ac~w-Oz
~y\zw-Ox-

~~-y~ .xc/0yxazT
~$;\zOzfy\w-zE4~axNa~Jx+|~!y\~3x`~59~ |-~|z|-z`yz<ycJ~

 \zB6zBOy\/w

z!a~w-Ox-+ xTy1-

O~|x$z`|}cz$zw-Oz`~VcF}c~ ac~

$Nz cJ}f/azzEOzy]~ -y xTy1-.c~<|-xL


^9$33

~5y~|-x a>z3

z a~

x1z\}$~$

c~w-Oz

!.

\s .$/{4JJ..{m4{$

$ O{-.B6BO\/

 \-

$.9\O- 4\g/J.!+ $M /W-a $O3{


B. <./

cOB.-1

c4c1-1W -V /W .

T+ !- .c/{a-{m
4

-s4g{B/

W/-?/M?$a7-

/4m!<1{m7 !

4g/  -\$ /O- 3 1aB

s

F4^> $a -7Bm

B.E41?{ $. {mf1aB`

4

\B? .1O$cVm<a -$1c$.7c.Of.3

{51

mg/m{-

7.$.-



-

<-Oe\cJ- 54N6

B.O1.0m T

.c-`. + O.cJF9.. 

 9.

9.

)(*. 

;< >=!- .c/{1a  5ag{


c.F

gO.cJ7.g

$V7 c

+ -, # 

-V<-O1

)89B

m1cJ

- # 5.{W7$$

:# 

$V7 c

-O1%a$1 BW

B6?.cJ BW7$>@ 4$O-1-

$. . `

cJBm?

a$A

#L\ .N.{B2C<(EcED

g? -{-67 

 .BW3`-`O.cJ .s /1


7 0s1$()23. "

9-aB-cJ!`O.c'%4%5H67

.3

c-N\  eT

.BW3`-`O.cJ F1cH!.".g$#$---67 %.$ 3W

9-aB-cJ!`O.c'&

.3

/.O! m

Wc0.-7<BmB6B<FGHNcA=.] .$/{a!/1-WM74WF.%.`>I5O

$W)2'(EcED:

JVg.{2K(EcED
-.a%

] 

Of\/



{$OBF$GH{cA=-

 .c/{{4 1

c 

-OL
\ cM



m .7I3$O!a5WB2K(EcED:

N3OQP$RS TUS VUWYX)Z [


\>]^`_>aA_'b"cd_>e fg hjilkmcngpo brqeq>i_>s%t iu_kmqv>e_Aw"g$s xy$y3tz_>eg hqA{'w"g-kUi |Qgpil}k~q>ilhg:q)g"{`f$bY_>hwq}Y_'cqc$hiu_>

x]YLcn|zeliUqBgnq qh+v>viug-_>}"k~q>hjig hqcikUil}Yw gb"ch+q>e_km hig:vAg%ckmg"w g{'g"{} cq>hg"{|Q_h+qA{o bzqtzg"v>

eqbr

]^`_>aA_'b"cd_>e fg hjilkmcngpo brq)w q>k~q>hcEi}qo br_eYgcq>}"g htz_>eg hq>$i{ kmq}k~q}Ygtq>k~g hwgnq> qhvUv>ig-}%cq>h+g\C

]^`_>aA_'b"cd_>e fg hjilkmcngpo brq)w q>k~q>hcEi}qo br_eYgc_>ig htY_>eg hq>$i{k~q>}"k~qK}Yg3tzqkmg hw"g:q>$q>hv>v>iUg-}$"cq>hg\

]^_AaA_nb c_>e fg hjilkcg9o$brqi c:|Yhi c_o$br_>}"k~g {:w"g"{3tz_>eg hqA{:w g

q> qhvuvig}%cq>h+g\{Agc_>ig h+q{-o$brq_ncEAw i_

w"q>{{qA{t_>eg hqA{

]^`_>aA_'b"cd_>e fg hjilkmcngo%brqKeq>iU_L\y}Yg%cEqA{Kq)g {fbr_>h+w"q}_cqc hi_A

]YLcn|zeliUqBgnq qh+v>viug-ilc:|"hjicEil}Yw g:gcq>}g h`Eg%cq)w"gLtYq>k~g h

]YLcn|zeliUqBgnq qh+v>viug-ilc:|"hjicEil}Yw g:gc_>ig h`Eg%cnqLw gtzqkmg h

]:^r_Aa_b c_e fg hilkUcgo bYqeq>iu_nxy|z_>eU_t"h+_{s<q_?|Q {:_eq>ilkUb"h+_s<hqA_eil$_nb c|Yhg vAq{{g9o$br_>elo bYq>ho bzqi}$tYq>hjk~_g {
vA_h+_Avkmqh+qA{'w qLv?_w_b"c_)w _A{|r_>e_t"h+_A{

\$y>]^r_aA_b c_>e fg hjilkcgo bzq-eUqiu_\y}YgcqA{Lq-g{f$bY_>hwq}"_Lcqc hji_$|z"{L_eq>ilkUb"h+_>s`q cEik~_3b"ch+qeu_km higvAgCc


k~g"w g"{g{p}zg%cq>{no bzq{Ag9|z_ eli}w hg%cq>{Kc_n|r_>e_th_n|z_eli}w hg%cqE_o bYq>e_o bzq_{+bQ_neuqilkbYh_E_ncqA{c_w _
qA{ o$brq>hw"_'|Y_>h+_L_)w$ih+qilkm_)qtivAqtzq>h{_$K q c:|YegQK`sA-s q>k~vA

UCL

Apostila de Informtica Bsica

49

<AA">  l- zu>$E%K"A LB>$:"KrA AA3z"')>lz)jA


:Y )-E%>$U A")B> :">zA"A'"u )>U'U$%rBu A"B"lQ"A
:Yj B-$EL"A )"K~""?A:>A
:Y )-E%) "z%Y>Y$A'"KQ>"

A<AA"B $Y>+)`3>u%+KK%rK :Y ) zL>> A r)'A$UB Y> +A

$><AA">  l- zu>E%ELK" mK"~ m"LL"K> YY K '"dA   Lr"'K>lmLjA>


:Yj )-E%))' )" KY"<?$YA ""A L)$l)
:Y )-E%ELBA%u) "'> Yz K dKA r>AA>Y$lnB*A 

$l)+

:Yj )-E%))' )" KY""z "A 3$l)


:Y )r>+"r>")> YY 'Y+%A" 
:Yj )r>A> r>Y B>Y +"+%Y?""

AE -E%))>>:"3C-U"Y> >u Kj?C


:Yj )-E%)):>j:""'UY

> >u '$r> Y>'"KK $

'`>+"BmYzU$Y> z>"">Y )K $:A A" "> j:") ": )LL


YY:>jn~A'UY">u%zj"' >"m

$>AA3 !l lU rjUL ~
z)"z) nzA:-A>A>~>

>LYn u A $n Y~A"$KA%~" "

)A>Aj>A$z>Y

>%::-z> "A> 

$><~A m)A%:Y ~r$K$L rA~ AK$ CQ jp$")>AB"El"z"$K>


z~AACElj>~>>UlU >"UuA>"A3rUA>U+B`'-`>
A%"mz ::EY))AKrA+r j> >": A":

AA E> YY~

E UU

>lmn YA~"A'jA'"d> $lp Y

B>z uA?nA jY":z%))-$">: L?>j~"'"BA Ll"z"

Em~ElY z>"~"< z""<A>m+dA zA ~K:

B>z)-%)":l"z $ rB

Ul+d-AA>~"

m?z)'lz%" ~)'Y `Y m

$><AA">  lrK> 3zu%?l~>l">Y :Y juz> A'$ >Y?""'>AA"~>"~A

$><' ~l Y>Y :: >+U>:> j El' d+>m :AC z> A' +"YA" '"A>AA"~> jA

$>AA >  l Y->uzU$>L "A 3 j "3r -uY: E~ +u>~$uA%AA
Y>  >> B)-$"+: >$A YBA:z+AEz>~ +

">B?" >u>AA Y$? AA3 !l lUE

YLY>~$r-3 -">~>ElYA 3rA A~3z~

Y>~$ E%) YA))>rA $YA") Y>B>`"$

>%: '%<)+dA ">A" '"z>~ 

Q?""EL+AAAd> %l- z)m~ElY z>Y)A$Y""~'~llA"A

A:rA-"> %j*$rn>:>UA-E>>$YEA p:-Y AA*"-$u><  $rn


Y>~$r '"U u~KlU >":>>+>~><$ l" >Y :">Y "'A>A>~>A

"><AA">  l- z
>'"zj%r

A%>?> K z>~ `

"~>A>)A~Azm A

ACd"m"

)"j%~z "%"u3Y>~ 

 
 
 
 

)'A>~ LYdC

 

"-U r::)U:

L $zl"~)j A

 

 




~>~lz> ?L %U$rnm K

z+>>>Y> u A% )>U>"m

Y>~$%rB>lY"z"+z "j AA A

A<AA">  l- z

UCL

Apostila de Informtica Bsica

50

)"

 
!#"$ %&'()*+-,/.10
 2-3*- 2,4--35678"$:9;'1<)*+,= <>@?<:.10
6A26* 2B,C
>B ED*B+ " '1F,E2
,G-+6A ,H:I7KJL=$+ *2BMB;+
NKJ,<*2-MO6PQ RL+S*- '2UTP B" ,,< 26
V*53A" 3'1 WX$JYZP+6QN:"6*6[S*
@\6 2*- 26C%Y*]
^
 ZTP B" ,,<82_6A2<* WX`TP2<0_,
[V'SVab 2BH '1?cd2 eV*-+ " '1 WXH26-,f+B ,ghe7iC
" YNj ,<kl-356mj:$\7h H+nY1*I *B=,2_$-+ 
JkP35$HNo2-cP 0,T *-"3]-12F"$l,
'1<)3*B=6,p2B+
KO
@ 3V*P2 iTP,,AB1*L=6n) Wq6,C
rs utg W id ' v-6VS)O6Pw
xy1 i8<=
j"o%z<'[<)<*+,uL6+ 2BT@$x- '
 ,p2B/[{TPV*+SA6C
>B !|T@}B,H G'1V5- Jx)261LnVOB@GI+
2-GLBn) O6@H~,)I"6*6=<*-] 4*- /T@ =+G,6T3=16,b)*+
 '16A,KT A , J-e* jT =pV*L1B ,fP <'
 ,j HT A ,C
" y4A2*"<c,<"*+<)*6+B,K*6- ,fT 3A,(JB2B"3A,<"*65c)*+!,K*6B) ,K HT@ A ,C
r YG 2F"6*B.V*526I*\ <vB1, 6, J" 2 ~A<vB1,(\"$*-+*26M*)IE ~12 2E2,<, )T ,,6 IL= W 6
' v-6VS)O6Pw
@ < 2-e+2-6,pB,j2 2B,K* i)<)}$ 1 
>B !,<"  P *-$)2 ,KTP,<, ,KO6Pe=(z12 c2i) 16xO6P e12 2B2 jT )V 
" g[,(5 3y-,K*,j2- ,xT@,<,6 ,KOB@e+<d e12 2j 
KO
@! i)?261 
2 g[,(5 3y*)2 jT@,<,B 2j 16yj)3*P$y12 26
r Y 2RO6PTP  " 2B F ' *-2~B ISPn) I2I%H\ <'V-*,,53*-] J,<(`*$)J Q ,*
= ,2- ,
< <'11 Wq6,C6t@ W jz ' v-6=VS)/OBw
DnHT ) *) j?261 !2" 2B '{-*
Nj '1"<'1 3A"3*B= (v-<z2! ' *-,j"<.1H/*-$)"$)"!" 
z e'[<+ !b
>B x  \" 26 ! 3'V-* 4TP ) i) j*,< <v-(2
1a*2-,< 3'V-*+<z$Y*-X *
+ ,j (T3[2B ,<
" Y353+YV*eO6P *+B,p 3' P*,y+<T@'1)3*-,j2
@ ,j*B+ ,j "3 ) !2
r  yY 2BP< +`2e*Y'1<)3*B+,uL W id 3' v-BVS)O6Pbw
NK[A+6"$*-+*26H,u3'1<)*6=B,p26pO6,(5X *- L= 31
!* 
e-6
>B NK[A+6gl"
*+*2BH,K*6B)3A,KO6P, =X* ,fT@B,([Wq,fT@ A ,<
" x, O61, 
1, +*"1 2j62B+nY1* 2H<'[<*+\*P+$x
2 !,<" <P )<*6yj) 31By3'[()*+H2|P+6g
r !iY "[26 226GV*-+[$=Jg, <> ,<hO6J@2B|.[ *VG  <>V'26 6
mn r H2
[ ,+ J*PX B"6A<E+<4TP SA
V*L=16 ~ s h<@=164B j+<HP3AS  1n1(:H61Y +Q$[6- <[<)
BBB<A!6B
@3bgz -6=VS)/B[(1! <(P
i)
K+<HP3AS !$=[6
i)16x+<H@ SAB6=1
e+<H@ S-i)B1
 66) H!$[j-K6Pjp+<H@ S =6V=16yj
!e+<H@ S- e4 B1
6ug
gd -6VS)6P
1EU-[$YhVb6
G6HF-3[
G4--[<-e1-BH6GP31B SB=<SA
6A6Bj!6+) +
<=nYV< <P3HA 
) H$@ <@+-G6BV 5$p6P3-BBe-
j<oB
1<@A p <[B
V{H1-6j[()+KA<@<+1B(-6+)<Bo$-H6B{-+-
 < <-!46BV54 +1-/V=(c
Pn)<bc Vc$b
4A B6161= +11+c - ePB643AV+1 B4Y4BB
-$Y6Yn)
<656[16e) B1eP3-61
A3-+/)<!1e+<8)e+ <[eB
V61$3A Be) $=/AHiP<<A<jz -6=VS)<<[<[<u4=S 5)-<B
n)
()
+ 1- !=6-31-<
[ @16
) Bi) B61j6@6[BuP<B1
@<B)i) 66=1V-x$-j<-e1=6n)B4P16x
 -{B-ye6P1B

UCL

Apostila de Informtica Bsica

51

$!eb Vn)
 1
@


(<-
u)
j   !
"$#x%&3'( 6!)S*+@A,( '
-B.
/ 0)$ n1
 2 3)46+)6 587
:9 *
;< *
2  =$=  > 2.>-*.?<@/<-6$2@A>--./. 
*6

$,  P (BC6
 c
- <- @
 DE3F 
G 
f) H
K     
"
I 
J DP6
5 7$
KLM-(N )O
)!$+)6 5 P Q > R<S

T$ 
U-*
 $
U  @ H
FO
%V "3WAP X<
 <Y
  

<C
- <- $
j $1
)NH 
F.

n*
*
6
"
Z<$c
(NK
Z[?\^]_Z`L:a

6c

I1b

[?Z b Z b
de

Bd=

d&e Ed

j P <B )
K  

!jK cf

h $f

Z C 

cf d

==

d=
==

d&"

6k#g%ld( 64)S*@ EjK


( 6)m DP4 ;DE($<B-GLX$z$=nDP(H$/6
j/ N
o
B (
6),    D! ;8DE()E<
_ pq6
z$ =nD- (N
 
jH
o
 (
rD- (6F m)m DP< ;D( sro
 D! J) ^>
(E@(N(*
 FLtR_Vj @ (-_ sro
 
 D-
C(H(*
 _pqm^$
N5P  6/ 
/E $ ,u(c*$ Lv P(msro
>ck#g%lXB <)_$jK
( rD- (6F _[w9)[yx,zi = ,
'D(6/
 _B)mDP3!;D(${<
FL@o
B (
rD- (6F _W|9W.x,zu$ = k,$
GD-(H

)mDP<4H;D() <B B,po
 !n1
).T  $4~}zL pQ9 EP @Lw 
pg k .}vP6~
/ 8 
,9 LtpyP  !R(
 (N<*
 
K ^N$
+ o
 
 D-

 (<.

 >N
<
L:$py,}o

<

DE ;. >  @( *$!

hr4 3/(1 5 P yRC?/  



?J)()% 0@ 1 >
 V,)C+E(6/ '5c)B0~K1x:@4HV3
>P6
F^(16
F N;$ $ 6
+<)B
FAj*">\6F<$cr( -mP3! VF
G+^(1
K

LCz

pz

5 1

 >
  *
_ 8(

}_z

g  d 6 S
1
 3
<

B'
($<
<H6
(<*$ 
k6  L@o

(H1 (N H8 
:DP (6F _WpF -*
 $(N<*

 >  !:pT9)Wp,xz,dV=$= /o
'
( $J-( *
 
k(H(*
 
k@   $ @po
 G
! N_ 
4  ) 
  $  }G
  $ $_5c) B@W:LWpB@4N1F$
    
B4 $)
lLX_pk"
# % l
(  4) *@ E
 jK
(H _W3L:$- * / 
 (H 1 
k  $ LQ9)W3LCx,zd=$= o

 

E
 D 5 P EK
d"}

F
( *$!
kGLX_py  *@)  /
"

 

<

f1\y3A ? 5y$A?,!(


UW1$1&T6
P  $,DP(61U ^$
!$"_#x 5A
(  64)S*^A
3/DPCW1$1'D-(H
3C ^
 16BP$> $"pk< .0D-(6, $+(lJ '? ^$
 
  +
(8> $,:D (6'  + (()) $_
p
G +
"$} 
N$ ,h$=$=:$+

UCL

Apostila de Informtica Bsica

52

,.3@/6 3 H34V$HE *  . .  44 ^8EN CE4^3 ,N)EA_ !


A .>*E$$ 4A4^,^N $6 $ t8/  AN)l+H!>!N  $
?1&*l$^NH$6 !$ 42H ^   $>^r6 @N

:/> $.J

 N ^ G^ $N ^$_$mEj k 6 $@H  $'$> 

n N$N_
F'   !)Cr/_k_ 4 1)' *.N!{$j_ $*G) )
j'1 n*.N!{3$,$j$r4 m ) *@>&
GHH,1 8* $ 4 *, 
F
Nn/&E  * km! *)/_)6
GHH,1 ! $ H* km*N4)&
jFN, &*>H$ 4)E N
6'1 n*.N!{3$,$QV4 _$> 4 )N1
m4HJ) E, m* !)3,* 4 {Nm) 
j1 A*n1 4)H , N! 6
  ! ){*0$@! 6r:)r _E> 33.J
{{$_!$$$ 4 1FC ) G H>
F:^>* ' /6k,   .N! &
'
' FE  G E, :.  G$^,. N  / 
F:^>* * k,  !
A $0*n*N4jnH>/ ,{$ {/ 86 >)..^@4 @:){E@  _N @ 2J)
>H>$^,$*  / $ 4 *):^_)$, GE 
6A $>E _.N!{V 3@CV n ){*.>^r>C@ >^n/@n*N4)A
8*$4$ *H43 , >*,$G 4^ N 8*$ Ft,
6'1 n*.N!{VmE 8m) ) ! 1),/E_1 4)N/E/E ,,  .
6k''  4). E6!{^_Q/ !C !$C rT)A:rF G. J!) !  $$
NN$

,@,m18/6 '   *N4'3Um*N4  /  


$
 k

n N$N


1 ))$

j
6

6 Ej$*m^F6)!> *6 8  )   *


^
):6 ) .$! /   E . ) 61 _> /A^ $ 6^ , 

6)

 

 j)6k6^$ A. $.8 $$/$A! ) , 










 _r@ E  8  ^$ E k)4$G6$  
^ 6 Ej$*m^F6)!> *6 8_$_$ E  &C$  !{C  *


  F , $$_ ^/6$* /*!{ GG{ !N
E>&*m^ G)!>4C6
 _1),E, 6$!* m^@1&*  

1 J)Et
^ 6



n N$N

3$yA$6 {$ E 2 $ @$/   6  4H>!F!: ^2  E


  
!){A,)EH  6$ )
"  "
#%$&(')+*-,%.0/21 34* 576"8'98%.826: ;<.=1>.8%6)?/<,%: *@6,BADCE*@6F26"G/B.DHB8'=IB'DC A034' CJ6"KL'MN/B*-,%34'0H@.=OP6Q/3SR
T(6N1>'
U0,B8' CS'V6WR
X/7.
T"Y%1>' CS6
Z .D*@C+C 6


  :
 $3 J),* !NE^ >*A $CQ
F !nN :

_ Q@ 8^E  &*@  Q$Q ^

UCL

Apostila de Informtica Bsica

53

[\!] ^]2_
` acb ^d]e
[ `f
fg e2hi\ a=aLj eWk
[^ gil e<k

m =_ nB^ gEb ^cop_Dq b e


r%s q<t j e
u2^Dv@w g @\ eWk
x gisBb e
m _ aLy eNq b e<z n7_ g y _ q b@s ^ v {
u2^ v@w g \@e r ^co>|v-\@^}z@u2eQop_=q b _~n7^ g ^hi\@v-<e a ]%_ P"^ qe a {
m _=nB_ q<]_ q b _ a k
" o>_ g e
m _ a=y g \@t j e%z?9op^~nB^ g ^ y ^]%^]_=n7_ q]%_ q b _S{=k
eQo_
]^d]2_
u2_9hi\ v-<ee s q j e
m ^]%e^9]%_hi\-q\@t j e^ y \-o^L%hE^dt^ s on g e l2g ^=o^n7^ g ^Pk
_ g ^ a \-q<h+e g o>^t%_ a ]%_0q>h s q y \@eqw g \!e a

g ]%_=q<^ gy g _ aLy _ q b _o_Dq b _9e a q<ePop_ a ]%e arBs q y \?eNq<w g \@e a

(
o
\ b \ gs o g _ v@^ b4g \?e y eQoe a ^ v@w g \@ev-| s \@]%e>]_ y ^]%^h s q y \@eq<w g \@e%e2q<]_]%_=_ g w a _ g \ on g _ a=a e a eQop_Dq b _
`
e
ePop_]%e h s q y \?eNq<w g \@e_ a _ spa ^ v@w g \@e
` o(\ b \ gs o g _Dv@^ b42g \@e]%e a h s q y \@eqw g \?e a s _ b?g ^=7^Lv_=oq<^ y eq b ^S<\-v\@]^d]2__9 s _ b _Dq2<^=o op^ \ a ]_]%eQ\ a

h4\-ve a o_DqBe g _ a ]2_"^ q<e a


` o(\ b \ gs o g _ v@^ bEQg \?e y eQoe eNo_]eh s q y \!eQqBw g \@e_9e a _ spa ^Dv@w g \@e gis<b e
% 9o^> _=on g _ a ^ y e}on g ^ s o>^ a g \!_]_n g e ] sb e a ]%_]Q\-_ gSa e a hE^= g \ y ^ q b _ a _n g _ y \ a ^" s _ a _ ?^So_=o>\ b \@]%e a e a
a _ lNs \q b _ ag _=v!^ b4g \@e a k
s ^=v<en g e] sb e" s _n7e a=a+s \^0o>^ \?e g s ^ q b \@]^ ]%_9_=o_ aSb e s _ _0 s ^ v<e s _ b _=o^o_ q<e g s ^ q b \@]%^ ]%_

s ^=v<en g e] sb eo^L\ ay ^ g e_eop^=\ a 7^ g ^ b e

s ^=\ aa=j ee a n g e] s%b e a n7_ g+b _Dq y _ q b _ a ^eh+^= g \ y ^ q b _~

s ^=\ a e a n g e] s%b e a s _ a=j e]_ y e g<s v

\
acb ^ l _Lq a ]%_ b e]e a e a n g e%] sb e a _=o_ acb e s _ y ePo b e2]%^ a ^ a \-q<h+e g op^t%_ a _=N\ aSb _ q b _ aa eQ g _ y ^ ]%^ s o

]%e a n g e%] s<b e aL
WNS?2?< 2
r ^td^ s o n g e l2g ^=op^0n7^ g ^]2_hi\@q\ gy eNq aSb ^ q b _ ag _=n g _ a _ q b ^ q<]2e(e ay ]\ l e a ]%^ ab _ y v@^ ay eQope  ` `m ` uN[
_ b4y ]%e b _ y v@^d]e"]%e f [
% 7d9%%L}2S=p9< S% @ S c4 %dB LcBS= 2E L=7  @d% S 4 S< L= +@JWD
BS}2S=pD%p %L LLS% p2% S >- < =9N7 -?2% Qp d7 @%%2< @@%DE4
N<% =%N 4 S!S4L=S(Bd LLDE?W=pD2< 2(+7"SL= <"< E4 D! !Q<2(
BS}2S=pd"%<SL= 
 7d9%%L}2S=p9< S%i--9<S4 E 9N7S=%L= %4=02 < SL dNSL4 -?2%Q7"%@d%
72=L Q7= = p%4 N42+ 24 7 Sd2%?<%B-BD=N Q<}Qp< %
?LD!+NS=2 Q%B}S
2 
 W d -< %S4 %4B S QBc?47  % Q% = pp PBS
%p
 S
S 4  D dB S 4 S9+< @ @9W   !S" "p QL ~B%2== B #%$2= B&  
}% SLQS% S 4' 4=7 ( )!4=9B%+ *B  @2d% S 4 Sd+7, !- @%7=ScE- ></ .
%c7 <29% p=) -<0 902p
13254'6!7897):9;=<3>@?)A
NB J <+4iB+% C 29 -<97 S 0p ?D FE
GHI KJL9 -BMGN#+#%~OP* NSGQ %,*< @d>=
! 2%=
R% 7d0+2 C 9 -<0WD %S*B 4NTG =p E2cB0%S* 4TU %% =p %=)(T* NS
G %,* ! = @ %L

UCL

Apostila de Informtica Bsica

54

VW XYZ0YQ[O\^]`_!acb)_@Yd\eY3]fY_!Y
gih,_+Yj3kFl`m!a'_-\eYZ0n`hjQohQpqYrg [fl=aj!s=tYkujvac\eaOwMpLac\eh,s=kuoOYo)h
hIj,hx)aOWzy3]{Ojvacl=j!t9_[Y
j[O| } ~(at9kFl=Y]Y/_/Y0wY } \Lkt9kF_[O\_!hguYt{_kuaa_@ohl=Yo)av_!hj/vhrl)th,\ehlOth3]h/g9aMpLac\eh| } \Lkut9kF_[O\K_!hguYt{_Dkua
a)_!o)hrlfY0o)ao`h0v_@h0j/vh,lOth,\ehlOth]h,giY%kuoOYo)h0)v } l=ma)_-\eY_T[=Yg=a
]fh_!vhlt9[fYrgfohQY,gF[`l=aOjo)aj,hx)amh,\LkFlOkFl=a)W
OW XYZ0Y[O\eY%~L(L3~]fY_!YoOhj,hl)=Y_[O\eYP\eacgio"[=_!Y(l=a
)9o)haOW
35'!9)9=3@)
P`"(L%LQ(35r@u,Oi=ri&fOO05O,O((
T%)e"L(L3(Q!0u,=uDu=%)S)Oe,/3'Ffr@
T%)STPMT
Lf!0/9,`9, /,"=F`"=@0//
,e9u"

X 2 2 X 3 3X 4 4 X 5 5X 6
nX ( n +1)
+
+
+
+
+...+
Y =1+
2!
3!
4!
5!
6!
( n + 1)!
T%)e%T(L(L3 )%F=D-e,e" LcF5,,uF='!ce
e)T(MTIM'uu)fO'Oe!OuD,u!)/Q=`&(,LFDO@uru0"O
)@)u!O))OL!O=zP'eLd5r@0!!,=9i)f`)!
T%)STPMT
L!"
 
F=DcLO)=/,OLe !O/r)' ,u=!/r`O!O=Te!)

D!'Oi)0`r'!D0)"`-e,rfr`O 0 dOf'!`uTLO,`r@Q,/FuO`

FD!='OM)f=DL@O5,ic! /ru,'9)0)O!,@,!/r  0

d,/OQ,OiuO/u,^!Q
`+5rDQ`i',u,0'iO&fd@,Or@,Or
d,/O,=uuOO(/ud !,
frTPMT
LO,`%O@dfO/& fFF9)OO(O
fT)O'u&9F/!cOe!)=@0 cO'f
'u&9F/!cO !` !,
35'!9)9

 
 !" $#%&'
$() &*" *"&,+./ (0 12*" *&3 4
5$6)78&9"5 :9"8&; <
50
1

n 0 n!
= 6071829"5 :98&;><
50

n 0

1
2n

? 6A@1B&CD;FE8&;,G@IHJK5&8ML>DN:OPEQORB&;$DSL B&T"8U8&;WVXYNZ\[]JK5M8&L>DS5MDEC;^ ;F_"D


`a6,@bB CFDc;FE8&;dG@bHeJf5M8ML DN:OgEcQO.B&;DhL>B Ti8kj OSU8&;WVXYlZ,[
JK5M8&L DS5MDEC;$^&;W_"D
mn X,8MoM8I:OR8X,Hepq7rG1s$tSpvu:wB5MD = _ ? _"uc:B:Oq8kORB EL>8 `BOqV = 8L>Bx`a:_yECB ? D;OR8z<
Y{UD;\|
} U~D;d
7UD;d
n
n
KUD;\7
UD; }
|UD;Y
t~L n <8k@1DCi_yE8 = B B&;$^ ? 8
B&; DNORBMLORDNU8&;8k9iB2Ci;$8MLrOq_yEQL>5:9"8ML n
n Xd8MoM8I:Oq8eXHpq7rGks$tpU8 ;8C;$8&EL ? D;OR8&;\8MLA9iB2Ci;$8ML = B:OR8e[G1@1sWpq = BIOq_yEQ~L 5 :9"8MLrUw82;8IOR8&_ QL$5
n Xd8MoM8I:Oq8eXHpq7rGks$tpvU~8&;$81C;8&EL ? D;OR82;\8MLA9iB C;$8ML = Bk:O.8b[zG@bsWpS = BIOR8 _yQL>5 :9"8MLrU8&;$8Oq_yEQL$5
n) 8 = DR:OB&CFDc;5MDcO EB&9iBxOhB2ECDL E:OR&;W_i5&DL$V ? 8&oM8:OR8XHpq7rGbs$tSpu
:BB&;W_ ? _yu:~BL>B:O
B&
_"LCB1EBMLCBI~B2CDc;
UCL

Apostila de Informtica Bsica

:9"8ML
:9"8ML
= 8 = D829iD
;
55

 dMMIqeqrk$v~&$b&>M&F \PMWMM) v2~&SM $R11Wq&yw2


 dMMIqeqrk$v~&$b&>M&F \PMWMM v~$&MSy$&yFkR]1 &"cw2
qMhRN]IWP>
&1~ ic1gWMMRNqrb$~&$k&$&,R
e1IWv
&.$ R&~M ).]1WqF y&A Wh R2.>gcq~2"eyFR&
~&$MS &\M&$M M M1MWMM1 v> MSM$cw2 11Wq Fk
 R& &"e iM MM
)qRRS11Wq
&y& ~ iceWMMR,eqr1$Sw2 > 1RN~z~]1Wq
~N&l&$We R qM>.N]1WqF y&>~ R&~h.&~lh&"gyFR&
~&$MS &\M&$M M&WxMWMM v~$&MSy$&yFe11Wq2cb .&P>&"&"M2~M

UCL

Apostila de Informtica Bsica

56

l)

hbqbfrqfefS{Mfd
0

Na elaborao dos Algoritmos devemos adotar as seguintes notaes:


expresses

constantes

valores que no se alteram (numricas,


caracteres e lgicas)

variveis

identificadas por um nome e podem ter seu


contedo alterado (inteiras, reais, caracteres e
lgicas)

operadores

matemticos (/, *, DIV, MOD, +, -)


relacionais (>, <, >=, <=, =, <>)
lgicos (no, e, ou)

comandos

Atribuio

varivel <- expresso;

Entrada de Dados

LEIA(varivel, varivel,...);

Sada de Dados

ESCREVA(expresso, expresso,...);

Seleo ou
Deciso

SE expresso
ENTO comando(s)
SENO comando(s);

Repetio

PARA varivel <- expresso AT expresso


FAA
comando(s);
ENQUANTO expresso FAA
comando(s);
REPITA
comando(s);
AT expresso;

UCL

Apostila de Informtica Bsica

57

l)

S ].1

As tabelas mostradas neste apndice representam os 256 cdigos usados nos computadores da
famlia IBM. Esta tabela refere-se ao American Standard Code for Information Interchange (cdigo
padro americano para troca de informaes), que um conjunto de nmeros representando caracteres ou
instrues de controle usados para troca de informaes entre computadores entre si, entre perifricos
(teclado, monitor, impressora) e outros dispositivos. Estes cdigos tem tamanho de 1 byte com valores de
00h a FFh (0 a 255 decimal). Podemos dividir estes cdigos em trs conjuntos: controle, padro e
estendido.
Os primeiros 32 cdigos de 00h at 1Fh (0 a 31 decimal), formam o conjunto de controle
ASCII. Estes cdigos so usados para controlar dispositivos, por exemplo uma impressora ou o monitor de
vdeo. O cdigo 0Ch (form feed) recebido por ima impressora gera um avano de uma pgina. O cdigo
0Dh (carriage return) enviado pelo teclado quando a tecla ENTER pressionada. Embora exista um
padro, alguns poucos dispositivos tratam diferentemente estes cdigos e necessrio consultar o manual
para saber exatamente como o equipamento lida com o cdigo. Em alguns casos o cdigo tambm pode
representar um caracter imprimvel. Por exemplo o cdigo 01h representa o caracter

(happy face).

Os 96 cdigos seguintes de 20h a 7Fh (32 a 127 decimal) formam o conjunto padro ASCII.
Todos os computadores lidam da mesma forma com estes cdigos. Eles representam os caracteres usados
na manipulao de textos: cdigos-fonte, documentos, mensagens de correio eletrnico, etc. So
constitudos das letras do alfabeto latino (minsculo e maisculo) e alguns smbolos usuais.
Os restantes 128 cdigos de 80h at FFh (128 a 255 decimal) formam o conjunto estendido
ASCII. Estes cdigos tambm representam caracteres imprimveis porem cada fabricante decide como e
quais smbolos usar. Nesta parte do cdigo esto definidos os caracteres especiais: , , , ...

UCL

Apostila de Informtica Bsica

58

UCL

Dec.

Hex.

00h

NUL

(Null)

Controle

01h

SOH

(Start of Heading)

02h

STX

(Start of Text)

03h

ETX

(End of

04h

EOT

(End of Transmision)

05h

ENQ

(Enquiry)

06h

ACK

(Acknowledge)

07h

BEL

(Bell)

08h

BS

(Backspace)

09h

HT

(Horizontal Tab)

10

0Ah

LF

11

0Bh

VT

(Vertical Tab)

12

0Ch

FF

(Form Feed)

13

0Dh

CR

(Carriage Return)

14

0Eh

SO

(Shift Out)

15

0Fh

SI

(Shift In)

16

10h

DLE

(Data Link Escape)

17

11h

DC1

(Device control 1)

18

12h

DC2

(Device control 2)

19

13h

DC3

(Device control 3)

20

14h

DC4

(Device control 4)

21

15h

NAK

(Negative Acknowledge)

22

16h

SYN

(Synchronous Idle)

23

17h

ETB
Block)

24

18h

CAN

(Cancel)

25

19h

EM

(End of Media)

26

1Ah

SUB

(Substitute)

27

1Bh

ESC

(Escape)

28

1Ch

FS

(File Separator)

29

1Dh

GS

(Group Separator)

30

1Eh

RS

(Record Separator)

31

1Fh

US

(Unit Separator)

Text)

(Line Feed)

(End

Transmission

Apostila de Informtica Bsica

59

Caracter

Dec.

Hex.

Caracter

Dec.

Hex.

Caracter

Dec.

Hex.

<espao>

32

20h

68

44h

104

68h

33

21h

69

45h

105

69h

"

34

22h

70

46h

106

6Ah

35

23h

71

47h

107

6Bh

36

24h

72

48h

108

6Ch

37

25h

73

49h

109

6Dh

&

38

26h

74

4Ah

110

6Eh

'

39

27h

75

4Bh

111

6Fh

40

28h

76

4Ch

112

70h

41

29h

77

4Dh

113

71h

42

2Ah

78

4Eh

114

72h

43

2Bh

79

4Fh

115

73h

44

2Ch

80

50h

116

74h

45

2Dh

81

51h

117

75h

46

2Eh

82

52h

118

76h

47

2Fh

83

53h

119

77h

48

30h

84

54h

120

78h

49

31h

85

55h

121

79h

50

32h

86

56h

122

7Ah

51

33h

87

57h

123

7Bh

52

34h

88

58h

124

7Ch

53

35h

89

59h

125

7Dh

54

36h

90

5Ah

126

7Eh

55

37h

91

5Bh

<delete>

127

7Fh

56

38h

92

5Ch

128

80h

57

39h

93

5Dh

129

81h

58

3Ah

94

5Eh

130

82h

59

3Bh

95

5Fh

131

83h

<

60

3Ch

96

60h

132

84h

61

3Dh

97

61h

133

85h

>

62

3Eh

98

62h

134

86h

63

3Fh

99

63h

135

87h

64

40h

100

64h

136

88h

65

41h

101

65h

137

89h

66

42h

102

66h

138

8Ah

67

43h

103

67h

139

8Bh

UCL

Apostila de Informtica Bsica

60

Caracter

Dec.

Hex.

140

8Ch

141

8Dh

142

8Eh

143

8Fh

144

90h

145

91h

146

92h

147

93h

148

94h

149

95h

150

96h

151

97h

152

98h

153

99h

154

9Ah

155

9Bh

156

9Ch

157

9Dh

158

9Eh

159

9Fh

160

A0h

161

A1h

162

A2h

163

A3h

164

A4h

165
166

A6h

167

A7h

168

169

A9h

170

AAh

171

ABh

172

ACh

173

ADh

174

AEh

175

AFh

UCL

176

Dec.

Hex.

177

B1h

178

B2h

179

B3h

180

B4h

181

B5h

182

B6h

183

B7h

184

B8h

185

B9h

186

BAh























A5h

Caracter




A8h

B0h

"
$

Hex.

214

D6h

215

D7h

216

D8h

217

D9h

218

DAh

219

DBh

220

DCh

221

DDh

222

DEh

223

DFh

224

E0h

225

E1h

226

E2h

227

E3h

228

E4h

229

E5h

230

E6h

231

E7h

232

E8h

233

E9h

234

EAh

235

EBh

236

ECh

237

EDh

238

EEh

239

EFh

240

F0h

241

F1h

242

F2h

243

F3h

244

F4h

245

F5h

246

F6h

&
'
(

)
*
+
,
.

187

BBh

188

BCh

189

BDh

190

BEh

191

BFh

192

C0h

193

C1h

194

C2h

195

C3h

196

C4h

197

C5h

198

C6h

5
6
7
8
9

199

C7h

200

C8h

201

C9h

CAh

203

CBh

<

204

CCh

205

Dec.

202

Caracter

CDh

>

206

CEh

207

CFh

208

DOh

209

D1h

210

D2h

247

F7h

211

D3h

248

F8h

212

D4h

249

F9h

213

D5h

250

FAh

Apostila de Informtica Bsica

61

Caracter

Dec.

Hex.

251

FBh

252

FCh

253

FDh

254

FEh

255

FFh

UCL

Apostila de Informtica Bsica

62

Entre os caracteres da tabela ASCII estendidos os mais teis esto, talvez, os caracteres de
desenho de quadro em linhas simples e duplas: os caracteres de B3h at DAh (179 a 218 decimal).
Como a visualizao deste conjunto difcil, o desenho abaixo pode auxiliar nesta tarefa:

196 194
218

179

205 203

IKJLI

MKNOI

^W_a`

UWVYX Z
bK`Oc d

187

195
185

197

192

206

jlkLm

jlnan

188

193

202

209

210

213

tvuWwax

yKuOx

198

vWa

KO

183

182
216
212

215

vKL

KO

189
207

208

Figura A2.1: Caracteres de desenho de quadro e seus respectivos cdigos ASII.

Você também pode gostar