Buscar

INTRODUCAO A LOGICA DE PROGRAMACAO ANITA LOPES Aulas 1 4

Prévia do material em texto

INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO
2013 e 2016
Prof. ANITA LOPES
Prof. ANITA LOPES
Por que preciso aprender como tudo acontece. 
Não dá para programar logo?
Prof. ANITA LOPES
Prof. ANITA LOPES
Cada elemento do esquema será explicado de maneira bem simples, mas nada impede que você se aprofunde sobre o assunto que, geralmente, é ministrado na disciplina de Organização de Computadores.
MODELO DE VON NEUMANN 
Prof. ANITA LOPES
Prof. ANITA LOPES
 Dispositivos de Entrada / Saída
 
 dispositivos de entrada - são dispositivos que captam dados, convertendo-os em sinais elétricos para que possam ser armazenados na Memória Principal.
 
 Exemplos: teclado, mouse, unidades de disco, scanner, unidade de DVD, pen drive, modem, etc.
 
 dispositivos de saída - são dispositivos que convertem sinais elétricos para formas que possam ser entendidas pelo usuário, exibindo-os, quando for o caso, sob a forma de textos, imagens ou som. 
 Exemplos: impressora, monitor, unidades de disco, unidade de DVD, plotter, pen drive, modem, etc.
 Sendo assim, estarão associados a esses dispositivos comandos que os manipulem.
Prof. ANITA LOPES
Prof. ANITA LOPES
CPU 
Central Processing Unit(Unidade Central de Processamneto)
Formada pela Unidade de Controle, UAL e Registradores.
  Unidade de Controle
Gerencia as instruções de controle de fluxo de dados entre todos os componentes, 
Responsável pela busca e decodificação das instruções,
Responsável por gerar sinais que possibilitam a execução da instrução.
 
 ULA (Unidade Aritmética e Lógica)
Responsável por qualquer operação aritmética, lógica ou de deslocamentos.
cc(condition code) é sinalizado que a ULA opera dados.
 
 Registradores
São áreas especiais de memória que podem, ou não, serem manipulados pelo programador. Geralmente, de alta velocidade para aumentar o fluxo entre a MP e os demais componentes.
Prof. ANITA LOPES
Prof. ANITA LOPES
 
 Sistemas de Barramentos
 
 Todos os componentes, CPU, Memória Principal e os dispositivos de E/S são interligados através de três barramentos: Dados/ Endereço/ Controle.
 
Memória Principal
Main memory, Main storage.
É um dispositivo capaz de armazenar dados/informação e programa que está associado à CPU.
E endereçável.
Memória de acesso aleatório e volátil . 
 Sendo assim, sem considerar o programa que se encontra armazenado na Memória Principal temos conceitos importantes que estudaremos nessas cinco primeiras aulas.
Prof. ANITA LOPES
Prof. ANITA LOPES
Armazenamento
Prof. ANITA LOPES
Prof. ANITA LOPES
Prof. ANITA LOPES
Prof. ANITA LOPES
Prof. ANITA LOPES
Prof. ANITA LOPES
Prof. ANITA LOPES
Prof. ANITA LOPES
Linguagens para representar um Algoritmo
Pseudolinguagem
Prof. ANITA LOPES
Prof. ANITA LOPES
Linguagens para representar um Algoritmo
Linguagem Gráfica - Fluxograma
Prof. ANITA LOPES
Prof. ANITA LOPES
Ambiente: 
WIN 7 32 BITS
http://sourceforge.net/projects/dev-cpp/files/Binaries/Dev-C%2B%2B%204.9.9.2/devcpp-4.9.9.2_setup.exe/download?use_mirror=ufpr
WIN 8
http://www.windows8downloads.com/win8-dev-c--wdoxnrth/
WIN 7 64 BITS
Dev-Cpp 5.4.2 TDM-GCC x64 4.7.1 (43.6 MB )
http://sourceforge.net/projects/orwelldevcpp/files/Setup%20Releases
l
Prof. ANITA LOPES
Prof. ANITA LOPES
iostream
cstring
cmath
cctype
iomanip
cstdlib
...
As Bibliotecas
Prof. ANITA LOPES
Prof. ANITA LOPES
 #include <iostream> #include “anita.h”
