Ir para conteúdo
Fórum Script Brasil
  • 0

Aquelas Contagens De %


Luiz_Junior

Pergunta

alguém ai sabe fazer uma contagem de % (porcetagem) usando for ou while, eu queria um exemplo assim, mas somente com for e while. wink.gif

A contagem é q nem uma contagem de instalação.

Bem gente eu tentei bem assim:

#include <iostream>

using namespace std;

int main()

  {

  int contador;

  for(contador=1;contador<=10;contador++){

         cout<<"\n";

         cout<<contador<<"%";

      }

return 0;      

  }

Bem gente eu tentei + ou - assim, só q apareceu a contagem tudo de uma vez tongue.gif , alguém poderia me ensinar como demorar essa contagem??? biggrin.gif

Vlws

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Consegui retardar a contagem da porcentagem utilizando a função _sleep da bliblioteca

stdlib.h. Veja como ficou:

#include <iostream>
#include <stdlib.h>
#include <stdio.h>

using namespace std;

int main()
{
  int contador;
  for(contador=1;contador<=10;contador++){
         cout<<"\n";
         _sleep(1000);
         cout<<contador<<"%";
  }
  system("pause");
  return 0;
}

Link para o comentário
Compartilhar em outros sites

  • 0

Ae deu erro eu tentei concertar mais eu não sei o sleep tongue.gif

Bem deu esses erros aki ó:

file2.cpp: In function `int main()':

file2.cpp:12: error: `_sleep' undeclared (first use

file2.cpp:12: error: (Each undeclared identifier is

function it appears in.)

file2.cpp:17:2: warning: no newline at end of file

Vlws

Link para o comentário
Compartilhar em outros sites

  • 0

Ae deu erro tongue.gif

Eu tentei bem assim ó:

#include <iostream>

#include <stdlib.h>

#include <stdio.h>

#include <windows.h>

using namespace std;

int main()

{

int contador;

for(contador=1;contador<=10;contador++){

        cout<<"\n";

        Sleep(1000);

        cout<<contador<<"%";

}

system("pause");

return 0;

}

E deu esse erro aki ó:

C:\CPP>gpp -o file2.exe file2.cpp

file2.cpp:4:21: windows.h: No such file or directory

file2.cpp: In function `int main()':

file2.cpp:13: error: `Sleep' undeclared (first use th

file2.cpp:13: error: (Each undeclared identifier is r

function it appears in.)

file2.cpp:18:2: warning: no newline at end of file

Espero q fiz a coisa certa.

Vlws

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, se você quizer fazer uma porcentagem verdadeira, que varia de arquivo pra arquivo, de pc pra pc, de acordo com a velocidade, não tera que incrementar o %.. Primeiro você tem que saber o que você quer fazer com a porcentagem, tipo, calcular quantos % já foi copiado de um arquivo.. eu fiz este exemplo, olhe o código:

#include <stdio.h>
#include <conio.h>

int main(int argc, char **argv){
if(argc != 3){
printf("Modo de uso: %s [ArquivoOrigem] [ArquivoDestino]\nExemplo: %s Arquivo.exe Copiadele.exe",basename(argv[0]),basename(argv[0]));
}
else {
FILE *origem;
FILE *destino;
long int i=0;
long int ii=0;
long int iii=0;
char conteudo[0];
origem = fopen(argv[1],"rb");

// Linhas abaixo detectam a existencia do arquivo. se não existe, fala que não existe e ensina ausar o programa
if(!origem){
printf("Atencao! O arquivo %s não foi encontrado.\nModo de uso: %s [ArquivoOrigem] [ArquivoDestino]\nExemplo: %s Arquivo.exe Copiadele.exe",argv[1],basename(argv[0]),basename(argv[0]));
return 0;
}
destino = fopen(argv[2],"wb");
// As linhas acima detectam a existencia do arquivo



for(i=0; !feof(origem); i++){
// coloquei a funcao abaixo só porque for vazio não incrementa o I aki em casa :S
fscanf(origem,"%c",&conteudo[0]);
}
fclose(origem);
origem = fopen(argv[1],"rb");
system("cls");
textbackground(BLUE);
textcolor(YELLOW);
ii=0;
while(ii<21){
gotoxy(2+ii,2);
cprintf("%c",176);
ii++;
}
ii=0;
while(ii!=i-1){
// O esquema abaixo torna o programa mais rapido, fazendo que mostre menos vezes a porcentagem na tela.
if(ii == iii+100){
iii=ii;
gotoxy(1,3);
printf("%d%% Concluido.",((ii*100)/i)+1);
gotoxy((((((ii*100)/i)+1)*20)/100)+2,2);
cprintf("%c",219);

}
// (((((ii*100)/i)+1)*20)/100)

// O if acima torna o programa mais rapido, fazendo que mostre menos vezes a porcentagem na tela.
fscanf(origem,"%c",&conteudo[0]);
fprintf(destino,"%c",conteudo[0]);
ii++;
}
gotoxy(1,4);
}
/*
50 é 25% de 200
50/200*100
ii*100/i


*/
}

Teste o código com um arquivo de 3 MB por exemplo, se quizer que dê tempo de ver a porcentagem.. e depois teste novamente em algum computador mais lento, você verá que a porcentagem chegará no 100 quando acabar, mais o tempo varia...

Espero que seja util, e não sei se entendi o que você queria...

Até Mais!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...