Ir para conteúdo
Entre para seguir isso  
Dark Skyllen

#3~1 - Loops, estruturas de repetição

Recommended Posts

Dark Skyllen    7
Dark Skyllen

Loops

 

 

 

Agora que vimos as estruturas if e else, poderemos seguir enfrente com nossas aulas, veremos a seguir os loops for e while.

 

  • For

O for é um comando de repetição, quando usamos ele, todo nosso bloco de códigos ficará se repetindo até que uma condição seja falsa. Durante o for, em algumas linguagens de programação, sempre adicionamos ou alteramos o valor de alguma variável durante a passam pelo bloco for, o que não é muito diferente em C++.

 

 

 

 

Exemplo:

 

 


[left][color=seagreen]#include <iostream.h>[/color][/left]



[left][b]int[/b] main([b]int [/b]argc, [b]char [/b]*argv[]) 
{[/left]



[left][b]int[/b] numero;
cout << [color=red]"Digite um número: "[/color]; [/left]

cin >> numero;

[b]for[/b] ([b]int [/b]i=0; i<=numero; i++){
[indent]
[left]cout << [color=red]"\nEstamos em: "[/color]<< i;
[/left]

[/indent]}

[left]cout << [color=red]"\n\n"[/color];  
system([color=red]"pause"[/color]);
[b]return[/b] 0; 
}[/left]


Analise a parte do for, criamos uma variavel i que será utilizada APENAS no escopo e inicializamos ela com o valor 0. Então "falamos" para o for que ele terá que repetir o bloco de código enquanto a variavel i for menor ou igual (<=) à variavel número. Depois "explicamos" para nosso for que toda vez que ele passar pelo começo, ele deverá incrementar 1 à variavel i (i++)

 

 

 

  • Usando break com for

Quando precisamos fazer uma checagem dentro do for e precisar pará-lo, usamos o break:

 

 

 



[left][color=seagreen]#include <iostream.h>[/color][/left]




[left][b]int[/b] main([b]int [/b]argc, [b]char [/b]*argv[])
{[/left]



[left][b]int[/b] numero;
cout << [color=red]"Digite um número: "[/color]; 
cin >> numero;
[b]for[/b] ([b]int [/b]i=0; i<=numero; i++){[/left]

  cout << [color=red]"\nEstamos em: "[/color]<< i;
[indent][b]if[/b] (i == [color=purple]5[/color]){[indent][b]break;[/b]
[/indent]
[/indent]
[indent]} 
[/indent]
} 


[left]cout << [color=red]"\n\n"[/color];   
system([color=red]"pause"[/color]);
[b]return[/b] 0; [/left]



[left]} [/left]


Quando o bloco for chegar ao 5, ele irá parar.

 

 

  • For com vários comandos

Nesse for podemos fazer vários tipos de checagem, alteração e inicialização num mesmo for:

 

 


[left][color=seagreen]#include <iostream.h>[/color] [/left]



[left][b]int [/b]main([b]int [/b]argc, [b]char [/b]*argv[])
{[/left]



[b]for [/b]([b]int [/b]i=[color=purple]0[/color], j=[color=purple]10[/color]; i<=[color=purple]10[/color], j>=[color=purple]0[/color]; i++, j--){
[indent]
[left]cout << [color=red]"[i] =[/i] "[/color]<< i << [color=red]"\t\t[j] = " [/color]<< j <<endl; 
[/left]

[/indent]} 


[left]cout << [color=red]"\n\n"[/color];  
system([color=red]"pause"[/color]);
[b]return [/b][color=purple]0[/color];[/left]



[left]}[/left]


Nesse programa, ele irá aumentar o i e diminuir o j.

 

 

 

  • For com parâmetros nulos

Para fazer for com parâmetros nulos, basta apenas adicionar o caractere de ; podendo colocar seus parâmetros nulos:

 

 

 

 



[left][color=seagreen]#include <iostream.h>[/color][/left]



[left][b]int [/b]main([b]int [/b]argc, [b]char [/b]*argv[])
{[/left]



[left][b]int[/b] i = [color=purple]0[/color];[/left]


[b]for [/b](; i <= [color=purple]10[/color] ; ){
[indent]
[left]cout << [color=red]" = "[/color]<< i << endl;
[left]i++ 
[/left]

[/left]
[/indent]}


[left]cout << [color=red]"\n\n"[/color];  
system([color=red]"pause"[/color]); 
[b]return [/b][color=purple]0[/color];[/left]



[left]}[/left]



Declaramos i fora do escopo e adicionamos 1 ao i, toda vez que ele passar pelo for, depois de escrever seu valor. Podemos também fazer for com todos os parâmetros nulos.

 

 

 

 

Agora que aprendemos o for, vamos fazer um programinha usando o que aprendemos:

 

