Você está na página 1de 91

1

AULAS 1 - O QUE É C ++

C ++ é uma linguagem de programação de formato livre, de uso geral, que


diferencia maiúsculas de minúsculas e que oferece suporte à programação
orientada a objetos, procedural e genérica.

C ++ é uma linguagem de nível médio, pois encapsula recursos de linguagem


de alto e baixo nível.

PROGRAMAÇÃO ORIENTADA A OBJETOS (OOPS)

C ++ suporta a programação orientada a objetos, os quatro principais pilares


da programação orientada a objetos (OOPs) usados em C ++ são:

1. Herança
2. Polimorfismo
3. Encapsulamento
4. Abstração

BIBLIOTECAS PADRÃO C ++

A programação C ++ padrão é dividida em três partes importantes:

• A biblioteca principal inclui os tipos de dados, variáveis e literais,


etc.
• A biblioteca padrão inclui o conjunto de funções de manipulação de
strings, arquivos, etc.
• A Standard Template Library (STL) inclui o conjunto de métodos de
manipulação de uma estrutura de dados.
2

USO DE C ++

Com a ajuda da linguagem de programação C ++, podemos desenvolver


diferentes tipos de aplicativos seguros e robustos:

• Aplicativo de janela
• Aplicativo cliente-servidor
• Drivers de dispositivo
• Firmware integrado etc

PROGRAMA C ++

Neste tutorial, todos os programas C ++ são fornecidos com o compilador C

++ para que você possa alterar facilmente o código do programa C ++. Arquivo:

main.cpp

Uma explicação detalhada do primeiro programa C ++ é fornecida nos


próximos capítulos.
3

EXERCICIO DE FIXÃO
1. Escreva um programa em C ++ para imprimir um texto de boas-
vindas em uma linha separada.

2. Escreva um programa em C ++ para imprimir a soma de dois


números.
Vá para o editor

Amostra de saída:

Imprima a soma de dois números:

-----------------------------------

A soma de 29 e 30 é: 59
4

3. Escreva um programa em C ++ para encontrar o tamanho dos tipos


de dados fundamentais. Exemplo de saída:

Encontre o tamanho dos tipos de dados fundamentais:

------------------------------------ ------

O sizeof (char) é: 1 bytes

O sizeof (short) é: 2 bytes

O sizeof (int) é: 4 bytes

O sizeof (long) é: 8 bytes

O sizeof (long long) é: 8 bytes

O sizeof (float) é: 4 bytes

O sizeof (double) é: 8 bytes

O sizeof (long double) é: 16 bytes

O sizeof (bool) é: 1 bytes


5

AULA 2 - C VS. C ++

O QUE É C?

C é uma linguagem de programação orientada estrutural ou procedural que é


independente da máquina e amplamente utilizada em várias aplicações.

C é a linguagem de programação básica que pode ser usada para


desenvolver desde sistemas operacionais (como Windows) até programas
complexos como banco de dados Oracle, Git, interpretador Python e muitos mais. A
linguagem de programação C pode ser chamada de linguagem de programação de
deus, pois forma a base para outras linguagens de programação. Se conhecermos
a linguagem C, podemos aprender facilmente outras linguagens de programação. A
linguagem C foi desenvolvida pelo grande cientista da computação Dennis Ritchie
no Bell Laboratories. Ele contém alguns recursos adicionais que o tornam exclusivo
de outras linguagens de programação.

O QUE É C ++?

C ++ é uma linguagem de programação de propósito especial desenvolvida


por Bjarne Stroustrup na Bell Labs por volta de 1980. A linguagem C ++ é muito
semelhante à linguagem C e é tão compatível com C que pode executar 99% dos
programas C sem alterar nenhuma fonte de código. C ++ é uma linguagem de
programação orientada a objetos, portanto, é mais segura e bem estruturada do que
C.

VAMOS ENTENDER AS DIFERENÇAS ENTRE C E C ++.


6

A seguir estão as diferenças entre C e C ++:

• A definição C é uma linguagem de programação estrutural e não


oferece suporte a classes e objetos, enquanto C ++ é uma linguagem de
programação orientada a objetos que oferece suporte ao conceito de classes
e objetos.

• Tipo de linguagem de programação C oferece suporte à linguagem


de programação estrutural em que o código é verificado linha por linha,
enquanto C ++ é uma linguagem de programação orientada a objetos que
oferece suporte ao conceito de classes e objetos.

• Desenvolvedor da linguagem Dennis Ritchie desenvolveu a


linguagem C na Bell Laboratories, enquanto Bjarne Stroustrup desenvolveu a
linguagem C ++ na Bell Labs por volta de 1980.

• O subconjunto C ++ é um superconjunto da linguagem de


programação C. C ++ pode executar 99% do código C, mas a linguagem C
não pode executar código C ++.

• Tipo de abordagem C segue a abordagem de cima para baixo,


enquanto C ++ segue a abordagem de baixo para cima. A abordagem de cima
para baixo divide os módulos principais em tarefas; essas tarefas são
divididas em subtarefas e assim por diante. A abordagem bottom-down
desenvolve os módulos de nível inferior primeiro e, em seguida, os módulos
de nível seguinte.

• Segurança Em C, os dados podem ser facilmente manipulados por


terceiros, pois não suporta o encapsulamento e ocultação de informações,
enquanto C ++ é uma linguagem muito segura, ou seja, nenhum forasteiro
pode manipular seus dados, uma vez que suporta encapsulamento e
ocultação de dados. Na linguagem C, funções e dados são as entidades livres
e, na linguagem C ++, todas as funções e dados são encapsulados na forma
de objetos.
7

• Sobrecarga de função A sobrecarga de função é um recurso que


permite ter mais de uma função com o mesmo nome, mas varia nos
parâmetros. C não suporta sobrecarga de função, enquanto C ++ suporta
sobrecarga de função.

• Substituição de função A substituição de função é um recurso que


fornece a implementação específica para a função, que já está definida na
classe base. C não oferece suporte para substituição de função, enquanto C
++ oferece suporte para substituição de função.

• Variáveis de referência C não oferece suporte às variáveis de


referência, enquanto C ++ oferece suporte às variáveis de referência.

• Palavras-chave C contém 32 palavras-chave e C ++ suporta 52


palavras-chave.

• Recurso de Namespace Um namespace é um recurso que agrupa


