IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Le langage de programmation C pour les experts
Les différentes versions du programme qui affiche "HELLO WORLD" suivant les compétences

Le , par valentine74

0PARTAGES

0  0 
Le but de la manipulation est d'écrire un programme qui affichera "HELLO WORLD" à l'écran :

Terminale:
Code BASIC : Sélectionner tout
1
2
10 PRINT "HELLO WORLD" 
20 END


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

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

Fraîchement sorti de l'école:
Code C : Sélectionner tout
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++ : Sélectionner tout
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 ? : Sélectionner tout
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++ : Sélectionner tout
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++ : Sélectionner tout
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++ : Sélectionner tout
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++ : Sélectionner tout
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 : Sélectionner tout
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 : Sélectionner tout
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 : Sélectionner tout
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) : Sélectionner tout
1
2
% cc -o a.out ~/src/misc/bv/bv.c 
% a.out

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

Directeur junior:
Code BASIC : Sélectionner tout
1
2
10 PRINT "HELLO WORLD" 
20 END

Directeur:
Code shell (affichage) : Sélectionner tout
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) : Sélectionner tout
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) : Sélectionner tout
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

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de skip78
Membre habitué https://www.developpez.com
Le 04/07/2006 à 11:21
^^ fort sympathique
0  0 
Avatar de Maxoo
Membre émérite https://www.developpez.com
Le 04/07/2006 à 12:46
marrant !!
0  0 
Avatar de Jack_serious
Membre averti https://www.developpez.com
Le 04/07/2006 à 13:35
Tres joli !
0  0 
Avatar de Jahprend
Membre habitué https://www.developpez.com
Le 04/07/2006 à 13:38
Osef:d
0  0 
Avatar de yann2
Membre expérimenté https://www.developpez.com
Le 04/07/2006 à 13:39
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 !

0  0 
Avatar de Satch
Membre confirmé https://www.developpez.com
Le 04/07/2006 à 13:54
Citation 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
0  0 
Avatar de xavlours
Membre émérite https://www.developpez.com
Le 04/07/2006 à 13:57
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.
0  0 
Avatar de bilb0t
Inscrit https://www.developpez.com
Le 04/07/2006 à 14:55
Repost ?
0  0 
Avatar de DavidDeTroyes
Membre averti https://www.developpez.com
Le 04/07/2006 à 14:55
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
<HTML>
<BODY>
<TABLE>
<TR>
<TD>
TROP SUPER !!!
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
0  0 
Avatar de Commodore
Membre confirmé https://www.developpez.com
Le 04/07/2006 à 15:08
0  0