Buscar

03. Introdução ao 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 45 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 45 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 45 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

Ju
d
so
n
 S
an
to
s 
S
an
ti
ag
o
INTRODUÇÃO AO C++
Programação de Computadores
Resumo da Aula
 Estrutura básica de um programa C++
 Comandos de Entrada/Saída
 Constantes/Variáveis
 Declaração de variáveis
 Atribuição de valor
 Alteração de variáveis
Iniciação ao C++
Uma diretiva de pré-processamento
Cabeçalho da função
Comentário
Dispensa uso do nome longo std::cout, std::endl
Imprime mensagem na tela
Inicia uma nova linha
Mais saída de dados
Finaliza a função main()
Espera pelo pressionamento de uma tecla
C
o
rp
o
 d
a 
fu
n
çã
o
// primeiro.cpp – mostra uma mensagem
#include <iostream>
int main()
{
using namespace std;
cout << "Bem vindo ao C++.";
cout << endl;
cout << "Meu primeiro programa!" << endl;
system ("pause");
return 0;
}
Iniciação ao C++
 A linguagem C++ faz diferença entre letras 
maiúsculas e minúsculas
 Só existe uma forma de escrever cout:
cout √ kout ×
Cout × cour ×
COUT × coot ×
 O compilador retorna um erro de 
identificador desconhecido se for usada uma 
palavra inválida
int main()
{
instruções
return 0;
}
 A estrutura principal da função main() é:
A Função main()
Corpo da função
Definição da função
Cabeçalho da função
Nome da função
Instruções sempre terminam com ponto e vírgula
Instrução de retorno
Instruções
 Para traduzir corretamente as instruções, o 
compilador precisa saber exatamente onde 
uma instrução termina:
 FORTRAN: uma instrução por linha
 PASCAL: separa uma instrução da próxima com ;
 C/C++: cada instrução termina por um ;
cout << "Bem vindo ao C++.";
cout << "Meu primeiro programa!" << endl;
return 0;
Instruções
 Ao contrário de PASCAL, na linguagem C++ o 
ponto e vírgula faz parte da instrução
// primeiro.cpp – mostra uma mensagem
#include <iostream>
int main()
{
using namespace std;
cout << "Bem vindo ao C++.";
cout << endl;
cout << "Meu primeiro programa!" << endl;
system ("pause");
return 0;
}
O Cabeçalho da Função
 O cabeçalho de uma função descreve a 
interface da função
 A função main é a interface entre o sistema 
operacional e o seu programa
int main()
Lista de parâmetros/argumentosTipo de retorno
O Cabeçalho da Função
 Muitos programas existentes usam o 
cabeçalho clássico da linguagem C
 Uma alternativa válida é dizer explicitamente
que a função não recebe argumentos
main() // estilo original C ×
int main(void) // estilo explícito √
O Cabeçalho da Função
 Alguns programadores usam este cabeçalho 
para omitir a instrução de retorno
 O padrão ANSI/ISO C++ permite que o 
programador omita a instrução de retorno 
(unicamente para a função main)
void main() // não está no padrão C++ ×
int main()
{
} // sem retorno explícito = return 0; √
Comentários
 Comentários podem ser introduzidos com o 
uso de barras duplas
 O compilador ignora os comentários
 Comentários devem ser usados para 
documentar os programas:
 Ajudam outros a entenderem o programa
 Permitem que o programador lembre o que fez 
meses ou anos atrás
// comentários acabam no final da linha
O Pré-processador de C++
 Um pré-processador é um programa que 
processa (modifica) o código fonte antes da 
compilação
 O pré-processador trata as diretivas que 
iniciam com o símbolo #
 A diretiva #include adiciona o conteúdo de 
um arquivo ao código fonte do programa
// adiciona o arquivo iostream ao programa
#include <iostream>
O Arquivo iostream
 O arquivo iostream contém as definições das 
funções de entrada e saída de dados
 i = input (entrada)
 o = output (saída)
 stream = fluxo ou canal
 Programas que usam cin e cout para entrada 