entidades como classes, objetos e funções sob algum nome específico. C
não contém o recurso de namespace, enquanto C ++ oferece suporte ao
recurso de namespace que evita as colisões de nomes.

• Tratamento de exceções C não fornece suporte direto para o


tratamento de exceções; ele precisa usar funções que ofereçam suporte ao
tratamento de exceções. C ++ fornece suporte direto para tratamento de
exceção usando um bloco try-catch.

• Funções de entrada / saída


Em C, as funções scanf e printf são usadas para operações de entrada
e saída, respectivamente, enquanto em C ++, cin e cout são usadas para
operações de entrada e saída, respectivamente.

• Alocação e desalocação de memória


C suporta as funções calloc () e malloc () para a alocação de memória
e a função free () para a desalocação de memória. C ++ suporta um novo
operador para a alocação de memória e operador de exclusão para a
desalocação de memória.
8

• Herança A herança é um recurso que permite que a classe


filha reutilize as
propriedades da classe pai. A linguagem C não oferece suporte à herança,
enquanto C ++ oferece suporte à herança.

• Arquivo de cabeçalho O programa C usa o arquivo de cabeçalho


<stdio.h>, enquanto o programa C ++ usa o arquivo de cabeçalho
<iostream.h>.

Vamos resumir as diferenças acima em uma forma tabular.

C C ++

C ++ é
multiparadigma. Ele
C segue a programação de estilo procedural. suporta
procedimentos e
orientação a objetos.
Os dados são menos Em C ++, você
pode usar
protegidos em C. modificadores para
membros da
classe para torná-lo
inacessível para
usuários externos.
C ++ segue a
Os dados são menos abordagem
ascendente.
protegidos em C.

C não suporta sobrecarga de C ++


suporta
função
sobrecarga de função.
.
9
10

AULA 3 - HISTÓRIA C ++

A história da linguagem C ++ é interessante de saber. Aqui vamos discutir


uma breve história da linguagem C ++.

A linguagem de programação C ++ foi desenvolvida em 1980 por Bjarne


Stroustrup nos laboratórios bell da AT&T (American Telephone & Telegraph),
localizado nos EUA.

Bjarne Stroustrup é conhecido como o fundador da linguagem C ++.

Ele foi desenvolvido para adicionar um recurso de OOP (Programação


Orientada a Objetos) em C sem alterar significativamente o componente C.

A programação C ++ é "relativa" (chamada de superconjunto) de C, isso


significa que qualquer programa C válido também é um programa C ++ válido.

Vamos ver as linguagens de programação que foram desenvolvidas antes da


linguagem C ++.
Língua Ano Desenvolvido por

International
Algol 1960
Group

BCPL 1967 Martin Richard

B 1970 Ken Thompson

C tradicional 1972 Dennis Ritchie

Kernighan e
K & RC 1978 Dennis Ritchie

C ++ 1980 Bjarne Stroustrup

RECURSOS C ++

C ++ é uma linguagem de programação orientada a objetos. Ele fornece


muitos recursos que são fornecidos a seguir.

1. Simples 2. Independente de máquina ou portátil 3.


Linguagem de programação de nível médio 4. Linguagem
de programação estruturada 5. Biblioteca Rica 6. Gestão de
Memória 7. Velocidade rapida 8. Ponteiros 9. Recursão 10.
Extensível 11. Orientado a Objeto 12. Baseado em
compilador
11

1. Simples

C ++ é uma linguagem simples no sentido de que fornece uma


abordagem estruturada (para quebrar o problema em partes), um rico conjunto
de funções de biblioteca, tipos de dados, etc.

2. Independente de máquina ou portátil

Ao contrário da linguagem assembly, os programas em c podem ser


executados em muitas máquinas com pouca ou nenhuma alteração. Mas não é
independente de plataforma.

3. Linguagem de programação de nível médio

C ++ também é usado para fazer programação de baixo nível. Ele é usado


para desenvolver aplicativos de sistema, como kernel, driver, etc. Ele também
suporta o recurso de linguagem de alto nível. É por isso que é conhecido como
linguagem de nível médio.
12

4. Linguagem de programação estruturada

C ++ é uma linguagem de programação estruturada no sentido de que


podemos quebrar o programa em partes usando funções. Portanto, é fácil de
entender e modificar.

5. Biblioteca Rica

C ++ fornece várias funções embutidas que tornam o desenvolvimento


rápido.

6. Gerenciamento de Memória

Ele suporta o recurso de alocação dinâmica de memória. Na linguagem C


++, podemos liberar a memória alocada a qualquer momento chamando a função
free ().

7. Velocidade

O tempo de compilação e execução da linguagem C ++ é rápido.


8. Ponteiro

C ++ fornece o recurso de ponteiros. Podemos interagir diretamente com


a memória usando os ponteiros. Podemos usar ponteiros para memória,
estruturas, funções, array etc.

9. Recursão

Em C ++, podemos chamar a função dentro da função. Ele fornece


capacidade de reutilização de código para todas as funções.

10. Extensível

A linguagem C ++ é extensível porque pode adotar novos recursos


facilmente.
13

11. Orientado a Objetos

C ++ é uma linguagem de programação orientada a objetos. OOPs torna


o desenvolvimento e a manutenção mais fáceis onde, como na linguagem de
programação orientada a procedimentos, não é fácil de gerenciar se o código
cresce conforme o tamanho do projeto aumenta.

12. Baseado em compilador

C ++ é uma linguagem de programação baseada em compilador, o que


significa que sem compilação nenhum programa C ++ pode ser executado.
Primeiro precisamos compilar nosso programa usando compilador e então
podemos executar nosso programa.
14

AULA 4 - PROGRAMA C ++

Antes de iniciar o abcd da linguagem C ++, você precisa aprender como


escrever, compilar e executar o primeiro programa C ++.

Para escrever o primeiro programa C ++, abra o console C ++ e escreva


o seguinte código:

#include <iostream.h> inclui as funções de biblioteca de entrada e saída


padrão. Ele fornece métodos cin e cout para leitura da entrada e gravação para
saída, respectivamente.

void main () A função main () é o ponto de entrada de todo programa em


linguagem C ++. A palavra-chave void especifica que não retorna nenhum valor.

cout << "Bem-vindo à programação C ++." é usado para imprimir os dados


"Bem-vindo à programação C ++." no console.

getch () A função getch () pede um único caractere. Até que você pressione
qualquer tecla, ele bloqueia a tela.