Como incluir uma biblioteca no programa?
Prof. ANITA LOPES
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
int main()
{
 char sexo; 
 int idade;
 std::cout<<"\nQual sexo(f/m)? ";
 std::cin>>sexo;
 std::cout<<"\nIdade: "; std::cin>>idade;
 std::cout<<"\nVoce tem "<<idade<<" anos ";
 std::cout<<" e seu sexo eh: "<<sexo<<std::endl;
 system("pause");
}
Alguns novos compiladores não carregam mais, automaticamente, a função system() que permite executar comandos do MS-DOS. Sendo assim, por precaução, sempre inclua a biblioteca cstdlib.
Prof. ANITA LOPES
Prof. ANITA LOPES
Como Facilitar o Uso dos Recursos de E/S da Biblioteca iostream?
Prof. ANITA LOPES
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 char sexo; 
 int idade;
 cout<<"\nQual sexo(f/m)? ";
 cin>>sexo;
 cout<<"\nIdade: "; cin>>idade;
 cout<<"\nVoce tem "<<idade<<" anos ";
 cout<<" e seu sexo eh: "<<sexo<<endl;
 system( "pause" );
}
Prof. ANITA LOPES
Prof. ANITA LOPES
Estrutura Básica - para começar
Prof. ANITA LOPES
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
using namespace std;
intmain()
{
<declaração_de_variáveis de variáveis locais>
<corpo_do_programa>
system("pause");
}
C++
Prof. ANITA LOPES
Prof. ANITA LOPES
UAL
C++
int/longlongint
float
double
char /vetorde char
bool
stringdabibliotecastring
Exemplos:
int<identificador>;
float<identificador>;
Prof. ANITA LOPES
Prof. ANITA LOPES
UAL
C++
<identificador>
formado por letras não acentuadas, algarismos e caractere e underscore _
O 1oé, normalmente, uma letra, mas pode ser o underscore
Exemplo:
floatmediaAluno;
ou
floatmedia_Aluno;
Prof. ANITA LOPES
Prof. ANITA LOPES
UAL
C++
//comentário de uma linha
/*
comentário com mais de uma linha
*/ 
Comando de Saída
cout<<<variável>;
cout<<<constantes>;
cout<<<operações>;
cout<<variável<<”<constantecaracter>”<< ...;
Prof. ANITA LOPES
Prof. ANITA LOPES
UAL
C++
Caracteres de controle usados com cout:
"\n"alimenta linha( teclaenter)
"\t"tabula (1/ 9 / 17/25 /33/41/49/ 57/ 65/ 73 ) (teclatab)
"\\"exibe\
"\" "exibe"
Prof. ANITA LOPES
Prof. ANITA LOPES
C++
Comando de Atribuição
<identificador>=expressão;
Exemplo:
media = ( a + b ) / 2;
Prof. ANITA LOPES
Prof. ANITA LOPES
C++
Comandos de Entrada
1)cin>><variável>;
cin>><vvetoar1>>><var2>;
2)cin.getline(vetorChar, tamanho);
3)getline(cin,tipoString);
Prof. ANITA LOPES
Prof. ANITA LOPES
compila e executa
O Ambiente
Prof. ANITA LOPES
Prof. ANITA LOPES
O Ambiente
Prof. ANITA LOPES
Prof. ANITA LOPES
O Ambiente
compila e executa
Prof. ANITA LOPES
Prof. ANITA LOPES
O que foi isso? Não deu erro. Compilou. Piscou e nem deu tempo de ver!
O Ambiente
Prof. ANITA LOPES
Prof. ANITA LOPES
O que foi isso? Não deu erro. Compilou. Piscou e nem deu tempo de ver!
Faltou colocar system("pause"); 
O Ambiente
Prof. ANITA LOPES
Prof. ANITA LOPES
O Ambiente
Prof. ANITA LOPES
Prof. ANITA LOPES
O Ambiente
Prof. ANITA LOPES
Prof. ANITA LOPES
Vamos Praticar
Prof. ANITA LOPES
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 float sal1, sal2, sal3, sal4, media;
 cout<<"Digite quatro salarios\n";
 cin>>sal1>>sal2>>sal3>>sal4;
 media = (sal1 + sal2 + sal3 + sal4)/4; 
 cout<<"\nMedia: "<< media<< "\n";
 system("pause");
}
Construa um programa que deixe entrar com quatro salários.
Calcule e exiba a média dos salários.
Prof. ANITA LOPES
Prof. ANITA LOPES
system("pause");//Windows
Uma das formas para dar uma pausa.
system("cls"); //Windowssystem("clear");//Linux
Limpar a tela.
system("color--"); //Windows
Onde cada–é um código em hexadecimal. Sendo o primeiro a cor do fundo e o segundo, a cor da fonte. Veja próxima tela.
Biblioteca conio2.h
Disponível emhttp://anitalopes.com/Conio-Linux.pdf
Senha: leicam2010
Melhorando a Saída
Prof. ANITA LOPES
Prof. ANITA LOPES
system("color f1"); system("color 1E");
system("color gg");
Colorindo com color
Prof. ANITA LOPES
Prof. ANITA LOPES
system("pause");//Windows
Uma das formas para dar uma pausa.
system("cls"); //Windowssystem("clear");//Linux
Limpar a tela.
system("color--"); //Windows
Onde cada–é um código em hexadecimal. Sendo o primeiro a cor do fundo e o segundo, a cor da fonte. Veja próxima tela.
Biblioteca conio2.hDisponível emhttp://anitalopes.com/Conio-Linux.pdf
Senha: leicam2010
Melhorando a Saída
Prof. ANITA LOPES
Prof. ANITA LOPES
Exemplo com Funções
Prof. ANITA LOPES
Prof. ANITA LOPES
Exemplo com Funções
Essa versão não precisa da biblioteca cstdlib, mas a sua pode precisar. 
Prof. ANITA LOPES
Prof. ANITA LOPES
Exercícios
Prof. ANITA LOPES
Prof. ANITA LOPES
R: Observar se escrevemos, corretamente, iostream.
2) Se quando tentarmos compilar um programa surgir uma mensagem de erro, sinalizando que cout não foi declarado, qual a primeira providência?
R: A diretiva include seguida do nome na biblioteca entre o sinal de < e o de >. Podem ser aspas também em alguns casos.
1) Para incluir uma biblioteca em nosso código, o que usamos?
Prof. ANITA LOPES
Prof. ANITA LOPES
 3) Construa um programa que deixe entrar com o valor a ser pago e o percentual de juros.
 Calcular e exibir o valor a ser pago com os juros já incluídos. C++.
