RSS
  • 

    Myspace Downloader

    Enviado em 11 Abril, 2010 Sem comentários

    Finalmente tenho esta aplicação completa.
    Foi a primeira que fiz que segue as normas de programação orientada a objectos.
    Aproveitei e fiz uma página dedicada à aplicação, e no blog coloquei um link Projectos que vai servir de índice para colocar projectos meus.

    Aqui fica o link: http://amgarcia.net/myspacedownloader

  • 

    MC Fuckin Palim Text Converter 0.2-rapper

    Enviado em 1 Fevereiro, 2010 6 comentários

    Não tinha nada para fazer e como quero explorar qualquer coisa de C# decidi fazer um port deste programa para C# e aproveitar para integrar um ambiente gráfico, por isso lancei a versão 0.2 do programa.
    A versão 0.1 tinha como código de nome mc, e esta 0.2 tem como código de nome rapper.

    Para além de agora ter interface gráfica, basta escrever o texto, carregar enter e colar no destino, pois coloca automaticamente no clipboard.

    Aqui estão os ficheiros: Download

    O binário encontra-se na pasta bin/Release.

    Aproveito para avisar que o programa tem um easter egg (estive a tentar um grande bocado mas não consegui. O Nuno Melo conseguiu ajudar-me a resolver o problema, obrigado).
    Tentem lá descobrir sem ir ao código. :P

  • 

    Gestão de propostas de uma biblioteca em C

    Enviado em 21 Janeiro, 2010 2 comentários

    Como tinha prometido, aqui está o código do meu projecto da universidade que consiste na criação de uma gestão de propostas de uma biblioteca usando C. Está, como é habitual, licenciado em WTFPL de modo a haver total liberdade. :D

    main.c

  • 

    Programa em C para converter texto para maiusculas aleatoriamente

    Enviado em 16 Janeiro, 2010 2 comentários

    Não tinha nada para fazer e então fiz em C um programa que converte aleatoriamente minusculas para maiusculas.

    Texto: ola. este é um teste
    ola. EsTe é Um teSte

    E também converte aleatoriamente S para Z ou X; C para Q ou K.

    É um programa useless, mas foi feito porque sim!

    /* This program is free software. It comes without any warranty, to
     * the extent permitted by applicable law. You can redistribute it
     * and/or modify it under the terms of the Do What The Fuck You Want
     * To Public License, Version 2, as published by Sam Hocevar. See
     * http://sam.zoy.org/wtfpl/COPYING for more details. */
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>
    #include <ctype.h>
     
    int main() {
        system("cls");
        srand(time(NULL));
        char texto[200], letraS[2] = {'x', 'z'}, letraC[2] = {'k', 'q'};
        int i, qts = 0, num[150], troca, letra;
        printf("\t\t> MC Fuckin Palim Text Converter 0.1-mc <\n\n");
        printf("- Para terminar basta fechar o programa.\n\n");
        while (1) {
            fflush(stdin);
            printf("Texto: ");
            gets(texto);
            fflush(stdin);
            for (i = 0; i < strlen(texto) / 3; i++) {
                num[i] = rand() % strlen(texto) + 1;
                if (texto[num[i]] == ' ') {
                    while (texto[num[i]] == ' ') num[i] = rand() % strlen(texto);
                }
                switch (texto[i]) {
                    case 's':
                        troca = rand() % 2;
                        if (troca) {
                            letra = rand() % 2;
                            texto[i] = letraS[letra];
                        }
                        break;
                    case 'c':
                        troca = rand() % 2;
                        if (troca && texto[i + 1] != 'h') {
                            letra = rand() % 2;
                            texto[i] = letraC[letra];
                        }
                        break;
                }
                qts++;
            }
            for (i = 0; i < qts; i++) texto[num[i]] = toupper(texto[num[i]]);
            puts(texto);
            texto[0] = '\0';
            qts = 0;
        }
    }
  • 

    Função para validar datas em C

    Enviado em 25 Dezembro, 2009 Sem comentários

    Fiz esta função para o meu projecto da universidade (quando entregarmos coloco aqui o código todo licenciado em WTFPL!).
    Como temos que introduzir datas, aproveitei e fiz uma função que valida a data.

    /* This program is free software. It comes without any warranty, to
     * the extent permitted by applicable law. You can redistribute it
     * and/or modify it under the terms of the Do What The Fuck You Want
     * To Public License, Version 2, as published by Sam Hocevar. See
     * http://sam.zoy.org/wtfpl/COPYING for more details. */ 
     
    #include <stdio.h>
    #include <string.h>
     
    typedef enum { FALSE, TRUE } boolean; // definir o tipo de dados boolean
     
    boolean data_valida(char data[]) {
        int i, j=0, n=1, dia, mes, ano;
        for (i=0;i<strlen(data);i++) {
            if (data[i] == '/') j++;
        }
        if (j==2) {
            // Isto vai separar a data dia/mes/ano em tres variaveis
            data=strtok(data,"/");
            dia=atoi(data);
            data=strtok(NULL,"/");
            mes=atoi(data);
            data=strtok(NULL,"/");
            ano=atoi(data);
        }
     
        else return FALSE;
     
        if (ano > 0) {
        switch(mes) {
            case 1: case 3: case 5: case 7: case 8: case 10: case 12:
                return (dia > 0 && dia <= 31);
                break;
            case 4: case 6: case 9: case 11:
                return (dia > 0 && dia <= 30);
                break;
            case 2:
                if (ano % 100 == 0) ano = ano / 100;
                if (ano % 4 == 0) return (dia > 0 && dia <= 29);
                else return (dia > 0 && dia <= 28);
                break;
            default:
                return FALSE;
                break;
            }
        }
        else return FALSE;
    }

    Exemplo de uso:

    int main() {
        char data[11];
        while(1) {
            printf("Data: ");
            fgets(data,11,stdin);
            fflush(stdin);
            if (data_valida(data)) printf("Data valida\n");
            else printf("Data invalida\n");
        }
        return 0;
    }
  • 

    Lab: lab_Vectores, Ex. 2

    Enviado em 15 Novembro, 2009 3 comentários

    Pretende-se codificar a informação contida num vector de inteiros da seguinte forma:
    sempre que um número x é repetido n vezes, a sequência de repetições é substituída por nx. Assim, por exemplo, 277733444 é substituído por 12372334.

    /* This program is free software. It comes without any warranty, to
     * the extent permitted by applicable law. You can redistribute it
     * and/or modify it under the terms of the Do What The Fuck You Want
     * To Public License, Version 2, as published by Sam Hocevar. See
     * http://sam.zoy.org/wtfpl/COPYING for more details. */
     
    #include <stdio.h>
    #define MAX 9 // alterar pelo numero de valores a introduzir
     
    void main() {
        int num[MAX], i, n=1;
        for (i=0;i<=(MAX-1);i++) {
            printf("Num %d: ",i+1);
            scanf("%d",&num[i]);
        }
        printf("Codificacao: ");
        for (i=0;i<=(MAX-1);i++) {
            if (num[i+1] == num[i]) n++;
            else if (num[i+1] != num[i]){
                printf("%d%d",n,num[i]);
                n=1;  
            }
            }
        printf("\n");
    }
  • 

    Lab: lab_Vectores, Ex. 1

    Enviado em 10 Novembro, 2009 4 comentários

    Vou começar a colocar aqui alguns exercícios de laboratório de Introdução à Programação.
    Todos os posts com “Lab:” no título são exercícios resolvidos por mim.
    Claro que são resolvidos de forma diferente do que a docente efectua na aula laboratorial, pois estes resolvidos na aula utilizam conteúdos desnecessários.

    Ficha lab_Vectores, Ex. 1
    Escreva um programa para ler um vector com n numeros inteiros e preencha um outro vector com a soma do primeiro com o ultimo elemento, do segundo com o penultimo, etc

    /* This program is free software. It comes without any warranty, to
     * the extent permitted by applicable law. You can redistribute it
     * and/or modify it under the terms of the Do What The Fuck You Want
     * To Public License, Version 2, as published by Sam Hocevar. See
     * http://sam.zoy.org/wtfpl/COPYING for more details. */ 
     
    #include <stdio.h>
     
    void vect(int num)
    {
        int vector[num],vector_soma[num], i, x=0;
        for (i=0;i<num;i++) {
            printf("Posicao %d: ", i+1);
            scanf("%d",&vector[i]);
        }
     
        for (i=0;i<num/2;i++) {
            vector_soma[i] = vector[i]+vector[(num-1)-i];
            x++;
        }
        if (num%2 != 0) {
            vector_soma[x] = vector[num/2];
        }
        else x--;
        for (i=0;i<=x;i++) {
            printf("Soma %d: %d\n",i+1,vector_soma[i]);
        }
    }
     
    int main() {
        int n;
        printf("Num de posicoes: ");
        scanf("%d",&n);
        vect(n);
        return 0;
    }
  • 

    Adicionar mais uma opção aos avatars do WordPress

    Enviado em 5 Outubro, 2009 Sem comentários

    Queria colocar outro avatar nos avatars default do WordPress e então fui procurar algo.
    1. Editar o functions.php do tema utilizado
    2. Adicionar (dentro da tag do php) o seguinte:

    /**
    * add a default-gravatar to options
    */
    if ( !function_exists('fb_addgravatar') ) {
    function fb_addgravatar( $avatar_defaults ) {
    $myavatar = get_bloginfo('template_directory') . '/images/myavatar.png';
    $avatar_defaults[$myavatar] = 'Avatar';

    return $avatar_defaults;
    }

    add_filter( 'avatar_defaults', 'fb_addgravatar' );
    }

    No meu caso em vez de ser /images/ foi /img/. Depende do tema que utilizam. O ficheiro de imagem pode ser .png ou .gif e deve estar na pasta indicada (image ou img) que se encontra dentro da pasta do tema.

    3. Ir ao painel de admin e na categoria de Discussão seleccionar o novo avatar.

    Encontrado aqui: http://wpengineer.com/add-avatar-to-wordpress-default/

  • 

    Hack ao tema do blog

    Enviado em 5 Abril, 2009 Sem comentários

    Fiz um hack ao tema do blog.
    O tema é giro e tal, mas não mostrava quem escreveu os posts, o que era um pouco chato visto eu não ser o único a escrever aqui.
    É fácil colocar isto. Fiz download nos googles de uma imagem de “author”, coloquei no photoshop, alterei as cores, mudei o tamanho, enviei para o servidor e depois alterei o código de alguns ficheiros do tema para incluir o autor e pronto, já está. Senti-me um verdadeiro hacker dos phps, wordpresses e opensores.

  • 

    Decomposição em digitos

    Enviado em 19 Outubro, 2008 2 comentários

    Exemplo: 102
    102 -> 1 + 0 + 2 = 3

    /* This program is free software. It comes without any warranty, to
    * the extent permitted by applicable law. You can redistribute it
    * and/or modify it under the terms of the Do What The Fuck You Want
    * To Public License, Version 2, as published by Sam Hocevar. See
    * http://sam.zoy.org/wtfpl/COPYING for more details. */
     
    #include <iostream>
    using namespace std;
    void main() {
       int num,x[10],i=0,n=0,soma=0;
       cout << "Num: ";
       cin >> num;
       cout << num << " -> ";
       while (num>0) {
          x[i] = num%10;
          num = num/10;
          i++;
          n++;
       }
       for (i=n-1;i>=0;i--) {
          soma=soma+x[i];
          if (i>0) cout << x[i] << " + ";
          else cout << x[i] << " = " << soma << "\n";
       }
    }

    (nota: tenho que editar o código do site para não interpretar html quando for código, assim evito de colocar imagens)