ENTRADA / SAÍDA BÁSICA C ++

A operação de E / S C ++ está usando o conceito de fluxo. Stream é a


sequência de bytes ou fluxo de dados. Isso torna o desempenho rápido.
15

Se os bytes fluem da memória principal para um dispositivo como impressora,


tela de exibição ou uma conexão de rede, etc, isso é chamado de operação de
saída.

Se os bytes fluem de um dispositivo como uma impressora, tela de exibição


ou uma conexão de rede, etc. para a memória principal, isso é chamado de
operação de entrada.

Arquivos de cabeçalho da biblioteca de E / S

Vejamos que os arquivos de cabeçalho comuns usados na programação C


++ são:

Arquivo de Função e descrição


cabeçalho
É usado para definir os objetos cout, cin e cerr ,
que correspondem ao fluxo de saída padrão, fluxo de
<iostream>
entrada padrão e fluxo de erro padrão,
respectivamente.
É usado para declarar serviços úteis para realizar
<iomanip>
E / S formatadas, como setprecision e setw.
É usado para declarar serviços
<fstream> para processamento de arquivos controlado pelo
usuário.

FLUXO DE SAÍDA PADRÃO (COUT)

O cout é um objeto predefinido da classe Ostream. Ele é conectado ao


dispositivo de saída padrão, que geralmente é uma tela de exibição. O cout é usado
em conjunto com o operador de inserção de fluxo (<<) para exibir a saída em um
console

Vamos ver o exemplo simples de fluxo de saída padrão (cout):


16

Resultado:

FLUXO DE ENTRADA PADRÃO (CIN)

O cin é um objeto predefinido da classe istream . Ele é conectado com o


dispositivo de entrada padrão, que geralmente é um teclado. O cin é usado em
conjunto com o operador de extração de fluxo (>>) para ler a entrada de um console.

Vamos ver o exemplo simples de fluxo de entrada padrão (cin):

Resultado:

LINHA FINAL PADRÃO (ENDL)

O endl é um objeto predefinido da classe ostream . É usado para inserir novos


caracteres de linha e liberar o fluxo.

Vamos ver o exemplo simples de linha final padrão (endl):


17

Resultado:

VARIÁVEL C ++

Uma variável é um nome de local de memória. Ele é usado para armazenar


dados. Seu valor pode ser alterado e pode ser reutilizado várias vezes.

É uma forma de representar a localização da memória por meio de símbolo


para que seja facilmente identificada.

Vamos ver a sintaxe para declarar uma variável:


type variable_list;

O exemplo de declaração de variável é fornecido abaixo:

in x
floa y;
ch r z

Aqui, x, y, z são variáveis e int, float, char são tipos de dados.


18

Também podemos fornecer valores ao declarar as variáveis conforme a


seguir:
int x = 5, b = 10;// declarando 2 variáveis
de tipo inteiro
float y f = 30,8;
char z c =“A” ;

REGRAS PARA DEFINIR VARIÁVEIS

Uma variável pode ter alfabetos, dígitos e sublinhados.

Um nome de variável pode começar com alfabeto e sublinhado apenas. Não


pode começar com um dígito.

Nenhum espaço em branco é permitido no nome da variável.

Um nome de variável não deve ser nenhuma palavra ou palavra-chave


reservada, por exemplo, char, float etc.

Nomes de variáveis válidos:

Nomes de variáveis inválidos:

EXERCÍCIO DE FIXAÇÃO

1. Escreva um programa em C ++ para verificar os limites superior e


inferior do número inteiro.

O limite máximo do tipo de dados int: 2147483647

O limite mínimo do tipo de dados int: -2147483648


O limite máximo de tipo de dados int não assinado: 4294967295

O limite máximo de long tipo de dados long: 9223372036854775807


19

O limite mínimo do tipo de dados long long: -9223372036854775808

O limite máximo de tipo de dados long long unsigned:


18446744073709551615

Os bits contêm no tipo de dados char: 8

O limite máximo do tipo de dados char: 127

O limite mínimo do tipo de dados char: -128

O limite máximo do tipo de dados char assinado: 127

O limite mínimo do tipo de dados char assinado: -128

O limite máximo do tipo de dados unsigned char: 255

O limite mínimo do tipo de dados curtos: - 32768

O limite máximo de tipo de dados curtos: 32767

O limite máximo de tipo de dados curtos não assinados: 65535

2. Escreva um programa em C ++ para verificar se os valores primitivos


ultrapassam os limites ou não.

O gênero é: F

Ela é casada? : 1

Número de filhos que ela tem: 2

Ano de sua nomeação: 2009


Salário por um ano: 1500000

Altura é: 79,48
20

GPA é 4,69

Salário elaborado até: 12047235

Saldo até: 995324987


21

AULA 5 - TIPOS DE DADOS C ++

Um tipo de dados especifica o tipo de dados que uma variável pode


armazenar, como inteiro, flutuante, caractere etc.

Existem 4 tipos de tipos de dados na linguagem C ++:

Tipos Tipos de dados


Tipo de Dados Básico int, char, float, double, etc

Tipo de dados derivados array, pointer, etc


Tipo de dados de enumeração enum
Tipo de dados definido pelo structure
usuário

TIPOS DE DADOS BÁSICOS

Os tipos de dados básicos são baseados em números inteiros e em ponto


flutuante. A linguagem C ++ oferece suporte a literais assinados e não assinados.

O tamanho da memória dos tipos de dados básicos pode mudar de acordo


com o sistema operacional de 32 ou 64 bits.

Vamos ver os tipos de dados básicos. Seu tamanho é fornecido de acordo


com o sistema operacional de 32 bits.
22

Tipos de dados Tamanho da Faixa


memória
char 1 byte -128 to 127
signed char 1 byte -128 to 127
unsigned char 1 byte 0 a 127
short 2 byte -32.768 a 32.767
signed short 2 byte -32.768 a 32.767
unsigned short 2 byte 0 a 32.767
int 2 byte -32.768 a 32.767
signed int 2 byte -32.768 a 32.767
unsigned int 2 byte 0 a 32.767
short int 2 byte -32.768 a 32.767
signed short int 2 byte -32.768 a 32.767
unsigned short int 2 byte 0 a 32.767
long int 4 byte
signed long int 4 byte
unsigned long int 4 byte
float 4 byte
double 8 byte
long double 10 byte

