Escolar Documentos
Profissional Documentos
Cultura Documentos
PROGRAMAO
Araua
2013
Sumrio
1. Introduo ............................................................................................. 1
1
2. Recursos para Programao Estruturada
Este captulo apresenta recursos bsicos da linguagem C++ que servem para o
modelo de programao conhecido como bloco-estruturado. So vistos os tipos de dados
primitivos e as principais construes que servem para descrever operaes e
algoritmos, como controle de fluxo, juntamente com recursos diversos da linguagem. Em
funo da compatibilidade, muitos desses recursos so idnticos aos da liguagem C, e
por isso essa parte semelhante a uma breve reviso da linguagem C, seguida da
apresentao dos mecanismos que so prprios de C++.
helloworld.cpp
/*
Primeiro programa:
*/
#include <iostream>
using namespace std;
2
A diretiva #include serve para fazer com que o compilador inclua como parte desse
cdigo outro arquivo de cdigo fonte. Em geral, esse recurso usado para incluir
definies de dados e cdigo que sero utilizados por nosso programa, mas j foram
compilados e esto disponveis em uma biblioteca. funo da etapa de ligao montar
o executvel final incluindo o cdigo compilado para o nosso programa com o cdigo
compilado dessas bibliotecas.
Todo programa em C++, assim como em C, pode ser visto como um conjunto de
funes. As funes sero apresentadas no captulo 2, mas necessrio saber primeiro
que todos os comandos da linguagem devem estar dentro de funes, e que, portanto,
um programa deve ter no mnimo uma funo. Essa funo principal tem o nome
de main, sendo esse nome o que identifica por onde a execuo inicia.
helloworld2.cpp
/*
Usando cin:
- usa-se cin >> varivel para ler dados da entrada para essa varivel
*/
#include <iostream>
using namespace std;
int main()
{
int anos;
cout << "Oi\n";
cout << "Quantos anos voce tem?";
cin >> anos;
cout << "Voce tem " << anos << " anos\n";
}
3
2.2 Declarao de variveis e tipos de dados
declaracao.cpp
/*
Declarao e atribuies:
*/
#include <iostream>
using namespace std;
int main()
{
int b = 2; // varivel local, declarando e inicializando
cout << a << b << c << d << endl; //exibindo contedos das variveis
int x = 99;
4
A tabela 1 apresenta os tipos de dados primitivos da linguagem, exemplos de
valores literais, e intervalos de valores aceitos. Cada tipo de dado possui representao
de valores literais adequados, tanto para inicializao quanto para atribuies. Em geral
usa-se bool, char, int,float, double e wchar_t mais frequentemente.
Exemplos:
char caracter1 = 50; // corresponde ao caracter '2'.
char caracter2 = 47; // corresponde ao caracter '/'.
caracter1 = caracter1 + caracter2; // caracter1 agora tem o
valor 97, que corresponde a letra 'a'.
cout << "Imprimiu o caracter: " << caracter1 << endl; //
Imprimir a letra 'a'.
5
int Nmeros O tipo inteiro um tipo bastante comum. Sua declarao d-
inteiros se atravs da palavra reservada int.
Exemplo:
int inteiro = 500;
Exemplo:
short int numero = 12500;
Exemplos:
long int numero = 45648978;
long float numero2 = 4568.0;
6
Quando definimos que um inteiro ter valores sem sinal
(unsigned), na verdade estamos dizendo que s estamos
admitindo valores positivos. Isso altera a faixa de um inteiro
para 0 at 4.294.967.295 - uma capacidade maior para
nmeros positivos). Se voc declarar um valor negativo,
ocorrer um estouro de faixa.
Exemplos:
Exemplos:
7
A sada no console se parecer com:
Imprime: 4294967295
Imprime: 0
Imprime: 4294967295
float Nmeros Representa nmeros fracionrios e nmeros reais (o que
reais/Ponto inclui os nmeros inteiros). A faixa de valores varia de 1,2e-
Flutuante 38 at 3,4e+38.
preciso
simples A declarao feita atravs da palavra reservada float:
Exemplo:
double Reais dupla Igualmente ao tipo float, utilizado para nmeros fracionrios
preciso e reais, porm com preciso ainda maior. A faixa de
valores varia de de 2,2e-308 at 1,8e+308.
Exemplo:
double numero =
558749.16846516487975132156857452131274127412974
812794812794812798412;
// preciso acurada.
Exemplo:
wchar_t caractertexto = '';
// o caracter de cedilha faz parte do conjunto de
caracteres Unicode em codificao UTF-16.
8
Resumindo, h quatro modificadores que alteram a representao desses tipos
bsicos. Os modificadores signed e unsigned alteram o significado dos dados para
representao de nmeros negativos. Os modificadores short e long alteram a
quantidade de bits com que o dado representado. A linguagem no padroniza
completamente o tamanho da representao binria de nmeros, e esse um aspecto
que pode comprometer a portabilidade.
Declaracao2.cpp
/*
Declarao e atribuies:
- C++ inclui inicializao em forma de funo
*/
#include <iostream>
using namespace std;
int main()
{
int a(1234567890); // Inicializao
int b = 6 * a;
unsigned int c;
c = b;
Um tipo de dado pode ser convertido em outro tipo com um cast. O cast deve
preceder um valor e consiste no tipo para o qual se deseja converter, entre parnteses,
como, por exemplo: (int) a. Esse cast simples introduzido aqui o mesmo da linguagem
C, mas deve-se evitar utiliz-lo, pois em seu lugar C++ possui outros quatro tipos
diferentes de cast que so mais seguros, a serem apresentados adiante.
9
Exemplo:
charcast.cpp
/*
Caracteres e Cast:
*/
#include <iostream>
using namespace std;
int main()
{
char a('X');
char b = 80;
Resultado:
a=X
b=P
a=88
b=80
10
Exemplos:
operadores.cpp
/*
Operadores:
- operadores aritmticos
- incremento e decremento
- atribuio com operaes
- expresso
- precedncia
*/
#include <iostream>
using namespace std;
int main()
{
int a = 5;
int b = 7;
int c = 100;
a = a + (c-b); // a recebe 98
++a;
a++;
cout << "a =" << a << endl; // a valendo 100
cout << "++a =" << ++a << endl; // pre incremento
cout << "a++ =" << a++ << endl; // ps increment
cout << "a =" << a << endl; // a valendo 102
cout << "(a=5) = " << (a=5) << endl; // atribuio uma expresso
cout << "(a==5) = " << (a==5) << endl; // comparao usa ==
cout << "!(a==5) = " << !(a==5) << endl; // valores booleanos, e no (!)
cout << "(b=(a==5)) = " << (b=(a==5)) << endl; // pode tambm usar
cout << "(4 & b) =" << (4 & b) << endl; // bits AND
cout << "(4 && b) =" << (4 && b) << endl; // operador lgico AND
11
Exemplos:
vetor.cpp
/*
Vetores:
*/
#include <iostream>
using namespace std;
int main()
{
int numeros[5]; // declarando vetor com 5 elementos
numeros[1] = 12;
numeros[2] = 24;
numeros[4] = 100;
2.5.1 A construo if
12
Exemplo:
FLUXOGRAMA DO PROGRAMA
INCIO
O sexo
Masculino? Exibir preo sem
desconto.
SE SEXO=M
ESCREVA(PREC
O)
DICA:
ESCREVA em
C++ :
std::cout << Exibir preo com
preco/2 <<
std::endl;
desconto.
ESCREVA(PREC FIM
O/2)
13
PORTUGOL:
Inicio
Declare sexo : texto
Declare preco : real
Leia sexo
Leia preco
Se (sexo=M) ento
Escreva(preco)
Seno
Escreva(preco/2)
Fimse
Fim
C++:
#include <iostream>
int main()
{
std::cout << "INFORME O SEXO DO CLIENTE: " << std::endl;
char s;
std:: cin >> s;
std::cout << "INFORME O PREO DO INGRESSO DO SHOW: " << std::endl;
float p;
std:: cin >> p;
if (s=='M')
{
std::cout << "SEXO INFORMADO MASCULINO PREO A PAGAR: " << p << std::endl;
}
else
{
std::cout << "SEXO INFORMADO FEMININO PREO A PAGAR: " << p/2 << std::endl;
}
return 0;
}
Exemplo:
{
string nomecompleto;
std:: cin >> nomecompleto;
std::cout << "NOME COMPLETO: " << nomecompleto << std::endl;
}
14
2.5.3 A construo for/para
O FOR como qualquer iterao* precisa de uma varivel para controlar os loops
(voltas). Em for, essa varivel dever ser inicializada, indicada seu critrio de execuo,
e forma de incremento ou decremento. Ou seja, for precisa de trs condies. Vale
salientar que essas condies so separadas por ponto-e-vrgula (;).
Como procedemos:
exemplofor.cpp
/*
For:
inicializao: x comea em 1
critrio: executar enquanto x for menor ou igual a 100
incremento (++) ser somado 1 a x
*/
15
O FOR tambm segue a mesma regra de IF. Caso haja mais de uma linha a ser
executada pelo comando FOR, essas devero estar agrupadas num bloco de dados ({ }).
Alguns exemplos:
//exemplo 1
#include <iostream>
#include <cstdlib>
using namespace std;
//exemplo 2
#include <iostream>
#include <cstdlib>
using namespace std;
16
//exemplo 3
#include <iostream>
#include <cstdlib>
using namespace std;
APOSTILA EM CONSTRUO
AGUARDEM O CONTEDO COMPLEMENTAR
http://wesmarcelo.wordpress.com
17