Buscar

Algoritmos Aula 4 Conhecendo alguns elementos de 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 27 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 27 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 27 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

Algoritmos / Aula 4 Conhecendo alguns elementos 
de C++ 
Introdução 
Esta aula vai mostrar os operadores aritméticos e os 
tipos de dados que podemos usar. Você também vai 
entender como funcionam a entrada e a saída em 
C++. 
Aproveite a aula e preste atenção aos exemplos! 
Tipos primitivos 
Vamos começar a nossa aula com um assunto 
presente em todas as linguagens de programação: os 
tipos primitivos. 
O que é isso? 
Vamos responder com um exemplo. 
Imagine que você está navegando na internet e chega 
a um cadastro como este a baixo. 
 
Observe que você tem de preencher campos como: 
nome, data de nascimento, e-mail, sexo, telefone, 
identidade, entre outros. 
Cada cadastro que você encontrar como exemplo na 
internet possui campos iguais ou semelhantes a esse. 
CAMPO “SEXO” 
Quais são os possíveis valores que ele pode assumir 
de acordo com o formulário? 
Masculino ou feminino, correto? 
E provavelmente, no banco de dados, dentro do 
sistema, ele ficará armazenado como “m” ou “f”. Ou 
seja, na definição desse formulário, haverá uma 
variável chamada sexo, a qual poderá guardar apenas 
dois valores: “m” ou “f”. 
 
São caracteres! Logo, a variável sexo não poderá 
receber valores como “1”, “verdadeiro”, 
“3.14159266” etc. Somente poderá receber 
caracteres. 
Será que existe em C++ um tipo para somente 
caracteres? 
Tem. E é chamado de char. 
E para o campo nome? Poderíamos usar o char? 
O tipo char tem uma característica: ele guarda apenas 
um caractere. Logo, o nome 
“Matusalém” não poderá ser um valor possível para 
uma variável do tipo char. 
E agora? 
Bem, já vimos anteriormente que, quando temos 
vários caracteres juntos, isso é 
chamado de string. 
Temos o tipo string em C++? 
Não. No caso de C++, para guardar uma string, temos 
que importar uma biblioteca 
chamada string. É o mesmo que ocorre com a função 
cout. Lembra que temos de 
importar a biblioteca iostream para o cout? No caso 
da string, a biblioteca é a 
string! 
Mas como vou saber isso? 
Estude a API da linguagem! Lembre-se: a API 
(application program interface) é o 
local onde você vai encontrar os recursos disponíveis 
com toda a documentação 
para a linguagem que você está usando para 
programar. 
E o campo DDD? 
É uma variável que não pode aceitar letras, nem 
símbolos especiais, apenas números. Para isso temos 
o tipo int (inteiro). 
No exemplo do formulário, por se tratar de uma ficha 
de inscrição para o Vestibular, não temos campo 
como altura ou peso, que também são números, mas 
podem ter valores decimais. Para este caso, usamos o 
já conhecido float. 
Em C++, temos os seguintes tipos básicos de variáveis: 
 
Temos algumas variações desses tipos, que usam os 
seguintes modificadores de tipos: 
 
Declaração e inicialização de variáveis 
Em C++, é obrigatório que toda variável usada no 
programa seja declarada. A declaração reserva o 
espaço em memória necessário para a alocação do 
conteúdo que receberá. A sintaxe da declaração de 
variáveis em C++ é: 
 
Atenção 
Existem algumas regras para a escolha dos nomes de 
variáveis em C++: 
Nomes de variáveis só podem conter letras, números 
e o caractere “_”; 
Não podem começar com um número; 
Embora seja possível ter uma variável com o nome 
“_var” (começando com “_”), estes são reservados 
para a implementação interna do programa, e seu uso 
é bem restrito e desaconselhado. O compilador não 
vai mostrar erro quando criamos variáveis desse jeito, 
mas o programa criado se comportará de forma 
inesperada; 
Não é possível utilizar palavras reservadas da 
linguagem C++. Vamos listar as palavras reservadas 
em seguida; 
Também não é possível criar uma variável que tenha 
o mesmo nome de uma função, mesmo que essa 
função tenha sido criada pelo programador ou que 
seja uma função de biblioteca; 
Não há limite para o tamanho de nome de variável 
em C++;Quando criarmos constantes, estas devem ser 
escritas com todas as letras em maiúsculas. 
Portanto, as declarações de variáveis a seguir são 
válidas: int a;char a, b, c;unsigned int x1, x2, 
media;char _a; 
 
