Buscar

guia-de-referencia-rapida-c++-portugol

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 4 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

Referência Rápida de C++ e Portugol 
(versão preliminar de 25/5/2011) 
 
Elaborado por Renato Fabiano Matheus 
Versão preliminar de 25 de maio de 2011 
Versão atualizada disponível em http://www.rfmatheus.com.br/doc/guia-
de-referencia-rapida-c++-portugol.pdf 
Sugestões e correções para: rfmatheus@yahoo.com.br e 
renatofabiano@pucminas.br. 
 
O objetivo da criação deste guia de referência rápida é servir como 
orientação básica e fonte de referências adicionais para alunos de curso 
introdutório de programação com os seguintes destaques: 1. mapeamento 
entre C++ e a pseudo-linguagem Portugol; 2. usa como referência 
bibliográfica o livro de algoritmos estruturados (FARRER, 1999); 3. Foram 
feitas adaptações e padronizações nas palavras-chaves do Portugol (nomes 
de tipos e de operações de entrada e saída, por exemplo) a fim de adequar o 
pseudo-código à sintaxe do ambiente de simulação e aprendizagem de 
algoritmos e programação Portugol IDE. 
 
Referências 
1. Guia Rápido de C++ (trabalho usado como base): UNISINOS 
http://ncg.unisinos.br/robotica/algoritmos/ref_cpp.doc 
2. Portugol: FARRER, Harry et al. Algoritmos e Estruturas de Dados, 3 ed, 
LTC, 1999. Obs: Para sintaxe do Portugol, veja Apêndice B (FARRER 
et. al, 1999, p. 276) 
3. C/C++ Referência Rápida (GUIA MUITO BOM E MUITO MAIS 
ABRANGENTE EM RELAÇÃO À LINGUAGEM C++!): 
http://academic.cankaya.edu.tr/~agorur/courses/ceng241Fall/C++%
20Reference%20Card.pdf 
4. BIANCHI, Luiz (professor). Curso Prático de C++. Disponível em: 
http://bianchi.pro.br/apostilacpp.php. Acessado em: 25/5/2011. 
5. SOUTO, Eduardo; GALVÃO, Leandro (professores da Universidade 
Federal do Amazonas / UFAM). Material da disciplina AED1. 
Disponível em: http://home.ufam.edu.br/~esouto/material/aed1/. 
Acesso em: 25/5/2011. 
6. Introdução à linguagem C (apostila PDF da Unicamp): 
ftp://ftp.unicamp.br/pub/apoio/treinamentos/linguagens/c.pdf. 
7. Referência rápida de C++ (lista de exemplos): 
http://pt.wikibooks.org/wiki/Refer%C3%AAncia_r%C3%A1pida_de_
C%2B%2B. 
8. Palavras reservadas do C++: 
http://www.cppreference.com/wiki/keywords/start 
9. Referência de bibliotecas da linguagem C++: 
http://www.cplusplus.com/reference/ 
10. Operadores em C e C++ na Wikipedia: 
http://pt.wikipedia.org/wiki/Operadores_em_C_e_C%2B%2B 
11. The C++ Tutorial (em inglês): http://www.learncpp.com/ 
12. www.cplusplus.com Tutorial e outros recursos: 
http://www.cplusplus.com/. 
13. Portugol IDE 
 PORTUGOL IDE, ambiente para aprendizado de portugol, 
interativamente: http://www.dei.estt.ipt.pt/portugol/ ou 
http://www.dei.estt.ipt.pt/portugol/. 
 Ambiente de Aprendizagem de Algoritmos – Portugol IDE: 
http://orion.ipt.pt/~manso/papers/2009/Portugol%20Challenges20
09.pdf. 
 Busca de vídeos sobre Portugol IDE. 
 Tutorial de Portugol IDE, por Francisco Souza. 
14. G-PORTUGOL 
 SILVA, Tiago. Programando em G-Portugol. Disponível em: 
http://gpt.berlios.de/manual_nodes/node4.html. Acesso em: 25/5/11 
 