C++ KEYWORDS

Uma palavra-chave é uma palavra reservada. Você não pode usá-lo como
um nome de variável, nome de constante, etc. Uma lista de 32 palavras-chave em
linguagem C ++ que também estão disponíveis em linguagem C é fornecida abaixo.

Uma lista de 30 palavras-chave na linguagem C ++ que não estão disponíveis


na linguagem C é fornecida abaixo.
23

OPERADORES C ++

Um operador é simplesmente um símbolo usado para realizar operações.


Pode haver muitos tipos de operações como aritmética, lógica, bit a bit etc.

Existem os seguintes tipos de operadores para realizar diferentes tipos de


operações em linguagem C.

• Operadores aritméticos
• Operadores Relacionais
• Operadores lógicos
• Operadores bit a bit
• Operador de Atribuição
• Operador unário
• Operador ternário ou condicional
• Operador misto

PRECEDÊNCIA DE OPERADORES EM C ++
24

A precedência das espécies de operadores, qual operador será avaliado


primeiro e depois. A associatividade especifica a direção dos operadores a serem
avaliados, pode ser da esquerda para a direita ou da direita para a esquerda.

Vamos entender a precedência pelo exemplo dado abaixo:

A variável "dados" conterá 105 porque * (operador multiplicativo) é avaliado


antes de + (operador aditivo).

A precedência e associatividade dos operadores C ++ são fornecidas abaixo:

Categoria Operador Associatividade


Da () esquerda
Postfix
[] ->. ++ - - para direita
Direita para
Unário
+ -! ~ ++ - - (tipo) * & sizeof esquerda
Da esquerda
Multiplicativo * /%
para direita
Direita para
Aditivo +-
esquerda
Da esquerda
Mudança << >>
para direita
Da esquerda
Relacional <<=>> =
para direita
Direita para
Igualdade ==! = / td>
esquerda
Da esquerda
E bit a bit E
para direita
Da esquerda
XOR bit a bit ^
para direita
Direita para
OR bit a bit |
esquerda
Da esquerda
E lógico &&
para direita
Da esquerda
OR lógico ||
para direita
Direita para
Condicional ?:
esquerda
= + = - = * = / =% = >> = << = Direita para
Atribuição
&=^=|= esquerda
Da esquerda
Vírgula
, para direita
25

IDENTIFICADORES C ++

Os identificadores C ++ em um programa são usados para referir-se ao nome


das variáveis, funções, matrizes ou outros tipos de dados definidos pelo usuário
criados pelo programador. Eles são o requisito básico de qualquer idioma. Cada
idioma tem suas próprias regras para nomear os identificadores.

Resumindo, podemos dizer que os identificadores C ++ representam os


elementos essenciais em um programa que são dados a seguir:

• Constantes
• Variáveis
• Funções
• Etiquetas
• Tipos de dados definidos

Algumas regras de nomenclatura são comuns em C e C ++. Eles são os


seguintes:

• Somente caracteres alfabéticos, dígitos e


sublinhados são permitidos.
• O nome do identificador não pode começar com um
dígito, ou seja, a primeira letra deve ser alfabética. Após a
primeira letra, podemos usar letras, dígitos ou sublinhados.
• Em C ++, letras maiúsculas e minúsculas são
distintas. Portanto, podemos dizer que os identificadores C ++
diferenciam maiúsculas de minúsculas.
• Uma palavra-chave declarada não pode ser usada
como nome de variável.

Por exemplo, suponha que temos dois identificadores, nomeados como


'Nome' e 'Nome'. Ambos os identificadores serão diferentes como a letra 'N' no
primeiro caso em maiúsculas e minúsculas no segundo. Portanto, isso prova que os
identificadores são sensíveis a maiúsculas e minúsculas.
26

Identificadores Inválidos

A seguir estão os exemplos de identificadores inválidos:

Nota: Identificadores não podem ser usados como palavras-chave. Pode não entrar
em conflito com as palavras -chave, mas é altamente recomendável que as
palavras-chave não sejam usadas como o nome d o identificador. Você deve
sempre usar uma maneira consistente de nomear os identificadores para que seu
código seja mais legível e sustentável.

A principal diferença entre C e C ++ é o limite do comprimento do nome da


variável. ANSI C considera apenas os primeiros 32 caracteres em um nome,
enquanto ANSI C ++ não impõe nenhum limite ao comprimento do nome.

Constantes são os identificadores que se referem ao valor fixo, que não se alteram
durante a execução de um programa. Tanto C quanto C ++ oferecem suporte a
vários tipos de constantes literais e têm qualquer local de memória. Por exemplo,
123, 12,34, 037, 0X2, etc. são as constantes literais.

Vejamos um exemplo simples para entender o conceito de identificadores.


27

No código acima, declaramos duas variáveis 'a' e 'A'. Ambas as letras são
iguais, mas se comportarão como identificadores diferentes. Como sabemos que os
identificadores são sensíveis a maiúsculas e minúsculas, então ambos os
identificadores terão localizações de memória diferentes.

Resultado

QUAIS SÃO AS PALAVRAS-CHAVE?

Palavras-chave são as palavras reservadas que têm um significado especial


para o compilador. Eles são reservados para um propósito especial, que não podem
ser usados como identificadores. Por exemplo, 'para', 'quebrar', 'enquanto', 'se',
'senão', etc. são as palavras predefinidas onde as palavras predefinidas são aquelas
cujo significado já é conhecido pelo compilador. Considerando que, os
identificadores são os nomes que são definidos pelo programador para os elementos
do programa, como variáveis, funções, matrizes, objetos, classes.

Diferenças entre identificadores e palavras-chave

A seguir está a lista de diferenças entre identificadores e palavras-chave:

Identificadores Palavras-chave

Identificadores são os nomes Palavras-chave são as palavras definidos


pelo programador para os reservadas cujo significado é conhecido elementos
básicos de um programa. pelo compilador.

É usado para identificar o nome É usado para especificar o tipo de da


variável. entidade.
28

Pode consistir em letras,


Ele contém apenas letras.
dígitos e sublinhados.
Ele pode usar letras maiúsculas
Ele usa apenas letras minúsculas.
e minúsculas.

Nenhum caractere especial Não pode conter nenhum pode ser usado,
exceto o sublinhado. caractere especial.

A letra inicial dos


