Você está na página 1de 24

(Sere)Curso de Jogos CDJ Apostila I

Conceitos de C/C++ I

CasaDosJogos http://www.casadosjogos.com.br 2007

Introduo
Histrico e Apresentao da Linguagem:
Linguagem C A linguagem C foi desenvolvida na dcada de 70, por Dennis Ritchie e Ken Thompson, baseando-se na linguagem B, e implementado para sistemas operacionais UNIX. Tanto C quanto B derivam da primitiva linguagem BCPL, onde B a primeira letra de BCPL, e C, a segunda. C influenciou vrias linguagens como D e Euphoria. C uma linguagem de programao estruturada, de mdio nvel, e tem como ponto forte sua eficincia, leveza, poder e velocidade com cdigos bem legveis e de fcil interpretao. Uma de suas maiores vantagens sua aproximao com a linguagem de leitura de mquina, ao mesmo tempo que mantm grandiosa abstrao de dados complexos ao programador. Linguagem C++ De forma bastante grosseira, podemos ver o C++ como uma atualizao ou extenso da linguagem C, mas bem mais que isso. Basicamente, definida por Bjarne Stroustrup como C with classes, ou C com classes. Esses conceitos de classe veremos futuramente no prximo curso. Foi desenvolvida em 1983, trazendo consigo principalmente vantagens ligadas orientao a objetos, reutilizao e aproveitamento de cdigo, e muita facilidade na hora de organizar e montar seu cdigo fonte. Essa linguagem influenciou vrias outras, como C#, Java, D, PHP etc.

Compiladores:
Um compilador um tipo de aplicativo que cria uma camada de abstrao entre o programador e o computador. Em outras palavras, o compilador traduz tudo que escrito por um usurio de um jeito que a mquina entenda, e de forma que interprete essa informao. Em todo o universo computacional, existem vrias linguagens de programao categorizadas da seguinte forma: Alto Nvel (C++, Java) Mdio Nvel (C, Pascal) Baixo Nvel (Assembly) Quanto mais baixo o nvel, mais prximo estamos da linguagem de montagem da mquina. Um exemplo de linguagens de baixo nvel que conhecemos a linguagem de bits (0 ou 1) e Assembly (que trabalha diretamente com operaes de registros e endereos de memria). Quando falamos de mdio e alto nvel, falamos de linguagens que cada vez mais encobrem detalhes na hora de implementar, e quanto maior o nvel, menos detalhes especficos ligados a hardware teremos que nos preocupar. Por exemplo: se estivermos mexendo com C++, no precisaremos nos preocupar com qual endereo de memria ou parte fsica do disco teremos que guardar a informao. O compilador e a linguagem de programao se encarregar disso automaticamente. O compilador cria a ponte de comunicao entre uma linguagem humanamente simples e prtica ao ser humano trabalhar, sem perder todo o excesso de informao e detalhes que a mquina precisa. Um compilador trabalha passo-a-passo da seguinte forma: O compilador l linha aps linha (levando em conta o fluxo de cdigo), verificando se toda a sintaxe foi descrita corretamente (se estiver errada, retornar uma mensagem de erro detalhada ao usurio); Traduz o cdigo-fonte de C++ (por exemplo) pra linguagem de mquina; Se tudo for interpretado corretamente, ele ir criar um arquivo com extenso .OBJ, com todas as linhas traduzidas, e um arquivo .EXE, que executado pelo sistema operacional;

Outro aspecto importante so as evolues na rea de compiladores, que cada dia mais deixam de ser apenas interpretadores de comandos, e se tornam verdadeiros ambientes de desenvolvimento, trazendo consigo vrias opes de compilao, depurao, bibliotecas prontas etc. Um exemplo de ambientes de desenvolvimento nesse estilo so aplicativos como o Eclipse e o Microsoft Visual Studio.