Prof. ANITA LOPES
Prof. ANITA LOPES
 
FIM 2013
Prof. ANITA LOPES
Prof. ANITA LOPES
A linguagem C++ foi criada no final da década de 70 por Bjarne Stroustrup. Tem uma grande compatibilidade com a linguagem C, estruturada, mas incorpora conceitos de classe.
Usaremos a parte estruturada dela.
IDE’s possíveis: DEV-C++/ Visual Studio, Code Blocks, entre outros
A LINGUAGEM ESCOLHIDA
Prof. ANITA LOPES
Prof. ANITA LOPES
1) int - armazena uma número inteiro no intervalo: -2147483648 até 2147483647;
2) char - armazena um caracter;
3) float - armazena um número real com pouca precisão; 
4) double - armazena um número real com precisão maior do que o que o tipo float;
5) void - tipo vazio.
long long int(long long) - armazena um inteiro bem grande: 8999999999999999999
bool - armazenará somente um dos valores: false ou true / 0 ou qualquer 
 É um valor fornecido pelo usuário, gerado pelo programa, ou lido de um arquivo
 armazenado na Memória Principal.
Existem os tipos primitivos(iremos estudar nessa aula) e os compostos.
Os tipos compostos são formados a partir dos tipos primitivos, agrupando variáveis e facilitando a sua manipulação, definidos usando struct.
DADO
TIPOS DADOS
Prof. ANITA LOPES
Prof. ANITA LOPES
Como o tipo char só armazena um caractere, precisaremos de um conjunto de char para conseguirmos armazenar palavras ou frases. Somente estudaremos o conceito de vetor na última aula.
string - faz parte da biblioteca string.
Exemplos: char sexo= 'F'; string nome= "JOAO";
Podemos conceituar variável como sendo um endereço, ou mais de um, na Memória Principal que armazena dados/informações e cujo valor poderá ser alterado durante a execução do programa.
A esse endereço será associado um nome. Para nomear a variável, existem regras determinadas pela linguagem C++.
ATENÇÃO para a diferença entre ' ' e " " 
TIPOS DE DADOS - continuação 
VARIÁVEL
Prof. ANITA LOPES
Prof. ANITA LOPES
Letras maiúsculas e minúsculas do alfabeto Inglês(diferenciando maiúsculas de minúsculas - Case sensitive), dígitos de 0 a 9 e o caractere underscore poderão ser usados.
O primeiro caractere NÃO pode ser dígito.
Nenhuma palavra reservada deverá ser usada para nome de variável.
Sugestões
Embora o caractere underscore possa ser o primeiro, não é aconselhável. Procure usá-lo nos nomes compostos.
Você também pode adotar a “convenção” de usar letra maiúscula para a primeira letra de cada palavra, a partir da segunda, e não usar underscore. Exemplo: notaDaProva
Procure dar nomes significativos, evitando muitos comentários no código.
REGRAS PARA NOMEAR VARIÁVEIS
Prof. ANITA LOPES
Prof. ANITA LOPES
Comentários poderão ser feitos em seu código para esclarecimentos ou identificações de trechos.
Será possível comentários de uma linha // ou um bloco de linhas /* */
// Nomes válidos: nome, Nota, p1, p2, mediaDaTurma, media_da_turma 
/* Nomes inválidos: 
 preço, 2p, media aluno, n#2
*/
COMENTÁRIOS
Prof. ANITA LOPES
Prof. ANITA LOPES
TIPOS
Será igual ao tipo do dado que receberá: int, long long int, float double, char, string, bool.
Vamos praticar!
DECLARANDO VARIÁVEL
tipo nomeVariavel;
tipo nVar1, nVar2;
Prof. ANITA LOPES
Prof. ANITA LOPES
Matrícula e CR de um aluno
Nome e sexo de uma pessoa
Idade de duas pessoas
Salário de uma pessoa
int idade1, idade2;
float salario;
 string nome; char sexo;