Ele pode ser iniciado apenas com
identificadores pode ser minúscula, a letra minúscula. maiúscula ou
sublinhado.
Eles podem ser classificados como identificadores internos e Não pode
ser mais classificado. externos.

Os exemplos são teste, Os exemplos são 'para', 'if', 'else', resultado, soma,
potência, etc. 'break', etc.

EXPRESSÃO C ++

A expressão C ++ consiste em operadores, constantes e variáveis que são


organizadas de acordo com as regras da linguagem. Ele também pode conter
chamadas de função que retornam valores. Uma expressão pode consistir em um
ou mais operandos, zero ou mais operadores para calcular um valor. Cada
expressão produz algum valor que é atribuído à variável com a ajuda de um
operador de atribuição.

Exemplos de expressão C ++:


29

UMA EXPRESSÃO PODE SER DOS SEGUINTES TIPOS:

• Expressões constantes
• Expressões integrais
• Expressões flutuantes
• Expressões de ponteiro
• Expressões relacionais
• Expressões lógicas
• Expressões bit a bit
• Expressões de atribuição especial

Se a expressão for uma combinação


das expressões acima, tais expressões são
conhecidas como expressões compostas.

EXPRESSÕES CONSTANTES

Uma expressão constante é uma expressão que consiste apenas em valores


constantes. É uma expressão cujo valor é determinado em tempo de compilação,
mas avaliado em tempo de execução. Ele pode ser composto de constantes de
número inteiro, caractere, ponto flutuante e enumeração.

As constantes são usadas nas seguintes situações:

• É usado no declarador de subscrito para descrever o


limite da matriz.

• É usado após a palavra-chave case na instrução switch.


• É usado como um valor numérico em um enum
• Ele especifica uma largura de campo de bits.
• É usado no pré-processador #if

Nos cenários acima, a expressão constante pode ter inteiros, caracteres e


constantes de enumeração. Podemos usar a palavra-chave static e extern com as
constantes para definir o escopo da função.
30

A tabela a seguir mostra a expressão que contém o valor constante:

Expressão contendo constante Valor constante


x = (2/3) * 4 (2/3) * 4
extern int y = 67 67
int z = 43 43
static int a = 56 56

Vamos ver um programa simples contendo expressão constante:

No código acima, declaramos primeiro a variável 'x' do tipo inteiro. Após a


declaração, atribuímos a expressão constante simples à variável 'x'.

Resultado

EXPRESSÕES INTEGRAIS

Uma expressão inteira é uma expressão que produz o valor inteiro como
saída após realizar todas as conversões explícitas e implícitas.

A seguir estão os exemplos de expressão integral:


31

Vamos ver um exemplo simples de expressão integral:

No código acima, declaramos três variáveis, ou seja, x, y e z. Após a


declaração, pegamos a entrada do usuário para os valores de 'x' e 'y'. Então,
adicionamos os valores de 'x' e 'y' e armazenamos seu resultado na variável 'z'.

Resultado

Vamos ver outro exemplo de expressão integral.


32

No código acima, declaramos duas variáveis, ou seja, x e y. Armazenamos o


valor da expressão (y + int (10.0)) em uma variável 'x'.

Resultado

EXPRESSÕES FLUTUANTES

Uma expressão flutuante é uma expressão que produz valor de ponto


flutuante como saída após realizar todas as conversões explícitas e implícitas.

A seguir estão os exemplos de expressões flutuantes:

Vamos entender por meio de um exemplo.


33

Resultado

Vamos ver outro exemplo de expressão float.

No código acima, declaramos duas variáveis, ou seja, x e y. Após a


declaração, armazenamos o valor da expressão (x + float (10)) na variável 'y'.

Resultado
34

EXPRESSÕES DE PONTEIRO

Uma expressão de ponteiro é uma expressão que produz o valor do endereço


como uma saída.

A seguir estão os exemplos de expressão de ponteiro:

Vamos entender por meio de um exemplo.

No código acima, declaramos o array e um ponteiro ptr. Atribuímos o


endereço base à variável 'ptr'. Após atribuir o endereço, incrementamos o
valor do ponteiro 'ptr'. Quando o ponteiro é incrementado, então 'ptr' aponta
para o segundo elemento da matriz.

Resultado
35

EXPRESSÕES RELACIONAIS

Uma expressão relacional é uma expressão que produz um valor do tipo bool,
que pode ser verdadeiro ou falso. Também é conhecido como expressão booleana.
Quando as expressões aritméticas são usadas em ambos os lados do operador
relacional, as expressões aritméticas são avaliadas primeiro e, em seguida, seus
resultados são comparados.

A seguir estão os exemplos da expressão relacional:

Vamos entender por meio de um exemplo

No código acima, declaramos duas variáveis, ou seja, 'a' e 'b'. Após a


declaração, aplicamos o operador relacional entre as variáveis para verificar se 'a' é
maior que 'b' ou não.
36

Resultado

Vamos ver outro exemplo.

No código acima, declaramos quatro variáveis, ou seja, 'a', 'b', 'x' e 'y'. Em
seguida, aplicamos o operador relacional (> =) entre essas variáveis.

Resultado
37

EXPRESSÕES LÓGICAS

Uma expressão lógica é uma expressão que combina duas ou mais


expressões relacionais e produz um valor do tipo bool. Os operadores lógicos são
'&&' e '||' que combina duas ou mais expressões relacionais.

A seguir estão alguns exemplos de expressões lógicas:

Vamos ver um exemplo simples de expressão lógica.

Resultado
38

EXPRESSÕES BIT A BIT

Uma expressão bit a bit é uma expressão que é usada para manipular os
dados em um nível de bit. Eles são usados basicamente para deslocar os bits.

Por exemplo:

x=3

x >> 3 // Esta declaração significa que estamos mudando a posição de três


bits
para a direita.

No exemplo acima, o valor de 'x' é 3 e seu valor binário é 0011. Estamos


mudando o valor de 'x' por uma posição de três bits para a direita. Vamos entender
por meio da representação diagramática.
39

Vamos ver um exemplo simples.

No código acima, declaramos uma variável 'x'. Após a declaração, aplicamos


o operador bit a bit, ou seja, o operador shift para a direita para mudar a posição de
um bit para a direita.

Resultado

Vejamos outro exemplo.


40

No código acima, declaramos uma variável 'x'. Após a declaração, aplicamos


o operador de deslocamento para a esquerda à variável 'x' para deslocar a posição
de três bits para a esquerda.