Faremos um programa que leia a nota de X alunos e calcule se foram aprovados ou reprovados:

 

 

 




[left][color=seagreen]#include <iostream.h>[/color][/left]



[left][b]int [/b]main([b]int [/b]argc, [b]char [/b]*argv[])
{[/left]



[left][b]int [/b]qtdAlunos, notaAluno;
cout << [color=red]"Digite quantos alunos deseja calcular a nota:"[/color] << endl;
cin >> qtdAlunos;[/left]


[b]for [/b]([b]int [/b]i=[color=purple]1 [/color]; i <= qtdAlunos; i++){
[indent]
[left]cout << [color=red]"\nDigite a nota final do "[/color] << i << [color=red]" aluno: "[/color];
[left]cin >> notaAluno;
[b]if [/b](notaAluno >= [color=purple]5[/color])[/left]

[/left]

[indent]
[left]cout << [color=red]"\n\nAluno aprovado!\n\n"[/color];
[/left]

[/indent][b]else [/b]
[indent]
[left]cout << [color=red]"\n\nAluno reprovado!\n\n"[/color];
[/left]

[/indent][/indent]}



[left]system([color=red]"pause"[/color]);
[b]return [/b][color=purple]0[/color];[/left]



[left]}[/left]


É isso, o programa irá calcular a nota de X alunos e mostrar se eles foram APROVADOS ou REPROVADOS

 

 

 

 

 

 

Exercício:

 

Faça um programa que receba o valor de X produtos (diferentes) então, para cada produto diferente, leia a quantidade e o preço do mesmo, exiba o preço total. MAAAAAAAAAAAS: :coolface:

 

- Acima de 5 produtos comprados o cliente obtem 5% de desconto.

- Acima de 10 produtos comprados o cliente obtem 10% de desconto.

- Acima de 15 produtos comprados o cliente obtem 15% de desconto.

Por enquanto é só pessoal! Até a próxima aula

:bye:

 

 

 

 

 

 

 

 

 

 

Créditos: LG e Dark Skyllen

Editado por Dark Skyllen

Compartilhar este post


Link para o post
Compartilhar em outros sites
Matcher    3
Matcher

Aprovado e movido OiaeuMae.

 

 

Até.

Mtc~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Baxnie    8
Baxnie
veremos a seguir os loops for e while.

 

Cade o while?

 

Você falou do break e não falou do continue;

 

O exercício não deveria obrigar a usar o for ou while?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Piikachu    0
Piikachu

É, falta a estrutura do While e o comando continue ;X

Se puder edita ae pra arrumar :D

Compartilhar este post


Link para o post
Compartilhar em outros sites
Dark Skyllen    7
Dark Skyllen

#Baxnie e Piikachu

 

Se lerem o nome do tópico verão que está escrito: Aulas de C++ [Aula 3 parte 1]

Não terminei as aulas 3 ainda, irei postar o restante na outra aula, o while e o continue.

Pra ficar mais fácil o entendimento e até mesmo a organização do tópico.

 

Quanto aos exercícios sim, eu tive uma idéia, escrevi ela, mas me expressei mal :fail:

Vou refazer o exercício.

 

Obrigado,

Dark Skyllen

Editado por Dark Skyllen

Compartilhar este post


Link para o post
Compartilhar em outros sites
BLackBode    0
BLackBode

Bem legal a aula, nao entendi muito bem oque deveria ser feito no exercicio, mas acho que o que eu fiz deu certo :).. só nao consegui uma forma de parar o loop usando uma variavel char

 

bom.. tá ai o dever :)

 

[spoiler= Programa1]#include <cstdlib>

#include <iostream>

 

using namespace std;

 

int main(int argc, char *argv[])

{

 

for(float qntproduto, preco; ; ) // loop for com as variaveis qntproduto, preco --sem parametros

{

cout << "Digite a quantidade do produto: " << endl;

cin >> qntproduto; // entrada de dados (qntproduto)

cout << endl << "Digite o preco do produto: " << endl;

cin >> preco; // entrada de dados (preco)

 

if(qntproduto <= 5) // condiçao sem desconto

{

system("cls"); // limpa tela

cout << "Como voce comprou " << qntproduto << " produtos voce nao obteve desconto." << endl;

cout << "Portanto, o preco total e de: R$" << qntproduto*preco;

}

if(qntproduto > 5 && qntproduto <= 10) // condiçao desconto 5%

{

system("cls"); // limpa tela

cout << "Como voce comprou " << qntproduto << " produtos voce obteve um desconto de 5%" << endl;

cout << "Portanto, o preco total e de: R$" << qntproduto*preco*0.95;

}

if(qntproduto > 10 && qntproduto <= // condiçao desconto 10%

{

system("cls"); // limpa tela

cout << "Como voce comprou " << qntproduto << " produtos voce obteve um desconto de 10%" << endl;

cout << "Portanto, o preco total e de: R$" << qntproduto*preco*0.90;

}

if(qntproduto > 15) // condiçao desconto 15%

{

system("cls"); // limpa tela

cout << "Como voce comprou " << qntproduto << " produtos voce obteve um desconto de 15%" << endl;

cout << "Portanto, o preco total e de: R$" << qntproduto*preco*0.85;

}

 

system("cls"); // limpa tela

 

}

 

 

system("PAUSE");

return EXIT_SUCCESS;

}

 

 

 

 

 

--- edit

 

Consegui parar o loop com o material da proxima aula, ( std::string sair; ) ai deu certo :)