long long int matric; float CR;
DECLARE VARIÁVEIS PARA:
Prof. ANITA LOPES
Prof. ANITA LOPES
A inicialização envolve o conceito de atribuição de um valor à variável.
Uma variável poderá receber valor através de um comando de atribuição ou da entrada de dados via teclado, por enquanto. 
Consiste em se atribuir um valor a uma variável. O sinal de = sinaliza isso.
Faz parte do grupo das Estruturas Sequenciais.
 valor pode ser suma constante numérica, uma expressão ou outra variável
nomeVariavel = valor ;
DECLARE e INICIALIZE VARIÁVEIS PARA:
COMANDO DE ATRIBUIÇÃO =
Prof. ANITA LOPES
Prof. ANITA LOPES
Matrícula e CR de um aluno
Nome e sexo de uma pessoa
Idade de duas pessoas
Salário de uma pessoa
int idade1 = 18, idade2 = 27;
float salario = 8320.87;
string nome = "JOAO RENATO"; char sexo = 'M'; 
long long int matric = 2016998729234012346; 
float CR = 9.5;
DECLARE e INICIALIZE VARIÁVEIS PARA:
Prof. ANITA LOPES
Prof. ANITA LOPES
Operador
Significado
Exemplo
+
adição
13+2841
-
subtração
28–1315
*
multiplicação
28*13364
/
divisão
8/51
/
divisão
8/5.1.6
%
resto
8%53
#include <iostream>
#include <cstdlib>
using namespace std;
int main (int argc, char *argv[])
{
 int num1= 8, num2= -12, soma, prod;
 soma=num1+num2;
 prod = num1 * num2; 
 system("pause");
 return 0;
}
OPERADORES ARITMÉTICOS 
Prof. ANITA LOPES
SAÍDA 
O “comando” cout possibilita que seja exibido no display um número, o resultado de uma operação, uma cadeia de caracteres(string), o conteúdo de uma variável e a combinação de alguns desses.
O operador que precede qualquer elemento inserido na linha se chama operador de inserção.
cout <<... ;
Prof. ANITA LOPES
Prof. ANITA LOPES
Os caracteres \t e \n e o manipulador endl
Observe o exemplo abaixo
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{ 
 cout<< "\nUsando \\t para tabular\n"; 
 cout<< "\n123456789012345678901234567890"<< endl; 
 cout<< "\nUsando\tpara\ttabular\n"; 
 system("pause"); //no Windows
}
\t
\n
Prof. ANITA LOPES
Prof. ANITA LOPES
Os caracteres \t e \n e o manipulador endl
Observe o exemplo abaixo
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{ 
 cout<< "\nUsando \\t para tabular\n"; 
 cout<< "\n123456789012345678901234567890"<< endl; 
 cout<< "\nUsando\tpara\ttabular\n"; 
 system("pause"); //no Windows
}
\t caractere que desloca o cursor horizontalmente pelas seguintes colunas: 1 9 17 25 33 41 49 57 65 73 ...
\n caractere que alimenta linha. Equivale à tecla ENTER,
 Ambos ficam entre aspas e poderemos usar mais de um seguidos. Exemplo: cout << "Testes\n\n\tViu?\n ";
