Você está na página 1de 11

Sintaxe da linguagem C/C++

Linguagens de Programao I By Rui Pais Pg. 1


1. Introduo

Linguagem C++
Evoluo da linguagem C
o suporte para os conceitos de orientao a objectos
Stroustrup

1 programa Hello World

#include <iostream> // incluir biblioteca de Input/Output

int main() // funo principal, onde o programa inciado
{
cout << "Hello World"; // mostrar no ecr a frase "Hello World"
return 0; // devolver ao S.O. o valor 0 = SUCESS
}

1.1 Palavras Reservadas

asm continue float new signed try
auto default for operator sizeof typedef
break delete friend private static union
case do goto protected struct unsigned
catch double if public switch virtual
char else inline register template void
class enum int return this volatile
const extern long short throw while

No pode exitir variveis, funes, classes, objectos, etc. tendo como nome uma
palavra reservada.

1.2 Definio de Comentrios

// incio de um comentrio at ao fim da linha

/* incio de comentrio
cout << "Hello World"; // escreve no ecr
*/ fim de comentrio

/* incio de comentrio
cout << "Hello World"; /* erro */
*/ fim de comentrio
Sintaxe da linguagem C/C++

Rui Pais Pg. 2

1.3 Declarao de Variveis

Todas as variveis devem ser declaradas antes de serem utilizadas.

2 programa rea de um rectngulo

#include <iostream> // incluir biblioteca de Input/Output

// prottipo da funo perimetro
long perimetro(const long alt, const long larg);

int main()
{
long alt, larg;
cin >> alt >> larg; // ler altura e largura!?
cout << "rea = " << alt * larg << "\n";
cout << "Perimetro = " << perimetro(alt, larg) << endl;
cin >> resposta; // varivel no declarada
return 0;
}

long perimetro(const long alt, const long larg)
{ //parametros entram por valor
long res; // declarao de varivel
res = alt * 2 + larg *2;
return res; // devolver o resultado
}

1.4 Variveis Estticas

As variveis estticas so criadas uma nica vez, e inicializada s no momento de
criao. Estas, tm um tempo de vida igual ao programa, donde funcionam como
variveis globais com visibilidade local.

EXEMPLO:
int contador()
{
static int cont = 0; // varivel esttica
cont = cont +1;
return cont;
} // Esta funo retorna o n de vezes que foi invocada.

Sintaxe da linguagem C/C++

Rui Pais Pg. 3

1.5 Caracteres Especiais

Os caracteres so definidos entre pelicas, como por exemplo:

char c = A;

Barra invertida \ \\ "ola \\ jj"
Tabulao (tab) \t "ola \t jj"
Retrocesso (backspace) \b "ola \b jj"
Mudana de linha \n "ola \n jj"
Mover para incio da linha \r "ola \r jj"
Apstrofe \ "ola \ jj"
Aspas \" "ola \ jj"
Caracter ASCII 0 \0 "ola \0 jj"



1.6 Caracteres Especiais para Nmeros

Nmero octal hhh \hhh "ola \101 jj"
Nmero hexadecimal xhh \xhh "ola \x41 jj"
101(8) = 65 (10) = A
41(16) = 65 (10) = A

long valor = 1000L; // especificar que 1000 n longo
unsigned idade=25U; //especificar que 25 n sem sinal
float peso = 56.6f; //especificar n do tipo float

double distancia = 3.65E2; // expoente
double zero = 0.0; // 0.0 valor do tipo double

Sintaxe da linguagem C/C++

Rui Pais Pg. 4

1.7 Visibilidade de Variveis

As variveis podem ter uma visibilidade global ou local.
Podem existir variveis globais e locais com o mesmo nome? Sim.

3 programa Variveis locais e globais

#include <iostream> // incluir biblioteca de Input/Output
int i = 0; // varivel global vlido at fim ficheiro

int main()
{ int i = 5;
{ int j = 10;
{ int k = 15;
cout << "i = " << i << endl;
cout << "j = " << j << endl;
cout << "k = " << k << endl;
} // k termina aqui
} // j termina aqui
cout << "i = " << i << endl;
cout << "j = " << j << endl;
cout << "k = " << k << endl;
return 0;
}
A validade de uma varivel termina no fim bloco { ... }
externo em que est declarada.
Se no exemplo anterior todas as variveis tiverem o mesmo
nome, qual o resultado do programa?


1.8 Converso de Tipos

Converso Implicita:

double x = 7; // converso de int para double
int i = 4.5; // converso de double para int // i==4
// perde-se informao
char espaco = 32; // conversao de int para char
// igual a: char espaco = ;



Sintaxe da linguagem C/C++

Rui Pais Pg. 5

Converso Explicita:

double x = (double) 7; // converso de int para double
int i = (int) 4.5; // converso de double para int

1.9 Expresses arritmticas e lgicas

Expresses arritmticas:
So construidas custa dos operadores:
+ * - / % ( )

int i = 5 * 6 + 4 * 7 + 3;

//utilizar parntices para alterar a precedncia dos operadores
int j = 5 * 6 + 4 * (7 + 3);

double x = 5 / 7; // divisao inteira // x == 0
double y = 5 / 7.0; // diviso real // y == 0.714286

int x = 55 % 10.0; // resto da diviso s para inteiros

Expresses lgicas:
So construidas custa dos operadores:

Operador Descrio
== Igualdade
!= Diferente
< Menor
<= Menor ou igual
> Maior
>= Maior ou igual
! Negao do valor lgico
|| "ou" lgico
&& "e" lgico

e devolvem um valor booleano: true ou false

int x = 5, y = 10;
bool flag;
flag = x==y;


Sintaxe da linguagem C/C++

Rui Pais Pg. 6

