Archive for February, 2008

Aggiornato il curriculum

Categories: Misc

Ho aggiornato il mio curriculum e la pagina relativa ad esso.
Ora su http://daniel.graziotin.net/curriculum è possibile leggerlo direttamente e/o scaricarlo in formato PDF.
Le informazioni in esso contenute sono quasi le stesse di quello precedente (qualche modifica relativa all’anno trascorso), ma dopo aver letto alcuni suggerimenti su come migliorare il proprio CV, sono riuscito a comprimerlo da 3 a 2 pagine, cambiando il layout e raggruppando varie voci.

 
 

An example of mutual recursion using C

Tags:
Categories: Programming

The first lecture of DSA was already interesting for me, I learned something about “Mutual Recursion” (when two procedures call each other). The pseudo-code example was about checking if a number is either even or odd.
Given that

  • 0 is even
  • N is even if n-1 is odd
  • N is odd if n-1 is even

And the algorithm:

even
INPUT: n – a natural number.
OUTPUT: true if n is even; false otherwise 

odd(n)
  if n = 0 then return FALSE
  return even(n-1)
even(n)
  if n = 0 then return TRUE
  else return odd(n-1)

I implemented a tiny C program which uses it:

#include <stdio.h>
int main (int argc, char const *argv[])
{
        // set an integer number here
        int number = 23945;
        // if the number is odd (1 = TRUE)
        if(odd(number)==1)
                printf("%d is odd\n",number);
        else
                printf("%d is even\n",number);
        return 0;
}

// returns 0 if the given number becomes 0, so the given number is odd
// returns even(number - 1) elsewhere
int odd(int number){
        if (number==0)
                return 0;
        else
                return even(number-1);
}

// returns 0 if the given number becomes 0, so the given number is even
// returns odd(number - 1) elsewhere
int even(int number){
        if(number==0)
                return 1;
        else
                return odd(number-1);
}
 

Let’s see if I can keep understanding things at DSA :D

 
 

Una sorta di sorta di critica anche da parte mia

Categories: Unibz

L’altro ieri ho avuto una sorta di onore di cenare insieme ad alcuni amici designer. Insieme a loro, una sorta di donna, che non ha smesso di parlare dall’inizio alla fine di una sorta di lavoro che stava svolgendo.
Così, giusto per non farmi prendere da quella sorta di discorso, ho sentito quella sorta di sensazione che credo provino anche loro quando creano sorte di critiche alla società, ed ho prodotto questa sorta di opera:
Una sorta di critica alla società culinaria

Si intitola “Una sorta di sorta.” (non è un errore, il punto fa parte del titolo)

Ora voglio i miei 10 crediti.

 
 

Sorting array elements with C language

Tags: , , ,
Categories: Programming

UPDATE 17:19: it seems that the program I implemented today uses a kind of Bubble Sort algorithm, give it a try, it’s quite interesting!

After 3 long days studying C, I think I’ve assimilated a good knowledge base for the incoming semester.
So there is a tiny C program that sorts the elements of a given integer array, using pointers:

Download the source code (well commented)

#include <stdio.h>
void sortArray(int *firstElement, int *lastElement);
void swapArrayElements(int *firstElement, int *secondElement);
void printArray(int array[], int arraySize);

void sortArray(int *firstElement, int *lastElement){
        int *currentElement = firstElement;
        while (firstElement != lastElement){
                while(currentElement != lastElement){
                        if(*currentElement < *firstElement){
                                swapArrayElements(currentElement,firstElement);
                        }
                        currentElement++;
                }
                firstElement++;
                currentElement = firstElement;
        }
}

void swapArrayElements(int *firstElement, int *secondElement){
        int tmp;
        tmp = *firstElement;
        *firstElement = *secondElement;
        *secondElement = tmp;
}

void printArray(int array[], int arraySize){
        int counter = 0;
        while(counter<arraySize){
                printf("%d\n",array[counter]);
                counter++;
        }
}

int main (int argc, char *argv[]){
        int array[] = {2929393,1,23239,-66,15,4,3,0,112,45,3,1000,19};
        int arraySize = sizeof(array)/sizeof(array[0]);
        int *firstElement = &array[0];
        int *lastElement = firstElement + arraySize;
        printf("————————————————-\n");
        printf("Elements of the array:\n");
        printf("————————————————-\n");
        printArray(array,arraySize);
        printf("————————————————-\n");
        sortArray(firstElement,lastElement);
        printf("Elements sorted:\n");
        printf("————————————————-\n");
        printArray(array,arraySize);
        printf("————————————————-\n");
}

 

A better program should ask the user to input the array elements, and a better algorithm should not scan every array element n times, where n is the number of the elements.
But I wrote it just for fun and for learning C pointers. I will learn to do better in the Data Structures and Algorithms course in the next semester ;)