GLOSSÁRIO BÁSICO DE PROGRAMAÇÃO 
C++ Linguagem (C++ na Wikipedia) orientada a objetos idealizada 
por Bjarne Stroustrup, como um superconjunto da linguagem C,, 
desenvolvida originalmente por Dennis Ritchie e popularizada e 
padronizada com apoio de Brian Kernighan (C na Wikipedia) 
IDE Integrated Development Environment (Ambiente de 
desenvolvimento integrado) 
PORTUGOL Pseudo-linguagem estruturada, com termos na língua 
portuguesa, utilizada para aprendizado inicial de 
programação de computadores 
 
CONVENÇÕES DESTE GUIA 
N/A Não se aplica 
<comando/símbolo> Comando ou símbolo obrigatório 
[comando/símbolo] Comando ou símbolo opcional 
Textos escritos com a 
fonte Courrier New 
Destaques usados para mostrar 
implementações na sintaxe da 
linguagem C++ 
PALAVRA SUBLINHADA Termos e convenções adotados nos 
algoritmos em Portugol 
 
VARIÁVEL 
C++ <tipo-de-dado> <Identificador> [ = <valor 
inicial>]; 
Ex: int Contador = 0; 
PORTUGOL DECLARAR <Identificador> <tipo-de-dado> 
Ex: DECLARAR Contato INTEIRO 
PORTUGOL 
IDE 
<tipo-de-dado> <Identificador> 
Ex: INTEIRO Contato 
 
CONSTANTE 
const <tipo-de-dado> <nome> = <valor>; 
Ex:const float PI = 3.1415926; 
 
CONSTANTE DO PRÉ-PROCESSADOR 
#define <Identificador-da-constante> <valor> 
Ex: #define PI 3.1415926 
Obs: 1. Esse tipo de “constante” não tem tipo, pois o pré-processador 
percorre o código fonte substituindo todas as ocorrências do <Identificador-
da-constante> ANTES de iniciar o processo de compilação. 
2. Não se utiliza ponto-e-vírgula no final deste tipo de declaração 
 
<tipo-de-dado> 
PORTUGOL 
(tipos de 
acordo com 
sintaxe do 
Portugol IDE) 
Tipo C++ Tamanho 
(bytes) 
Descrição 
CARACTER char 1 caractere (entre 0 e 255) 
TEXTO string Variável Memória disponível 
INTEIRO 
short int 2 valor inteiro curto 
Int 2,4 valor inteiro 
long int 4 valor inteiro longo 
REAL 
float 4 valor real, ponto 
flutuante 
double 8 valor real, precisão dupla 
long 
double 
10 
real long - Real precisão dupla 
LÓGICO 
(FALSO / 
VERDADEIRO) 
bool 1 false / true 
N/A signed <modificador> Valor possui sinal 
unsigned <modificador> valor não possui sinal 
void <modificador> Tipo vazio, usado como 
valor de retorno de 
procedimentos 
static <modificador> Mantém o valor mesmo 
fora de escopo 
 
OPERADORES MATEMÁTICOS E DE ATRIBUIÇÃO 
PORTUGOL (somente 
mostrado de for 
diferente) 
Símbolo Descrição 
<- = atribuição (uma variável recebe 
um valor ou outra variável) 
 + soma 
 - subtração 
 * multiplicação 
 / divisão 
resto( divisor, dividendo) % resto da divisão (módulo) 
Numero = Numero + 1 ++ incrementa uma variável (em 
uma unidade) 
Numero = Numero - 1 -- decrementa uma variável (em 
uma unidade) 
N/A 
+= x = x + y 
-= x = x - y 
*= x = x * y 
/= x = x / y 
%= x = x % y 
 