Resultado

EXPRESSÕES DE ATRIBUIÇÃO ESPECIAL

As expressões de atribuição especial são as expressões que podem ser


classificadas posteriormente, dependendo do valor atribuído à variável.

• Atribuição em cadeia

Expressão de atribuição encadeada é uma expressão na qual o mesmo valor


é atribuído a mais de uma variável usando uma única instrução.

Por exemplo:
41

No código acima, declaramos duas variáveis, ou seja, 'a' e 'b'. Em seguida,


atribuímos o mesmo valor a ambas as variáveis usando a expressão de atribuição
encadeada.
Resultado

Nota: Usando a expressão de atribuição encadeada, o valor não pode ser


atribuído à variável no momento da declaração. Por exemplo, int a = b = c = 90
é uma declaração inválida.

• Expressão de atribuição incorporada

Uma expressão de atribuição incorporada é uma expressão de atribuição na


qual a expressão de atribuição está incluída em outra expressão de atribuição.
42

No código acima, declaramos duas variáveis, ou seja, 'a' e 'b'. Em seguida,


aplicamos a expressão de atribuição embutida (a = 10 + (b = 90)).

Resultado

• Atribuição Composto

Uma expressão de atribuição composta é uma expressão que é uma


combinação de um operador de atribuição e um operador binário.

Por exemplo:

Vamos entender por meio de um exemplo.

Na declaração acima, 'a' é uma variável e '+ =' é uma declaração composta.

No código acima, declaramos uma variável 'a' e atribuímos um valor 10 a essa


variável. Em seguida, aplicamos o operador de atribuição composto (+ =) à variável
'a', ou seja, a + = 10 que é igual a (a = a + 10). Esta declaração aumenta o valor de
'a' em 10.
43

Resultado
44

EXERCICIO DE FIXAÇÃO

1. Escreva um programa em C ++ para exibir vários tipos ou operações


aritméticas usando tipos de dados mistos.

Exemplo de saída:

Exibir operações aritméticas com tipos de dados mistos:

----------------------------------- ----------------------

5 + 7 = 12

3,7 + 8,0 = 11,7

5 + 8,0 = 13,0

5 - 7 = -2
3,7 - 8,0 = -4,3

5 - 8,0 = -3,0
5 * 7 = 35
45

3,7 * 8,0 = 29,6

5 * 8,0 = 40,0 5/7

=0

3,7 / 8,0 = 0,5

5 / 8,0 = 0,6

2. Escreva um programa em C ++ para verificar overflow / underflow durante


várias operações aritméticas.

Amostra de saída:

Verifique o estouro / estouro negativo durante várias operações aritméticas: o intervalo

de int é [-2147483648, 2147483647]

------------------------ ---------------------------------------------

Estouro do intervalo inteiro e definido no intervalo mínimo: -2147483648

Aumentando do intervalo mínimo: -2147483647 O produto é: 1

Underflow o intervalo e definido no intervalo máximo: 2147483647

Diminuindo do intervalo máximo: 2147483646 O produto é: 0 AULA 6 - C


++ IF-ELSE

Na programação C ++, a instrução if é usada para testar a condição. Existem vários


tipos de instruções if em C ++.
46

• declaração if
• declaração if-else
• declaração if aninhada
• escada if-else-if

INSTRUÇÃO C ++ IF

A instrução if do C ++ testa a condição. Ele é executado se a condição for verdadeira.


47

EXEMPLO DE C ++ IF

Resultado

INSTRUÇÃO C ++ IF-ELSE

A instrução if-else do C ++ também testa a condição. Ele executa se o bloco se


a condição for verdadeira, caso contrário, o bloco será executado.3
48

EXEMPLO IF-ELSE C ++
49

Resultado:

EXEMPLO IF-ELSE C ++: COM ENTRADA DO USUÁRIO

Resultado:
50

DECLARAÇÃO C ++ IF-ELSE-IF LADDER

A instrução ladder if-else-if do C ++ executa uma condição de várias instruções.


51

EXEMPLO C ++ IF ELSE-IF

Resultado:

SWITCH C ++

A instrução switch C ++ executa uma instrução de várias condições. É como a


instrução ladder if-else-if em C ++.
52
53

EXEMPLO DE SWITCH C ++

Resultado:

C ++ INFINITE FOR LOOP

Se usarmos ponto-e-vírgula duplo no loop for, ele será executado infinitas vezes.
Vamos ver um exemplo simples de loop for infinito em C ++.
54

Resultado:

C ++ WHILE LOOP

Em C ++, o loop while é usado para iterar uma parte do programa várias vezes.
Se o número de iterações não for fixo, é recomendado usar loop while do que loop for.
55

EXEMPLO DE LOOP WHILE C ++

Vamos ver um exemplo simples de loop while para imprimir a tabela de 1.

Resultado:

EXEMPLO DE LOOP WHILE ANINHADO EM C ++

Em C ++, podemos usar o loop while dentro de outro loop while, conhecido
como loop while aninhado. O loop while aninhado é executado totalmente quando o
loop externo é executado uma vez.
56

Vamos ver um exemplo simples de loop while aninhado na linguagem de programação


C ++.

Resultado:

EXEMPLO DE LOOP WHILE COM INFINITIVO C ++:

Também podemos criar um loop while infinito passando true como a condição de teste.
57

Resultado:

C ++ DO-WHILE LOOP

O loop do-while do C ++ é usado para iterar uma parte do programa várias


vezes. Se o número de iterações não for fixo e você precisar executar o loop pelo
menos uma vez, é recomendável usar o loop do-while.

O loop do-while do C ++ é executado pelo menos uma vez porque a condição é


verificada após o corpo do loop.
58

Fluxograma

Exemplo de loop do-while em C ++

Resultado:
59

LOOP DO-WHILE ANINHADO C ++

Em C ++, se você usar o loop do-while dentro de outro loop do-while, ele é
conhecido como loop do-while aninhado. O loop do-while aninhado é executado
totalmente para cada loop externo do-while.

Vamos ver um exemplo simples de loop do-while aninhado em C ++.

Resultado:
60

C ++ INFINITIVO DO-WHILE LOOP

Em C ++, se você passar true no loop do-while, será infinitivo do-while loop.

Exemplo de loop do-while infinitivo em C ++

Resultado:
61

EXEMPLO DE INSTRUÇÃO BREAK C ++

