Ir para conteúdo
Fórum Script Brasil

Ark

Membros
  • Total de itens

    31
  • Registro em

  • Última visita

Sobre Ark

  • Data de Nascimento 18/05/1989

Contatos

  • MSN
    adeon7r@hotmail.com
  • Website URL
    http://
  • ICQ
    0

Perfil

  • Location
    Sobral - CE

Ark's Achievements

0

Reputação

  1. Aew lobão cara, beleza? cara, se você ainda não sabe C recomendo fortemente você estudar C primeiro pra depois encarar C++. É mais uma questão de bom senso. ;) Se você já souber C, procure entender as diferenças entre ela e C++, veja se alguma coisa que você usava antes é usada da mesma forma em C++, se não, tente se adaptar às mudanças. Pra te indicar apostilas fica difícil sem saber o que você já sabe. Diga suas experiencias, você já sabe C?
  2. Ark

    (Resolvido) clock()

    Aew galera, consegui resolver o problema! Obrigado a todos, um abraço =]
  3. Ark

    Achar porcentagem

    Só tenha cuidado com a precedência de operadores nas expressões aritméticas. Alí no exemplo deu certo porque os operadores * e / tem a mesma precedencia, assim são avaliados da esquerda pra direita. Na dúvida é só separar por parênteses. ;D []'s
  4. Recomendo como IDE o Code::Blocks que além de ser open-source e multiplataforma, não tem tantos bugs quando o DevC++ e/ou wxDevC++. Aliás, há 2 meses uso o CodeBlcoks e nunca vi um bug =] []'s
  5. Ark

    (Resolvido) clock()

    Galera, o que tá acontecendo é que o tempo inicial e o final retornados pela clock() tem valores iguais, o que é IMPOSSÍVEL, já que esse pedaço de código for(count = 0; count < n; count++){ num = rand() % ( 2 * n ) + 1; while(ExisteNoVetor(vetor, num, count)) num = rand() % ( 2 * n ) + 1; vetor[count] = num; } Cria o vetor e ainda por cima chama outra função pra garantir que os números serão distintos, como esse pedaço de código cria o vetor de forma consideravelmente lenta, isso impossibilita que o tempo inical seja igual ao tempo final. Os tempos iniciais e finais estão sendo impressos antes e depois do pedaço de código acima. Testei o código usando a função GetTickCount() da api do windows em vez da clock() e o comportamento estranho persiste. Alguém, por favor, me ajude a "exorcisar" esse programa...hehehehe... cara, ele tá fazendo em ms mesmo. E quanto ao segundo comentário, nem me preocupei em tentar o cast porque os tempos inicial e final nem são diferentes. O problema é justamente o tempo inicial ser igual ao final, eu até coloquei o algoritmo pra gerar vetores maiores, com mais de 1000 elementos, mas isso continua. Espero ter sido claro, obrigado pela atenção, []'s
  6. Aew Kazaraki, Tem esse tutorial aqui: http://www.ic.uff.br/~hcgl/tutorial.html Essa apostila aqui também é muito boa: www.inf.ufrgs.br/~binsely/tutorialc.pdf E tem também esse site aqui que tem todas as funções da biblioteca do C e C++: http://www.cplusplus.com/reference/clibrary/ E um tutorial C++ do mesmo site, inlcusive: http://www.cplusplus.com/doc/tutorial/ Se precisar de ajuda ou mais alguma coisa me disponho a te ajudar cara. Se quiser manter contato: email: adeon7r[at]gmail[dot]com MSN: adeon7r[at]hotmail[dot]com Espero ter ajudado, []'s
  7. Ark

    calcular peso ideal

    Isso porque você tá lendo uma caractere em vez de string. Desse modo o primeiro scanf() lê apenas o primeiro dos caracteres digitados pelo usurário, o segundo scanf() lê o segundo e o resto se o usuário digitar "fica esperando" outro comando que leia caracteres. você devia ter declarado seu nome como vetor de caracteres: #include <stdio.h> main() { char nome[15], sexo; float h; printf("Qual seu nome? "); scanf("%s", nome); // e não esqueca de mudar o código de formato do scanf para %s (string) // o operador de endereço que seguia "nome" some, pois agora nome é um vetor de chars e o nome do vetor sem índice é o endereço inicial do vetor. printf("Digite seu sexo (M/F)\n"); scanf("%c", &sexo); printf("Qual sua altura? \n"); scanf("%f", &h); system("PAUSE"); } Espero ter ajudado, []'s.
  8. Ark

    (Resolvido) clock()

    Aew galera, beleza? estou tentando fazer um trabalho da faculdade pra gerar um vetor com números aleatórios distintos e ordenar esse vetor pelos tres algorítmos básicos de ordenação: seleção, inserção e bolha. Também faz parte do trabalho "pegar" o tempo que cada um gasta para os mais diversos tamanhos de vetor. Agora o problema é justamente com a função clock() do time.h que tá funcionando de forma inesperada, ela simplesmente dá o mesmo tempo final e inicial, sendo que entre uma chamada e outra da função clock() o meu algorítmo faz uma das ordenações acima. No fim das contas o printf abaixo do meu código só imprime zero(final-inicial). Antes de implementar esse programa, eu já tinha feito um teste com a clock() só pra ver como funciona e tal e ela funcionou direitinho pra um programa bem pequeno, alguém pode me dar uma luz? O algorítmo que TENTA calcular o tempo da geração do vetor, sem sucesso: #include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ clock_t n, tFim, tInicio, tDecorrido; srand(time(NULL)); printf("Digite o tamanho do vetor a ser gerado: "); scanf("%d", &n); int vetor[n]; tInicio = clock(); printf("Tempo inicial: %d\n", tInicio); int count, num; for(count = 0; count < n; count++){ num = rand() % ( 2 * n ) + 1; while(ExisteNoVetor(vetor, num, count)) num = rand() % ( 2 * n ) + 1; vetor[count] = num; } tFim = clock(); printf("Tempo final: %d\n", tFim); tDecorrido = tFim - tInicio; printf("Vetor gerado em %d milisegundos:\n", tDecorrido); Imprime(vetor, n); return 0; } E aqui o algorítmo que, não sei porque, é mais especial que o outro, roda: #include <stdio.h> #include <time.h> int main(){ int count, duracao, begin, end; begin = clock(); for(count = 0; count < 10000; count++) printf("%d ", count); end = clock(); duracao = end - begin; printf("O laco for demorou %dms ...", duracao); system("pause"); return 0; } Agradeço pela atenção, []'s.
  9. Ark

    grupo de estudo

    Excelente idéia! Parabéns pela iniciativa. Eu andava meio sumido do fórum, tava meio ocupado com algumas coisas da faculdade, mas agora toh voltando a postar no fórum e me deparei com esse tópico e com o subfórum de c. Devo dizer que toh tão empolgado quanto todos vocês e vou me esforçar pra participar ativamente e postar sempre que puder alguma coisa legal. Abraço.
  10. Ark

    Erro no linker?

    Valeu pela ajuda cara, deu certo aqui! Obrigado pela paciência também. :lol: Abraço.
  11. Ark

    Erro no linker?

    Entendi, mas como o meu header vai saber que é pra "buscar" o código das funções no stack.c? Eu tenho que estabelecer algum vinculo entre os dois ou o compilador já vai saber? Eu vou "dizer" pro compilador que o código fonte das funções tá no stack.c se eu colocar no mesmo dir da stack.h que é o include?
  12. Ark

    Ajuda em programa!

    Gostei dessa Beraldo! :D Desculpe a ignorancia, mas o que funções tem o header iostream.h, e ele é do C++, certo? :huh:
  13. Ark

    método da bolha.

    Dá uma olhada nesse código que eu fiz, adicionei comentários pra ficar mais legível: #include <stdio.h> #include <string.h> // vai retornar o código da menor(a que vem primeiro) string, 0 para a primeira, 1 para a segunda. int strcomp(char *string1, char *string2){ char *p1, *p2; p1 = string1; p2 = string2; while(*p1 && *p2){ if(*p1 == *p2){ // vai varrer as duas strings até que encontre um caractere direfente p1++; p2++; } else if(*p1 > *p2) // quando encontrar vai retornar a string que vem primeiro return 1; // segunda vem primeiro else return 0; // primeira vem primeiro } if(*p1) return 1; // se o laço parar num instante e houver uma string com mais caracteres que a outra else if(*p2) return 0; // vai retornar a mais curta para colocar na frente em relação à ordem } // vai ordenar comparando n-1 vezes, onde n é o número de strings no array - demonio das trocas(bolha) // vai usar a função acima para comparar a strings e consequentemente realizar a troca void sort_str_array(char array[][15]){ char straux[15]; // string auxiliar que vai conter o valor temporário da string a ser trocada pela outra register int cont=0, cont2=0; // inicio da comparação for(cont=1; cont<15; cont++) for(cont2=0; cont2<14; cont2++){ // vai parar no penúltimo pra evitar comparar com o inexistente if(strcomp(array[cont2], array[cont2+1])){ strcpy(straux, array[cont2+1]); // vai realizar a troca de strings strcpy(array[cont2+1], array[cont2]); // colocando assim em ordem alfabética strcpy(array[cont2], straux); } } } void main(void){ char string_array[15][15]; int cont=1; while(cont<=15){ printf("Digite a %d palavra: ", cont); scanf("%15s", string_array[cont-1]); cont++; } sort_str_array(string_array); // chamada da função de ordenação cont=1; while(cont<=15){ printf("string_array[%d] = %s\n", cont, string_array[cont-1]); cont++; } getch(); } strlen(str1) você usa pra "pegar" o tamanho da str1 e strcpy(str1, str2) copia o conteudo de str2 em str1 e ainda tem a strcmp(str1, str2) compara duas strings e retorna um inteiro baseado no resultado: zero se as duas são iguais, < 0 se str1 é menor que str2 e > 0 caso contrário. Lembrando que pra usar essas e mais funções de manipulação de string você tem que incluir o header string.h. Se você preferir, aqui tá o código fonte pra baixar: http://www.4shared.com/file/73840546/f8c01...na_strings.html Saiba mais sobre essas e as outras funções do string.h aqui: http://www.cplusplus.com/reference/clibrary/cstring/ Espero ter ajudado, Abraço.
  14. Ark

    Erro no linker?

    No meu caso como eu faria? Pra incluir o meu stack.c no header que ia conter só os protótipos? Se não for pedir muito gostaria que você explicasse melhor essa parte. Obrigado pela ajuda. Abraço.
  15. Ark

    Erro no linker?

    Galera é o seguinte, toh começando a estudar estrutura de dados. Com isso, tava queredo criar um arquivo de cabeçalho pra ter minhas funções de retirada e inserção de elemento e etc. Mas quando eu compilo dá uns erros chatos: "[Linker error] undefined reference to `display_stack' [Linker error] undefined reference to `push_stack' [Linker error] undefined reference to `pop_stack'" Vou colocar o cabeçalho aqui: stack.h void push(int *stack, int *top, int *tam); void pop(int *stack, int *top); void display_stack(int *stack, int *tam); void push_stack(int *stack, int *top, int tam){ if(top<tam){ printf("Elemento a ser inserido: "); scanf("%d", &stack[top]); top+=1; } else printf("A pilha tah cheia.\n"); } void pop_stack(int *stack, int *top){ if(top>0){ top-=1; stack[*top] = 0; } else printf("A pilha tah vazia.\n"); } void display_stack(int *stack, int tam){ int x; for(x=tam-1;x>=0;x--) printf("%d\n", stack[x]); } pilha.c #include <stdio.h> #include <stack.h> #define tam 15 main(){ int stack[tam], op, top=0; do{ system("cls"); printf("Digite uma opcao: "); printf("1. Mostrar pilha;\n2. Adicionar elemento.\n3.Retirar elemento;\n4. Sair."); scanf("%d", &op); switch(op){ case 1: display_stack(stack, tam); break; case 2: push_stack(stack, &top, tam); break; case 3: pop_stack(stack, &top); } } while(op!=4); getch(); } Por quê do erro? Obrigado pela atenção. Abraço.
×
×
  • Criar Novo...