Buscar

sintaxe da linguagem c e c++

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Sintaxe da linguagem C/C++ 
Linguagens de Programação I – By Rui Pais Pág. 1 
1. Introdução 
 
Linguagem C++ 
· Evolução da linguagem C 
o suporte para os conceitos de orientação a objectos 
· Stroustrup 
 
1º programa “Hello World” 
 
#include <iostream> // incluir biblioteca de Input/Output 
 
int main() // função 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 
 
Não pode exitir variáveis, funções, classes, objectos, etc. tendo como nome uma 
palavra reservada. 
 
1.2 Definição de Comentários 
 
// início de um comentário até ao fim da linha 
 
/* início de comentário 
 cout << "Hello World"; // escreve no ecrã 
*/ fim de comentário 
 
/* início de comentário 
 cout << "Hello World"; /* erro */ 
*/ fim de comentário 
Sintaxe da linguagem C/C++ 
 
Rui Pais Pág. 2 
 
1.3 Declaração de Variáveis 
 
Todas as variáveis devem ser declaradas antes de serem utilizadas. 
 
2º programa “Área de um rectângulo” 
 
#include <iostream> // incluir biblioteca de Input/Output 
 
// protótipo da função 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; // variável não declarada 
 return 0; 
} 
 
long perimetro(const long alt, const long larg) 
{ //parametros entram por valor 
 long res; // declaração de variável 
 res = alt * 2 + larg *2; 
 return res; // devolver o resultado 
} 
 
1.4 Variáveis Estáticas 
 
As variáveis estáticas são criadas uma única vez, e é inicializada só no momento de 
criação. Estas, têm um tempo de vida igual ao programa, donde funcionam como 
“variáveis globais – com visibilidade local”. 
 
EXEMPLO: 
int contador() 
{ 
static int cont = 0; // variável estática 
cont = cont +1; 
return cont; 
} // Esta função retorna o nº de vezes que foi invocada. 
 
Sintaxe da linguagem C/C++ 
 
Rui Pais Pág. 3 
 
1.5 Caracteres Especiais 
 
Os caracteres são definidos entre pelicas, como por exemplo: 
 
char c = ‘A’; 
 
Barra invertida ‘\’ ‘\\’ "ola \\ jj" 
Tabulação (tab) ‘\t’ "ola \t jj" 
Retrocesso (backspace) ‘\b’ "ola \b jj" 
Mudança de linha ‘\n’ "ola \n jj" 
Mover para início da linha ‘\r’ "ola \r jj" 
Apóstrofe ‘\’’ "ola \’ jj" 
Aspas ‘\"’ "ola \” jj" 
Caracter ASCII 0 ‘\0’ "ola \0 jj" 
 
 
 
1.6 Caracteres Especiais para Números 
 
Número octal hhh ‘\hhh’ "ola \101 jj" 
Número 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 Pág. 4 
 
1.7 Visibilidade de Variáveis 
 
As variáveis podem ter uma visibilidade global ou local. 
Podem existir variáveis globais e locais com o mesmo nome? Sim. 
 
3º programa “Variáveis locais e globais” 
 
#include <iostream> // incluir biblioteca de Input/Output 
int i = 0; // variável global – válido 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 variável termina no fim bloco { ... } 
externo em que está declarada. 
Se no exemplo anterior todas as variáveis tiverem o mesmo 
nome, qual o resultado do programa? 
 
 
1.8 Conversão de Tipos 
 
Conversão Implicita: 
 
double x = 7; // conversão de int para double 
int i = 4.5; // conversão de double para int // i==4 
// perde-se informação 
char espaco = 32; // conversao de int para char 
// igual a: char espaco = ‘ ‘; 
 
 
 
Sintaxe da linguagem C/C++ 
 
Rui Pais Pág. 5 
 
Conversão Explicita: 
 
double x = (double) 7; // conversão de int para double 
int i = (int) 4.5; // conversão de double para int 
 
1.9 Expressões arritméticas e lógicas 
 
Expressões arritméticas: 
 São construidas à custa dos operadores: 
 + * - / % ( ) 
 
 int i = 5 * 6 + 4 * 7 + 3; 
 
 //utilizar parêntices para alterar a precedência dos operadores 
int j = 5 * 6 + 4 * (7 + 3); 
 
 double x = 5 / 7; // divisao inteira // x == 0 
 double y = 5 / 7.0; // divisão real // y == 0.714286 
 
 int x = 55 % 10.0; // resto da divisão só para inteiros 
 
