Вы находитесь на странице: 1из 19

INTRODUO LINGUAGEM DE

PROGRAMAO

Prof. Marcelo West

Araua

2013
Sumrio

1. Introduo ............................................................................................. 1

2. Recursos para Programao Estruturada...............................................2

2.1 Compilando o Primeiro Programa: Hello World...................................2

2.2 Declarao de Variveis e Tipos de Dados.........................................4

2.3 Operadores, expresses e precedncia ..........................................10

2.4 Usando alguns vetores.....................................................................11

2.5 Construes de Controle de Fluxo....................................................12

2.5.1 A Construo if.........................................................................12

2.5.2 Blocos e escopos......................................................................14

2.5.3 A Construo for/p


or/para..............................................................15
ara
1. Introduo

A linguagem C++ foi desenvolvida inicialmente por Bjarne Stroustrup na AT&T, de


1979 a 1983, partir da linguagem C, tendo como idia principal a de agregar o conceito
de classes, de orientao objetos, quela linguagem. Razo porque iniciamente
chamava-se de C com classes. Bjarne procurou tanto quanto possvel manter
retrocompatibilidade com C, de modo que programas em C pudessem ser compilados
por um compilador C++ com um mnimo de alteraes. Entretanto, encarar C++ como um
superconjunto de C um erro, e C++ deve ser vista como uma outra linguagem, por
diversas razes. Em primeiro lugar, nem todo o programa escrito em C compilado em
C++ sem erros, e pode nem mesmo gerar o mesmo resultado, j que a sintaxe e a
semntica de algumas construes diferem. Ao ligar-se partes de um programa em C++
com partes em C, estas devem ser bem especificadas, pois as convenes de
funcionamento do cdigo compilado tambm diferem. Alm disso, C++ oferece um
conjunto de mecanismos bsicos que no estavam presentes em C, e estes devem ser
usados para produzir software mais modular e confivel explorando-se as verificaes
disponveis no compilador. Finalmente, os mecanismos de C++ devem inspirar a
programao segundo o paradigma de orientao a objetos e, portanto, no se deve
programar em C++ como se faz em C.

A partir da primeira verso de 1983, a linguagem foi sendo revisada e evoluindo,


tornou-se disponvel fora da AT&T em 1985, e aps um longo processo foi padronizada
pela ISO no final de 1997, pelo padro ISO/IEC 14882. Voc pode obter mais
informaes sobre o desenvolvimento da linguagem na pgina do prprio autor em [STR
2004].

STL uma parte do padro C++, e consiste em uma biblioteca de funes e


estruturas de dados que todo compilador C++ deve oferecer, prov as implementaes
mais comuns em um programa, e pode-se utiliz-la com diferentes tipos de dados. Um
bom ponto de partida para leitura especfica sobre STL na pgina da Silicon Graphics,
Inc. em [STL 2004].

De forma geral, possvel obter muito material de referncia da linguagem atravs


de pginas na Internet. Tente por exemplo pesquisar com a expresso C++
reference no Google. Tambm muito produtivo criar o hbito de pesquisar por
problemas bem especficos. Tente, por exemplo, pesquisar iostream.h iostream
difference, ou STL hash_map code example. Pode-se obter cursos [BRA 1998], livros e
exemplos de cdigo [ECK 2000]

Os compiladores do projeto GNU tambm podem ser obtidos livremente atravs da


Internet. O ambiente BloodShed Dev-C++ roda sobre Windows e utiliza os compiladores
gcc e g++. possvel baix-lo de:http://www.bloodshed.net/devcpp.html. H tambm
inmeros fruns e listas de discusso sobre aspectos tcnicos da linguagem. Ento, use
e abuse da Internet para aprend-la e resolver seus problemas.

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++.

2.1 Compilando o primeiro programa: Hello World

O melhor meio de aprender uma linguagem atravs de exemplos. Eis o primeiro


programa, que d sinal de vida apresentando uma mensagem. Identificamos nele os
elementos: #include, funo main, gerao de sada de dados na tela, e como se
colocam comentrios.

helloworld.cpp

/*

Primeiro programa:

- #include: indica quais bibliotecas sero utilizadas


- iostream.h a verso antiga, antes do padro de 1998
- namespaces: separam escopos de nomes para evitar colises
- todo programa inicia em uma funo chamada main
- cout a sada padro, e << um operador que envia dados para l
- um literal string uma cadeia de caracteres delimitada por ""
- \n a representao literal do caracter que indica mudana de linha
- comentrios de mltiplas linhas iguais a C, como feito aqui
- mas C++ tambm inclui comentrios at o fim da linha, iniciados por //

*/