C ou C++:
Muitas pessoas confundem a relao entre C e C++. Trata-se de duas linguagens diferentes. O C uma linguagem de programao estruturada, de mdio nvel, sendo bastante semelhante linguagem Pascal (apesar de ter uma sintaxe bem diferente). O C++ reaproveita alguns conceitos e sintaxes do C, ao mesmo tempo em que acrescenta novos conceitos interessantes de bibliotecas e programao voltada orientao a objetos. No o propsito desse curso detalhar as diferenas entre orientao a objetos e programao estruturada, por isso vamos a eles de forma sucinta: Programao estruturada: Blocos de texto interpretados logicamente da primeira a ltima linha, sem modificaes no fluxo de leitura. Orientao a objetos: Vemos o conceito de classes e objetos. Ao invs de criarmos blocos de programas nicos e lidos da primeira a ltima linha, na orientao a objetos podemos interligar cada bloco de cdigo em uma e mais classes, que podem ser lidas e executada por outras simultaneamente, da mesma forma em que o fluxo de leitura completamente varivel ao programador, aumentando o reaproveitamento e organizao de cdigo-fonte.

Usando o compilador
Criando projeto no Microsoft C++ 2005 Visual Studio Express:
1) Baixe-o em: http://msdn.microsoft.com/vstudio/express/visualc/default.aspx/, instale e execute o Visual Studio. 2) Quando o programa abrir, na guia principal do programa ao alto, clique em File 3) Depois clique em New e depois Project, ou simplesmente aperte Ctrl+Shift+N Se abriu uma janela escrita "New Project", ento em "Project Files" escolha "Win32" e em "Templates", clique em "Win32 Console Application". Agora embaixo em "Name" d qualquer nome ao projeto (por exemplo, chame-o de teste) e aperte OK.

Primeiro passo:

Segundo passo:

Terceiro passo: Quarto passo:

Em "Win 32 Application Wizard" aperte "Next >". Em "Application Type" deixe "Console Application" como est, e abaixo, em "Additional options" marque a opo "Empty Project". Agora aperte "Finish". 1) aqui que mais as pessoas confundem. Voc sempre deve criar um projeto (como fizemos at o quarto passo) e em seguida adicionar os cdigos fonte e coisas do gnero que ficam vinculados ao projeto criado, ok? Adicionaremos uma pgina de cdigo fonte pra gerarmos nosso primeiro cdigo. 2) Agora na guia do alto, procure "Project" e depois "Add New Item". Ou apenas aperte CTRL+SHIFT+A

Quinto passo:

Sexto passo:

Com certeza em "Visual Studio installed templates" a opo "C++ File (.cpp)" deve estar marcada. S v em "name", d um novo nome como teste1 e aperte Add.

Stimo passo:

Copie esse cdigo como est abaixo, e cole no compilador: #include <iostream> using namespace std; int main() { cout << "Estou pronto pra comear o curso de C++ da CDJ!\n"; return 0; } 1) Agora, na guia "Build" ao alto, clique em "Build Solution", ou simplesmente aperte F7. 2) Na parte inferior da tela, ele vai verificar se seu cdigo est certo ou no e se pode ser executado. Ele deve mostrar embaixo uma mensagem parecida com essa: "------ Build started: Project: teste, Configuration: Debug Win32 -----Compiling... teste1.cpp Linking... Embedding manifest... Build log was saved at "file://d:\Lucas\GameProgramming\\teste\teste\Debug\BuildLog.htm" teste - 0 error(s), 0 warning(s) ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped =========="

Oitavo passo:

Nono passo:

1) Agora, na mesma guia inicial do compilador, no alto, em "Debug" escolha "Start without debugging", ou apenas aperte CTRL + F5. 2)Deve abrir uma janela mostrando a mensagem Estou pronto pra comear o curso de C++ da CDJ! e algo como "Aperte qualquer tecla para continuar.... Se a mensagem aparecer corretamente, o compilador est funcionando com sucesso!.

Criando projeto no Dev-C++ 4.9.9.2:


Primeiro passo:
1) Baixe-o em: http://prdownloads.sourceforge.net/dev-cpp/devcpp4.9.9.2_setup.exe, instale e execute-o 2) Quando o programa abrir, na guia principal do programa ao alto, clique em File 3) Depois clique em New Project 1) Se abriu uma janela escrita "New Project", ento na guia "Basic" escolha "Empty Project". 2) Marque "C++ Project" abaixo. 3) D um nome ao projeto. 3) Aperte OK.