e saída de dados devem incluir o arquivo 
iostream
// necessário para usar cin e cout
#include <iostream>
Arquivos de Cabeçalho
 Arquivos como iostream são chamados:
 Arquivos de cabeçalho (header files) ou
 Arquivos de inclusão (include files) 
 A tradição da linguagem C/C++ era usar a 
extensão .h para identificar estes arquivos
 iostream.h – funções de entrada/saída
 math.h – funções matemáticas
 A convenção de C++ é não usar extensão
 As extensões são reservadas para antigos 
arquivos de cabeçalho da linguagem C 
Arquivos de Cabeçalho
Cabeçalho Convenção Exemplo Usado por
C++ estilo antigo .h iostream.h Programas C++
C estilo antigo .h math.h Programas C e C++
C++ novo estilo Sem extensão iostream Programas C++
C convertido Prefixo c cmath Programas C++
 C++ aceita arquivos de cabeçalho:
 Na nova convenção sem extensão. Ex.: iostream
 No antigo formato do C. Ex.: math.h
 Convertidos do C para C++. Ex.: cmath
Namespaces
 Ao incluir iostream em um programa é 
preciso acrescentar a seguinte diretiva using:
 Isto permite usar os objetos cin e cout sem a 
designação do espaço de nome ao qual eles 
pertencem
#include <iostream>
using namespace std;
// utilização sem a diretiva using
std::cout << "Bem vindo ao C++.";
Namespaces
 É um recurso que permite combinar códigos 
existentes de diferentes fornecedores.
 Se duas empresas desenvolverem um objeto 
cout, elas o farão sob diferentes namespaces
 Microflop::cout – objeto cout da Microflop
 Wanda::cout – objeto cout da Wanda
 Para usar todos os objetos da Microflop:
 using namespace Microflop;
Namespaces
 As funções, classes e objetos padrões da 
linguagem C++ foram colocados no espaço 
de nomes std
 Para ter acesso a todos os objetos definidos 
no espaço de nomes std:
 Para usar apenas alguns:
using std::cout;
using std::cin;
using std::endl;
using namespace std;
Saída de Dados com cout
 O programa primeiro.cpp usa cout para 
imprimir uma mensagem na tela:
cout << "Bem vindo ao C++.";
conjunto de caracteres (string)
Um objeto predefinido que sabe 
como mostrar números e caracteres.
Operador de inserção: indica a 
direção do fluxo de informações
O Manipulador endl
 O programa primeiro.cpp usa cout também 
para pular linhas na tela:
 Enviando endl para a saída faz o cursor saltar 
para o início da próxima linha
 Assim como cout, endl é definido no arquivo de 
cabeçalho iostream
cout << endl;
Manipulador
 cout não pula linha automaticamente:
 Produzirá a saída:
O Bom, oruim, e o desconhecido.
O Manipulador endl
cout << " O Bom, o ";
cout << " ruim, ";
cout << " e o desconhecido. ";
cout << endl;
O Caractere de Nova Linha
 C++ possui uma outra forma de produzir um 
salto de linha na saída: \n
 A combinação \n é considerada como um 
único caractere
// \n significa comece uma nova linha
cout << " E agora?\n ";
// os pares de instruções abaixo são equivalentes
cout << " Júpiter é um planeta grande.\n ";
cout << " Júpiter é um planeta grande. " << endl;
cout << " \n ";
cout << endl;
Formatação do Código Fonte
 Ao editar um código C++ o programador tem 
muita flexibilidade na formatação do código
#include <iostream>
int
main
() { using 
namespace 
std; cout 
<< 
"Bem vindo ao C++."
;cout << 
endl; cout << "Meu primeiro programa!"
<< endl; system ("pause"); return 0; }
 A leitura do código fonte é facilitada se o 
