Developpez.com - Rubrique Humour

Le Club des Développeurs et IT Pro

Le langage de programmation C pour les experts

Les différentes versions du programme qui affiche "HELLO WORLD" suivant les compétences

Le 2006-07-04 11:02:22, par valentine74, Candidat au Club
Le but de la manipulation est d'écrire un programme qui affichera "HELLO WORLD" à l'écran :

Terminale:
Code BASIC :
1
2
10 PRINT "HELLO WORLD" 
20 END


DUT 1ère année:
Code Pascal :
1
2
3
4
program HELLO(input, output) 
begin 
    writeln('HELLO WORLD') 
end.

DUT 2ème année:
Code (?) :
1
2
3
4
5
(defun HELLO 
 (print 
  (cons 'HELLO (list 'WORLD)) 
 ) 
)

Fraîchement sorti de l'école:
Code C :
1
2
3
4
5
6
7
8
9
10
#include <stdio.h> 
void main(void) 
{ 
    char *message[] = {"HELLO ", "WORLD"}; 
     int i; 
  
    for(i = 0; i < 2; ++i) 
        printf("%s", message[i]); 
    printf("\n"); 
}

Professionnel très expérimenté:
Code C++ :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream> 
#include <cstring> 
using namespace std; 
class string 
{ 
private: 
    int size; 
    char *ptr; 
public: 
    string() : size(0), ptr(new char('\0')) {} 
    string(const string &s) : size(s.size) 
    { 
        ptr = new char[size + 1]; 
        strcpy(ptr, s.ptr); 
    } 
    ~string() 
    { 
        delete [] ptr; 
    } 
    friend ostream &operator <<(ostream &, const string &); 
    string &operator=(const char *); 
}; 
  
ostream &operator<<(ostream &stream, const string &s) 
{ 
    return(stream << s.ptr); 
} 
string &string::operator=(const char *chrs) 
{ 
    if (this != &chrs) 
    { 
        delete [] ptr; 
        size = strlen(chrs); 
        ptr = new char[size + 1]; 
        strcpy(ptr, chrs); 
    } 
    return(*this); 
} 
int main() 
{ 
    string str; 
    str = "HELLO WORLD"; 
    cout << str << endl; 
    return(0); 
}

Professionnel vraiment très très expérimenté:
Code MIDL ? :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 [ 
 uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820) 
 ] 
 library LHello 
 { 
     // bring in the master library 
     importlib("actimp.tlb"); 
     importlib("actexp.tlb"); 
 
     // bring in my interfaces 
     #include "pshlo.idl" 
 
     [ 
     uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820) 
     ] 
     cotype THello 
  { 
  interface IHello; 
  interface IPersistFile; 
  }; 
 }; 
 
 [ 
 exe, 
 uuid(2573F890-CFEE-101A-9A9F-00AA00342820) 
 ] 
 module CHelloLib 
 { 
 
     // some code related header files 
     importheader(); 
     importheader(); 
     importheader(); 
     importheader("pshlo.h"); 
     importheader("shlo.hxx"); 
     importheader("mycls.hxx"); 
 
     // needed typelibs 
     importlib("actimp.tlb"); 
     importlib("actexp.tlb"); 
     importlib("thlo.tlb"); 
 
     [ 
     uuid(2573F891-CFEE-101A-9A9F-00AA00342820), 
     aggregatable 
     ] 
     coclass CHello 
  { 
  cotype THello; 
  }; 
 };
Code C++ :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "ipfix.hxx" 
  
 extern HANDLE hEvent; 
  
 class CHello : public CHelloBase 
 { 
 public: 
     IPFIX(CLSID_CHello); 
  
     CHello(IUnknown *pUnk); 
     ~CHello(); 
  
     HRESULT  __stdcall PrintSz(LPWSTR pwszString); 
  
 private: 
     static int cObjRef; 
 };
Code C++ :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 // ? #include  
 // ? #include  
 // ? #include  
 // ? #include  
 #include "thlo.h" 
 #include "pshlo.h" 
 #include "shlo.hxx" 
 #include "mycls.hxx" 
  
 int CHello::cObjRef = 0; 
  
 CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk) 
 { 
     cObjRef++; 
     return; 
 } 
  
 HRESULT  __stdcall  CHello::PrintSz(LPWSTR pwszString) 
 { 
     printf("%ws\n", pwszString); 
     return(ResultFromScode(S_OK)); 
 } 
  
  
 CHello::~CHello(void) 
 { 
  
 // when the object count goes to zero, stop the server 
 cObjRef--; 
 if( cObjRef == 0 ) 
     PulseEvent(hEvent); 
  
 return; 
 }
Code C++ :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 // ? #include  
 // ? #include  
 #include "pshlo.h" 
 #include "shlo.hxx" 
 #include "mycls.hxx" 
  
 HANDLE hEvent; 
  
  int _cdecl main( 
 int argc, 
 char * argv[] 
 ) { 
 ULONG ulRef; 
 DWORD dwRegistration; 
 CHelloCF *pCF = new CHelloCF(); 
  
 hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); 
  
 // Initialize the OLE libraries 
 CoInitializeEx(NULL, COINIT_MULTITHREADED); 
  
 CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER, 
     REGCLS_MULTIPLEUSE, &dwRegistration); 
  
 // wait on an event to stop 
 WaitForSingleObject(hEvent, INFINITE); 
  
 // revoke and release the class object 
 CoRevokeClassObject(dwRegistration); 
 ulRef = pCF->Release(); 
  
 // Tell OLE we are going away. 
 CoUninitialize(); 
  
 return(0); } 
  
 extern CLSID CLSID_CHello; 
 extern UUID LIBID_CHelloLib; 
  
 CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */ 
     0x2573F891, 
     0xCFEE, 
     0x101A, 
     { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 } 
 }; 
  
 UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */ 
     0x2573F890, 
     0xCFEE, 
     0x101A, 
     { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 } 
 };
