Ir para conteúdo
Fórum Script Brasil

evandrolnr

Membros
  • Total de itens

    10
  • Registro em

  • Última visita

Sobre evandrolnr

evandrolnr's Achievements

0

Reputação

  1. Agora sim, está com o tempo de execução mais coerente. O loop de 1 bilhão de iterações levou 30 segundos. Obrigado! /* TestaLoop.c */ #include <stdio.h> #include <stdlib.h> int main(){ /* for(int i=0;i< 5000000;i++) for(int j=0;j< 5000000;j++) if (i == 3000000 && j == 3000000) printf("\nachou i e j %d\t%d\n",i,j); */ for(volatile int i=0;i< 1000000;i++) for(volatile int j=0;j< 1000;j++) if (i == 10000 && j == 500) printf("\nachou i e j %d\t%d\n",i,j); return 0; }
  2. Apenas estou avaliando a performance das linguagens. Veja alguns testes comparativos Liguagem C 25 trilhões de iterações em meio segundo Java 10 bilhões de iterações em 25 segundos Natural* 5 milhões de iterações em 5 segundos *Linguagem Nativa do banco de dados Adabas
  3. Pessoal, estou impressionado com a velocidade de execução de um loop na linguagem C. O programa abaixo gera 25 trilhões de iterações, e é executado imediatamente (não leva nem meio segundo). Estou fazendo alguma coisa errada, ou é isto mesmo? :blink: Estou usando sistema operacional Unix, computador IBM, AIX. /* TestaLoop.c */ #include <stdio.h> #include <stdlib.h> int main(){ for(int i=0;i< 5000000;i++) for(int j=0;j< 5000000;j++) if (i == 3000000 && j == 3000000) printf("\nachou i e j %d\t%d\n",i,j); return 0; }
  4. Estive estudando a diferença entre o uso dos caracteres '\r' e '\n', e observei que: 1) quando usamos '\r' tudo o que já foi digitado na linha corrente é descartado, e prevalece o novo texto. 2) quando usamos '\n' é impresso o que está na linha corrente e o programa pula para a próxima linha para iniciar o novo texto. No exemplo do programa a seguir, a saída é: inicio testando2 testando3 testando4 /* TestaReturn1.c */ #include <stdio.h> #include <stdlib.h> int main() { printf("inicio"); printf("\n\ntestando1\rtestando2\n\n"); printf("\n\ntestando3\ntestando4\n\n"); return 0; } Alguém comenta? :rolleyes:
  5. Eu testei a última solução proposta e funcionou. Obrigado! :rolleyes:
  6. evandrolnr

    Teclando <enter>

    A versão do comilador c que estou usando (Oracle ProC) não tem o include <conio.h>. Peguei um programa de treinamento que usa '\r' como teste de <enter> (vide abaixo), e converti a função getche() em scanf(). A versão do programa que eu fiz só funciona se eu usar '\n' como teste de<enter> ?! :blush: /* Contachar.C */ /* Conta caracteres de uma frase */ #include <stdio.h> #include <stdlib.h> #include <conio.h> para getche() */ int main() { int cont=0; /* Contador */ while(getche() != '\r') /* Enquanto não [Enter] */ cont++; /* Corpo do laço */ /* Fora do laço */ printf("\nO número de caracteres é %d\n" , cont); system("PAUSE"); return 0; }
  7. evandrolnr

    Teclando <enter>

    Acho que descobri o que estava errado com o <enter>. Ao pressionar <return> obtemos uma nova linha. O caracter que indica nova linha é '\n', e não '\r'. Não sei ainda em que caso é usado '\r'. O programa ficou assim: #include <stdio.h> #include <stdlib.h> int main() { char resp; char resp1 = '\n'; scanf("%c",&resp); /* é digitado enter para teste */ printf("\nresp %d\n",resp); printf("\nresp1 %d\n",resp1); if ( resp == '\n' ) printf("\nDigitou enter\n"); else printf("\nNão digitou enter\n"); return 0; }
  8. Boa noite. Fiz um programa que recebe um <enter> como argumento e testa a tecla digitada. O compilador não entende o meu enter como sendo tal!? #include <stdio.h> #include <stdlib.h> int main() { char resp; char resp1 = '\r'; scanf("%c",&resp); /* é digitado <enter> para teste */ printf("\nresp %d\n",resp); printf("\nresp1 %d\n",resp1); if ( resp == '\r' ) printf("\ndigitou enter\n"); else printf("\nnão digitou enter\n"); return 0; }
  9. Pessoal, descobri o que estava errado. O Enter ocupa um caracteres, portanto quando digito 'a'<enter> estou digitando dois caracteres. Para driblar este problema, o programa precisa prever um caractere enter. :rolleyes: /* Adivinha1z.c */ #include <stdio.h> #include <stdlib.h> /* para system() e rand() */ int main() { char resp; /* resposta do usuário */ char resp1; char enter; printf("\n\nDigite uma letra:\n"); scanf("%c%c",&resp,&enter); printf("\nVocê digitou %c",resp); printf("\n\nDigite uma letra:\n"); scanf("%c%c",&resp1,&enter); printf("\nVocê digitou %c",resp1); return 0;
  10. Pessoal, boa tarde! Sou novo em linguagem C, e estou fazendo um treinamento! Estou treinando para usar o Oracle ProC. O Oracle ProC que uso não tem a biblioteca <conio.h> Por isto, estou usando como entrada de dados a função scanf() Tenho um programa que recebe dois caracteres. O primeiro é solicitado e mostrado a seguir. O segundo, durante a execução, não é solicitado (o programa pula o comando). O que estou fazendo de errado? :huh: /* Adivinha1z.c */ #include <stdio.h> #include <stdlib.h> /* para system() e rand() */ int main() { char resp; /* resposta do usuário */ char resp1; printf("\n\nDigite uma letra:\n"); scanf("%c",&resp); printf("\nVocê digitou %c",resp); printf("\n\nDigite uma letra:\n"); scanf("%c",&resp1); printf("\nVocê digitou %c",resp1); return 0; }
×
×
  • Criar Novo...