programador seguir as seguintes regras:
// primeiro.cpp – mostra uma mensagem
#include <iostream>
using namespace std;
int main()
{
cout << "Bem vindo ao C++.";
cout << endl;
cout << "Meu primeiro programa!" << endl;
system("pause");
return 0;
}
Estilo de Código C++
Uma instrução por linha
Abra e feche chaves em linhas separadas
Instruções indentadas
Sem espaços entre o nome da função e os parênteses
Outras Instruções Básicas// cenouras.cpp – programa de processamento de comida
#include <iostream>
using namespace std;
int main()
{
int cenouras; // declara uma variável inteira
cenouras = 25; // atribui um valor a uma variável
cout << "Eu tenho ";
cout << cenouras; // imprime o valor da variável
cout << " cenouras.";
cout << endl;
cenouras = cenouras – 1; // modifica a variável
cout << "Agora eu tenho " << cenouras << " cenouras." << endl;
system("pause");
return 0;
}
Constantes versus Variáveis
 Uma constante tem valor fixo e inalterável
 Decimal: números na base 10 são escritos de 
forma direta. Ex.: 25, 8390, -403
 Hexadecimal: números na base 16 devem ser 
precedido por 0x (representação comum para 
endereços de memória).
Ex.: 0x19, 0x20C6, 0xFFFFFE6D 
 Octal: números na base 8 devem ser precedidos 
por um 0 (zero). 
Ex.: 031, 020306, 037777777155
Constantes versus Variáveis
 Uma constante tem valor fixo e inalterável
 Caractere: deve ser escrito entre aspas simples. 
Ex.: 'a', 'b', 'B', '*', '?'
 String: um conjunto de caracteres deve ficar entre 
aspas duplas. Ex.: "primeiro programa", "oi", "a"
 Existe uma diferença entre as constantes 
'a' e "a":
 'a' é um caractere
 "a" é um conjunto de caracteres
Constantes versus Variáveis
// constvar.cpp – exemplifica o uso de constantes
#include <iostream>
using namespace std;
int main()
{
cout << "A letra " << 'm';
cout << " tem " << 3 << " pernas." << endl;
char ch = 'M'; // tipo caractere
int num = 0x1E; // tipo inteiro
cout << "Dez letras M " << ch;
cout << " têm " << num << " pernas." << endl;
system("pause");
return 0;
}
Constantes versus Variáveis
 Uma variável é um dos métodos que a 
linguagem C++ fornece para o programador 
guardar informações no computador
Informações guardadas em variáveis
são armazenadas na memória 
do computador
Dados
0xCB20
0xCB21
0xCB22
0xCB23
0xCB24
0xCB25
0xCB26
0xCB27
Declaração de Variáveis
 Para guardar informação na memória é 
preciso indicar:
 O endereço de armazenamento
 A quantidade de memória necessária
00100110
00001100
00110110
01011000 Endereços de memória
Dados
32 bits = 4 bytes
0xCB20
0xCB21
0xCB22
0xCB23
0xCB24
0xCB25
0xCB26
0xCB27
Declaração de Variáveis
 A forma mais simples de guardar informações 
é através de uma declaração de variável
 A declaração fornece:
 O tipo da informação (quantidade de memória)
 Um rótulo para um endereço de memória
int cenouras;
Nome da variável (rótulo)
Tipo de dado armazenado Marca o fim da instrução
Declaração de Variáveis
0xCB20 = cenouras
0xCB21
0xCB22
0xCB23
0xCB24
0xCB25
0xCB26
0xCB27
Endereços de memória
Dados
int
int cenouras;
Nome da variávelTipo de dado armazenado
Declaração de Variáveis
 No exemplo anterior:
 O programa alocará memória suficiente para 
guardar um inteiro (número natural)
 O programa usará cenouras para indicar um 
endereço de memória
 cenouras é chamada de variável porque o seu 
valor pode ser alterado
 Em C++ todas as variáveis devem ser 
declaradas
Declaração de Variáveis
 Por que as variáveis devem ser declaradas?
 Em BASIC as variáveis são criadas 
automaticamente
 A criação automática de variáveis pode gerar 
erros difíceis de achar
Programa válido em BASIC
cenouras = 34;
...
cenoura = cenouras + 1;
PRINT cenouras
Declaração de Variáveis
 A declaração pode ser feita em qualquer 