Expressões lógicas: 
 São construidas à custa dos operadores: 
 
Operador Descrição 
== Igualdade 
!= Diferente 
< Menor 
<= Menor ou igual 
> Maior 
>= Maior ou igual 
! Negação do valor lógico 
|| "ou" lógico 
&& "e" lógico 
 
 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 Pág. 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” 
 
Alteração de fluxo simples: 
 
if (condição) // condição é uma Expressões lógicas! 
{ // executar se condição é verdadeira 
 acção1; 
 acção2; 
 ... 
} 
 
Alteração de fluxo composta: 
 
if (condição) // condição é uma Expressões lógicas! 
{ 
 acção1; 
 ... 
} 
else // se condição é false 
{ 
 acção10; 
 ... 
} 
 
Sintaxe da linguagem C/C++ 
 
Rui Pais Pág. 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: // “if”s 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 válido 
 { bloco3 } // executa o bloco por omissão 
 break; 
 } 
Sintaxe da linguagem C/C++ 
 
Rui Pais Pág. 8 
 
1.11 Ciclos “while”, “for” e “do ... while” 
 
Os ciclos permitem a repetição de um bloco de comando, 
tendo em atenção uma condição de paragem. 
 
Ciclo while: 
 
while(condição) // enquanto a condição 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) // condição é sempre verdadeira 
{ 
 cout << "X= " << x << endl; 
 x = x +1; 
 if( x >= 10) 
 break; // sair do ciclo 
} 
 
Ciclo for: 
 
for(bloco1 ; condição ; bloco2 ) 
{ 
 bloco3 
} 
é equivalente a: 
bloco1; 
while(condição) 
{ 
bloco3; 
bloco2; 
} 
Sintaxe da linguagem C/C++ 
 
Rui Pais Pág. 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) // condição sempre true 
{ 
 cout << "X= " << x << endl; 
 if( x >= 10) 
 break; // sair do ciclo 
} 
 
EXEMPLO3: // ciclo infinito 
int x = 5 
for( ; ; ) // condição 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(consição); // repetir o bloco enquanto condição 
// é verdadeira 
 
EXEMPLO1: 
int x = 5; 
do 
{ 
cout << "X= " << x << endl; 
x = x +1; 
} while(x < 10); 
 
 
Sintaxe da linguagem C/C++ 
 
Rui Pais Pág. 10 
 
EXEMPLO2: // ciclo infinito 
int x = 5; 
do 
{ 
cout << "X= " << x << endl; 
 if( x >= 10) 
 break; // sair do ciclo 
x = x +1; 
} while(true); // condição sempre true 
 
Sintaxe da linguagem C/C++ 
 
Rui Pais Pág. 11 
1.12 Bibliotecas 
 
Bibliotecas são conjunto de funções que encontra-se compiladas em ficheiros com a 
extensão “.a” e “.lib”, nos sistemas operativos Linux e Windows respectivamente. 
Para utilizar as funções de uma determinada biblioteca, é necessário incluir um 
ficheiro com o protótipo das funções disponíveis por essa biblioteca (ficheiro com 
extensão “.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 Conteúdo 
alloc.h Calloc Funções para manipulação de memória 
assert.h Cassert Funções para auxílio na detecção de erros 
complex.h Ccomplex Funções para manipulação de números complexos 
string.h Cstring Funções para manipulação de cadeia de caracteres (strcpy, 
strcat, substr, ....) 
ctype.h Cctype Funções para manipulação de cadeia de caracteres (toupper, 
tolower, ...) 
errno.h Cerrno Funções para manipulação de números de erros 
float.h cfloat Contém os limites relacionados a números em virgula 
flutuante 
math.h cmath Funções matemáticas 
signal.h csignal Funções para manipulação de sinais 
stdio.h cstdio Funções para manupulação de entrada e saída. 
stdlib.h cstdlib Fnções para manipulação de memória, conversão entre strings 
e números, geração de números aleatórios, etc. 
time.h ctime Funções para manipulação de tempo e datas 
 
Bibliotecas da linguagem C++: 
 
Biblioteca C++ Conteúdo 
iostream Funções para manipulação de entrada e saída (Input/Output) 
fstream Funções para manipulação de ficheiro entrada e/ou saída 
vector Funções para manipulação de vectores (sequência de elementos) 
string Funções para manipulação de strings (sequência de caracteres)

Outros materiais