endl manipulador que alimenta linha  descarrega o buffer de saída
  Não fica entre aspas.
Prof. ANITA LOPES
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{ 
 cout<< "\nUsando \\t para tabular\n"; 
 cout<< "\n123456789012345678901234567890"<< endl; 
 cout<< "\nUsando\tpara\ttabular\n"; 
 system("pause"); //no Windows
}
Observe o exemplo abaixo
Os caracteres \t e \n e o manipulador endl
\\ caractere que exibe \
\" caractere que exibe "
Prof. ANITA LOPES
Prof. ANITA LOPES
COPIANDO A SAÍDA
Pressione a tecla ENTER. 
Depois, pressione as teclas CTRL e C ao mesmo tempo.
Usando \t para tabular
123456789012345678901234567890
Usando para tabular
Pressione qualquer tecla para continuar.. .
Cole no bloco de notas, por exemplo 
Prof. ANITA LOPES
Prof. ANITA LOPES
EXEMPLO com a função abs()
Positivo: 23
Negativo: 27
Pressione qualquer tecla para continuar. . .
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{ 
 cout<<endl<<"Positivo: "<< abs(23); 
 cout<<"\nNegativo: "<< abs(-27); 
 cout<<endl<<endl;
 system("pause"); //no Windows
}
A função abs(...) retorna o valor absoluto do número e equivale ao módulo da Matemática | 23 | | -27 |.
Pertence à biblioteca cstdlib.
Experimente usar: system("pause>NULL"); 
Prof. ANITA LOPES
Prof. ANITA LOPES
EXEMPLO com a função pow(,)
Potenciacao: 512
Potenciacao: 125
Pressione qualquer tecla para continuar .. . .
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
int main()
{ 
 int expo=3; float base=8;
 cout<< "\nPotenciacao: " << pow(base, expo)<<endl;
 cout<< "\nPotenciacao: " << pow(5, 3)<<endl;
 system("pause"); //no Windows
}
A função pow(..., ....) faz parte da biblioteca cmath e equivale à Potenciação baseexpoente.
Prof. ANITA LOPES
Prof. ANITA LOPES
EXEMPLO com casting
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{ 
 int numerador=20, denominador=3;
 cout<<numerador/denominador<<"\t"<<(float)numerador/denominador<<endl;
 system("pause"); //no Windows
}
Quanto usamos um tipo de dados entre parênteses (float)numerador/denominador antes de uma operação implica que desejamos que o resultado seja dado como se os operandos fossem daquele tipo. A isso chamamos de operação de casting.
20 cabeças de vacas leiteiras e três filhos
20 milhões e três filhos
6 6.66667
Pressione qualquer tecla para continuar.. . .
Prof. ANITA LOPES
Prof. ANITA LOPES
ENTRADA DE DADOS 
O “comando” acima libera o teclado para que o usuário possa digitar valores numéricos, um caractere ou um conjunto de caracteres desde que não tenha espaço. 
O operador que precede qualquer elemento inserido na linha com o “comando” cin se chama operador de inserção. Observe.
:
cin >>... ;
Prof. ANITA LOPES
Prof. ANITA LOPES
ENTRADA DE DADOS 
Os “comandos” getline(,); e cin.getline(,); possibilitam que o usuário digite um conjunto de caracteres inclusive com espaços.
 “O problema : cin >> deixa o caractere de nova linha (\n) no iostream . Se getline é utilizado depois de cin >> ,
 o getline vê esse caractere de nova linha como os espaços em branco , pensa que está terminado e para a
 leitura ainda mais.” Fonte: http://mathbits.com/MathBits/CompSci/APstrings/APgetline.htm