#include <iostream>
using namespace std;

int main() // Todo programa inicia na funo main


{
cout << "Hello\n";
}

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.

O namespace um recurso utilizado para evitar que, quando se constroem


grandes programas, nomes de variveis, classes e funes conflitem. Esse conceito ser
apresentado mais adiante, mas aqui precisamos dele, pois a sada padro, cout, est
definida dentro do espao chamado std, de standard. Dados podem ser impressos
enviando-os para a sada padro, cout. Da mesma forma, dados podem ser lidos atravs
da entrada padro, cin. Tambm nesse caso o tipo de dado lido depende da varivel
para a qual se est fazendo a leitura.

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";
}

Todas as declaraes e comandos da linguagem devem ser terminados por ;.


Esse sinal no serve apenas como separador nas declaraes, mas serve para
identificar composio de sequencia entre os comandos, isto , primeiro executado um
e depois o outro. Utilize vrios comandos de impresso para gerar uma sada mais longa.

3
2.2 Declarao de variveis e tipos de dados

Declaraes de variveis, ao contrrio dos comandos, podem ser feitas tanto


dentro quanto fora de funes. Se estiverem fora de uma funo, elas so globais, e
acessveis a qualquer funo do programa. As variveis declaradas dentro de uma
funo so variveis locais, e so acessveis somente a essa funo. As variveis podem
ser inicializadas, opcionalmente, na sua declarao, ou terem algum valor atribudo
dentro de uma funo, atravs da atribuio. Ao contrrio de C, C++ no exige que
todas as declaraes de variveis ocorram antes de todos os comandos em uma funo.
As declaraes podem ser feitas em qualquer lugar.

declaracao.cpp

/*

Declarao e atribuies:

- variveis globais so declaradas fora de funes


- variveis locais so declaradas dentro de funes
- variveis podem ser inicializadas na declarao
- mais de uma varivel pode ser declarada na mesma declarao
- o programa v a varivel mais interna se o nome conflita
- atribuies usam o sinal = e s podem estar dentro de funes
- variveis podem ser declaradas em diversos lugares

*/

#include <iostream>
using namespace std;

int a; // varivel global, apenas declarando


int b = 5; // varivel global, declarando e inicializando
int c=10,d=14; // variveis globais, declarando duas na mesma linha

int main()
{
int b = 2; // varivel local, declarando e inicializando

c = 200; // atribuindo valor


d = 800000000; // atribuindo valor

cout << a << b << c << d << endl; //exibindo contedos das variveis

int x = 99;

cout << x << endl;


}

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.

bool Valores o tipo mais simples, e pode armazenar apenas dois


Lgicos valores: verdadeiro ou falso.
/booleanos
Exemplos:
bool logico1 = true; // True significa verdadeiro em ingls;
bool logico2 = false; // False significa falso em ingls;
bool logico3 = 0; // Atribui-se o inteiro 0 (zero) equivale a
'false';
bool logico4 = 189; // Qualquer valor diferente de 0 (zero)
interpretado como 'true';

char Caracteres O tipo de dados caracter utilizado para armazenar letras,


simples nmeros e outros caracteres especiais.

Ao total, so 256 caracteres que podem ser armazenados,


dos quais os 128 primeiros fazem parte do conjunto ASCII.
Voc pode declarar um caracter de duas formas: com ou sem
aspas. Ao declarar um caracter sem as aspas simples, voc
dever saber qual o decimal correspondente. Por exemplo,
se voc digitar char caracter = 97, o console imprimir a letra
'a'.

Logicamente, voc poderia ter declarado esta varivel com


char caracter = 'a'. Voc tambm pode armazenar nmeros
inteiros do intervalo de -128 at 127. Voc poder realizar
operaes matemticas entre esses nmeros, se quiser. Mas
tenha em mente que se voc for imprimir na tela o valor, o
resultado ser o caracter correspondente na tabela.

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'.

// Se voc precisar imprimir o nmero, faa o seguinte:


int inteiro = caracter1; // Armazena o valor inteiro que est
em char.
cout << "Imprimiu: " << inteiro << endl; // Imprime o
nmero.

// Voc pode fazer isto tambm:


cout << "Imprimiu: " << (int) caracter1 << endl;

Tabela 1 Tipos de Dados Bsicos

5
int Nmeros O tipo inteiro um tipo bastante comum. Sua declarao d-
inteiros se atravs da palavra reservada int.

O tipo inteiro pode armazenar nmeros que vo da faixa de -


2.147.483.648 at 2.147.483.647 (um total de 232 nmeros,
ou 4.294.967.296). Voc pode modificar esta faixa de valores
usando as palavras reservadas signed, unsigned, short e
long. Veremos estas palavras reservadas (chamadas de
modificadores de intervalo) logo abaixo.

Exemplo:
int inteiro = 500;

Em C++ existem alguns modificadores de faixa (ou intervalo).


Isso altera a faixa de valores suportada pela varivel (mas a
capacidade de armazenamento continua a mesma).

O modificador short, que uma palavra reservada da


linguagem, fixa a faixa dos valores inteiros (int) para -32.768
at 32.767. Quando voc declara um inteiro, ele inicialmente
da faixa de um long int. Se voc quer reduzir a faixa, use
short int.

Exemplo:
short int numero = 12500;

No subtpico "inteiros", dissemos que a faixa de um nmero


inteiro de -2.147.483.648 at 2.147.483.647. Na verdade,
quando voc declara um int, ele j um long int. Ao declarar
um long int, estamos apenas assegurando essa faixa de
valores para int.
Long tambm pode ser utilizado com float. Nesse caso, a
faixa de valores de float ser a mesma de um double.

Exemplos:
long int numero = 45648978;
long float numero2 = 4568.0;

Estes modificadores alteram a faixa dos nmeros inteiros (int)


e caracteres (char) para valores somente positivos
(unsigned) ou fixa a faixa deles em valores com sinal
(signed). Por padro, se voc no declarar esses
modificadores, as variveis tipo inteiro e caracter ASCII sero
signed.

Tabela 1 Tipos de Dados Bsicos

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.

Com signed, fixamos a faixa normal para um nmero inteiro.

Exemplos:

unsigned int numero1 = 700; // inteiro sem sinal.


signed int numero2 = -700; // admite valores negativos
(padro do tipo int).
unsigned short int numero3 = 5000; // pode-se combinar
modificadores.
signed short int numero4 = 22000;
signed long int numero5 = 454658;
unsigned long int numero6 = 3000000000; // aceita
somente inteiros positivos.
signed char caracter1 = -128; // caracter com sinal. Faixa:
-128 at 127.
unsigned char caracter2 = 255; // caracter sem sinal.
Faixa: 0 at 255.

Se voc declarar um valor maior do que o tipo suporta,


ocorrer um estouro de faixa, tambm chamado range
overflow.

Ao chegar no fim da faixa de valores para nmeros inteiros e


caracteres (incluindo wchar_t), voc volta para o incio ou
para o fim da faixa.

Exemplos:

unsigned long int numero = 4294967295; // o valor


mximo para um inteiro longo sem sinal.
cout << "Imprime: " << numero << endl;

numero = 4294967296; // estouramos a faixa de valores.


Voltar ao incio da faixa.
cout << "Imprime: " << numero << endl;

numero = -1; // estouramos novamente a faixa. Neste


caso, retornar para o fim da faixa.
cout << "Imprime: " << numero << endl;

Tabela 1 Tipos de Dados Bsicos

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:

float real = 1.15479637; // poucas casas decimais.

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.

A declarao com a palavra reservada double:

Exemplo:

double numero =
558749.16846516487975132156857452131274127412974
812794812794812798412;
// preciso acurada.

wchar_t Conjunto de Existe o tipo wchar_t, que tambm uma palavra


Caracteres reservada da linguagem C++. A declarao e o uso
seguem as mesmas regras do tipo caracter, porm, o
conjunto de caracteres que esse tipo suporta muito maior
(65.536 caracteres ao total). O conjunto de caracteres
desse tipo o Unicode codificado em UTF-16. Assim
sendo, caracteres especiais como letras com acentuao,
cedilha, e outros podem ser lidos e impressos.

Exemplo:
wchar_t caractertexto = '';
// o caracter de cedilha faz parte do conjunto de
caracteres Unicode em codificao UTF-16.

Importante: Se voc tentar imprimir um wchar_t na janela