PRIORIDADE DAS OPERAÇÕES ARITMÉTICAS 
1º Potenciação (**), radiciação (sqrt) 
Em C, C++, pow(x, y) e sqrt (x), respectivamente, sendo que 
deve-se incluir a biblioteca math.h Potenciação: 
http://pt.wikipedia.org/wiki/Exponencia%C3%A7%C3%A3o. 
Raíz: http://www.cplusplus.com/reference/clibrary/cmath/sqrt/. 
2º Multiplicação (*), divisão (/) 
3º Adição (+), subtração (-) 
Fonte: FARRER, 1999, p. 278 
PRIORIDADE ENTRE OPERADORES 
1º Aritmético 
2º Relacional 
3º NÃO lógico 
4º E lógico 
5º OU lógico 
 
OPERADORES CONDICIONAIS E LÓGICOS 
PORTUGOL (mostrado se 
diferente) 
Símbolo Descrição 
= == comparação de igualdade (é 
igual) 
<> != comparação negada de 
igualdade (não é igual) 
 > maior que 
 < menor que 
 <= menor ou igual 
 >= maior ou igual 
E && operador lógico 'E' (AND) 
OU || operador lógico 'OU' (OR) 
NÃO ! operador lógico 'NÃO' (NOT) 
 
STRINGS (TEXTO) 
Strings armazenam um texto, chamado cadeia de caracteres. Em C++ 
utilizaremos a classe String da biblioteca STL ( Standard Template Library), 
sendo que é necessário incluir o arquivo de cabeçalho <string> no fonte. 
 
#include <string> 
A forma de utilização da string do STL é simples, sem ser necessário a 
reocupação com os seu tamanho e limites de memória. A maioria dos 
operadores funcionam como nos valores numéricos (+=, >, < , ==, etc) 
 
Ex: 
string texto1; 
string texto2; 
texto1 = "Fulano "; 
texto2 = "da Silva"; 
texto1 = texto1 + texto2 ; // texto1 contém "Fulano 
da Silva" 
 
VETORES E MATRIZES 
C
+
+
 
VETOR 
Declaração: <tipo> <nome>[tamanho] 
Acesso: <nome>[posição] = <valor>; 
Ex: 
int meu_vetor[10]; // declara meu_vetor 
 // de 10 posições 
meu_vetor[2] = 10; // acessa 3º 
 // elemento. O 
 // índice começa em 
 // 0, sendo o último 
 // elemento é o 
 // meu_vetor[9], 
Ex: Percorrendo todas as posições de um vetor 
for(int i = 0; i < 10; i++) 
{ 
 vetor[i] = 0; 
} 
 
MATRIZ 
Declaração: 
<tipo> <nome>[t1, ... , tN] 
<tipo> <nome>[num. linhas][num. colunas]; 
Acesso:<nome>[<linha>][<coluna>] = <valor >; 
 
Ex:int matriz[10][3]; // declara 
 // minha_matriz 
 // de 10 por 3 posições 
matriz[2][1] = 10; // acessa 2º 
 // elemento da 3ª linha 
Ex: Percorrendo todas as posições de um vetor 
for(int i = 0; i < 10; i++) 
{ 
 for( int j = 0; j < 3; j++ ) 
 matriz[i][j] = 0; 
} 
P
O
R
T
U
G
O
L
 
VETOR É UMA MATRIZ DE UMA DIMENSÃO 
 
MATRIZ 
DECLARAR <lista-de-identificadores>[ t1, 
t2, ..., tN ] <tipo-de-dado> 
Onde: t1 .. tN, são os limites (tamanho) de cada dimensão da 
matriz ou vetor (se for apenas de uma dimensão) 
 
PROCEDIMENTO 
Declarando procedimentos 
void <nome-do-procedimento> ( <lista de parametros> ) 
{ 
} 
 
Ex: 
void EscreveTexto( string texto ) 
{ 
 cout << texto << “\n”; 
} 
 
Obs: Procedimento é um trecho de código que recebe um nome e pode ser 
chamado, normalmente varias vezes, a partir de outro comando no 
programa. Um procedimento não retorna valor. Em C++ é declarado como 
uma função do tipo "void", que não retorna valor. 
 
 
FUNÇÕES 
Declarando funções: 
<tipo de retorno> <nome>( <lista de parametros> ) 
{ 
} 
 
Ex: 
int soma ( int a, int b ) 
{ 
 return a + b; 
} 
 