Resolvendo o Problema: Na alternância de cin com getline() ou cin.getline(), limparemos o buffer com cin.ignore() como mostrado acima.
getline(cin, nomeVariavel); //tipo string
cin.getline(nomeVariavel, tamanho); //tipo vetor de char 
cin.ignore ( 100 , '\n' ) ; // Pula até 100 caracteres e para quando  encontra \n 
Prof. ANITA LOPES
Prof. ANITA LOPES
EXEMPLO com a função sqrt()
Digite numero: 2.25
Raiz Quadrada de 2.25 = 1.5
Pressione qualquer tecla para continuar. . .
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
int main()
{ 
 float numero; 
 cout<<"\nDigite numero: "; 
 cin>>numero;
 cout<<endl<<"Raiz Quadrada de “<< numero<< " = "<< sqrt(numero);
 cout<< "\n\n";
 system("pause"); //no Windows
}
A função sqrt(..., ....) - square root faz parte da biblioteca cmath e equivale à Raiz Quadrada.
Prof. ANITA LOPES
Prof. ANITA LOPES
Exemplo 1 - cin
#include <iostream>
#include <cstdlib>
#include <locale.h>
using namespace std;
int main()
{ 
 setlocale(LC_ALL,""); 
 int num, dobro; 
 cout<< "\nDigite número: "; 
 cin>>num; 
 dobro = num * 2; 
 cout<< "\nDobro de "<< num<<" é "<< dobro; 
 cout<<"\n\n"; 
 system("pause"); //no Windows
}
Digite número: 27
Dobro de 27 é 54
Pressione qualquer tecla para continuar. . .
UMA CURIOSIDADE
Letras Acentuadas
dobro.cpp
Prof. ANITA LOPES
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{ 
 int segundos,hora, min, seg; 
 cout<<"\nDigite total de segundos: "; 
 cin>>segundos;
 hora = segundos / 3600;
 min = (segundos % 3600) / 60;
 seg = segundos % 60; 
 cout<< "\n"<< hora<< "h: "<< min<<"m: "<< seg<<"s"; 
 cout<< "\n\n";
 system("pause"); //no Windows
}
Digite total de segundos: 3671
1h: 1m: 11s
Pressione qualquer tecla para continuar. . .
relogio.cpp
Exemplo 2 - cin
Prof. ANITA LOPES
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{ 
 int valor, nota100,nota50, nota20, nota10; 
 cout<<"\nDigite valor do saque: "; cin>> valor;
 nota100 = valor / 100; // 1430 / 100 = 14
 nota50 = (valor % 100) / 50; // 30 / 50 = 0
 nota20 = (valor % 100 % 50) / 20; // 30 / 10 = 1
 nota10 = (valor % 100 % 50 %20) / 10; // 10/ 10 = 1
 cout<<"\nR$ 100,00: "<< nota100; 
 cout<<"\nR$ 50,00: "<<nota50; 
 cout<<"\nR$ 20,00: "<< nota20; 
 cout<<"\nR$ 10,00: "<<nota10; 
 cout<< "\n\n";
 system("pause"); //no Windows
}
Digite valor do saque: 1430
R$ 100,00: 14
R$ 50,00: 0
R$ 20,00: 1
R$ 10,00: 1
Pressione qualquer tecla para continuar. . .
caixa.cpp
Exemplo 3 - cin
Prof. ANITA LOPES
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{ 
 int data, dia, mes, ano;
 cout << "\nData no formato DDMMAAAA: ";
 cin >> data;
 dia = data / 1000000;
 ano = data % 10000;
 mes = (data / 10000) % 100;
 cout<< endl <<dia <<"/ " << mes <<"/ " << ano << endl;
 system("pause"); //no Windows
}
Data no formato DDMMAAAA: 23081974
23/ 8/ 1974
Pressione qualquer tecla para continuar. . .
data.cpp
Exemplo 4 - cin
Prof. ANITA LOPES
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
#include <iomanip>
using namespace std;
int main()
{ 
 int data, dia, mes, ano;
 cout << "\nData no formato DDMMAAAA: ";
 cin >> data;
 dia = data / 1000000;
 ano = data % 10000;
 cout <<setfill('0');
 mes = (data / 10000) % 100;
 cout<< endl <<setw(2)<<dia <<"/ “<< setw(2) << mes << "/ " << ano << endl;
 system("pause"); //no Windows
}
Data no formato DDMMAAAA: 23081974
23/ 08/ 1974
Pressione qualquer tecla para continuar. . .
data.cpp
 UMA CURIOSIDADE