Lendo e escrevendo em C++ 
Já vimos rapidamente como é o comando de saída de 
dados em C++, certo? Agora, vamos tratar um pouco 
mais profundamente deste assunto. 
É muito importante criar formas de orientar o usuário 
com relação ao que o programa necessita para poder 
funcionar adequadamente. Ou seja, é importante 
mostrar mensagens na tela e receber informações do 
usuário de maneira eficiente. 
Em C++, o comando que exibe uma mensagem na 
tela, ou seja, que faz a saída de dados, é o cout. Para 
esse comando funcionar, vimos que é necessário 
inserir duas linhas no início dos nossos programas: 
 
Seria mais trabalhoso, certo? Então, para escrevermos 
algo na tela, a função que vamos usar 
é o cout. Veja alguns exemplos: 
Comando Vai resultar em: 
cout<<”Alô mundo”; Alô mundo 
cout<<”Alo mundo”<<endl; Alô mundo (e pula linha 
devido 
ao endl) 
cout << “Alô mundo\n”; Alô mundo (e pula linha 
devido 
ao “\n”) 
int a=1; 
cout << “1+1=”<<a+a; 
1+1=2 
int a=1; 
cout << “O valor de a=”<<a; 
O valor de a=1 
Observe que tudo que estiver entre aspas, e após o 
operador <<, será impresso na tela. O 
comando endl no final do comando faz com que o 
compilador imprima a string na tela e 
depois posicione o cursor na linha seguinte. 
Outro detalhe que percebemos na tabela é que 
podemos combinar expressões curtas com a 
string entre aspas. Isto é muito comum, 
principalmente em programas que mostram 
resultados de operações ou cálculos feitos durante o 
programa. 
Esta foi a saída. A entrada de dados em C++ pode ser 
feita com a função cin. Esta função 
faz a leitura de uma sequência de caracteres sem 
espaços e sem tabulações. Veja o exemplo 
a seguir, extraído de um programa que calcula a 
média final de um aluno: 
11 cout<<"Digite a primeira nota: "<<endl; 
12 cin>>nota1; 
13 cout<<"Digite a segunda nota: "<<endl; 
14 cin>>nota2; 
15 cout<<"Digite a terceira nota: "<<endl; 
2 
16 cin>>nota3; 
17 cout<<"Digite a quarta nota: "<<endl; 
18 cin>>nota4; 
A parte legal do exemplo é que ele mescla comandos 
cin e cout. Neste caso, as variáveis 
nota1, nota2, nota3 e nota4 devem ser previamente 
declaradas. 
O cin usa o operador >>. O que for colocado após este 
operador será atribuído na variável 
usada. 
Fonte: https://www.youtube.com/_XtNWKWtfmw 
O código do programa mostrado no vídeo é: 
include 
#include 
using namespace std; 
int main(void){ 
string nome; 
cout<<"Qual eh o seu nome?"<cin>>nome; 
cout<<"Oi "<return 0; 
} 
Saiba mais 
Vimos que o vídeo mostra o resultado do valor lido na 
variável nome. Perceba que no código estamos 
usando duas diretivas para o compilador (nas linhas 1 
e 2). Uma carrega a biblioteca para os comandos cin e 
cout, e a outra carrega a biblioteca para o tipo string. 
No vídeo, o valor que é armazenado na variável nome 
é exibido juntamente com a string “Oi _____, tudo 
bem com você?”. 
Bem, por enquanto é isso sobre entrada e saída. 
Simples, né? 
O cin e cout são bem eficientes e você vai notar que 
eles são bastante usados em C++ e aparecem na 
maioria das referências que vamos encontrar sobre a 
linguagem. 
É claro que a linguagem oferece outros comandos 
para escrever e ler informações, mas o cin e cout já 
dão conta muito bem do recado. 
Operadores aritméticos em C++ 
Toda linguagem de programação possui capacidade 
para fazer contas aritméticas, e com o C++ não é 
diferente.Na programação de computadores, é 
possível fazer vários tipos de operações, além das 
aritméticas. É preciso conhecer o que são operações 
lógicas, relacionais e outros detalhes para poder 
construir programas. 
Temos os seguintes operadores aritméticos em C++. 
Com eles, podemos fazer as contas mais comuns: 
 