ponto do programa, sempre antes do 
primeiro uso da variável
#include <iostream>
using namespace std;
int main()
{ 
cout << "Eu tenho vegetais para vender.\n";
int cenouras, beterrabas, alfaces; 
cenouras = 25;
beterraba = 10;
alfaces = 18;
...
}
Atribuição de Valor
 Uma instrução de atribuição coloca um valor 
em um endereço de memória
cenouras = 25;
ValorRótulo do endereço de memória
Operador de atribuição
00000000
00000000
00000000
00011001
25
0xCB20 = cenouras
0xCB21
0xCB22
0xCB23
0xCB24
0xCB25
0xCB26
0xCB27
Atribuição de Valor
 Em linguagem C/C++ é permitido usar o 
operador de atribuição de forma serial
int main()
{
int cenouras; // declara uma variável
int alfaces; // declara outra variável
int tomates; // declara mais uma variável
// atribui 25 a todas as variáveis
cenouras = alfaces = tomates = 25;
...
}
Atribuição de Valor
 A segunda instrução de atribuição em 
cenouras.cpp mostra que o valor de uma 
variável pode ser alterado
 A expressão matemática é avaliada e o 
resultado é atribuído a variável cenouras
cenouras = cenouras – 1; // modifica a variável
cenouras = cenouras – 1; 
Expressão
Resultado
Imprimindo Variáveis
 cout é capaz de imprimir o conteúdo de 
variáveis
 cout imprime tanto valores string como 
valores inteiros
cout << cenouras;
cout << "cenouras";
cout << cenouras;
Variável inteiraPeriférico de Saída
cout versus printf
 cout é inteligente o suficiente para 
identificar o tipo de dado e convertê-lo para a 
saída em modo texto 
// função de saída de dados da linguagem C++
cout << "Imprimindo uma string: " << "25";
cout << "Imprimindo um inteiro: " << 25;
cout << "Imprimindo uma string: " << "cenouras";
cout << "Imprimindo um inteiro: " << cenouras;
// função de saída de dados da linguagem C
printf("Imprimindo uma string: %s", "cenouras");
printf("Imprimindo um inteiro: %i", cenouras);
Entrada de Dados em C++
// lerinfos.cpp – entrada e saída de dados
#include <iostream>
using namespace std;
int main()
{
int cenouras;
cout << "Quantas cenouras você tem?" << endl;
cin >> cenouras; // entrada de dados em C++
cout << "Aqui estão mais duas.";
cenouras = cenouras + 2; 
// concatena a saída
cout << "Agora você tem " << cenouras << " cenouras." << endl;
system("pause");
return 0;
}
Entrada de Dados com cin
 O valor digitado no teclado é atribuído a 
variável cenouras
 O arquivo de cabeçalho iostream deve ser 
incluído para usar cin
cin >> cenouras;
Variável tipo inteiroA entrada padrão é o teclado
Operador de extração
Concatenando com cout
 cout permite concatenar múltiplos 
elementos em uma única instrução
 Não há diferença entre espaço, tabulação e 
carriage return (enter):
// concatena a saída
cout << "Agora você tem " << cenouras << " cenouras." << endl;
// concatena a saída
cout << "Agora você tem " 
<< cenouras 
<< " cenouras." 
<< endl;
// concatena a saída
cout << "Agora você tem ";
cout << cenouras; 
cout << " cenouras.";
cout << endl;
Conclusão
 Programas começam a sua execução a partir 
de uma função chamada main()
 Uma função consiste em:
 Um cabeçalho: define o tipo de valor recebido e 
retornado pela função
 Um corpo: consiste em uma série de instruções
entre um par de colchetes ({})
 Toda instrução da linguagem C++ termina 
com ponto e vírgula
Conclusão
 A diretiva de pré-processamento #include 
insere o conteúdo de um arquivo no 
programa
 As instruções de entrada (cin) e saída (cout) 
de dados estão definidas no arquivo de 
inclusão iostream
 Dados podem aparecer em um programa na 
forma de constantes ou de variáveis

Outros materiais