simovik90 (Normal User)
Newbie
Messaggi: 1
Iscritto: 08/11/2011
|
Ciao Ragazzi... sono nuovo del forum e mi sono appena immatricolato alla facoltà di ingegneria informatica. comunque, vorrei sapere, trovandomi davanti a questi codici qua quali operazioni svolge il compilatore per arrivare ad un determinato output:
Codice sorgente - presumibilmente C++ |
#include <stdio.h> int f(int a,int b) { int r=1; while (b>0) { r*=a; b--; } return r; } int main() { printf ("%i\n",f(2,10)); printf ("%i\n",f(f(2,10),0)); printf ("%i\n",f(-1,f(2,10))); printf ("%i\n",f(-1,f(2,10)+1)); printf ("%i\n",f(f(2,10),-1)); }
|
Codice sorgente - presumibilmente C++ |
#include <stdio.h> int g(int a,int b) { int s=0; while (a>0) { s+=a%b; a/=b; } return s; } int f(int a,int b) { int r=1; while (b>0) { r*=a; b--; } return r; } int main() { printf ("%i\n",g(10241231,10)); printf ("%i\n",g(30,5)); printf ("%i\n",g(30,3)); printf ("%i\n",g(12,2)); printf ("%i\n",g(3*f(12,3)+2*f(12,2),12)); }
|
Codice sorgente - presumibilmente C++ |
#include <stdio.h> int f(int a,int b) { int s=0; while (a>0) { s+=a%b; a/=b; } return s; } int g(int a,int b) { while (a>=b) a=f(a,b); return a; } int p(int a, int b) { int r=1; while (b>0) { r*=a; b--; } return r; } int main() { printf ("%i\n",g(1024,10)); printf ("%i\n",g(1024,2)); printf ("%i\n",g(2*p(3,2)+p(3,10),3)); printf ("%i\n",g(1023,2)); }
|
sono semplici codici che ho trovato nella rete, tutti funzionanti (provati da me stesso)...
Ultima modifica effettuata da simovik90 il 08/11/2011 alle 14:42 |
Nullable (Normal User)
Expert
Messaggi: 217
Iscritto: 12/07/2011
|
Vi prego di correggermi nel caso in cui stessi sbagliando : prima di avviare la fase di compilazione viene lanciato il linker che si occupa si "linkare" ovvero di *assemblare* o *unire* le direttive alle funzioni presenti negli header, nel caso in cui una funzione non si trova da nessuna parte allora viene emesso un error dal linker e ti viene anche specificato il tipo di errore con l'eventuale risoluzione. Se la fase di linking è avvenuta correttamente allora questo *pacchetto di funzioni assemblato" viene convertito in una sequenza binaria leggibile dal computer e successivamente eseguita ( da questo scaturisce l'output ).
|