Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-11-2007, 09:21   #1
Tiz1492
Junior Member
 
Iscritto dal: Nov 2007
Messaggi: 2
[C] Aiuto programma

Ciao, sono Tiziano e sono un nuovo membro del forum.
Vi chiedo un aiuto in quanto non riesco a capire cposa effettua tale programma: al momento non riesco a compilarlo e ho bisogno di capire cosa faccia per un progetto scolastico.
Vi ringrazio.

#include <stdio.h>

void Magic(int in);
int Even(int n);

int main()
{
Magic(10);
return(0);
}

void Magic(int in)
{
if (in == 0)
return;

if (Even(in))
printf("%i\n", in);

Magic(in -1);

if (!Even(in)) //tale blocco viene eseguito se 0
printf("%i\n", in);

return;
}

int Even(int n)
{
return((n % 2) == 0) ? 1 : 0;
}
Tiz1492 è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2007, 09:37   #2
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16214
Quote:
Originariamente inviato da Tiz1492 Guarda i messaggi
non riesco a capire cposa effettua tale programma
All'interno di main, viene effettuata una chiamata a Magic, con valore dell'argomento pari a 10.
Magic è definita ricorsivamente, ossia chiama se stessa durante la propria esecuzione: tale chiamata viene fatta con un valore dell'argomento decrementato di 1, quindi Magic(10) chiamerà Magic(9), che chiamerà Magic(8), che... finché non verrà chiamata Magic(0), che termina subito, passando numvamente l'esecuzione a Magic(1), che...
Se il suo argomento non è 0, Magic effettua una chiamata a Even, che fa un controllo di parità.
Da qui in poi puoi provare ad andara avanti tu.
Quote:
non riesco a compilarlo
E perché no? Che sistema operativo usi, e che compilatore hai? e ho bisogno di capire cosa faccia per un progetto scolastico.

Ah: quando scrivi un programma, indentalo bene (cerca sul vocabolario il verbo "indentare") e, al momento di postare il codice, inseriscilo in un tag "CODE" in modo che l'indentazione venga preservata.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2007, 09:45   #3
Tiz1492
Junior Member
 
Iscritto dal: Nov 2007
Messaggi: 2
grazie

Grazie, purtroppo non sono un grande programmatore e si vede...
grazie, ciao!
Tiz1492 è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2007, 10:14   #4
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16214
Quote:
Originariamente inviato da Tiz1492 Guarda i messaggi
purtroppo non sono un grande programmatore
Questo perché grandi programmatori si diventa, col tempo, lo studio e la pratica.
Nessuno nasce imparato.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:31.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v