Você está na página 1de 11

Sintaxe da linguagem C/C++

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 auto break case catch char class const continue default delete do double else enum extern float for friend goto if inline int long new operator private protected public register return short signed sizeof static struct switch template this throw try typedef union unsigned virtual void volatile 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"; */ fim de comentrio /* incio de comentrio cout << "Hello World"; */ fim de comentrio

// escreve no ecr

/* erro */

Linguagens de Programao I By Rui Pais

Pg. 1

Sintaxe da linguagem C/C++

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.

Rui Pais

Pg. 2

Sintaxe da linguagem C/C++

1.5 Caracteres Especiais Os caracteres so definidos entre pelicas, como por exemplo: char c = A; Barra invertida \ Tabulao (tab) Retrocesso (backspace) Mudana de linha Mover para incio da linha Apstrofe Aspas Caracter ASCII 0 \\ \t \b \n \r \ \" \0 "ola "ola "ola "ola "ola "ola "ola "ola \\ \t \b \n \r \ \ \0 jj" jj" jj" jj" jj" jj" jj" jj"

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

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

Rui Pais

Pg. 3

Sintaxe da linguagem C/C++

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; int i = 4.5; // // // char espaco = 32; converso de int para double converso de double para int // i==4 perde-se informao // conversao de int para char // igual a: char espaco = ;

Rui Pais

Pg. 4

Sintaxe da linguagem C/C++

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;

Rui Pais

Pg. 5

Sintaxe da linguagem C/C++

if(x >= y)

{ ... }

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

< <= && ||

b b b 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) { aco1; aco2; ... } // condio uma Expresses lgicas! // executar se condio verdadeira

Alterao de fluxo composta: if (condio) // condio uma Expresses lgicas! { aco1; ... } else // se condio false { aco10; ... }

Rui Pais

Pg. 6

Sintaxe da linguagem C/C++

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; }
Rui Pais Pg. 7

Sintaxe da linguagem C/C++

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) { bloco } // enquanto a condio for verdadeira // executar o 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; }
Rui Pais Pg. 8

Sintaxe da linguagem C/C++

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) { cout << "X= " << x << endl; if( x >= 10) break; // sair do ciclo }

// condio sempre true

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 // repetir o bloco enquanto condio // verdadeira } while(consio);

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

Rui Pais

Pg. 9

Sintaxe da linguagem C/C++

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

Rui Pais

Pg. 10

Sintaxe da linguagem C/C++

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

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

Rui Pais

Pg. 11

Você também pode gostar