LusoRobótica - Robótica em Português

Software => C/C++ => Tópico iniciado por: BigFoot em 12 de Fevereiro de 2015, 13:21

Título: system("PAUSE")
Enviado por: BigFoot em 12 de Fevereiro de 2015, 13:21
Boas Pessoal tenho um trabalho de programação para fazer... e preciso de usar a função system("PAUSE") para parar o programa em um ponto... mas tambem preciso que a frase seja alterada em vez de "Prima qualquer tecla para continuar" preciso da frase "Volte a Tentar" existe alguma maneira de mudar a frase???

Aguardo respostas... Agradeço toda a ajuda
Título: Re: system("PAUSE")
Enviado por: msr em 12 de Fevereiro de 2015, 14:35
printf("Prima qualquer tecla...")
getchar()

A segunda função bloquei enquando nao premires nenhuma tecla :)
Título: Re: system("PAUSE")
Enviado por: Njay em 12 de Fevereiro de 2015, 14:59
Abre uma linha de comando e faz

help pause

e tens aí a tua resposta. Acho que não te safas só com a system().
Título: Re: system("PAUSE")
Enviado por: BigFoot em 12 de Fevereiro de 2015, 15:41
Malta muito Obrigado mas resolvi a solução por isto

printf("Por favor volte a tentar ... ");
                system("pause > nul");

o > nul apaga a frase escrita e entao fica com a anterior...

Obrigado pela ajuda e o vosso tempo na mesma!!

Abraço e boas Invenções
Título: Re: system("PAUSE")
Enviado por: Njay em 12 de Fevereiro de 2015, 15:44
Boa :)
Não apaga a frase, "manda-a para o lixo".
Título: Re: system("PAUSE")
Enviado por: StarRider em 12 de Fevereiro de 2015, 15:53

LOL ... usar uma chamada ao interpretador de comandos do sistema para fazer um pause dentro de um
programa em C ... é mesma coisa que correr um programa externo para fazer essa pause.

... a ainda por cima a "solução" passa por redireccionar o outupt do interpretador de comandos para
um outro dispositivo (null).

Faz um favor ao pessoal, não chames a isso um "trabalho de programação" que estás a ofender todos
os programadores.

Abraços,
PA

Título: Re: system("PAUSE")
Enviado por: Njay em 12 de Fevereiro de 2015, 16:16
Vá lá Star, tenho andado a tentar controlar-me, assim não me ajudas :p . Ele diz que precisa de usar a função system... não me espanta que seja um requisito do trabalho...
Título: Re: system("PAUSE")
Enviado por: BigFoot em 12 de Fevereiro de 2015, 17:07
É malta sou iniciante em C... ja programei arduino, Logo da Siemens, Ladder da OMRON, HTML por bloco de notas.... sou iniciante tirei um curso de equivalencia ao 12º ano... agora estou num CET de Automação e Energia... e so tive 16h ainda de C.... StarRider ja vi pelos teus projectos que es Boss nisto mas calma quero aprender... acho que tenho desculpa.... =D

e so mais uma coisa foi a prof que me deu esta solução apesar de ter dito que existe outras... não me disse é quais... =/


Cups
Título: Re: system("PAUSE")
Enviado por: BigFoot em 12 de Fevereiro de 2015, 17:16
MSR epa o getchsar(); nao funciona porque tenho uma frase seguinte de erro que tem de ficar apresentada e so sai quando clico numa tecla e tem que voltar ao mesmo ponto....  Obrigado Pela ajuda na mesma! =)
vou deixar aqui o codigo para verem epa não me escumuguem todo por matar pulgas diferente de pessoal com mais experiencia =DDD (StarRider)

O que uso é o codeblock... #include <stdio.h>
#include <stdlib.h>

