Luiz_Junior Postado Março 20, 2005 Denunciar Share Postado Março 20, 2005 alguém ai sabe fazer uma contagem de % (porcetagem) usando for ou while, eu queria um exemplo assim, mas somente com for e while. 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 , alguém poderia me ensinar como demorar essa contagem??? Vlws Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rafaelbortoletto Postado Março 20, 2005 Denunciar Share Postado Março 20, 2005 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; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Luiz_Junior Postado Março 20, 2005 Autor Denunciar Share Postado Março 20, 2005 Ae deu erro eu tentei concertar mais eu não sei o sleep Bem deu esses erros aki ó:file2.cpp: In function `int main()':file2.cpp:12: error: `_sleep' undeclared (first usefile2.cpp:12: error: (Each undeclared identifier isfunction it appears in.)file2.cpp:17:2: warning: no newline at end of fileVlws Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 21, 2005 Denunciar Share Postado Março 21, 2005 Experimente com a função Sleep (note o "S" maiúsculo) do <windows.h>.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Luiz_Junior Postado Março 21, 2005 Autor Denunciar Share Postado Março 21, 2005 Ae deu erro 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.cppfile2.cpp:4:21: windows.h: No such file or directoryfile2.cpp: In function `int main()':file2.cpp:13: error: `Sleep' undeclared (first use thfile2.cpp:13: error: (Each undeclared identifier is rfunction it appears in.)file2.cpp:18:2: warning: no newline at end of fileEspero q fiz a coisa certa.Vlws Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Heldinho Postado Março 21, 2005 Denunciar Share Postado Março 21, 2005 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Luiz_Junior
alguém ai sabe fazer uma contagem de % (porcetagem) usando for ou while, eu queria um exemplo assim, mas somente com for e while.
A contagem é q nem uma contagem de instalação.
Bem gente eu tentei bem assim:
Bem gente eu tentei + ou - assim, só q apareceu a contagem tudo de uma vez , alguém poderia me ensinar como demorar essa contagem???
Vlws
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
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.