Code C++ :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 // ? #include  
 // ? #include  
 // ? #include  
 // ? #include  
 // ? #include  
 #include "pshlo.h" 
 #include "shlo.hxx" 
 #include "clsid.h" 
  
 int _cdecl main( 
 int argc, 
 char * argv[] 
 ) { 
 HRESULT  hRslt; 
 IHello        *pHello; 
 ULONG  ulCnt; 
 IMoniker * pmk; 
 WCHAR  wcsT[_MAX_PATH]; 
 WCHAR  wcsPath[2 * _MAX_PATH]; 
  
 // get object path 
 wcsPath[0] = '\0'; 
 wcsT[0] = '\0'; 
 if( argc > 1) { 
     mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1); 
     wcsupr(wcsPath); 
     } 
 else { 
     fprintf(stderr, "Object path must be specified\n"); 
     return(1); 
     } 
  
 // get print string 
 if(argc > 2) 
     mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1); 
 else 
     wcscpy(wcsT, L"Hello World"); 
  
 printf("Linking to object %ws\n", wcsPath); 
 printf("Text String %ws\n", wcsT); 
  
 // Initialize the OLE libraries 
 hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED); 
  
 if(SUCCEEDED(hRslt)) { 
  
  
     hRslt = CreateFileMoniker(wcsPath, &pmk); 
     if(SUCCEEDED(hRslt)) 
  hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello); 
  
     if(SUCCEEDED(hRslt)) { 
  
  // print a string out 
  pHello->PrintSz(wcsT); 
  
  Sleep(2000); 
  ulCnt = pHello->Release(); 
  } 
     else 
  printf("Failure to connect, status: %lx", hRslt); 
  
     // Tell OLE we are going away. 
     CoUninitialize(); 
     } 
  
 return(0); 
 }

Administrateur Système:
Code C :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h> 
main() 
{ 
    char *tmp; 
    int i=0; 
    /* on y va bourin (sic)(en Français dans le texte) */ 
    tmp=malloc(1024*sizeof(char)); /* cast supprimé */ 
    while (tmp[i]="HELLO WORLD"[i++]); 
    /* Ooopps y'a une infusion ! */ 
    i=(int)tmp[8]; 
    tmp[8]=tmp[9]; 
    tmp[9]=(char)i; 
    printf("%s\n",tmp); 
}

Apprenti Hacker:
Code PERL :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/local/bin/perl 
$msg="HELLO, WORLD.\n"; 
if ($#ARGV >= 0) { 
    while(defined($arg=shift(@ARGV))) { 
        $outfilename = $arg; 
        open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n"; 
        print (FILE $msg); 
        close(FILE) || die "Can't close $arg: $!\n"; 
  
    } 
} else { 
    print ($msg); 
} 
1;

Hacker expérimenté:
Code C :
1
2
3
#include <stdio.h> 
#define S "HELLO, WORLD\n" 
main(){exit(printf(S) == strlen(S) ? 0 : 1);}


Hacker très expérimenté:
Code shell (affichage) :
1
2
% cc -o a.out ~/src/misc/bv/bv.c 
% a.out

Gourou des Hackers:
Code shell (affichage) :
1
2
3
% cat 
HELLO, WORLD. 
^D

Directeur junior:
Code BASIC :
1
2
10 PRINT "HELLO WORLD" 
20 END

Directeur:
Code shell (affichage) :
1
2
3
4
5
mail -s "HELLO, WORLD." bob@b12 
Henri, pourrais-tu m'écrire un programme qui écrit "HELLO, 
WORLD." À l'écran? 
J'en ai besoin pour demain. 
^D

Directeur sénior:
Code shell (affichage) :
1
2
% zmail Jean 
J'ai besoin d'un programme "HELLO, WORLD." Pour cette après-midi.

Président Directeur Général:
Code shell (affichage) :
1
2
3
4
5
6
7
8
9
% letter 
letter: Command not found. 
% mail 
To: ^X ^F ^C 
% help mail 
help: Command not found. 
% damn! 
!: Event unrecognized 
% logout
  Discussion forum
29 commentaires
  • skip78
    Membre habitué
    ^^ fort sympathique
  • Maxoo
    Membre émérite
    marrant !!
  • Jack_serious
    Membre averti
    Tres joli !
  • Jahprend
    Membre habitué
    Osef:d
  • yann2
    Membre expérimenté
    P'tain ça fait trois fois que je reviens sur ce sujet en me disant "tiens un commentaire !" et voilà ce que je trouve :

    ^^ fort sympathique
    marrant !!
    Tres joli !


    bon sinon c'est vrai que c'est sympa, joli et marrant !

  • Satch
    Membre confirmé
    Envoyé par yann2
    P'tain ça fait trois fois que je reviens sur ce sujet en me disant "tiens un commentaire !" et voilà ce que je trouve :
    Tu veux rejoindre le club des anti-mouarfeurs ?
    Je suis au moins autant énervé que toi
  • xavlours
    Membre émérite
    Donc si j'ai bien compris, un lycéen en terminale sera beaucoup plus productif qu'un professionnel très très expérimenté. Merci du conseil, je m'en souviendrai si je monte une boîte.
  • bilb0t
    Inscrit
    Repost ?
  • DavidDeTroyes
    Membre averti
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <HTML>
    <BODY>
    <TABLE>
    <TR>
    <TD>
    TROP SUPER !!!
    </TD>
    </TR>
    </TABLE>
    </BODY>
    </HTML>
  • Commodore
    Membre confirmé