Vamos ver um exemplo simples de instrução break do C ++ que é usado dentro do


loop.

Resultado:

NSTRUÇÃO BREAK C ++ COM LOOP INTERNO

A instrução break do C ++ quebra o loop interno apenas se você usar a instrução


break dentro do loop interno.
62

Vamos ver o código de exemplo:

Resultado:
63

EXERCÍCIO DE FIXAÇÃO

1. Escreva um programa em C ++ para exibir a operação de pré e pós


incremento e decremento.

2. Escreva um programa em C ++ para formatar a saída.


64

3. Escreva um programa em C ++ para imprimir o resultado das operações


especificadas.

4. Escreva um programa em C ++ para adicionar dois números aceitos


pelo teclado.
65

AULA 7 - FUNÇÕES C ++

A função na linguagem C ++ também é conhecida como procedimento ou subrotina


em outras linguagens de programação.

Para realizar qualquer tarefa, podemos criar função. Uma função pode ser
chamada várias vezes. Ele fornece modularidade e capacidade de reutilização de
código.

VANTAGEM DE FUNÇÕES EM C

Existem muitas vantagens de funções.

1) Reutilização de código

Ao criar funções em C ++, você pode chamá-lo muitas vezes. Portanto, não
precisamos escrever o mesmo código repetidamente.

2) Otimização de código

Isso torna o código otimizado, não precisamos escrever muito código.

Suponha que você tenha que verificar 3 números (531, 883 e 781) se
é um número primo ou não. Sem usar a função, você precisa escrever a lógica
dos números primos 3 vezes. Portanto, há repetição de código.

Mas se você usar funções, precisará escrever a lógica apenas uma vez e
poderá reutilizá-la várias vezes.

TIPOS DE FUNÇÕES

Existem dois tipos de funções na programação C:


66

1. Funções de biblioteca: são as funções declaradas nos arquivos de


cabeçalho C ++, como ceil (x), cos (x), exp (x), etc.

2. Funções definidas pelo usuário: são as funções que são criadas pelo
programador C ++, para que ele possa utilizá-lo várias vezes. Reduz a
complexidade de um grande programa e otimiza o código.

DECLARAÇÃO DE UMA FUNÇÃO

A sintaxe de criação de função na linguagem C ++ é fornecida a seguir:


67

EXEMPLO DE FUNÇÃO C ++

Vamos ver o exemplo simples da função C ++.

Resultado:
68

CHAMADA POR VALOR E CHAMADA POR REFERÊNCIA EM C ++

Existem duas maneiras de passar


valor ou dados para funcionar na linguagem
C: chamada por valor e chamada por
referência. O valor original não é modificado
na chamada por valor, mas é modificado na
chamada por referência.

Vamos entender chamada por valor e


chamada por referência na linguagem C ++, uma a uma.

CHAMADA POR VALOR EM C ++

Na chamada por valor, o valor original não é modificado.

Na chamada por valor, o valor que está sendo passado para a função é
armazenado localmente pelo parâmetro da função na localização da memória da
pilha. Se você alterar o valor do parâmetro de função, ele será alterado apenas para
a função atual. Isso não mudará o valor da variável dentro do método do chamador,
como main ().

Vamos tentar entender o conceito de chamada por valor na linguagem C ++ pelo


exemplo dado abaixo:
69

Resultado:

CHAMADA POR REFERÊNCIA EM C ++

Na chamada por referência, o valor original é modificado porque passamos a


referência (endereço).

Aqui, o endereço do valor é passado na função, portanto, os argumentos reais


e formais compartilham o mesmo espaço de endereço. Portanto, o valor alterado
dentro da função é refletido tanto dentro quanto fora da função.

Nota: Para entender a chamada por referência, você deve ter o conhecimento básico
de ponteiros.

Vamos tentar entender o conceito de chamada por referência na linguagem C ++ pelo


exemplo dado abaixo:
70

Resultado:

DIFERENÇA ENTRE CHAMADA POR VALOR E CHAMADA POR REFERÊNCIA EM


C ++
No. Chamada por valor Chamada por referência
Uma cópia do valor é passada Um endereço de valor é
1
para a função passado para a função
As alterações feitas dentro da As alterações feitas dentro da
2 função não se refletem em outras função são refletidas fora da função
funções também
Argumentos reais e formais Argumentos reais e formais
3 serão criados em diferentes locais de serão criados no mesmo local de
memória memória

C ++ RECURSÃO

Quando a função é chamada dentro da mesma função, isso é conhecido


como recursão em C ++. A função que chama a mesma função é conhecida como
função recursiva.

Uma função que chama a si mesma e não executa nenhuma tarefa após a
chamada da função é conhecida como recursão final. Na recursão final, geralmente
chamamos a mesma função com a instrução return.

Vamos ver um exemplo simples de recursão.


71

EXEMPLO DE RECURSÃO C ++

Vejamos um exemplo para imprimir o número fatorial usando recursão na linguagem


C ++.

Resultado:

Podemos entender o programa acima de chamada de método recursiva pela figura


abaixo:
72

CLASSES DE ARMAZENAMENTO C ++

A classe de armazenamento é usada para definir o tempo de vida e a visibilidade de


uma variável e / ou função em um programa C ++.

O tempo de vida se refere ao período durante o qual a variável permanece ativa


e a visibilidade se refere ao módulo de um programa no qual a variável está acessível.

Existem cinco tipos de classes de armazenamento, que podem ser usados em um


programa C ++.

5. Automático
6. Registro
7. Estático
8. Externo
9. Mutável

Classe de Visibilida
Palavr Val
Armazenament Vida
a-chave or inicial
o de
Automáti Bloco
auto Local Lixo
co Funcional
registr o Bloco
Registro Local Lixo
Funcional
73

mutáv el
Mutável Aula Local Lixo
extern Progra Zer o
Externo
o ma Completo Global
estátic Progra Zer o
Estático Local
o ma Completo

CLASSE DE ARMAZENAMENTO AUTOMÁTICO

É a classe de armazenamento padrão para todas as variáveis locais. A palavrachave


auto é aplicada a todas as variáveis locais automaticamente.

O exemplo acima define duas variáveis com a mesma classe de armazenamento, auto
só pode ser usado dentro de funções.

Registrar classe de armazenamento

A variável de registro aloca memória no registro do que na RAM. Seu tamanho é