Preenchendo com 0 quando não tiver dois algarismos
setw(int n)
 define a largura do campo(número de colunas)
setfill(char c)
 preenche as colunas não usadas com o caractere c
Exemplo 4 - cin
Prof. ANITA LOPES
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{ 
 float salario, reajuste, novoSalario; 
 cout<<"\nDigite salario: "; 
 cin>>salario;
 cout<<"\nDigite percentual de reajuste: "; 
 cin>>reajuste; 
 novoSalario=salario * reajuste/100 + salario; 
 cout<< "\nNovo Salario: "<<novoSalario<< "\n";
 system("pause"); //no Windows
}
Digite salario: 1000.10
Digite percentual de reajuste: 3.23
Novo Salario: 1032.4
Pressione qualquer tecla para continuar. . .
reajusteSalarial.cpp
Exemplo 5 - cin
Prof. ANITA LOPES
Prof. ANITA LOPES
Exemplo 5 - cin
#include <iostream>
#include <cstdlib>
#include <iomanip>
using namespace std;
int main()
{ 
 float salario, reajuste, novoSalario; 
 cout<<"\nDigite salario: "; 
 cin>>salario;
 cout<<"\nDigite percentual de reajuste: "; 
 cin>>reajuste; 
 novoSalario=salario * reajuste/100 + salario; 
 cout<<fixed<<setprecision(2);
 cout<< "\nNovo Salario: "<<novoSalario<< "\n";
 system("pause"); //no Windows
}
Digite salario: 1000.10
Digite percentual de reajuste: 3.23
Novo Salario: 1032.40
Pressione qualquer tecla para continuar. . .
reajusteSalarial.cpp
 UMA CURIOSIDADE
Determinando o número de casas decimais
fixed fixa o ponto flutuante(notação normal)
setprecision(int n) define o númerode casas decimais
Prof. ANITA LOPES
Prof. ANITA LOPES
Exemplo 6 - cin
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{ 
 char sexo; int idade; string nome;
 cout<<"\nNome: "; cin>>nome; 
 cout<<"\nIdade: "; cin>>idade;
 cout<<"\nSexo: "; cin>>sexo;
 cout << endl <<nome <<" tem " << idade <<" anos e seu sexo eh " << sexo;
 cout << endl<<endl; 
 system("pause"); //no Windows
} 
Nome: Tereza
Idade: 54
Sexo: F
Tereza tem 54 anos e seu sexo eh F
Pressione qualquer tecla para continuar. . .
nomeIdadeSexo.cpp
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{ 
 char sexo; int idade; string nome;
 cout<<"\nNome: "; cin>>nome; 
 cout<<"\nIdade: "; cin>>idade;
 cout<<"\nSexo: "; cin>>sexo;
 cout << endl <<nome <<" tem " << idade <<" anos e seu sexo eh " << sexo;
 cout << endl<<endl; 
 system("pause"); //no Windows
} 
nomeIdadeSexo.cpp
Nome: Maria Tereza
Idade:
Sexo:
Maria tem 0 anos e seu sexo eh v
Pressione qualquer tecla para continuar. . .
UMA CERTEZA
 O “comando” cin não serve para
 receber nomes com espaços.