int main()
{
    char OPCAO,XX=0;
    float AGUA=0,LUZ=0,GAS=0,TELEFONE=0,TELEMOVEL=0,INTERNET=0,TELEVISAO=0;
    float S_AGUA=0,S_LUZ=0,S_GAS=0,S_TELEFONE=0,S_TELEMOVEL=0,S_INTERNET=0,S_TELEVISAO=0,T_SOMA,T_IVA;
    int I_AGUA=0,I_LUZ=0,I_GAS=0,I_TELEFONE=0,I_TELEMOVEL=0,I_INTERNET=0,I_TELEVISAO=0,T_IND=0;
    float M_AGUA=0,M_LUZ=0,M_GAS=0,M_TELEFONE=0,M_TELEMOVEL=0,M_INTERNET=0,M_TELEVISAO=0;
            printf("*****************************************\n");
            printf("*\tBem-Vindo\t\t\t*\n");
            printf("*\t(GF):Gestor de Faturas\t\t*\n");
            printf("*****************************************\n");
            system("PAUSE");
            system("cls");
    do{
            T_SOMA=S_AGUA+S_LUZ+S_GAS+S_TELEFONE+S_TELEMOVEL+S_INTERNET+S_TELEVISAO;
            T_IND=I_AGUA+I_LUZ+I_GAS+I_TELEFONE+I_TELEMOVEL+I_INTERNET+I_TELEVISAO;
            T_IVA=T_SOMA*0.23;


    // Menu
    printf("*********************************************************\n");
    printf("*\tMENU PRINCIPAL - SELECCIONE UMA OPCAO\t\t*\n");
    printf("*\t(1)-Indicar valor da fatura da agua\t\t*\n");
    printf("*\t(2)-Indicar valor da fatura da luz\t\t*\n");
    printf("*\t(3)-Indicar valor da fatura do gas\t\t*\n");
    printf("*\t(4)-Indicar valor da fatura do telefone\t\t*\n");
    printf("*\t(5)-Indicar valor da fatura do telemovel\t*\n");
    printf("*\t(6)-Indicar valor da fatura da internet\t\t*\n");
    printf("*\t(7)-Indicar valor da fatura da televisao\t*\n");
    printf("*\t(8)-Consultar estatisticas\t\t\t*\n");
    printf("*\t(t)-Indicar valor da fatura da agua\t\t*\n");
    printf("*********************************************************\n");
    printf("SEL:[   ]\b\b\b");
    if(XX=='1'||XX=='2'||XX=='3'||XX=='4'||XX=='5'||XX=='6'||XX=='7'){
                OPCAO=XX;
            }else{
    scanf("%c",&OPCAO);
            }
            system("cls");


    switch(OPCAO){

    case '1':
        system("cls");
        XX=0;
        printf("[Dados de uma Fatura]\n");
        printf("Indique o valor da fatura da agua ]0,500]:[______]\b\b\b\b\b\b\b");
        scanf("%f",&AGUA);
            if(AGUA>0&&AGUA<=500){
                I_AGUA++;
                S_AGUA=S_AGUA+AGUA;
                M_AGUA=S_AGUA/I_AGUA;
        }else{

                printf("ERRO:Valor fora da gama permitida\n");
                XX='1';
                printf("Por favor volte a tentar ... ");
                getchar();
        }
        break;

    case '2':
        system("cls");
        XX=0;
        printf("[Dados de uma Fatura]\n");
        printf("Indique o valor da fatura da luz ]0,500]:[______]\b\b\b\b\b\b\b");
        scanf("%f",&LUZ);
        if(LUZ>0&&LUZ<=500){
                I_LUZ++;
                S_LUZ=S_LUZ+LUZ;
                M_LUZ=S_LUZ/I_LUZ;
        }else{
                printf("ERRO:Valor fora da gama permitida\n");
                XX='2';
                printf("Por favor volte a tentar ... ");
                system("pause > nul");
        }
        break;

    case '3':
        system("cls");
        XX=0;
        printf("[Dados de uma Fatura]\n");
        printf("Indique o valor da fatura da luz ]0,500]:[______]\b\b\b\b\b\b\b");
        scanf("%f",&GAS);
        if(GAS>0&&GAS<=500){
                I_GAS++;
                S_GAS=S_GAS+GAS;
                M_GAS=S_GAS/I_GAS;
        }else{
                printf("ERRO:Valor fora da gama permitida\n");
                XX='3';
                printf("Por favor volte a tentar ... ");
                system("pause > nul");
        }
        break;

    case '4':
        system("cls");
        XX=0;
        printf("[Dados de uma Fatura]\n");
        printf("Indique o valor da fatura da luz ]0,500]:[______]\b\b\b\b\b\b\b");
        scanf("%f",&TELEFONE);
        if(TELEFONE>0&&TELEFONE<=500){
                I_TELEFONE++;
                S_TELEFONE=S_TELEFONE+TELEFONE;
                M_TELEFONE=S_TELEFONE/I_TELEFONE;
        }else{
                printf("ERRO:Valor fora da gama permitida\n");
                XX='4';
                printf("Por favor volte a tentar ... ");
                system("pause > nul");
        }
        break;

    case '5':
        system("cls");
        XX=0;
        printf("[Dados de uma Fatura]\n");
        printf("Indique o valor da fatura da luz ]0,500]:[______]\b\b\b\b\b\b\b");
        scanf("%f",&TELEMOVEL);
        if(TELEMOVEL>0&&TELEMOVEL<=500){
                I_TELEMOVEL++;
                S_TELEMOVEL=S_TELEMOVEL+TELEMOVEL;
                M_TELEMOVEL=S_TELEMOVEL/I_TELEMOVEL;
        }else{
                printf("ERRO:Valor fora da gama permitida\n");
                XX='5';
                printf("Por favor volte a tentar ... ");
                system("pause > nul");
        }
        break;

    case '6':
        system("cls");
        XX=0;
        printf("[Dados de uma Fatura]\n");
        printf("Indique o valor da fatura da luz ]0,500]:[______]\b\b\b\b\b\b\b");
        scanf("%f",&INTERNET);
        if(INTERNET>0&&INTERNET<=500){
                I_INTERNET++;
                S_INTERNET=S_INTERNET+INTERNET;
                M_INTERNET=S_INTERNET/I_INTERNET;
        }else{
                printf("ERRO:Valor fora da gama permitida\n");
                XX='6';
                printf("Por favor volte a tentar ... ");
                system("pause > nul");
        }
        break;

    case '7':
        system("cls");
        XX=0;
        printf("[Dados de uma Fatura]\n");
        printf("Indique o valor da fatura da luz ]0,500]:[______]\b\b\b\b\b\b\b");
        scanf("%f",&TELEVISAO);
        if(TELEVISAO>0&&TELEVISAO<=500){
                I_TELEVISAO++;
                S_TELEVISAO=S_TELEVISAO+TELEVISAO;
                M_TELEVISAO=S_TELEVISAO/I_TELEVISAO;
        }else{
                printf("ERRO:Valor fora da gama permitida\n");
                XX='7';
                printf("Por favor volte a tentar ... ");
                system("pause > nul");
        }
        break;

    case '8':
        system("cls");
        printf("*****************************************************************\n");
        printf("*\t\tESTATISTICAS FATURAS\t\t\t\t*\n");
        printf("*[Agua]\t\tIndicadas:%d\tSoma:%07.2f Media:%07.2f\t*\n",I_AGUA,S_AGUA,M_AGUA);
        printf("*[Luz]\t\tIndicadas:%d\tSoma:%07.2f Media:%07.2f\t*\n",I_LUZ,S_LUZ,M_LUZ);
        printf("*[Gas]\t\tIndicadas:%d\tSoma:%07.2f Media:%07.2f\t*\n",I_GAS,S_GAS,M_GAS);
        printf("*[Telefone]\tIndicadas:%d\tSoma:%07.2f Media:%07.2f\t*\n",I_TELEFONE,S_TELEFONE,M_TELEFONE);
        printf("*[Telemovel]\tIndicadas:%d\tSoma:%07.2f Media:%07.2f\t*\n",I_TELEMOVEL,S_TELEMOVEL,M_TELEMOVEL);
        printf("*[Internet]\tIndicadas:%d\tSoma:%07.2f Media:%07.2f\t*\n",I_INTERNET,S_INTERNET,M_INTERNET);
        printf("*[Televisao]\tIndicadas:%d\tSoma:%07.2f Media:%07.2f\t*\n\n",I_TELEVISAO,S_TELEVISAO,M_TELEVISAO);
        printf("*Total Indicadas:     %04d\t\t\t\t\t*\n",T_IND);
        printf("*Total Soma:\t      %07.2f\t\t\t\t\t*\n",T_SOMA);
        printf("*Total Soma IVA(0.23%):%07.2f\t\t\t\t\t*\n",T_IVA);
        printf("*****************************************************************\n");
        system("PAUSE");
        system("cls");
        break;


        }
        }while(OPCAO!='t');
        return 0;
}
Título: Re: system("PAUSE")
Enviado por: jm_araujo em 12 de Fevereiro de 2015, 17:28
MSR epa o getchsar(); nao funciona porque tenho uma frase seguinte de erro que tem de ficar apresentada e so sai quando clico numa tecla e tem que voltar ao mesmo ponto.... 