Editado por BLackBode
comentario

Compartilhar este post


Link para o post
Compartilhar em outros sites
Imitador    0
Imitador

Opa, acabei minha tarefa :D

 

[spoiler=Tarefa]

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]) {

int produto, quantidade;
float preco;

cout << "Quantos produtos diferentes voce quer comprar?" << endl;
cin >> produto;
system("cls"); 

for (int pr=1; pr <= produto; pr++){

cout << "\nDigite o preco do produto " << pr << ":\n";
cin >> preco;
}

system("cls"); 

for (int p=1; p <= produto; p++){

cout << "\nDigite a quantidade de produtos " << p << " que voce quer comprar:\n";
cin >> quantidade;

if (quantidade > 5 && quantidade <= 10) {
system("cls");
cout << "\nVoce iria pagar R$" << quantidade*preco << ", mais como esta comprando entre 5 a 10 produtos, voce ira ganhar um desconto de 5%, pagando no total:\n\nR$" << (quantidade*preco)*(0.95) << "\n";         
} else if (quantidade > 10 && quantidade <= 15) {
system("cls");
cout << "\nVoce iria pagar R$" << quantidade*preco << ", mais como esta comprando entre 10 a 15 produtos, voce ira ganhar um desconto de 10%, pagando no total:\n\nR$" << (quantidade*preco)*(0.90) << "\n";         
} else if (quantidade > 15) {
system("cls");
cout << "\nVoce iria pagar R$" << quantidade*preco << ", mais como esta comprando mais de 15 produtos, voce ira ganhar um desconto de 15%, pagando no total:\n\nR$" << (quantidade*preco)*(0.85) << "\n"; 
} else {
system("cls");
cout << "\nVoce ira pagar R$" << quantidade*preco << ", sem nenhum desconto." << "\n"; 
}


system("pause"); return 0;

}
}

 

Editado por Imitador

Compartilhar este post


Link para o post
Compartilhar em outros sites
MaXwEllDeN    13
MaXwEllDeN
#include <cstdlib>
#include <iostream>

using namespace std;

int rand(int min, int max) {
       return min + (rand() % (max - min + 1));
}
int main(int argc, char *argv[])
{

int produtoscount, produtocount;
cout << "Quantos produtos voce vai comprar?" << endl;
cin >> produtoscount;


for (int i=1 ; i <= produtoscount; i++){
int vetor[produtoscount+1];
vetor[i] = (rand(1, 10));//(y/100)* 5

cout << "\nProduto "<<i<< " custa R$"<<vetor[i]<<", quantos voc vai levar?\n";
cin >> produtocount;

double totalm = produtocount * vetor[i];

cout << "\nvoce levou "<<produtocount<<" unidade(s) do produto "<<i<<", no total gastou R$"<<totalm<<" com o produto "<<i<<".\n";
if (produtocount >= 15){

double y = (totalm/100)* 15;
cout << "mas ja que voce levou "<<produtocount<<" unidades do Produto "<<i<< " e comprando 15 ou mais unidades de qualquer produto voce leva 15% de desconto, voce paga R$"<<y<<" a menos, entao, voce paga R$"<<totalm - y<<" no total.\n\n";
}
else if (produtocount >= 10){

double y = (totalm/100)* 10;
cout << "mas ja que voce levou "<<produtocount<<" unidades do Produto "<<i<< " e comprando 10 ou mais unidades de qualquer produto voce pode levar ate leva 15% de desconto, voce paga R$"<<y<<" a menos, entao, voce paga R$"<<totalm - y<<" no total.\n\n";
}
else if (produtocount >= 5){

double y = (totalm/100)* 5;
cout << "mas ja que voce levou "<<produtocount<<" unidades do Produto "<<i<< " e comprando 5 ou mais unidades de qualquer produto voce pode levar ate leva 15% de desconto, voce paga R$"<<y<<" a menos, entao, voce paga R$"<<totalm - y<<" no total.\n\n";
}
}

cout<<
   system("PAUSE");
   return EXIT_SUCCESS;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×