Escolar Documentos
Profissional Documentos
Cultura Documentos
1 Introduo
Para criar programas, usa-se uma linguagem de programao, dita de alto nvel, como
o C++, e especifica-se as instrues que o computador deve executar. Em seguida,
por meio de um programa especial chamado compilador, converte-se as instrues de
programao na linguagem de mquina (binria) que o computador compreende.
2 Tipos de Dados
Sintaxe:
tipo nome_varivel;
Ex.:
int x, y;
float f;
Sintaxe:
nome_varivel = valor;
Ex.:
x = y = 10;
f = 3.5;
Sintaxe:
tipo nome_varivel = valor;
Ex.:
int x =10, y =10;
float f = 3.5;
Sintaxe:
#define NOME_CONSTANTE valor
Ex.:
#define PI 3.14159
#define MAX 500
3 Operadores
Sintaxe:
nome_varivel = expresso;
Ex.:
y = 2; // atribui o valor 2 a y
x = 4 * y + 3; // atribui o valor da expresso a x
ex.:
int x;
float f;
x = f = 3.5; // resulta em f = 3.5 e x = 3
f = x = 3.5; // resulta em f = 3.0 e x = 3
Ex.: x = 2;
y = 4*(x) + 3;
+ adio
- subtrao
* multiplicao
/ diviso
% mod - fornece o resto da diviso de 2 ns inteiros
& E binrio
| OU binrio
! NO binrio
Ex.: 10 % 2 = 0
11 % 2 = 1
3.2.3 Precedncia
1. ++, --
2. *, /, %
3. +, -
Para alterar a precedncia basta colocar a expresso entre parnteses. Quando dois
operandos tm o mesmo nvel de precedncia, eles so avaliados da esquerda para a
direita.
Ex.:
(x + y) / 2 // ser feito 1 a soma e depois a diviso
x/y* 2 // ser feito 1 a diviso e depois a multiplicao
Sintaxe:
expresso_1 operador = expresso_2
equivalente a
expresso_1 = expresso_1 operador expresso_2
Ex.:
x=x*5 x *= 5
a =a +1 a += 1 ou a++
x=x/b x /= b
y=y1 y -= 1 ou --y
3.4.1 Operadores
Ex.:
4 == 3 // resulta em falso
3>2 // resulta em verdadeiro
3.4.2 Precedncia
Ex.:
(5 > 2) && (3 != 2) // resulta em verdadeiro ambos verdadeiros
(5 < 2) && (3 != 2) // resulta em falso apenas 1 verdadeiro
(5 < 2) && (3 == 2) // resulta em falso ambos falsos
(3 >= 2) | | (4 != 2) // resulta em verdadeiro ambos verdadeiros
(3 >= 2) | | (4 == 2) // resulta em verdadeiro pelo menos 1 verdadeiro
(3 <= 2) | | (4 == 2) // resulta em falso ambos falsos
!(4 == 2) // resulta em verdadeiro pois a expresso falsa
!(4 != 2) // resulta em falso pois a expresso verdadeira
4 Controle de Fluxo
Fluxograma:
condio? condio?
V F V
F
comando 1 comando 1 comando 1
comando 2 comando 2 comando 2
... ... ...
if (condio)
{
[comandos]
}
else
{
[comandos]
}
Comentrios:
Executando um bloco if, a condio testada. Se a condio for verdadeira,
as instrues seguintes so executadas. Se a condio for falsa, a condio
else (se houver) ser executada.
5 Estruturas de Repetio
Fluxograma:
inic.
condio?
incr. F
comando 1
comando 2
...
Sintaxe:
for ([inicializao]; [condio]; [incremento])
{
[comandos]
[break;]
[comandos]
}
Comentrios:
Qualquer nmero de instrues break pode ser posicionado em qualquer lugar
do loop como meio alternativo de sair.
Executa uma srie de instrues desde que uma determinada condio seja
verdadeira.
Fluxograma:
condio?
V
F
comando 1
comando 2
...
Sintaxe:
while (condio)
{
[comandos]
}
Comentrios:
Se a condio for verdadeira, todos os comandos sero executados. Ento o
controle retorna para a instruo while e a condio novamente verificada.
Se a condio ainda for verdadeira, o processo repetido. Se no for
verdadeira, a execuo continua com a instruo seguinte ao bloco de
comandos.
Os loops while podem ser aninhados a qualquer nvel.
Dica: A instruo while fornece um meio mais estruturado e flexvel para executar um
loop.
Fluxograma:
comando 1
comando 2
...
V
condio?
Sintaxe:
do
{
[comandos]
[break;]
[comandos]
} while (condio)
Comentrios:
Qualquer nmero de instrues break pode ser posicionado em qualquer lugar
em dowhile como alternativa para sair de um dowhile.
Quando usada dentro de instrues dowhile aninhadas, break transfere o
controle para o loop que est aninhado em um nvel acima do loop onde ocorre
break.
6 Funes
H uma lista imensa de funes que esto disponveis a partir das bibliotecas dos
compiladores. Para utilizar-se delas preciso acessar a ajuda destas bibliotecas ou
guias de referncia de C++ para se ter a forma de utilizao das funes e classes
disponveis.
6.1.1 cout
Esta funo imprime dados na tela e o arquivo de cabealho a ser includo: iostream.h
Ex.:
float x = 1.25;
int y = 1;
Sada na tela:
O manipulador endl utilizado para passar o cursor para a prxima linha. O manipulador flush
utilizado para esvaziar o buffer de sada, apresentando o seu contedo imediatamente. O
manipulador setprecision(n) define um determinado nmero de dgitos de preciso para ponto
flutuante.
Para formatar as sadas, utilizam-se alguns mtodos adicionais, os quais esto disponveis no
arquivo de cabealho iomanip.h
6.1.2 cin
Ex.:
float x;
int y;
char z;
cin >> x >> y >> z;
1.25 1 a
Para ler linhas inteiras pelo teclado, utiliza-se o mtodo adiciona cin.getline( buff, len, delim),
o qual est disponvel no arquivo de cabealho iomanip.h
6.1.3 ofstream
Esta classe abre um arquivo para escrita e o arquivo de cabealho a ser includo: fstream.h
Ex.:
float x = 1.25;
int y = 1;
ofstream tfile(arq.txt);
tfile << FLOAT = << x << INT = << y << endl;
Esta classe abre um arquivo para leitura e o arquivo de cabealho a ser includo: fstream.h
Ex.:
char buff[250];
istream tfile(arq.txt);
while (!tfile.eof())
{
tfile.getline(buff, 250);
cout << buff << endl;
}
uma seo de cdigo independente e autnoma, escrita para desempenhar uma tarefa
especfica. Deve conter prottipo e definio da funo.
Sintaxe:
tipo_retorno nome_funo(tipo_arg nome1, ...., tipo_arg nomen);
tipo_retorno tipo de varivel que a funo retornar. Pode ser char, int, float,
double e void (se no retornar nada).
nome_funo descreve o que a funo faz.
tipo_arg tipo e nome das variveis que sero passados para a funo. Pode
ser char, int, float.
nomen double, void.
Sintaxe:
tipo_retorno nome_funo(tipo_arg nome1, ...., tipo_arg nomen)
{
comandos;
}
tipo_retorno tipo de varivel que a funo retornar. Pode ser char, int, float,
double e void (se no retornar nada).
nome_funo descreve o que a funo faz.
tipo_arg tipo e nome das variveis que sero passados para a funo. Pode
ser char, int, float.
7 Matrizes
7.1 Vetores
Quando o C++ v uma declarao como esta ele reserva um espao na memria
suficientemente grande para armazenar o nmero de clulas especificadas em
tamanho. Por exemplo, declarando:
exemplo[0]
exemplo[1]
.
.
.
exemplo[19]
exemplo[30]
exemplo[103]
Por qu? Porque o C++ no verifica se o ndice utilizado est dentro dos limites
vlidos. Este um cuidado que deve-se tomar. Se o programador no tiver ateno
com os limites de validade para os ndices ele corre o risco de ter variveis sobre-
escritas ou de ver o computador travar.
Uma matriz N-dimensional funciona basicamente como outros tipos de matrizes. Basta
lembrar que o ndice que varia mais rapidamente o ndice mais direita.
Podemos inicializar matrizes, assim como podemos inicializar variveis. A forma geral
de uma matriz como inicializao :
A lista de valores composta por valores (do mesmo tipo da varivel) separados por
vrgula. Os valores devem ser dados na ordem em que sero colocados na matriz.
Abaixo vemos alguns exemplos de inicializaes de matrizes:
Devemos lembrar que o tamanho da string deve incluir o '\0' final. A biblioteca padro
do C++ possui diversas funes que manipulam strings. Estas funes so teis pois
no se pode, por exemplo, igualar duas strings desta forma:
8.1.1 strcpy
strcpy (string_destino,string_origem);
8.1.2 strcat
strcat (string_destino,string_origem);
8.1.3 strlen
strlen (string);
8.1.4 strcmp
strcmp (string1,string2);
nome_da_varivel [ndice]
Podemos inicializar strings, assim como podemos inicializar matrizes. Abaixo vemos
alguns exemplos de inicializaes de strings:
Da mesma forma que ocorre com matrizes, podemos, em alguns casos, inicializar
strings das quais no sabemos o tamanho a priori. O compilador C++ vai, neste caso
verificar o tamanho do que voc declarou e considerar como sendo o tamanho da
matriz. Isto ocorre na hora da compilao e no poder mais ser mudado durante o
programa, sendo muito til, por exemplo, quando vamos inicializar uma string e no
queremos contar quantos caracteres sero necessrios. Por exemplo:
No exemplo, a string mess ter tamanho 36. Repare que o artifcio para realizar a
inicializao sem especificao de tamanho no especificar o tamanho!