de console, voc talvez no conseguir (poder aparecer
um nmero de 0 at 65.535). Isso depender do conjunto
de caracteres suportados pelo console. Entretanto, se voc
estiver realizando a leitura de dados digitados pelo usurio,
esse tipo mais adequado que char, pois o usurio poder
digitar alguns caracteres do teclado no suportados pelo
tipo char.
Tabela 1 Tipos de Dados Bsicos

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.

Assim como C, C++ uma linguagem que permite programao em baixo


nvel. Assim, a linguagem no possui propriamente caracteres, mas o tipo char apenas
um nmero de no mnimo 8 bits, e os literais (a,X) podem ser atribudos a qualquer
varivel numrica.

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;

cout << "a=" << a << endl;


cout << "b=" << b << endl;

unsigned int c;
c = b;

cout << "c=" << c << endl;

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:

- C++ prove converses automticas entre os tipos de dados bsicos


- Cast especifica uma converso explcita, precedendo um valor:
a sintaxe velha de C a seguinte: (tipo)

*/

#include <iostream>
using namespace std;

int main()
{
char a('X');
char b = 80;

cout << "a=" << a << endl;


cout << "b=" << b << endl;
cout << "a=" << (int) a << endl;
cout << "b=" << (int) b << endl;
}

Resultado:

a=X
b=P
a=88
b=80

2.3 Operadores, expresses e precedncia

Operadores so elementos fundamentais para efetuar computao. Eles atuam


sobre um ou mais operandos, e produzem um resultado, que o valor da expresso
formada por eles e seus operandos. Por exemplo 2 + 2 uma expresso que utiliza o
operador +, ordena que o computador efetue esse clculo, e oferece como resultado o
valor 4. Assim, se voc escreve a = 3 * (2 + 2), a varivel a deve receber o valor 12.
Elementar, por enquanto! Mas ocorre que C++ possui 42 operadores, com as mais
variadas finalidades. Alm disso, como em C, o conceito de expresso extremamente
abrangente, e utilizado em vrias construes. Isso ser mostrado passo por passo, mas
iniciemos guardando bem esses conceitos: varivel, literal, atribuio, operador,
operando e expresso.

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

cout << "Teste com outras possibilidades...\n";


}

2.4 Usando alguns vetores

Assim como declaramos uma varivel de um tipo determinado, podemos declarar


um vetor de qualquer tipo com a seguinte sintaxe: tipo nome[tamanho]. Por exemplo, o
programa abaixo declara um vetor de inteiros, assinala valores a algumas posies, e as
imprime. Vetores sero melhor estudados adiante, mas so aqui introduzidos para
enriquecer os exemplos iniciais.

11
Exemplos:

vetor.cpp

/*

Vetores:

- declara-se vetores com: tipo nome[tamanho];


- se voc no inicializa, uma varivel ou vetor tem um valor qualquer
- vetores no tm verificao de tamanho

*/

#include <iostream>
using namespace std;

int main()
{
int numeros[5]; // declarando vetor com 5 elementos

numeros[1] = 12;
numeros[2] = 24;
numeros[4] = 100;

cout << "numeros[0]" << numeros[0] << "\n";


cout << "numeros[1]" << numeros[1] << "\n";
cout << "numeros[2]" << numeros[2] << "\n";
cout << "numeros[3]" << numeros[3] << "\n";
cout << "numeros[4]" << numeros[4] << "\n";
cout << "numeros[5]" << numeros[5] << "\n"; // erro: intervalo vlido (0-4)
}

2.5 Construes de controle de fluxo

A seguir so apresentadas as principais construes de controle de fluxo de


execuo. Elas servem para produzir sequencias de execuo mais complexas que a
sequncia do texto do programa, por desvio ou repetio. Em uma linguagem bloco-
estruturada, no se deve pensar em desvios para posies arbitrrias, mas em uma
formao do programa como conjunto de repeties e execues condicionais
propriamente aninhadas.

2.5.1 A construo if

A construo if tem a seguinte sintaxe, sendo opcional a parte do else em diante:

if (condio) comando_para_resultado_verdadeiro; else comando_para_falso;

12
Exemplo:

1 - Elabore um algoritmo em (PORTUGOL e C++) para que o usurio informe o sexo do


cliente e o preo do ingresso do Show da Banda P de Serra, em seguida dever
ser calculado e exibido na tela o valor a pagar. Observao; Mulher tem desconto de
50%. Por exemplo: O preo do ingresso R$ 40,00 (quarenta reais) e uma aluna
comprou. Portanto, esta dever pagar R$ 20,00 (vinte reais).