Fu
nções do C++ 
Certo, já vimos que existem operadores na linguagem. 
Mas o que acontece quando precisamos de operações 
um pouco mais complexas como o cálculo de senos, 
cossenos, raiz quadrada? Fazer isto em C++? 
Assim como outras linguagens de programação, o C++ 
possui funções que auxiliam o programador em 
algumas tarefas. Da mesma forma que usamos 
bibliotecas para as strings e para o cin e cout, 
podemos usar outras bibliotecas para as funções 
matemáticas. 
Uma destas bibliotecas é a cmath. Com ela, podemos 
calcular a raiz quadrada, por exemplo. 
Observe este programa: 
 
SQRT é a forma mnemônica de square root em inglês. 
Vamos estudar as funções em C++ algumas aulas mais 
à frente. 
Novamente você pode perguntar: 
“Como eu vou saber em qual biblioteca tem o que eu 
preciso?”. 
Lembra-se da resposta? 
A resposta é “estude a API”. Não tem jeito; é muito 
importante estudar a API da linguagem que você está 
aprendendo. 
Operadores lógicos 
Como já dissemos, na programação existem 
operações que não são só aritméticas. Em muitos e 
muitos casos, precisamos criar situações de 
comparação entre valores, e essa comparação faz 
parte de um tipo de operação chamada de operação 
lógica. 
Esse tipo de operação faz parte de uma lógica 
chamada proposicional e foi muito estudada por um 
matemático chamado George Boole. Assim, também 
ganhou o nome de “álgebra booleana”. 
Essa álgebra trabalha principalmente com valores 
booleanos ou lógicos, e basicamente nesta lógica só 
existem dois valores: verdadeiro (true) ou falso 
(false). 
Tudo que conhecemos na computação atual é 
baseada nessa álgebra. Ela possui propriedades, 
teoremas e um monte de coisas que excedem o nosso 
contexto. Mas saiba que ela é muito importante na 
computação atual. 
Aliás, quando trabalhamos com a aritmética binária, 
de certa forma, também estamos trabalhando com a 
álgebra de Boole, e neste caso normalmente usamos 
0 para valores falsos e 1 para verdadeiros. 
Na álgebra de Boole, temos basicamente três 
operadores: 
 
Na álgebra booleana, usamos um recurso chamado de 
tabela verdade para mostrar os valores possíveis que 
as variáveis lógicas podem assumir. 
A tabela verdade mostra todas as possibilidades 
combinatórias entre os valores de diversas variáveis 
lógicas que são encontradas em somente duas 
situações e um conjunto de operadores lógicos. 
Nas tabelas verdade a seguir, A e B são proposições. 
Os operadores lógicos “e” e “ou” em C++ são 
representados pelos símbolos “&&” e “||” 
respectivamente. 
Veja suas tabelas verdades: 
 
Guarde essas informações, pois vamos fazer um 
exemplo mais completo adiante. 
Saiba mais 
Duas dicas que pode te ajudar nas operações 
envolvendo condições lógicas: 
Em uma expressão envolvendo o operador E (&&), a 
expressão só será verdadeira se todas as partes da 
expressão forem verdadeiras. Se contiver uma só que 
seja falsa, toda a expressão será falsa; 
Em uma expressão envolvendo o operador OU (||), a 
expressão só será falsa se todas as partes da 
expressão forem falsas. Se contiver uma só que seja 
verdadeira, toda a expressão será verdadeira. 
Operadores relacionais 
Os operadores relacionais são usados para fazer 
comparações entre dois operandos do mesmo tipo 
primitivo. Esses valores são representados por 
constantes, variáveis ou expressões aritméticas. 
 
Vejamos um exemplo. 
Considere: 
a = 1; 
b = 2; 
c = verdadeiro; 
 
Se fôssemos fazer essas declarações em C++, 
teríamos: 
 
int a = 1; 
int b = 2; 
bool c = true; 
 
bool é um tipo em C++ e pode assumir os valores 
booleanos true ou false. 
Vamos praticar um pouco com uma atividade. Preste 
atenção e veja algumas situações envolvendo 
expressões relacionais. 
Usando os operadores que vimos nesta aula, 
observe: 
a) a > b 
a é maior que b? ( ) Sim / ( ) Não 
 