PROBLEMA
Exemplo 6 - cin
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{ 
 char sexo; int idade; string nome;
 cout<<"\nNome: "; getline(cin,nome); 
 cout<<"\nIdade: "; cin>>idade;
 cout<<"\nSexo: "; cin>>sexo;
 cout << endl <<nome <<" tem " << idade <<" anos e seu sexo eh " << sexo;
 cout << endl<<endl; 
 system("pause"); //no Windows
} 
nomeIdadeSexo.cpp
Nome: Maria Tereza
Idade: 54
Sexo: F
Maria Tereza tem 54 anos e seu sexo eh F
Pressione qualquer tecla para continuar. . .
UMA CERTEZA
 getline( cin, var ) ; precisa ser usado.
PROBLEMA RESOLVIDO!
Exemplo 6 - cin
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{ 
 char sexo; int idade; string nome;
 cout<<"\nIdade: "; cin>>idade;
 cout<<"\nSexo: "; cin>>sexo;
 cout<<"\nNome: "; getline(cin,nome);
 cout << endl <<nome <<" tem " << idade <<" anos e seu sexo eh " << sexo;
 cout << endl<<endl; 
 system("pause"); //no Windows
} 
nomeIdadeSexo.cpp
Idade: 54
Sexo: F
Nome:
 tem 54 anos e seu sexo eh F
Pressione qualquer tecla para continuar. . .
SERÁ?
E se alterarmos a ordem das perguntas?
PROBLEMA
cin >> deixa o caractere de nova linha (\n) no iostream.
Se getline é utilizado depois de cin >> ... Irá captar o caractere de nova linha.
Exemplo 6 - cin
Prof. ANITA LOPES
 UMA CERTEZA
cin.ignore() tem que estar presente
nomeIdadeSexo.cpp
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{ 
 char sexo; int idade; string nome;
 cout<<"\nIdade: "; cin>>idade;
 cout<<"\nSexo: "; cin>>sexo;
 cin.ignore ( 100 , '\n' ) ;
 cout<<"\nNome: "; getline(cin,nome);
 cout << endl <<nome <<" tem " << idade <<" anos e seu sexo eh " << sexo;
 cout << endl<<endl; 
 system("pause"); //no Windows
} 
Exemplo 6 - cin
Idade: 54
Sexo: F
Nome: MARIA TEREZA
MARIA TEREZA tem 54 anos e seu sexo eh F
Pressione qualquer tecla para continuar. . .
PROBLEMA RESOLVIDO!
Prof. ANITA LOPES
base1ComBiblioteca.cpp
OBS: Foi tão rápido que não viu?
#include <iostream>
using namespace std;
int main (int argc, char *argv[])
{
 int num1, num2, soma, prod;
 num1= 8;
 num2= -12;
 soma=num1+num2;
 if(soma< 0) soma= soma *-1;
 prod=soma * 5;
 cout << prod <<endl;
 return 0;
}
UMA DICA – Use sempre a função system("pause"); ou uma função que a substitua
Execução pelo ícone do executável
Prof. ANITA LOPES
Experimente: system("pause>NULL");
base1ComBiblioteca.cpp
#include <iostream>
using namespace std;
int main (int argc, char *argv[])
{
 int num1, num2, soma, prod;
 num1= 8;
 num2= -12;
 soma=num1+num2;
 if(soma< 0) soma= soma *-1;
 prod=soma * 5;
 cout << prod <<endl;
 system("pause");
 return 0;
}
UMA DICA – Use sempre a função system("pause"); ou uma função que a substitua
Prof. ANITA LOPES
Espero que goste
Prof. ANITA LOPES
Prof. ANITA LOPES

Continue navegando