Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Fundamentos de
Linguagem C++
!"$#%&#"(')*),+!#.-0/!&
+!!# 12435768:9; <=
SERRA / ES
UCL
Apresentao
UCL
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.
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
Sumrio
Apresentao_______________________________________________________________________________ 2
INTRODUO _____________________________________________________________________________ 3
Sumrio ___________________________________________________________________________________ 4
1.
2.
Algoritmos __________________________________________________________________________ 6
Mtodo para a construo de Algoritmos _____________________________________________________ 8
Formas de Representao Algortmica _______________________________________________________ 8
3.
4.
Comandos __________________________________________________________________________ 19
Comandos de Atribuio _________________________________________________________________ 19
Comandos de Entrada e Sada de Dados _____________________________________________________ 20
Estrutura Seqencial ____________________________________________________________________ 23
Comentrios___________________________________________________________________________ 23
5.
6.
7.
>@?: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
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.
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
"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."
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:
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
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".
UCL
abrir o porta-malas
retirar o estepe e o macaco
3
4
5
6
7
8
9
10
11
12
13
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(
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
Fim
UCL
10
sim
Coloc-lo prximo
ao pneu furado
no
Regularizar sua
condio
sim
Levantar
o carro
no
Interrompa
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.
11
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
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
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
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}
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
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++
<
>=
<=
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
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
.
18
4. Comandos
Os comandos de programao usados na construo dos Algoritmos so os seguintes:
Atribuio
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
ghdi$j gk k o
Ex.:
a) km n-o
c) media x
UCL
y@z{|}~I
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
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
20
escreva
lista-de-identificadores
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
21
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
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
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
.
.
.
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
23
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
24
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>;
}
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
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;
Idade
Faa um algoritmo que determine e escreva:
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
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 >
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
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.
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>;
}
ex p resso ++
Neste caso, uma seqncia de comandos ser executada somente se a condio for verdadeira e persistir enquanto ela
for verdadeira.
UCL
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
UCL
29
!"#$%& '"(*)+", Portugol
Algoritmo
v ariv el ex p ress o
Faa
<comandos>;
<comandos>;
ate que (condio);
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
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
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
31
escreva TERMO;
TERMO 5 678: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
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!
UCL
33
Janela de Objetos
(Object TreeView)
)))TreTrTreeView)
Janela
Formulrio
(Form)
Guia de
Componentes
Code Editor
(Cdigo Fonte)
Propriedades/ Evetos
(Object Inspector)
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
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
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
35
UCL
36
A janela Form
na
ocorrncia de um evento.
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
Fig6.8.:New Itens
UCL
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.
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:
- Espaos em branco :
- #include <vcl.h>:
UCL
39
- iostream.h:
- math.h:
- cout :
- cin:
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
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
UCL
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;5HD5Db
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
!#" $ %'&"(
+,-. $ (/.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}-u4zegk.u.:uG-z*u z2|I}N~E>--z}G*L8uG
egkw
a:X
UCL
.'5S*-NlNI
' X!3
@Nl3>6NX3N
!
4akkLNak2L
'
Apostila de Informtica Bsica
42
gk3S3
:g
@Nl3>
@Nl3G
4ak >
4akN c
4ak
2L.NX3.<5EN4kLN
"!$#
%&('*),+,)-/.0)1 2$346578.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$o53A p@453/J>LF3N.9=O5H),H/=Do,)4Y2$3W=>3q?@=@-9?@)1p465Z3<r/4k- 7k3so,3A$?e5H/=4X=tJ
)& uwv@xyz{6|Z}<~/{k k}Wk@;m{,x@ vaD>
~ uwB $|} z{6|}W{XC,@~;{Xz"9x {x|ZY|,x,C}$"$/}sv@xyz{6|}<~ {k k}/
w6Wkk D/@,aCs@t
*,,m/n $689sm$ $6M<^Xt
s 6 FK9//DCk$
s 6 F`I@Z6< Y$k/
s 6 F`I@Z6W8 /
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
,@@$`WDK9,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%ON(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)WR
v$_
IYKLJv)_~OuYtT_~IYGK[J
PYIJ~U^Zq[^XW
_~WPYcTVYKL[J
YIYOEX TKpY%ONYOF$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
43
msfL9sizB%L
sE
$m
c
P
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?PQAJ4N,RFO
FLV"OxIJqF"LNOxVIJqF"LNOG\[^"p,RqXWcl6F"LlI[LV.F XVMIqP\QYVV"s/R&OWV:X
X:NS`
Y=
( X + 1) ( X + 2) ( X + 3)
1!
2!
3!
+...+
(X + N )
N!
+...
1
2
3
4
SWrr[w&
"G w&&"6 W:"w :"W& >
4d4(?
/G@:4 =W:
"T*{4&Y9:"W:"Y"W::
"W[ YW: wW:5"W =T&Y"/K: W:"Y"xGq6
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&(DE6DFGHI!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
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!
v$cz9 B9`6 B*
a>bdcecgfhdn-m[lDndir[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
45
N
F =
: -g (
D
2A222
9
C + 32
5
Xxs*6=:120
g5040
226g6}6T>?= D 266$**\22
SenA = A
g=62
5&~Y;
Ndc
zhjxlm0n9op3qr5stvuAwyx{zT|~}t{x|d|?{|?4t
l8 |~
{&0.M
{
mMa?;A;.
5=T55 .9Y7h (>5(3>&^KaAP .^P3a4Pl45a=&P
UCL
46
xTqL93^
Apostila de Informtica Bsica
47
y&z0{:|!}0{&}!~
y:zF"2wRE}!}~
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&m22+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: mhO2020
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:2h02!
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
Pw9fw&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'//
#W!CERHZ'//
-
4
1
EDF
# FGH
5 . 3
SQ
S>Y Q
-#6 7
!CERHZ/^
!
/
E
-# '
# `
9 m
`
#
!7 & : u ! w
-#O 1
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
,j
#
g F+ !
. -'9:
B
8
0 0.
oc-# W (
a#3$
5# . $I
8
/p
+q 1
V
$# -
-# ]
B# F
!
sr
-#O -I
k.
-
98
JI
YQ
: "
&
9 "+ : : w
u :'
: 09 M w w
L_ .-
!
# $C
-#6
-]
/" 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
/.#
0.ic f
, j B8
# . mI
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~
~5y~|-xa>z3
za~
x1z\}$~$
c~w-Oz
!.
\s .$/{4JJ..{m4{$
$O{-.B6BO\/
\-
cOB.-1
T+!- .c/{a-{m
4
-s4g{B/
W/-?/M?$a7-
/4m!<1{m7!
s
4
{51
mg/m{-
7.$.-
-
<-Oe\cJ-54N6
B.O1.0mT
.c-`. + O.cJF9..
9.
9.
)(*.
gO.cJ7.g
$V7c
+ -, #
-V<-O1
)89B
m1cJ
- #5.{W7$$
:#
$V7c
-O1%a$1BW
$. . `
cJBm?
a$A
#L\ .N.{B2C<(EcED
g?-{-67
9-aB-cJ!`O.c'%4%5H67
.3
c-N\ eT
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:
eqbr
]^`_>aA_'b"cd_>e fghjilkmcngpo brq)w q>k~q>hcEi}qo br_eYgcq>}"ghtz_>eghq>$i{kmq}k~q}Ygtq>k~ghwgnq> qhvUv>ig-}%cq>h+g\C
w"q>{{qA{t_>eghqA{
]:^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_>elobYq>hobzqi}$tYq>hjk~_g{
vA_h+_Avkmqh+qA{'wqLv?_w_b"c_)w _A{|r_>e_t"h+_A{
UCL
49
$l)+
$>AA3!l lUrjUL~
z)"z) nzA:-A>A>~>
)A>Aj>A$z>Y
>%::-z>"A>
AAE> YY~
E UU
B>z)-%)":l"z$rB
Ul+d-AA>~"
m?z)'lz%" ~)'Y`Ym
$><' ~lY>Y :: >+U>:>j El'd+>m:AC z> A'+"YA" '"A>AA"~>jA
$>AA> lY->uzU$>L"A 3j "3r -uY:E~+u>~$uA%AA
Y> >> B)-$"+:>$A YBA:z+AEz>~+
"><AA"> l-z
>'"zj%r
A%>?> K z>~`
"~>A>)A~AzmA
ACd"m"
)"j%~z"%"u3Y>~
)'A>~LYdC
"-U r::)U:
L$zl"~)jA
~>~lz> ?L%U$rnmK
Y>~$%rB>lY"z"+z"jAAA
A<AA"> l-z
UCL
50
)"
!#"$ %&'()*+-,/.10
2-3*-2,4--35678"$:9;'1<)*+,=<>@?<:.10
6A26*2B,C
>BED*B+
"'1F,E2
,G-+6A ,H:I7KJL=$+*2BMB;+
NKJ,<*2-MO6PQRL+S*-'2UTP
B" ,,< 26
V*53A"3'1WX$JYZP+6QN:"6*6[S*
@\6
2*-26C%Y*]
^
ZTP
B" ,,<82_6A2<*WX`TP2<0_,
[V'SVab 2BH'1?cd2eV*-+
"'1 WXH26-,f+B
,ghe7iC
"
YNj,<kl-356mj:$\7hH+nY1*I*B=,2_$-+
JkP35$HNo2-cP
0,T
*-"3]-12F"$l,
'1<)3*B=6,p2B+
KO
@ 3V*P2iTP,,AB1*L=6n)Wq6,C
rs utgWid' v-6VS)O6Pw
xy1i8<=
j"o%z<'[<)<*+,uL6+2BT@$x-'
,p2B/[{TPV*+SA6C
>B!|T@}B,HG'1V5-
Jx)261LnVOB@GI+
2-GLBn)O6@H~,)I"6*6=<*-]4*-/T@=+G,6T3=16,b)*+
'16A,KTA ,
J-e*jT=pV*L1B ,fP<'
,j HTA ,C
"
y4A2*"<c,<"*+<)*6+B,K*6-
,fT3A,(JB2B"3A,<"*65c)*+!,K*6B)
,K HT@A ,C
r YG2F"6*B.V*526I*\
<vB1,
6,
J"2~A<vB1,(\"$*-+*26M*)IE~122E2,<,)T ,,6IL=W 6
' v-6VS)O6Pw
@<
2-e+2-6,pB,j22B,K*i)<)}$
1
>B !,<"
P*-$)2,KTP,<,,KO6Pe=(z12c2i)16xO6Pe122B2jT )V
"
g[,(53y-,K*,j2- ,xT@,<,6,KOB@e+<de122j
KO
@!i)?261
2 g[,(53y*)2jT@,<,B2j16yj)3*P$y1226
r Y2RO6PTP
" 2BF' *-2~BISPn)I2I%H\<'V-*,,53*-]J,<(`*$)J Q,*
= ,2- ,
<<'11Wq6,C6t@ Wjz' v-6=VS)/OBw
DnHT )*)j?261!2"2B'{-*
Nj'1"<'13A"3*B=(v-<z2!' *-,j"<.1H/*-$)"$)"!"
ze'[<+
!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,p3' P*,y+<T@'1)3*-,j2
@,j*B+,j"3 )!2
r yY 2BP<
+`2e*Y'1<)3*B+,uLWid3' 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,
+*"12j62B+nY1*2H<'[<*+\*P+$x
2 !,<"
<P)<*6yj)31By3'[()*+H2|P+6g
r !iY"[26226GV*-+[$=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
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
57$
KLM-(N )O
)!$+)6 5PQ> R<S
T$
U-*
$
U @ H
FO
%V "3WAPX<
<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
!jKcf
h $f
Z C
cf d
==
d=
==
d&"
<
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 5PEK
d"}
F
( *$!
kGLX_py *@) /
"
<
UCL
52
:/> $.J
n N$N_
F' !)Cr/_k_ 4 1)' *.N!{$j_ $*G) )
j'1n*.N!{3$,$j$r4m ) *@>&
GHH,1 8* $ 4 *,
F
Nn/&E * km! *)/_)6
GHH,1 ! $ H* km*N4)&
jFN,&*>H$ 4)E N
6'1n*.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) GH>
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!{V3@CVn ){*.>^r>C@>^n/@n*N4)A
8*$4$ *H43,>*,$G4^N 8*$ Ft,
6'1n*.N!{VmE 8m) ) ! 1),/E_1 4)N/E/E ,, .
6k'' 4). E6!{^_Q/ !C !$C rT)A:rFG.J!)! $$
NN$
$
k
n N$N
1 ))$
j
6
6)
_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&*
1J)Et
^6
n N$N
:
$3J),* !NE^ >*A$CQ
F !nN :
UCL
53
[\!] ^]2_
` acb ^d]e
[ `f
fg e2hi\ a=aLj eWk
[^ gil e<k
UCL
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
!"
$#%&'
$()&*" *"&,+./ (012*" *&3 4
5$6)78&9"5 :9"8&; <
50
1
n 0 n!
= 6071829"5 :98&;><
50
n 0
1
2n
:9"8ML
:9"8ML
= 8 = D829iD
;
55
UCL
56
l)
hbqbfrqfefS{Mfd
0
constantes
variveis
operadores
comandos
Atribuio
Entrada de Dados
LEIA(varivel, varivel,...);
Sada de Dados
ESCREVA(expresso, expresso,...);
Seleo ou
Deciso
SE expresso
ENTO comando(s)
SENO comando(s);
Repetio
UCL
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
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
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
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
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
61
Caracter
Dec.
Hex.
251
FBh
252
FCh
253
FDh
254
FEh
255
FFh
UCL
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