igual ao tamanho do registro. Possui um acesso mais rápido do que outras variáveis.

Recomenda-se usar a variável de registro apenas para acesso rápido, como no


contador.

Nota: Não podemos obter o endereço da variável de registro.

Classe de armazenamento estático

A variável estática é inicializada apenas uma vez e existe até o final de um programa.
Ele retém seu valor entre várias chamadas de funções.
74

A variável estática tem o valor padrão 0, que é fornecido pelo compilador.

Resultado:

Classe de Armazenamento Externo

A variável externa é visível para todos os programas. É usado se dois ou mais arquivos
estiverem compartilhando a mesma variável ou função.
75

EXERCÍCIO DE FIXAÇÃO

1. Escreva um programa em C ++ para imprimir o resultado das operações


especificadas.

amostra de saída:

Imprima o resultado de alguma operação específica:

----------------------------------- --------------- O

resultado da 1ª expressão é: 23 O

resultado da 2ª expressão é: 5 O

resultado da 3ª expressão é: 12 O

resultado da 4ª expressão é: 3

2. Escreva um programa em C ++ para adicionar dois números aceitos pelo teclado.

Amostra de saída:
Matriz original:
[10, 20, 30]
Depois de acrescentar valores ao final da
matriz:
[10 20 30 40 50 60 70 80 90]
76

3. Escreva um programa em C ++ para adicionar dois números aceitos pelo teclado.

Amostra de saída:
Matriz original:
[10, 20, 30]
Depois de acrescentar valores ao final
da matriz:
[10 20 30 40 50 60 70 80 90]
77

AULA 6 - PROGRAMAS C ++

Os programas C ++ são frequentemente solicitados na entrevista. Esses


programas podem ser solicitados a partir do básico, array, string, ponteiro, lista
vinculada, manipulação de arquivos, etc. Vamos ver a lista dos principais programas
c ++.

1. SÉRIE FIBONACCI

Escreva um programa c ++ para imprimir a série fibonacci sem usar recursão e


usando recursão.

2. NÚMERO PRIMO

Escreva um programa c ++ para verificar o número primo.

Entrada: 17

Saída: não número primo

Entrada: 57
Saída: número primo
78

O número primo é um número maior que 1 e dividido por 1 ou ele mesmo.


Em outras palavras, os números primos não podem ser divididos por outros
números além dele próprio ou 1. Por exemplo 2, 3, 5, 7, 11, 13, 17, 19, 23 .... são
os números primos.

Vamos ver o programa de números primos em C ++. Neste programa C ++,


pegaremos uma entrada do usuário e verificaremos se o número é primo ou não.

Programa fatorial em C ++: o fatorial de n é o produto de todos os inteiros


descendentes positivos. Fatorial de n é denotado por n !. Por exemplo:

3. PROGRAMA PALINDROME EM C ++

Um número de palíndromo é um número igual após o reverso. Por exemplo, 121,


34543, 343, 131, 48984 são os números do palíndromo.
79

Algoritmo de número do palíndromo


• Obtenha o número do usuário
• Mantenha o número na variável temporária
• Inverta o número
• Compare o número temporário com o número invertido
• Se os dois números forem iguais, imprime o número do
palíndromo
• Outra impressão não é o número do palíndromo

Vamos ver o programa palíndromo em C ++. Neste programa, obteremos uma entrada
do usuário e verificaremos se o número é palíndromo ou não.

4. PROGRAMA FATORIAL EM C ++

Programa fatorial em C ++: o fatorial de n é o produto de todos os inteiros


descendentes positivos. Fatorial de n é denotado por n !. Por exemplo:
80

Aqui, 4! é pronunciado como "fatorial 4", também é chamado de "4 bang" ou "4

guinchos”.

O fatorial é normalmente usados em combinações e permutações


(matemática).

Existem muitas maneiras de escrever o programa fatorial na linguagem C ++.


Vamos ver as 2 maneiras de escrever o programa fatorial.

• Programa fatorial usando loop


• Programa fatorial usando recursão

PROGRAMA FATORIAL USANDO LOOP

Vamos ver o programa fatorial em C ++ usando loop.

PROGRAMA FATORIAL USANDO RECURSÃO

Vamos ver o programa fatorial em C ++ usando recursão.


81

5. NÚMERO ARMSTRONG EM C ++

Antes de escrever o programa C ++ para verificar se o número é Armstrong ou


não, vamos entender o que é Armstrong número.

O número de Armstrong é um número igual à soma dos cubos de seus dígitos.


Por exemplo, 0, 1, 153, 370, 371 e 407 são os números de Armstrong.

Vamos tentar entender por que 371 é um número de Armstrong.


82

Vamos ver o programa C ++ para verificar o Número de Armstrong.

6. PROGRAMA DE SOMA DE DÍGITOS EM C ++

Podemos escrever o programa de soma de dígitos na linguagem C ++ com a ajuda


de loop e operação matemática apenas.

ALGORITMO DE SOMA DE DÍGITOS

Para obter a soma de cada dígito pelo programa C ++, use o seguinte algoritmo:
• Etapa 1: obter o número por usuário
83

• Etapa 2: obter o módulo / restante do número


• Etapa 3: some o restante do número
• Etapa 4: divida o número por 10
• Etapa 5: repita a etapa 2 enquanto o número for maior que 0.

Vamos ver o programa de soma de dígitos em C ++.

7. PROGRAMA C ++ PARA INVERTER O NÚMERO

Podemos reverter um número em C ++ usando operadores de loop e


aritméticos. Neste programa, obtemos um número como entrada do usuário e
revertemos esse número.

Vamos ver um exemplo simples de C ++ para reverter um determinado número.


84

AULA 8 - PROJETO DE C++

Chegamos ao final desse módulo e agora é com vocês.

Neste módulo, o aluno colocará em prática o que aprendeu durante todo o


curso de C++ com um projeto prático que irá fazer com que você desenvolva um
sistema funcional para uma empresa.

Algumas dicas de como será o projeto:

1. O projeto tem que ser de gerenciamento de reserva de Hotel;


2. Tem que conter: check-in, reserva de quarto e tudo o que um Hotel
precisa para poder atender seus clientes de forma eficiente.

O projeto também terá que contar com uma documentação digitada em word
onde terá que conter todos os dados do projeto desde a sua elaboração no papel,
até o desenvolvimento do código fonte do programa.

Então, mãos à obra.


89

Você também pode gostar