Chamando uma função: 
int x; 
x = soma(2,2); 
 
PASSAGEM DE PARÂMETROS PARA FUNÇÕES E PROCEDIMENTOS 
Passagem de parâmetro por valor 
 
O VALOR da variável utilizada na chamada da função é copiado para a 
variável declarada na lista de parâmetros. Qualquer alteração feita durante a 
execução da função ou procedimento no parâmetro NÃO copiado de volta 
para a variável utilizada na chamada. 
 
<tipo de retorno> <nome da função> ( <tipo1> 
<parâmetro1>, ... ,<tipoN> <parâmetroN> ) 
 
Ex: 
int soma ( int a, int b ) 
{ 
 return a + b; 
} 
 
Passagem de parâmetro por referência 
A variável declarada na lista de parâmetros passa a ser uma referência – 
também denominada APELIDO (alias) - para a mesma área de memória da 
variável utilizada na chamada da função ou procedimento. Desta forma, 
modificando-se o valor da variável parâmetro durante a execução do 
procedimento modifica-se também o valor a variável utilizada na chamada 
da função. 
 
Para se fazer a passagem de parâmetro por referência, o símbolo '&' é 
adicionado após o nome do <tipo> na declaração do procedimento ou 
função, a fim de indicar para o compilador que trata-se de um parâmetro por 
referência. 
 
<tipo de retorno> <nome da função> ( <tipo1>& 
<parâmetro1>, ... ,<tipoN>& <parâmetroN> ) 
 
Ex: 
void soma ( int& a, int& b ) 
{ 
 a = a + b; 
} 
 
PASSAGEM DE PARÂMETROS COM VALORES PADRÃO 
C++ permite que as variáveis declaradas nos parâmetros de uma funções 
possuam um valor padrão, facilitando a chamada de função. Esses 
parâmetros devem ser colocados no final da lista, de traz para frente. 
 
Ex: 
float divide ( float a, float b = 2.0) 
{ 
 return a / b; 
} 
 
Chamada da função ou procedimento 
Para chamar a função temos duas alternativas, com ou sem os valores 
padrão. Se um parâmetro que tem um valor padrão for omitido, ele assume 
seu valor padrão declarado no procedimento ou função. 
 
Ex: 
float x; 
x = divide(2); 
x = divide(2,3); 
 
ENTRADA DE DADOS 
Para a utilização dos operadores de entrada e saída de dados é necessário 
adicionar o arquivo de cabeçalho <iostream> no código fonte 
 
#include <iostream> 
 
cin >> <variável1> >> ... >> <variávelN>; 
 
Lê um ou mais valores do teclado e armazena em variáveis. No caso de uma 
aplicação de console (linha de comando), um valor é lido após um <ENTER>, 
um <ESPAÇO> ou um <TAB>. “cin” utiliza o operador de extração ">>". 
 
Ex: 
int opcao; 
cin >> opcao; 
 
SAÍDA DE DADOS 
Em C++, utiliza-se “cout” para escrever na tela valores ou variáveis. “cout” 
utiliza o operador de inserção "<<". 
 
cout << <variavel1> << ... << <variávelN>; 
 
Ex: 
int var = 10; 
cout << "Fulano da Silva"; 
cout << var; 
 
FORMATANDO A SAÍDA DE DADOS 
Para formatar a siada de cout se utiliza os manipulador definidos no 
arquivo de cabeçalho <iomanip>. 
 
#define <iomanip> 
 
Os principais manipuladores são: 
dec os numeros são exibidos em decimal 
oct os numeros são exibidos em octal 
hex os numeros sao exibidos e hexadecimal 
 
fixed representação fixa 
scientific representação científica 
setprecision(n) determina que o numero possuirá n digitos de 
precisão 
 
endl indica linha nova 
left alinha a esquerda 
right alinha a direita 
 
Ex: 
float val = 10.2345; 
cout << fixed << setprecision(2) << val; // val será 
mostrado na tela como "10.23" 
ESTRUTURAS DE DADOS: REGISTROS 
PORTUGOL C++ 
 struct <novo tipo> 
{ 
 <tipo1> <nome1>; 
 ... 
 <tipoN> <nomeN>; 
}; 
 