FLUXOGRAMA DO PROGRAMA

INCIO

DICA: LEIA em C++ :


std::cin >> sexo;
Qual o Sexo do
Cliente?
LEIA SEXO

DICA: LEIA em C++ :


std::cin >> preco;
Qual o preo do
ingresso?
LEIA PRECO

DICA: ESCREVA em C++ :


DICA: SE em std::cout << preco << std::endl;
C++ :
if (sexo==M)

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;
}

2.5.2 Blocos e escopos

Se for necessrio colocar mais de um comando aninhado dentro de uma construo


condicional (ou de iterao) usa-se um bloco. Um bloco uma construo que permite
tratar um conjunto de comandos como se eles fossem um s. O bloco consiste nesse
conjunto de comando entre chaves ( {, }). Um bloco define um escopo de variveis.
Isto significa que se uma nova varivel declarada dentro de um bloco com o mesmo
nome de uma varivel fora desse bloco, somente a varivel interna acessada desse
ponto em diante at o final do bloco.

Exemplo:

{
string nomecompleto;
std:: cin >> nomecompleto;
std::cout << "NOME COMPLETO: " << nomecompleto << std::endl;
}
14
2.5.3 A construo for/para

As estruturas de repeties so muito importantes para programas, pois muitas


vezes o mesmo procedimento tm que ser executados mais de uma vez.

Em C/C++, basicamente existem trs tipos de estrutura de repetio: FOR, WHILE


e DO WHILE. Nessa seo estudaremos o FOR.

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 (;).

*ITERAO sinnimo de repetio.

Como procedemos:

FOR (inicializao ; at quando ir ser executado ; incremento ou decremento).

No exemplo, faremos um programa que contar de 1 a 100. Voc ver que um


programa que faz algo muito simples, ele soma um a uma varivel vrias vezes. O x
comea em 1, o loop s ser executado enquanto x for menor ou igual a 100 e a cada
loop ser somado 1 a x. Veja:

exemplofor.cpp

/*
For:

inicializao: x comea em 1
critrio: executar enquanto x for menor ou igual a 100
incremento (++) ser somado 1 a x

*/

//loop com FOR


#include <iostream>
#include <cstdlib>

using namespace std;

int main (void)


{
int x;
for (x=1; x<=100; x++)
cout << x <<"\t"; system ("pause");
}

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 ({ }).

Este comando no se limita a operaes com constantes, por exemplo: x=1,


executar enquanto x for menor ou igual a 100... s vezes, o usurio pode entrar com
dados para controlar o loop.

Alguns exemplos:

//exemplo 1

#include <iostream>
#include <cstdlib>
using namespace std;

int main (void){


int x, user;
cout <<"Digite um numero menor que 100 para iniciar a contagem\n";
cin >> user;
cin.ignore ();
system ("cls"); // limpa a tela
for (x=user; x<=100; x++)
cout << x <<"\t";
system ("pause");
}
No exemplo 1, a contagem comear a partir do nmero que o usurio digitar. Se
digitar 40, inicializar a execuo no nmero 40 e terminar no nmero 100.

//exemplo 2
#include <iostream>
#include <cstdlib>
using namespace std;

int main (void){


int x, user;
cout <<"Digite um numero menor que 100 para iniciar a contagem\n";
cin >> user;
cin.ignore ();
system ("cls"); // limpa a tela
for (x=1; x<=user; x++)
cout << x <<"\t";
system ("pause");
}

No exemplo 2, a contagem comear no 1 e terminar no nmero digitado pelo


usurio. Se digitar 80, iniciar no nmero 1 e terminar no nmero 80.

16
//exemplo 3
#include <iostream>
#include <cstdlib>
using namespace std;

int main (void){


int x, user;
cout <<"Digite qual sera o intervalo da contagem\n";
cin >> user;
cin.ignore ();
system ("cls"); // limpa a tela
for (x=1; x<=100; x+=user)
cout << x <<"\t";
system ("pause");
}
No exemplo 3, a contagem ir de 0 a 100 com intervalos determinados pelo usurio.

*Observao: A operao x+=user o mesmo que x=x+user.

APOSTILA EM CONSTRUO
AGUARDEM O CONTEDO COMPLEMENTAR

Em breve ser disponibilizada no blog:

http://wesmarcelo.wordpress.com

17

Вам также может понравиться