





















































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Este documento fornece uma introdução aos conceitos básicos de programação em c++, incluindo a declaração e inicialização de variáveis, operadores aritméticos e lógicos, atribuição composta, ponteiros e passagem de parâmetros para funções. Também aborda a criação de funções com parâmetros e valores padrão, além de demonstrar a criação e manipulação de arrays e objetos especiais como new e nothrow.
Tipologia: Notas de estudo
1 / 93
Esta página não é visível na pré-visualização
Não perca as partes importantes!






















































































Campus de Ilha Solteira
Faculdade de Engenharia de Ilha Solteira Departamento de Engenharia Elétrica Av. Prof. José Carlos Rossi, 1370 CEP 15385-000 Ilha Solteira São Paulo Brasil Tel (18) 3743-1150 fax 18 3743-1163 email: [email protected]
21 a 25 de fevereiro de 2011
Propriedades do documento Categoria: Apostila Assunto : Linguagem de programação C/C++ Versão : 1.
data elaborado por^1 Waldemar P. Mathias Neto 27.01.
revisado por Fábio Bertequini Leão 06.02.
NOTA: O conteúdo deste documento foi integralmente retirado, traduzido e adaptado de http://www.cplusplus.com/doc/tutorial e outras seções do website http://www.cplusplus.com/. Acesso em: 28 de janeiro de 2011.
Todos os elementos da biblioteca padrão do C++ são
funcionalidades nós declaramos esta expressão. Esta linha de código é muito frequente em programas escritos em C++ que usam a biblioteca padrão.
inicia sua execução. Não importa qual o número de funções
ou ainda seus nomes, um programa sempre inicia sua
Neste caso trata-se de uma declaração de função: em C++, o que diferencia uma declaração de função de outro tipo de expressão são os parênteses após seu nome. Opcionalmente, estes parênteses podem conter uma lista de parâmetros.
Logo após os parênteses encontramos o corpo do programa. O
conteúdo incluído dentro das chaves é o que será executado e onde nós iremos escrever o código do programa.
Esta linha é uma declaração. A declaração é uma expressão simples ou composta que possa realmente produzir algum efeito. Na verdade, esta afirmação só executa a ação que gera um efeito visível no nosso primeiro programa.
resultado desta declaração é inserir uma sequência de
arquivo específico e declarar que usaremos este espaço para nome específico no início do nosso código.
Observe que esta instrução termina com um caractere ponto e
na verdade ele deve ser incluído ao final de todas as declarações em todos os programas C++ (um dos erros de sintaxe mais comum é de fato esquecer-se de incluir o ponto e vírgula depois de uma instrução).
exemplo é seguido pelo código de retorno com um valor de
geralmente interpretado como um correto e esperado funcionamento do programa, sem quaisquer erros durante sua
execução. Esta é a forma mais usual para encerrar um programa em C++. Você deve ter notado que nem todas as linhas deste programa executam ações quando o código é executado. Há linhas contendo apenas comentários (aquelas que começam por //) e linhas com as diretivas para o compilador do pré-processador (aquelas iniciadas por #). Em seguida, linhas que iniciam a declaração de uma função (neste caso, a função principal) e, finalmente, as linhas com as declarações (como a linha 7), que foram incluídas dentro do bloco delimitado
O programa foi estruturado em duas linhas diferentes, a fim de ser mais legível, mas em C++, não temos regras rígidas sobre como separar instruções em linhas diferentes. Por exemplo, em vez de
Poderíamos ter escrito:
Tudo isso em apenas uma linha tem exatamente o mesmo significado que o código anterior.
cada sentença. Portanto a separação em diferentes linhas de código não importa para essa finalidade. Podemos escrever muitas declarações por linha ou escrever uma única instrução que tenha muitas linhas de código. A divisão do código em linhas diferentes é um recurso para tornar mais legível o código para os seres humanos.
Vamos adicionar uma instrução para o nosso primeiro programa:
uma vez, a separação em diferentes linhas de código é feita apenas para dar maior legibilidade
1.2 Variáveis. Tipo de dados.
A utilidade dos programas "Hello World!" mostrados na seção anterior é bastante questionável. Tínhamos que escrever várias linhas de código, compilá-los, e depois executar o programa resultante apenas para obter uma simples frase escrita na tela como resultado. Certamente teria sido muito mais rápido digitar a frase de saída nós mesmos. No entanto, a programação não se limita apenas à impressão simples de textos na tela. Para ir um pouco mais adiante e tornarmos capazes de escrever programas que executam tarefas úteis que realmente irão nos poupar trabalho é necessário introduzir o conceito de variável.
Vamos imaginar que eu peça que você mantenha o número 5 em sua memória, e então eu peça para você memorizar também o número dois, ao mesmo tempo. Você tem apenas dois valores armazenados em sua memória. Agora, se eu pedir para você adicionar 1 ao primeiro número que eu disse, você deve manter o número 6 (que é 5 +1) e 2 em sua memória. Valores que nós poderíamos agora, por exemplo, subtrair e obter 4 como resultado.
O processo que você fez apenas com sua memória é semelhante ao que um computador pode fazer com duas variáveis. O mesmo processo pode ser expresso em C++ com a seguinte instrução:
Obviamente, este é um exemplo muito simples, uma vez que só tenho usado dois valores inteiros pequenos, mas considere que o computador pode armazenar milhões de números como estes, ao mesmo tempo sofisticado e realizar operações matemáticas com elas.
Portanto, podemos definir uma variável como uma parte da memória do computador destinada a armazenar um determinado valor.
Cada variável precisa de um identificador que o distingue dos demais. Por exemplo, no código
atribuído qualquer nome às variáveis, desde que sejam identificadores válidos.
1.2.1 Identificadores
Um identificador válido em C++ é uma sequência de uma ou mais letras, dígitos ou caracteres de sublinhado (). Nem espaços nem sinais de pontuação ou símbolos pode ser parte de um identificador. Somente letras, números e caracteres de sublinhado simples são válidos. Além disso, os identificadores de variável sempre tem que começar com uma letra ou caractere sublinhado (), mas em alguns casos, estes podem ser reservados para determinadas palavras- chave do compilador ou identificadores externos, bem como identificadores contendo dois sucessivos caracteres de sublinhado em qualquer lugar. Em nenhum caso, um identificador pode começar com um dígito.
Outra regra que você deve considerar ao inventar seus próprios identificadores é que eles não podem corresponder a qualquer palavra-chave da linguagem C + + ou do compilador, que são palavras reservadas consideradas especiais. As palavras-chave reservadas padrão são:
Além disso, representações alternativas para alguns operadores não podem ser usadas como identificadores, uma vez que são palavras reservadas em algumas circunstâncias:
Seu compilador pode também incluir algumas palavras-chave específicas adicionais.
MUITO IMPORTANTE: A linguagem C++ é "case sensitive". Isso significa que um identificador escrito em letras maiúsculas não é equivalente a outro com o mesmo nome mas escrito em
1.2.2 Tipos fundamentais de dados
Durante a programação, nós armazenamos as variáveis na memória do computador, no entanto, o computador tem que saber o tipo de dados que deseja armazenar, pois ele não vai alocar a mesma quantidade de memória para armazenar um simples número, única letra ou um grande número. Eles não vão ser interpretados da mesma maneira.
A memória dos computadores é organizada em bytes. Um byte é a quantidade mínima de memória que pode ser gerenciada. Um byte pode armazenar uma quantidade relativamente pequena de dados: um único caractere ou um inteiro pequeno (geralmente um número inteiro entre 0 e 255). Além disso, o computador pode manipular dados muito mais complexos, agrupando vários bytes, como números longos ou não-inteiros.
Em seguida você tem um resumo dos tipos de dados básicos fundamentais em C++, bem como o intervalo de valores que podem ser representados com cada um:
Name Description Size Range**
unsigned: 0 to 255
Short Integer. 2bytes signed:^ -32768^ to^32767 unsigned: 0 to 65535
signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295
signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295
values: true or false. 1byte^
digits)
Long double precision floating point number. 8bytes^
+/- 1.7e +/- 308 (~ digits)
bytes
1 wide character
Uma exceção a essa regra geral é o tipo de dado char , que existe por si só e é considerado outro
armazenar caracteres. Se você pretende armazenar valores numéricos em uma variável do tipo
Finalmente, signed e unsigned também podem ser usados como especificadores de tipo, e possuem o mesmo significado que signed int e unsigned int , respectivamente. As duas seguintes declarações são equivalentes:
Para ver como as declarações de variáveis aparecem dentro de um programa, vamos observar o código C++ a seguir, sobre o exemplo da memória proposto no início desta seção:
Não se preocupe se algumas das declarações, além das variáveis, parecem um pouco estranhas para você. Você vai ver o restante das definições em detalhes nas próximas seções.
1.2.4 Escopo das variáveis
Todas as variáveis que pretendemos usar em um programa devem ter sido declaradas com um especificador de tipo em algum ponto anterior no código, como fizemos no código anterior, no início do corpo da função main , quando declaramos a , b , e result do tipo int.
Uma variável pode ser local ou global. Uma variável global é uma variável declarada no corpo principal do código-fonte, fora de todas as funções, enquanto uma variável local é declarada dentro do corpo de uma função específica ou um bloco.
As variáveis globais podem ser referidas em qualquer lugar do código (dentro de funções) sempre após a sua declaração.
O escopo das variáveis locais é limitado ao bloco entre chaves ({}) onde elas são declaradas. Por exemplo, se elas são declaradas no início do corpo de uma função (como na função main ), seu alcance é entre a sua declaração e final dessa função. No exemplo acima, isto significa que, se existisse outra função além da main , as variáveis locais declaradas dentro da função main não poderiam ser acessadas dentro da outra função e vice-versa.
1.2.5 Inicialização das Variáveis
Quando declaramos uma variável, seu valor é, por padrão, indeterminado. Mas você pode querer uma variável para armazenar um valor no mesmo momento em que é declarada. Para fazer isso, você pode inicializar a variável. Há duas maneiras de fazer isso em C++:
O primeiro, conhecido como c- inicialização , é realizada acrescentando um sinal de igual seguido do valor para o qual a variável será inicializada:
de caracteres válida, como variável do tipo numérica pode ser inicializada com qualquer valor
Strings também podem executar todas as operações básicas de outros tipos de dados fundamentais como ser declarada sem um valor inicial e atribuir valores durante a execução:
1.3 Constantes
Constantes são expressões que possuem um valor fixo.
1.3.1 Literais
Literais são os tipos mais óbvios de constantes. Eles são usados para expressar valores específicos dentro do código fonte do programa. Nós já usamos os literais anteriormente para dar valores às variáveis ou para expressar as mensagens que queríamos que nosso programa imprimisse, por exemplo, quando escrevemos:
Constantes literais podem ser divididas em Numerais Inteiros, Numerais de Ponto Flutuante , Caracteres , Strings e Valores Booleanos.
Numerais inteiros
Eles são constantes numéricas que identificam valores decimais inteiros. Repare que para expressar uma constante numérica não temos que escrever aspas (") nem qualquer caractere especial. Não há dúvida de que representamos uma constante ao escrever 1776 em um programa, estaremos nos referindo ao valor 1776.
Além de números decimais (aqueles que todos nós estamos acostumados a usar todos os dias), C++ permite o uso de números octais (base 8) e números hexadecimais (base 16) como constantes literais. Se quisermos expressar um número octal temos de precedê-lo com um 0 (um caractere zero ). E a fim de expressar um número hexadecimal temos de precedê-lo com os caracteres 0x (zero, x). Por exemplo, as seguintes constantes literais são todas equivalentes entre si:
Todos estes representam o número 75 (setenta e cinco), expresso como uma base-10, octal e hexadecimal, respectivamente.
Constantes literais, como as variáveis, são considerados como um tipo de dado específico. Por
Em ambos os casos, o sufixo pode ser especificado usando tanto letras maiúsculas quanto minúsculas.
Números de ponto flutuante
Eles expressam números com casas decimais e/ou expoentes. Eles podem incluir um ponto decimal, o caractere e (que expressa "dez elevado a X", onde X é um valor inteiro que segue o caractere e ), ou ambos um ponto decimal e o caractere e :
Por exemplo:
Além disso, você pode expressar qualquer caractere através de seu código ASCII, escrito por meio de uma barra invertida () seguido do código ASCII expresso como um octal (base 8) ou hexadecimal (base 16). No primeiro caso (octal) os dígitos devem seguir imediatamente a barra invertida (por exemplo, \ 23 ou \ 40), no segundo caso (hexadecimal), um caractere X deve ser escrito antes dos dígitos (por exemplo, \ x20 ou \ x4A ).
Strings podem ser entendidas como mais de uma linha de código ao se colocar uma barra invertida () no final de cada linha que se deseja continuar.
Você pode também concatenar várias cadeias de caracteres separando-as por um ou vários espaços em branco, tabulações, quebra de linha ou de qualquer outro caractere branco válido:
Literais booleanas
Há apenas dois valores booleanos válidos: o verdadeiro e o falso. Estes podem ser expressos em
1.3.2 Constantes definidas (#define)
Você pode definir seus próprios nomes para constantes que você usa muito frequentemente sem ter que recorrer a variáveis, e, consequentemente, consumo de memória, simplesmente usando a diretiva de pré-processamento # define. Seu formato é:
Por exemplo:
Isso define duas novas constantes: PI e NEWLINE. Uma vez definidas, você pode usá-las no restante do código como se fosse qualquer outra constante, por exemplo:
Na verdade a única coisa que o pré-processador do compilador faz quando encontra a diretriz # define é, literalmente, substituir qualquer ocorrência de seu identificador (no exemplo anterior, estes eram PI e NEWLINE) pelo código para o qual foram pré-definidos (3,14159 e ' \ n ', respectivamente).
forma, como uma diretiva, não necessita de ponto e vírgula (;) ao final da linha. Se você acrescentar um caractere vírgula (;) no final, ele também será anexado em todas as ocorrências do identificador no corpo do programa que o pré-processador substituir.
1.3.3 Constantes declaradas (const)
como você faria com uma variável:
regulares, exceto que seus valores não podem ser modificados após a sua definição.
1.4 Operadores
Uma vez que sabemos da existência de variáveis e constantes, podemos começar a realizar operações com eles. Para isto, a linguagem C++ integra alguns operadores. Diferente de outras