Explica lá porque é que não funciona?
O getchar(); fica à espera que carregues numa tecla e depois segue a execução normal do programa, como me parece que queres.
Título: Re: system("PAUSE")
Enviado por: Njay em 12 de Fevereiro de 2015, 17:30
Este livro é *muito* bom para quem quer aprender C, e não é grande: "The C Programming Language" de Kernighan & Ritchie (2da edição)

Não sei se está autorizada a publicação livre do livro, mas se googlarem "c kernighan & ritchie" vão encontrar vários sites aparentemente "legitimos" com o livro em PDF. Para comprar a amazon do uk tem versões usadas a partir de uns 20€.
Título: Re: system("PAUSE")
Enviado por: BigFoot em 12 de Fevereiro de 2015, 17:32
epa eu no case 1 pus o getchar(); e ele arranca logo mal eu ponho o valor maior que 500... não para e mostra a mensagem...
Título: Re: system("PAUSE")
Enviado por: BigFoot em 12 de Fevereiro de 2015, 17:35
Njay obrigado pela sugestão mas ainda ontem comprei um que é Fundamentos de Programação usando C de Marques de Sá... é um prof da universidade do Porto que o escreveu... e foi a minha prof que recomendou...
Título: Re: system("PAUSE")
Enviado por: jm_araujo em 12 de Fevereiro de 2015, 17:42
Tive aulas com ele (antes passar a ter sido reitor da UP).
Estás muito melhor com o K&R.
Título: Re: system("PAUSE")
Enviado por: BigFoot em 12 de Fevereiro de 2015, 17:56
Reitor ela!! Parabens!! epa boa tives-te aulas no Porto eu estou no IPL... acredito se tu o dizes... tenho de ir a procura-lo agora não que as minha economias foram para este =/...
Título: Re: system("PAUSE")
Enviado por: jm_araujo em 12 de Fevereiro de 2015, 18:12
Deu-me uma breca mental. O professor que passou a reitor foi Marques dos Santos (e não Marques de Sá). Foram ambos meus professores quando estudei na FEUP. O Marques de Sá deu-me programação e computadores e era assim um bocado que para o soporífero.