Segundo passo:

Terceiro passo: Quarto Passo:

Em "Create New Project" salve o projeto em alguma pasta de sua escolha.

Aperte CTRL+N ou em File, e quando o compilador perguntar se deseja anexar esse fonte ao projeto atual? diga que sim. Agora basta colar o seguinte cdigo na pgina de cdigo-fonte em branco: #include <iostream> using namespace std; int main() { cout << "Estou pronto pra comear o curso de C++ da CDJ!\n" << endl; system("pause"); return 0; } Agora, na guia principal do programa, v em "Execute" e "Compile". Ou aperte CTRL+F9

Quinto passo:

Sexto passo:

O compilador verificar os erros. Se no houver nenhum, ele permitir escolher vrias opes. Escolhe "Execute" ou aperte CTRL+F10.

Deve abrir uma janela mostrando a mensagem "Estou pronto pra comear o curso de C++ da CDJ!" e algo como "Aperte qualquer tecla para continuar...". Se isso aparecer corretamente, ento o compilador est em perfeito estado para uso!

Stimo passo:

Erros de compilao:
Basicamente, quando terminamos de criar nosso cdigo-fonte, o compilador realiza dois processos at termos o aplicativo final, que so: a compilao e a execuo. Quando compilamos um cdigo-fonte, realizamos um processo de verificao e interpretao de cdigo, at ser possvel que a mquina entenda e possa executar esses comandos. Isso a compilao, e nesse processo que se verifica se o cdigo foi descrito corretamente. Para isso, quando feita a compilao, na barra inferior desse aplicativo, so demonstrados status de verificao e integridade de erros, e o compilador retorna uma mensagem de aviso, se o cdigo apresentar erros (digitao incorreta do programador) ou no. Se ele tiver erros, todo o processo de compilao interrompido, e o compilador especifica qual a causa da falha. No se pode chegar no cdigo-fonte final se houver erros de compilao. Outra informao importante, alm dos avisos de erros, so os warnings. A diferena entre os dois vm do fato de um warning no impossibilitar a execuo de um cdigo-fonte, mas sim que futuramente ele pode causar erros quando o programa j estiver sendo executado (por exemplo, um acesso a endereo de memria no especificado).

Gerando Executvel:
Feita a compilao, se ela foi executada corretamente, torna-se possvel criar uma verso .EXE de seu cdigo. Basta apenas clicar na opo Build de um compilador (no caso do visual Studio, s apertar F7 num cdigo j compilado, lembre-se disso!). No processo de gerao de executvel, o compilador se utiliza de arquivos .OBJ (gerados na compilao), e se baseia em arquivos .CPP (arquivos de cdigo-fonte de C++) para gerar o cdigo .EXE final.

Primeiro programa
Hello World a clssica aplicao que todo programador iniciante cria quando comea a estudar uma linguagem, sendo um tipo de programa bem simples. Trata-se apenas de uma mensagem de texto OL MUNDO! mostrada em tela. Fizemos isso na hora que criamos o projeto, agora vamos analisar o cdigo linha aps linha: #include <iostream> using namespace std; int main() { cout << "Hello World!\n"; return 0; } #include <iostream> uma diretiva (explicaremos depois o que isso significa). A funo #include une o cdigo-fonte de uma biblioteca da linguagem (que no exemplo o arquivo de cabealho iostream.h) com o cdigo atual que est sendo feito. No apenas para esse caso, mas a funo #include pode anexar o seu arquivo-fonte com qualquer outro tipo de arquivo C++, como cabealhos (.h ou .hpp) ou fonte (.c ou .cpp) como veremos mais adiante. Esse cabealho (iostream.h) guarda as informaes referentes entrada e sada de dados em cdigos compilados (dentre vrias funes, esse cabealho permite exibio de mensagens de tela e captao de informaes passadas via teclado). Com essa diretiva, possvel imprimir a mensagem Hello World!. using namespace std; Essa outra diretiva (using). Namespace refere-se a todos os componentes padres (funes, variveis, classes etc) da classe padro de libraries bsicas do C++, o std. Sem ele, teramos que chamar a funo cout (que explicaremos mais adiante) da seguinte forma: std::cout << "test"; cout << "test"; Ao longo de um programa significativamente grande, esse procedimento faz bastante diferena. Outra informao importante tem a ver com o ponto e vrgula no final de cada linha de cdigo. Trata-se de uma forma de voc definir pro compilador que voc j terminou de escrever a parte do cdigo relativa a Ao invs de:

aquela linha (apesar de que nem sempre voc coloca ponto e vrgula, iremos verificar isso com o tempo). { int main()

//insira todo o cdigo do aplicativo aqui return 0; } Aqui estamos definindo a funo principal (main) do programa. Ela sempre a primeira a ser executada obrigatoriamente pelo compilador, e todo o contedo do programa executado nesse bloco de informao, entre as chaves { e }. O int a definio de funo integer (funo de nmeros inteiros). Iremos explicar melhor sobre tipos de dados (inteiros, reais) no prximo captulo. Todos os comandos do seu aplicativo devem estar onde eu coloquei //insira todo o cdigo do aplicativo aqui . Por exemplo, o comando cout que usamos. J o return 0; tem a ver com o conceito de funo. De forma bem resumida, toda funo um pequeno bloco de cdigo fonte que retorna imediatamente um dado, ao final de sua execuo. bvio que dependendo do tipo de funo que seja, pode ser que no retorne nada. Ao executar o Return 0; estamos dizendo ao compilador que a funo finalizou todas as suas tarefas, e que agora deve retornar ao compilador um resultado (ou valor) qualquer. No se preocupe ainda com isso. A princpio, pense nisso como um comando que precisa ser utilizado em blocos da funo int main(), de forma padro. cout << "Hello World!\n"; Esse comando permite a exibio de um texto na tela que esteja entre aspas (no caso, ele mostra Hello World!). Usamos \n no final da palavra como uma instruo que imediatamente salta uma linha. Cout o nome da funo, que executa a tarefa de exibir uma mensagem na tela. Usamos << sempre pra determinar que um comando (no caso o cout) est migrando pra um perifrico de sada (no caso o monitor). E por fim o ; que determina sempre o final de uma linha de cdigo. Outro exemplo de cout: #include <iostream> using namespace std; int main(){ cout << Esse o curso da CDJ, ensinado pelo Sereba!\n; cout << O Sereba sabe tudo de C++!\n; cout << Ou pelo menos ele engana bem... muito bem.; return 0;

No Dev-C++ 4.9.9.2 a mesma idia, mas apenas com a utilizao de mais uma funo: #include <iostream> using namespace std; int main() { cout << "Hello World!\n" << endl; system("pause"); return 0; } system("pause"); Essa instruo apenas executa um pause ao encerramento do aplicativo, pra que o compilador no apenas execute e encerre o programa rpido demais, sem mostrar os resultados ao usurio. No visual studio isso feito automaticamente, e por isso no utilizamos. Tambm acrescentamos um << endl; ao final do cout. Esse comando apenas determina o final da linha do cout, e opcional. Tanto faz utilizlo ou no, mas alguns compiladores podem exigi-lo.

Variveis
Conceito:
So objetos que possuem a funo de armazenar certos valores (como nmeros, textos) que podem ser utilizados e trabalhados ao longo de um cdigo. Por exemplo, pense num jogo, e que precisamos armazenar ao longo da partida informaes vitais como vida (HP) do personagem, pontos de mana (SP), pontos de experincia (EXP), munio da arma, dinheiro armazenado, nome do jogador etc. Tudo isso ficaria armazenado em variveis. Elas so vitais num programa.

Tipos de Variveis:
Existem diversos tipos, mas visando o nosso curso, vamos falar dos 5 exemplos bsicos mais comuns, que so: Int (inteiros): so nmeros inteiros comuns, que no aceitam valores decimais, fraes, nem nada do gnero (exemplo: 1, 45, 87, 914). Uma varivel int pode armazenar do valor -2.147.483.648 a 2.147.483.648. Char (caracteres): Armazena um nico caracter, de um possvel conjunto de smbolos e letras. Podem armazenar at 256 valores de caracteres diferentes. Float (reais): diferente dos inteiros, o float guarda valores numricos ligados ao universo dos nmeros reais (exemplo: 2,41 , 4,17 , 8,9592). Ele pode armazenar de 1,2e-38 a 3,4e38 (e = nmero elevado a) Boolean (lgico): apenas determina valor do tipo true ou false, ou apenas verdadeiro ou falso. Por exemplo, se num jogo temos uma porta que s pode ser aberta com uma chave, podemos usar uma condio booleana que armazena se o jogador est com a chave ou no. Se estiver, true, caso contrrio, false. Double: apenas o valor de float estendido. Se for utilizar uma varivel que precise de mais valores do que o float suporta, use double. Esse armazena de 2,2e-308 a 1,8e308.

Como usar variveis:


Declarando (criando) variveis Basta apenas definir seu tipo (int, char, float, double) junto de um nome qualquer, pra identific-la. Por exemplo: Int var; Nesse exemplo, criamos uma varivel do tipo nmero inteiro, chamada var. No se esquea do ponto e vrgula! Mais exemplos: Int main(){ int pontos; return 0; } int main(){ float raiz; return 0; } Atribuindo valores Vamos supor que ao criar um jogo, temos um personagem com pontos de vida no total de 100 pontos. Faramos o seguinte (se a varivel em questo j tiver sido declarada): pontos_de_vida = 100; Assim estamos definindo que a varivel pontos_de_vida guarda o valor numrico inteiro 100. Vamos supor que, na segunda linha do cdigo, o personagem morre. Assim: pontos_de_vida = 0;

Teramos ento, o seguinte cdigo: int main(){ //declaramos a varivel int pontos_de_vida; //aqui a vida do personagem principal 100 pontos_de_vida = 100; //aqui a vida do personagem principal 0 pontos_de_vida = 0; return 0; } Teste o seguinte cdigo: #include <iostream> using namespace std; int main() { int valor = 20; cout << "Primeiro o valor eh " << valor << "\n"; valor = 10; cout << "Aqui o valor eh " << valor << "\n"; valor = 15; cout << "Agora o valor eh " << valor << "\n"; return 0; }

Repare que declaramos a varivel atribuindo seu valor diretamente (int valor=20). A forma como utilizamos o cout explicaremos em prximas etapas.

Por fim, um exemplo que se utiliza de valores booleanos e de caracteres (bool e char especificamente): #include <iostream> using namespace std; int main() { char caracter = 'c'; bool logico = true; cout << "Temos que o valor de caracter eh: " << caracter << "\n"; cout << "E o valor da variavel logico eh: " << logico << "\n"; caracter = 'z'; logico = false; cout << "Agora o valor de caracter eh: " << caracter << "\n"; cout << "E o valor da variavel logico eh: " << logico << "\n"; return 0; }

Vejam que quando o valor da varivel lgica (bool) impressa, ele retorna ou 0 ou 1. A partir da definio de linguagem por bits, tomamos como verdade que: 0 = false = falso 1 = true = verdadeiro

Operadores Matemticos
Conceito:
Tendo em vista o estudo de variveis numricas, torna-se necessrio estudar operadores que sejam aplicados a esses objetos. Falamos de clculos matemticos como adio, subtrao, diviso etc.

Tipos:
Temos os seguintes tipos e suas formas de representao: Soma: + Subtrao: Diviso: / Multiplicao: * Resto de Diviso Inteira: %

Exemplos:
Veremos um cdigo-fonte que demonstra cada operao: #include <iostream> using namespace std; int main() { int soma = 15 + 15; int subtracao = 200-50; int multiplicacao = 15*5; float divisao = 15.0 /4.0; float resto_inteiro = 5 % 2; cout << "15 + 15 = " << soma << "\n"; cout << "200 - 50 = " << subtracao << "\n"; cout << "15 * 5 = " << multiplicacao << "\n"; //aqui temos a diviso real cout << "15 / 4 = " << divisao << "\n"; //aqui temos o resto da diviso 5 / 2. Sabemos que essa diviso d: 2 * 2 + 1 = 5 //logo, o resto dela 1

cout << "5 % 2 = " << resto_inteiro << "\n"; return 0; }

Obviamente, podemos estender o conceito de operaes do gnero entre variveis, como no exemplo: #include <iostream> using namespace std; int main() { int vida = 100; cout << "Voce tem " << vida << " pontos de vida!\n"; vida = vida - 50; cout << "Voce tomou um tiro. Agora sua vida eh de " << vida << " pontos.\n"; vida = vida + 20; cout << "Voce pegou uma caixa de vida! Sua vida agora eh " << vida << " pontos.\n"; return 0; }

Outro conceito importante tem a ver com parnteses. Se formos operar de forma que: X1 = (10 + 14) / 2 E X2 = 10 + 14 / 2 Teremos X1 = 12 e X2 = 17. Os valores foram diferentes porque, assim como vemos na escola, operaes ligadas a parnteses so sempre efetuadas primeiro. Assim, em X1, ele soma 10 + 14 = 24 primeiro e depois divide por 2. D X1 = 12. No segundo caso, temos que primeiro o compilador divide 14 / 2 = 7 e depois soma com 10. D X2 = 17. O compilador sempre opera primeiro onde tiver parnteses. Se no colocarmos parnteses, o compilador primeiro efetua operaes de diviso e multiplicao, e depois soma e subtrao.

Teste o cdigo e verifique: #include <iostream> using namespace std; int main() { float x1 = (10.0+14.0)/2.0; //x1 = 12 float x2 = 10.0+14.0/2.0; // x2 = 17 cout << "x1 = " << x1 << "\n"; cout << "x2 = " << x2 << "\n"; return 0; }

Comentrios
Conceito:
So usados quando queremos inserir textos ao longo de um cdigofonte sem que pra isso eles sejam necessariamente executados. So muito teis para escrevermos explicaes sobre o que uma linha ou funo do programa faz, ou pra marcarmos algum trecho do cdigo que no queremos que seja executado no momento dentre outras funcionalidades. muito til para testes e busca por erros. Para isso, basta usar // antes de uma linha de cdigo. Feito isso, ele ficar com uma cor diferente no compilador (tanto no visual studio quanto no dev-c++), e tudo que estiver na linha no ser executado. Para criar um comentrio que contenha mais de uma linha, basta usar /* (contedo do comentrio) */. Tudo que estiver entre esses pares de caracteres (barra vertical e asterisco) no executado. Veja o exemplo: #include <iostream> using namespace std; int main() { int x; x = 10; //x = 100; cout << "X vale = " << x << "\n"; /* x = 12; x = 28; x = 42*/ cout << "X ainda vale = " << x << "\n"; return 0; }

Diretivas
#include Essa diretiva tem como objetivo concatenar (ou anexar) um cdigofonte de outro arquivo com o que voc est utilizando no momento. Isso vale pra tudo que foi criado no cdigo anterior, desde variveis, classes, funes etc. Ns a declaramos da seguinte forma: #include <iostream> ou #include iostream.h usamos < > quando estamos chamando arquivos de bibliotecas padres do compilador, e quando chamamos arquivos comuns que queremos anexar ao projeto atual (que no necessariamente pertenam a biblioteca, como um arquivo de cabealho que criamos). Ao utilizar include, ele sempre verifica se a biblioteca (ou cabealho) est na pasta raiz do projeto ou na pasta include do compilador. Normalmente #include usado em arquivos de cabealho (os quais veremos mais tarde, so os arquivos .h ou .hpp), mas tambm pode ser empregado em arquivos de cdigo-fonte (.c ou .cpp). #define Essa diretiva tem como facilidade a funo de simplificar a digitao. Ao invs de digitar vrias vezes comandos complexos e extensos que so utilizados diversas vezes ao longo de um cdigo, como: cout << bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla; Podemos criar uma #define que apenas substitui a repetio desse termo por uma nica palavra. Temos a declarao de #define da seguinte maneira: #define BLA cout << bla bla bla bla bla bla bla; De acordo com o exemplo, sempre que escrevermos BLA ao longo do cdigo, ser a mesma coisa do que escrever todo o comando cout << bla bla bla...;

Veja o exemplo: #include <iostream> #define BLA cout << "bla bla bla bla bla bla bla\n"; #define PI 3.1415 using namespace std; int main() { BLA BLA cout << "\n"; cout << "Temos que o valor de PI eh= " << PI << "\n"; return 0; } Um aviso importante que a funo #define no costuma ser utilizada para funes, mas apenas constantes (como no exemplo do caso do PI), pois podem causar erros graves. using Essa diretiva acrescenta uma srie de componentes bsicas de C++ que comumente iremos utilizar ao longo do curso. No entraremos muito em detalhes sobre ela, apenas por enquanto passvel dizer que com ela podemos executar uma srie de classes, funes e componentes diversos bsicos como funes de entrada e sada como cin e cout. Apenas pense nela como uma diretiva que acrescenta diversas bibliotecas que so necessrias agora, via o comando: using namespace std;

Leitura e Retorno de Dados


Retorno:
formato: Cout Como j visto, uma funo que imprime textos em tela, no seguinte cout << Texto a ser impresso << Valor de Varivel << Texto; Sempre colocamos << pra indicar que h fluxo de sada a um perifrico (no exemplo de cout ns temos somente fluxo ao monitor). Colocamos entre todo texto que deve ser impresso em tela. Se por exemplo, queremos mostrar um texto em conjunto com o valor de uma varivel, por exemplo: Nome1 = Sereba Nome2 = Ai Caramba E queremos imprimir um texto assim: O Sereba o melhor da CDJ, o Ai Caramba no presta no. Devemos fazer um comando da seguinte forma: cout << O << nome1 << eh o melhor da CDJ, o << nome2 << nao presta nao;

Leitura:
Cin Vamos supor que agora vamos fazer um programa que efetue somas matemticas. Como possvel fazer com que o usurio escolha os fatores os quais efetuamos a soma? Pra isso, usamos um comando que capture todas as mensagens que forem digitadas pelo usurio. o comando cin. cin >> varivel

Repare que o smbolo >> agora est invertido com relao ao cout. Isso ocorre porque no h mais fluxo de sada de dados, agora ns estamos inserindo dados ao aplicativo. Com esse comando, emitimos tudo que digitado no teclado para dentro de uma varivel. Veja o exemplo de um programa que captura idade de um usurio: #include <iostream> using namespace std; int main() { int idade; cout << "Diga sua idade e aperte ENTER para continuar= "; cin >> idade; cout << "\n"; cout << "Processando...\n\n"; cout << "Voce tem " << idade << " anos.\n"; return 0;

Primeiro ns pedimos ao usurio que digite uma idade (que um valor numrico. Se digitarmos uma palavra ou algo que no seja nmeros, isso causar erro, pois a varivel receber um valor no esperado). O usurio depois de digitar o nmero, apertar ENTER. Isso far com o que foi digitado seja guardado na variavel idade. Veja outro exemplo com um programa de fazer somas:

#include <iostream> using namespace std; int main() { int fator1; int fator2; cout << "Digite o primeiro termo para a soma: "; cin >> fator1; cout << "\n\n"; //salta duas linhas cout << "Digite o segundo termo para a soma: "; cin >> fator2; cout << "Processando...\n\n"; cout << fator1 << " + " << fator2 << " = " << fator1+fator2 << "\n"; return 0;

H um comando semelhante de leitura e impresso de dados na linguagem C, que so o printf e o scanf. So semelhantes, s diferenciando pela necessidade de especificar o formato da varivel de retorno ou insero de dados antes de mostrar ou capturar textos em tela. No vamos nos ater a elas, j que cin e cout so bem mais simples e realizam a mesma tarefa.

Você também pode gostar