b) b >= a 
b é maior ou igual a a? ( ) Sim / ( ) Não 
 
c) a == b 
o valor de a é igual ao valor de b? ( ) Sim / ( ) Não 
GABARITO 
a) Não b) Sim c) Não 
Saiba mais 
Observe que quando estamos comparando a 
igualdade de dois valores, usamos 2 sinais de igual 
(==). 
Operadores relacionais 
Não se preocupe. A partir das próximas aulas, vamos 
começar a estudar os comandos de controle de fluxo, 
e estas condições booleanas sempre aparecerão nos 
programas e ficarão mais claras para você. 
Até a próxima aula! 
Atividade 
Vamos ver se você está craque! Você consegue 
simplificar estas expressões? A primeira delas já está 
feita: 
!(a==b) é equivalente a (a!=b) 
!(a!=b) é equivalente a:_________________ 
!(a>b) é equivalente a:_________________ 
!(a<b) é equivalente a:_________________ 
!(a>=b) é equivalente a:_________________ 
!(a<=b) é equivalente a:_________________ 
GABARITO 
b) (a==b) 
c) (a<=b) 
d) (a>=b) 
e) (a>b) 
f) (a<b) 
Assinale a alternativa correta: 
Em C++, quando usamos = é para atribuição, e == é 
para comparação. 
O símbolo para o operador “diferente” em C++ é <>. 
Para armazenar strings em uma variável, usamos o 
tipo char. 
Para armazenar valores booleanos, usamos o tipo 
boolean. 
O cin e cout são comandos nativos da linguagem C++. 
GABARITO 
Em C++, quando usamos = é para atribuição, e == é 
para comparação. O símbolo para “diferente” em c++ 
é “!=”.Para armazenar strings, temos que importar a 
biblioteca string, que contém o tipo string. Para 
armazenar valores booleanos, o tipo é o bool. O cin e 
o cout são comandos que estão na biblioteca 
iostream. Não são nativos. 
Verifique as afirmações abaixo: 
I - Em C++, nem todos os recursos de que precisamos 
estão na linguagem nativa. É necessário incluir 
algumas bibliotecas quando necessário. 
II - Em C++, existem quatro tipos de dados nativos: int, 
float, double e char. 
III - cout>>”Oi gente!”; é uma linha correta em C++. 
Qual é a alternativa verdadeira? 
Somente a i está correta 
Somente a ii está correta 
Somente a iii está correta 
Nenhuma está correta 
Todas estão corretas 
GABARITO 
A afirmação II está incorreta. São cinco tipos nativos 
em C++: int, float, double, char e bool. A afirmação III 
está incorreta. O operador “>>” está errado. O 
correto seria usar o operador “<<”. 
Observe o seguinte programa em C++: 
#include 
int main(void) { 
string nome; 
int idade; 
std::cin >> nome >> idade; 
std::cout << "\n\nNome " << nome << std::endl; 
std::cout << "Idade " << idade << std::endl; 
return 0; 
} 
O programa está correto 
O erro está no uso do std::endl; 
O erro está no uso geral do std 
O erro está na linha 5 
O erro está na falta de uma biblioteca 
GABARITO 
O único problema do programa é que falta incluir a 
biblioteca string. O restante está correto. 
Coloque true ou false em cada uma das operações 
abaixo: 
6<=7 
3+5<=2*4 
“oi” == “OI” 
(64)^(1/2) > (5)*2 
Observação: Quando usamos o “^” estamos nos 
referindo à exponenciação, ou seja, 3^2 =9. 
False, false, false, false 
False, true, true, true 
True, true, false, false 
True, true, true, false 
True, false, true, false 
GABARITO 
6 é menor ou igual a 7, true.8 é menor ou igual a 8, 
true.“oi” é diferente de “OI” em C++, false.641/2= 8. 
8 é menor que 10, false. 
Idem ao exercício anterior: 
“mario” == “maria” 
2 + 4 = 6 
10 - 4 > 7 
(2*3)>(3*2) 
!('a' == 'A') 
false, false, true, true, true 
false, true, false, false, false 
false, false, false, false, false 
true, false, true, false, false 
true, true, false, false, false 
GABARITO 
“mario” e “maria” são diferentes, false2 + 4 =6, 
true6>7, false6=6, false‘a’ == ‘A’, isso é true. 
Colocando o ! na frente da expressão, ela vira false.

Continue navegando