Blog Informatica & Programmazione

Bacheca
Risorse Blog Facebook Like
Important Link:
Random link:




Iscriviti al gruppo Fan
Banner & Language Last Post
Forum Affiliati:
Traduci il forum nella lingua che preferisci:
 


  1. Algoritmo di ordinamento Bubble Sort - Linguaggio C

    Avatar
    Tags
    Algoritmi
    C
    By giratina23 il 8 July 2013
    17 Comments   77,892 Views
    .

    Algoritmo di ordinamento Bubble Sort - Linguaggio C



    Gli algoritmi di ordinamento nel linguaggio C vengono utilizzati per ordinare una serie di elementi all'interno di un array, solitamente numeri.
    L'ordinamento può essere in ordine crescente, ovvero con i numeri ordinati dal più piccolo al più grande, oppure decrescente, ovvero con i numeri ordinati dal più grande al più piccolo.
    L'ordinamento permette di gestire con più facilità un insieme di elementi e l'algoritmo più diffuso (e forse anche uno dei migliori da imparare) è l'algoritmo Bubble Sort.

    La logica di questo algoritmo è quella di confrontare ogni elemento di un array (partendo dalla posizione 0), con il valore dell'elemento successivo, poi a seconda dell'ordinamento che si vuole realizzare tra decrescente e crescente, viene inserito in ultima posizione sempre l'elemento più piccolo della lista (decrescente) o più grande (crescente).
    Ovviamente l'ultima posizione viene decrementata ogni volta che si arriva a posizionare un valore nell'ultima posizione di un array, altrimenti si sovrascrive continuamente l'ultimo elemento e non avviene alcun ordinamento!

    Ecco un piccolo esempio per capire la logica di questo algoritmo di ordinamento bubblesort crescente:
    CITAZIONE
    ho il vettore vet[3] = {6,4,3,8}
    Confronto vet[0] con vet[1] // 6 > 4 quindi inverto i due numeri nell'array e ottengo vet[3] = {4,6,3,8}
    Confronto vet[1] con vet[2] // 6 > 3 quindi inverto i due numeri nell'array e ottengo vet[3] = {4,3,6,8}
    Confronto vet[2] con vet[3] // 6 < 8 quindi i due numeri rimangono invariati nell'array.
    Ora si decrementa l'ultima posizione, infatti non è più 3 dove è presente il valore 8, ma è 2 dove si presenta il valore 6 (questo perchè in ogni caso siamo già sicuri che l'elemento in ultima posizione è il numero maggiore della lista, invece il numero 6 è ordinato solo in questo caso).
    Confronto vet[0] con vet[1] // 4 > 3 quindi inverto i due numeri nell'array e ottengo vet[3] = {3,4,6,8}
    Confronto vet[1] con vet[2] // 3 < 6 quindi i due numeri rimangono invariati nell'array = {3,4,6,8}
    Decremento l'ultima posizione e diventa 1.
    Confronto vet[0] con vet[1] // 3 < 4 quindi i numeri rimangono invariati nell'array = {3,4,6,8}
    Output: 3-4-6-8

    Ora passiamo al codice, in questi due esempi vi mostrerò come realizzare un Bubble Sort crescente e uno decrescente

    Ordinamento Bubble Sort crescente:
    CODICE
    void bubblesort(int v[], in...

    Read the whole post...

    Last Post by Gio Boggio il 11 Mar. 2024
    .
  2. Dennis Ritchie

    Avatar
    Tags
    C
    Curiosità
    By giratina23 il 12 July 2012
    0 Comments   43 Views
    .

    Vita e miracoli di Dennis Ritchie



    Ora che hai aperto questo articolo ti starai chiedendo chi è Dennis Ritchie, ebbene così come conosci personaggi come Steve Jobs o Bill Gates, è giusto che tu conosca anche Dennis Ritchie.
    Dennis Ritchie era un programmatore statunitense, ed ha svolto un ruolo molto importante nell'Informatica moderna, dove assieme a un altro grandissimo informatico (e ovviamente altri collaboratori) ha ideato il sistema operativo UNIX, utilizzati attualmente da GNU/Linux e Android.
    In seguito a questo progetto, idearono anche il famosissimo linguaggio C, ma si può definire una rampa di lancio anche per tutti gli attuali sistemi operativi come Windows o Mac.
    Dennis Ritchie è nato a Bronxville (New York) e si era laureato in Fisica e Matematica Applicata ed è morto, purtroppo il 12 Ottobre del 2011, e qui sono nate non poche polemiche, poiché il 5 Ottobre 2011 si è verificata anche la morte di un grande comunicatore, Steve Jobs, e la maggior parte delle persone erano totalmente concentrate su di lui e la morte di Dennis Ritchie è passata in secondo luogo, anzi a dire il vero non se ne è praticamente parlato.

    Last Post by giratina23 il 12 July 2012
    .
  3. [Programmazione] Lo Switch

    Avatar
    Tags
    C
    Programmazione
    By giratina23 il 14 April 2012
    0 Comments   58 Views
    .

    Lo Switch



    In programmazione lo Switch è un modo veloce di elaborare una condizione in cui si prende in esame un'unica variabile.
    Vediamo subito un esempio pratico (in linguaggio C) in cui viene chiesto ad uno studente il voto del suo compito in classe:
    HTML
    int voto;
    printf("Inserisci il tuo voto: ");
    scanf("%d", &voto);
    switch(voto) {

    case 5:
    printf("Non sufficiente! \n");
    break;

    case 6:
    printf("Sufficiente \n");
    break;

    case 7:
    printf("Discreto \n");
    break;

    case 8:
    printf("Buono! \n");
    break;

    case 9:
    printf("Distinto! \n");
    break;

    case 10:
    printf("Ottimo! \n");
    break;

    default:
    printf("Voto non valido! \n");
    }

    In questo codice avrete sicuramente notato case, esso indica che stiamo per eseguire determinate istruzioni se il voto inserito è uguale al numero scritto dopo il case, mentre l'istruzione break interrompe l'esecuzione del codice una volta terminata l'istruzione.
    l'istruzione default invece corrisponde all'else, infatti indica le istruzioni da eseguire in tutti gli altri casi, in questo caso se il voto non è compreso tra 5 e 10, si verifica un messaggio che avverte che il voto inserito non è valido.
    Poichè lo Switch è un particolare if ramificato può essere scritto anche in questo modo, ma a mio parere è una procedura molto più lunga e confusionaria:

    HTML
    int voto;
    printf("Scrivi il voto: ");
    scanf("%d", &voto);
    if(voto == 5) {
    printf("Non Sufficiente! \n");
    }
    else if(voto == 6) {
    printf("Sufficiente \n");
    }
    else if(voto == 7) {
    printf("Discreto! \n");
    }
    else if(voto == 8) {
    printf("Buono! \n");
    }
    else if(voto == 9) {
    printf("Distinto! \n");
    }
    else if(voto == 10) {
    printf("Ottimo! \n");
    }
    else {
    printf("Voto non valido! \n");
    }
    Last Post by giratina23 il 14 April 2012
    .
  4. Numero casuale in Visual Basic e in C

    Avatar
    Tags
    C
    Visual Basic
    By giratina23 il 15 Feb. 2012
    0 Comments   192 Views
    .

    Numero casuale in Visual Basic e in C


    Di recente a scuola ho imparato una funzione che permette di assegnare ad una variabile un numero naturale, scelto casualmente, le istruzioni sono le seguenti:
    HTML
    Randomize()
    Dim Variabile As Integer = Int(Numero * Rnd() + 1)

    Dove al posto di Numero va inserito il numero massimo in cui la funzione può scegliere il numero, ad esempio se il numero è uguale a 6, in questo caso il numero casuale potrà essere solamente un numero che va da 1 a 6.
    Questa funzione permette di creare delle vere e proprie istruzioni che variano casualmente ogni volta che viene aperto il programma utilizzando delle condizioni.

    Se invece volete realizzare la stessa cosa in C, potete utilizzare le istruzioni:
    HTML
    int i;
    srang(time(NULL));
    i = rand() % Numero + 1;

    dove rand() indica la funzione che da un valore casuale alla variabile e Numero, come prima rappresenta il numero massimo di numeri da randomizzare.

    Edited by giratina23 - 7/4/2012, 17:05
    Last Post by giratina23 il 15 Feb. 2012
    .
  5. Esercizi Base in C

    Avatar
    Tags
    C
    By giratina23 il 31 Dec. 2011
    0 Comments   1,338 Views
    .

    Esercizi Base C


    In questo test, esporrò semplici esercizi da fare in C con relativa soluzione sotto spoiler (vi sconsiglio di guardare le soluzioni prima di aver terminato il programma), poi controllate quanti programmi avete fatto giusto in tutto :D

    1. Fai la media di 5 numeri inseriti in Input, utilizzando un ciclo do while.

    Clicca sullo spoiler per vedere la soluzione:
    HTML
    #include <stdio.h>

    int main() {
    //Indichiamo le variabili
    float numeri;
    float contatore = 1;
    float somma = 0;
    float media;

    //Eseguiamo i calcoli
    do {
    printf("inserisci il valore di numero: ");
    scanf("%f", &numeri);
    somma = somma + numeri;
    contatore++;
    } while(contatore <= 5);
    media = somma/5;
    printf("la media dei 5 numeri inseriti in input è: %f \n", media);
    }


    2. somma i primi 10 numeri, sempre utilizzando un ciclo do while:

    clicca sullo spoiler per vedere la soluzione:
    HTML
    #include <stdio.h>

    int main() {
    int contatore = 1;
    int somma = 0;
    do {
    somma = somma + contatore;
    contatore++;
    } while(contatore <= 10);
    printf("il valore della somma è %d \n", somma);
    }


    3. date due variabili in input, restituire i valori sostituiti
    Clicca sullo spoiler per vedere la soluzione:
    HTML
    #include <stdio&...

    Read the whole post...

    Last Post by giratina23 il 31 Dec. 2011
    .