if(x >= y) { ... }

if( ! (x == 5 && y !=5) || (! x < y) )
{ ... }

Nota:
! ( a < b ) == ( a >= b )
! ( a <= b ) == ( a > b )
! ( a && b ) == ( !a || !b )
! ( a || b ) == ( !a && !b )

EXEMPLO:
int i = 5, j = 8;
if( (! (i > 5 && j < 10) ) == true ) { ... }
equivalente ? a :
if( ( (i <= 5 || j >= 10) ) == true ) { ... }


1.10 Comando if e switch

Alterao de fluxo simples:

if (condio) // condio uma Expresses lgicas!
{ // executar se condio verdadeira
aco1;
aco2;
...
}

Alterao de fluxo composta:

if (condio) // condio uma Expresses lgicas!
{
aco1;
...
}
else // se condio false
{
aco10;
...
}

Sintaxe da linguagem C/C++

Rui Pais Pg. 7

Multiplos if podem ser substituidos por um switch

EXEMPLO 1:

if(x == 5) { bloco1 }
if(x == 10) { bloco2 }
if(x == 25) { bloco3 }
equivalente a:
switch(x)
{ case 5:
{ bloco1 }
break;
case 10:
{ bloco2 }
break;
case 25:
{ bloco3 }
break;
}

EXEMPLO 2: // ifs encadeados
if(x == 5)
{ bloco1 }
else
{
if(x == 10)
{ bloco2 }
else
{ bloco3 }
}
equivalente ? a:
switch(x)
{ case 5:
{ bloco1 }
break;
case 10:
{ bloco2 }
break;
default: // se nenhum dos casos anteriores for vlido
{ bloco3 } // executa o bloco por omisso
break;
}
Sintaxe da linguagem C/C++

Rui Pais Pg. 8

1.11 Ciclos while, for e do ... while

Os ciclos permitem a repetio de um bloco de comando,
tendo em ateno uma condio de paragem.

Ciclo while:

while(condio) // enquanto a condio for verdadeira
{ // executar o bloco
bloco
}

EXEMPLO1:
int x = 5;
while(x < 10)
{ cout << "X= " << x << endl;
x = x +1;
}

EXEMPLO2: // ciclo infinito
int x = 5;
while(true) // condio sempre verdadeira
{
cout << "X= " << x << endl;
x = x +1;
if( x >= 10)
break; // sair do ciclo
}

Ciclo for:

for(bloco1 ; condio ; bloco2 )
{
bloco3
}
equivalente a:
bloco1;
while(condio)
{
bloco3;
bloco2;
}
Sintaxe da linguagem C/C++

Rui Pais Pg. 9

EXEMPLO1:
for(int x = 5; x < 10 ; x = x + 1)
{
cout << "X= " << x << endl;
}

EXEMPLO2: // ciclo infinito
for(int x = 5; true; x = x +1) // condio sempre true
{
cout << "X= " << x << endl;
if( x >= 10)
break; // sair do ciclo
}

EXEMPLO3: // ciclo infinito
int x = 5
for( ; ; ) // condio sempre true
{
cout << "X= " << x << endl;
if( x >= 10)
break; // sair do ciclo
x = x + 1;
}

Ciclo do ... while:

do
{
bloco // bloco sempre executado 1 vez
}
while(consio); // repetir o bloco enquanto condio
// verdadeira

EXEMPLO1:
int x = 5;
do
{
cout << "X= " << x << endl;
x = x +1;
} while(x < 10);


Sintaxe da linguagem C/C++

Rui Pais Pg. 10

EXEMPLO2: // ciclo infinito
int x = 5;
do
{
cout << "X= " << x << endl;
if( x >= 10)
break; // sair do ciclo
x = x +1;
} while(true); // condio sempre true

Sintaxe da linguagem C/C++

Rui Pais Pg. 11
1.12 Bibliotecas

Bibliotecas so conjunto de funes que encontra-se compiladas em ficheiros com a
extenso .a e .lib, nos sistemas operativos Linux e Windows respectivamente.
Para utilizar as funes de uma determinada biblioteca, necessrio incluir um
ficheiro com o prottipo das funes disponveis por essa biblioteca (ficheiro com
extenso .h).
Em C++ podem ser utilizadas todas as bibliotecas da linguagem C conjuntamente
com as bibliotecas da linguagem C++.

Bibliotecas da linguagem C:

Biblioteca
C
Biblioteca C++
equivalente
Contedo
alloc.h Calloc
Funes para manipulao de memria
assert.h Cassert
Funes para auxlio na deteco de erros
complex.h Ccomplex
Funes para manipulao de nmeros complexos
string.h Cstring
Funes para manipulao de cadeia de caracteres (strcpy,
strcat, substr, ....)
ctype.h Cctype
Funes para manipulao de cadeia de caracteres (toupper,
tolower, ...)
errno.h Cerrno
Funes para manipulao de nmeros de erros
float.h cfloat
Contm os limites relacionados a nmeros em virgula
flutuante
math.h cmath
Funes matemticas
signal.h csignal
Funes para manipulao de sinais
stdio.h cstdio
Funes para manupulao de entrada e sada.
stdlib.h cstdlib
Fnes para manipulao de memria, converso entre strings
e nmeros, gerao de nmeros aleatrios, etc.
time.h ctime
Funes para manipulao de tempo e datas

Bibliotecas da linguagem C++:

Biblioteca C++ Contedo
iostream
Funes para manipulao de entrada e sada (Input/Output)
fstream
Funes para manipulao de ficheiro entrada e/ou sada
vector
Funes para manipulao de vectores (sequncia de elementos)
string
Funes para manipulao de strings (sequncia de caracteres)

Você também pode gostar