Baixe o app para aproveitar ainda mais
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
Compartilhar