Mas a recomendação do K&R mantém-se. Os autores são os criadores da linguagem. E lê bem a resposta do Njay, não tens que gastar dinheiro por enquanto se quiseres aceder a ele.
Título: Re: system("PAUSE")
Enviado por: StarRider em 13 de Fevereiro de 2015, 12:31
Vá lá Star, tenho andado a tentar controlar-me, assim não me ajudas :p . Ele diz que precisa de usar a função system... não me espanta que seja um requisito do trabalho...

Ainda contei até 10 mas mesmo assim não consegui resistir ... ;)

Abraços,
PA
Título: Re: system("PAUSE")
Enviado por: StarRider em 13 de Fevereiro de 2015, 12:38
É malta sou iniciante em C... ja programei arduino, Logo da Siemens, Ladder da OMRON, HTML por bloco de notas.... sou iniciante tirei um curso de equivalencia ao 12º ano... agora estou num CET de Automação e Energia... e so tive 16h ainda de C.... StarRider ja vi pelos teus projectos que es Boss nisto mas calma quero aprender... acho que tenho desculpa.... =D

e so mais uma coisa foi a prof que me deu esta solução apesar de ter dito que existe outras... não me disse é quais... =/


Cups


Boas,

Sem stress ;)

Acho que, se de facto é como dizes, quem devia aprender era esse pseudo-professor, gostava de
lhe poder chamar INCOMPETENTE na cara!

A solução que o msr te deu (a do getchar() ) é a ideal para este caso, não sei para que sistema
estas a programar (um SO da Microsoft) mas pode ser necessário limpar a buffer do teclado antes de
chamares a função getchar().

Qual é o compilador que estás a usar ?

Abraços,
PA
Título: Re: system("PAUSE")
Enviado por: BigFoot em 14 de Fevereiro de 2015, 18:54
Boas

StarRider estou a programar em Windows... e o programa que uso é o CodeBlocks...

na próxima aula vou chatear a prof para ver se me mostra as outras maneiras de fazer....

cumprimentos!!
Big_Foot
Título: Re: system("PAUSE")
Enviado por: metRo_ em 14 de Fevereiro de 2015, 19:52
Boas

StarRider estou a programar em Windows... e o programa que uso é o CodeBlocks...

na próxima aula vou chatear a prof para ver se me mostra as outras maneiras de fazer....

cumprimentos!!
Big_Foot

O CodeBlocks e um IDE (resumindo: editor de codigo) o compilador sera o gcc do mingw.
Título: Re: system("PAUSE")
Enviado por: senso em 14 de Fevereiro de 2015, 21:22
Tambem pode ser o da Microsoft..

Não entendo é estas entradas a pés juntos a mandar abaixo tudo quanto é post.
Título: Re: system("PAUSE")
Enviado por: BigFoot em 15 de Fevereiro de 2015, 17:37
Boas

metRO epa ya não sei ver o compilador =/ a prof e que instalou....

senso haha é verdade.... escumungão uma pessoa toda... pela minha maneira de programar :P epa sempre ouvi dizer que há n maneiras de matar pulgas.... =D

Cumprimentos

Big_Foot
Título: Re: system("PAUSE")
Enviado por: BigFoot em 15 de Fevereiro de 2015, 23:44
ok achei agora porque não conseguia usar o getch(); para fazer pause... tenho de fazer include  com conio.h =DDDD espetaculo!!!!

so mais uma duvida alguem sabe como fasso para imprimir caracter a caracter no ecran?? tou farto de procurar no youtube etc não acho nada =/
Título: Re: system("PAUSE")
Enviado por: Njay em 16 de Fevereiro de 2015, 00:29
printf com o format specifier c (vê na doc do printf, por exemplo neste site: cplusplus.com, secção reference -> c library)