Ex: 
struct Registro 
{ 
 string nome; 
 string cargo; 
 float salario; 
}; 
 
Registro var; 
 
var.nome = "Fulano da Silva"; 
var.cargo = "Programador"; 
var.salario = 20000.00; 
 
Obs: Uma estrutura permite agrupar vários tipos de 
variáveis, em um novo tipo de dado. 
 
ESTRUTURAS DE REPETIÇÃO: comando FOR 
Ambiente Sintaxe Exemplo 
P
o
r
t
u
g
o
l
 
C
+
+
 
for( <inicialização>; <expressão 
condicional>; <incremento> ) 
{ 
 <comandos> 
} 
Obs: usado se o número de repetições é 
conhecido de antemão 
for ( i = 0; i < 10; i++ ) 
{ 
 cout << "valor de i = " << i 
<< endl; 
} 
 
ESTRUTURAS DE REPETIÇÃO: comando FAÇA-ENQUANTO 
Ambiente Sintaxe Exemplo 
P
o
r
t
u
g
o
l
 
C
+
+
 
Comando do while 
Obs: o número de repetições não é conhecido, 
teste no final; os comandos são executados pelo 
menos uma vez 
 
do 
{ 
 <comandos> 
} while ( < expressão condicional > ); 
do 
{ 
 cout << "Repitindo enquanto 
var é igual a 1"<< endl; 
}while( var == 1); 
 
ESTRUTURAS DE REPETIÇÃO: comando ENQUANTO 
Ambiente Sintaxe Exemplo 
P
o
r
t
u
g
o
l
 
C
+
+
 
while(<expressão condicional>) 
{ 
 <comandos> 
} 
 
Obs: o número de repetições não é conhecido a 
priori. 
while( var != 1 ) 
{ 
 cout << "Repitindo enquanto 
var for diferente de 1"<< endl; 
} 
 
ESTRUTURAS CONDICIONAIS: COMANDO SE / IF 
Ambiente Sintaxe Exemplo 
P
o
r
t
u
g
o
l
 
SE( <condição> ) 
ENTÃO 
| <comandos> 
SENÃO 
| <comandos> 
FIM SE 
SE( VALOR > 10 ) 
ENTÃO 
| ESCREVER “Maior que 10” 
SENÃO 
| ESCREVER "Menor ou igual a 10" 
FIM SE 
 
C
+
+
 
if(<expressão condicional>) 
{ 
 <comandos> 
} 
else 
{ 
 <comandos> 
} 
if( valor > 10 ) 
{ 
 cout << "Maior que 10"; 
} 
else 
{ 
 cout << "Menor ou igual a 10"; 
} 
 
ESTRUTURAS CONDICIONAIS: comando switch 
Ambiente Sintaxe Exemplo 
P
o
r
t
u
g
o
l
 
SE( <condição> ) 
ENTÃO 
| <comandos> 
SENÃO SE 
| <comandos> 
SENÃO SE 
| <comandos> 
SENÃO 
| <comandos> 
FIM SE 
SE( OPCAO = 1 ) 
ENTÃO 
| ESCREVER “primeira opcao” 
SENÃO SE( OPCAO = 2 ) 
| ESCREVER "segunda opcao" 
SENÃO 
| ESCREVER "opcao invalida" 
FIM SE 
 
C
+
+
 
switch( <Identificador-variavel> ) 
{ 
 case <valor1>: 
 <comandos> 
 break; 
 ... 
 case <valorN>: 
 <comandos> 
 break; 
 [default: 
 <comandos> 
 break;] 
} 
 
Obs: a condição "default:" é executada 
quando nenhuma das outras é válida 
switch(opcao) 
{ 
 case 1: 
 cout << "primeira opcao"; 
 break; 
 
 case 2: 
 cout << "segunda opcao"; 
 break; 
 
 default: 
 cout << "opcao invalida"; 
 break; 
}

Outros materiais