"Helló Világ!" - olyan program, amelynek eredményeként a képernyőn vagy más eszközön megjelenik a "Hello, world!" (Szó szerint lefordítva angolról - „Hello, world!”; ez egy közönséges informális köszöntés, közel az orosz „hello mindenkinek!”). Különböző írásjelekkel vagy kis- és nagybetűkkel rendelkező változatok is használatosak, például „Hello World”. Általában ez az első példa egy programra a programozási tankönyvekben, és sok diák számára ez az első tapasztalat egy új nyelv tanulásában.
A probléma ilyen megfogalmazása egyszerre hívja fel a hallgató figyelmét a programozási nyelv több kulcsfontosságú pontjára, amelyek közül a legfontosabb a program alapvető felépítése.
Bár a számítógépek megjelenése óta használnak kis teszteseteket, a "Hello, world!" tesztüzenetként Brian Kernighan és Dennis Ritchie 1978-ban megjelent The C Programming Language című könyvében mutatták be.
A mikrokontroller programozási környezetben kijelző hiányában a legegyszerűbb „Hello, world” program a „blink” program, amely a LED villogását valósítja meg az egyik mikrokontroller kimenetén. Egy ilyen program célja a program sikeres összeállítása (új mikrokontroller vagy új fejlesztői környezet megtanulásakor), a program mikrokontrollerbe való flashelése és magának a mikrokontrollernek a teljesítményének bemutatása.
Az oroszul beszélő programozók és műszaki fordítók hagyományosan a világ szót fő jelentésében fordítják - "világ, fény, univerzum", ezért a szó szerinti "hello world" szó a "hello world" szóból származik. Ezt a fordítást az magyarázza, hogy a program, megkezdve a munkát, mintegy megszületik, és üdvözli azt a világot, amelybe érkezik.
Az angol nyelv bonyolultságait jobban ismerők rámutatnak arra, hogy a világnak más jelentése is van - „emberek”, „társadalom”, „emberiség” [1] , a „hello world” pedig egy közönséges informális üdvözlet, amelyet meghatározatlan körnek címeznek. (emberek, nem csak tetszőleges tárgyak vagy általában a természet). Ezért az üdvözletet „hello mindenkinek”, „hello people”, „great people” stb.-nek kell fordítani, amit angolul beszélő programozók is megerősítenek. [2] [3]
Hasonló értelemben használják a világ szót a hozzáférési jogok (tulajdonos, csoport, világ) hozzárendelésekor UNIX operációs rendszerekben , amelyre a C nyelvet fejlesztették ki , amelyből a "hello world" üdvözlésként való megjelenítésének hagyománya származik. A tulajdonos az objektum tulajdonosát jelenti, a csoport az a felhasználói csoport, amelyhez a tulajdonos tartozik, a világ pedig a rendszer összes többi felhasználója.
C az örökölt K&R változatban : [4]
#include <stdio.h> fő () { printf ( "helló világ! \n " ); }Egy modern példa, amely megfelel az ANSI C szabványnak . [5] :
#include <stdio.h> int main ( érvénytelen ) { printf ( "Helló világ! \n " ); return 0 ; } #include <iostream> int main () { std :: cout << "Hello, world!" << std :: endl ; return 0 ; }C# :
a rendszer használatával ; class HelloWorld { static void Main () { Konzol . Írj ( "Helló, világ!" ); } }Pascal :
begin writeln ( 'Hello, world!' ) ; vége .Visual Basic (6.0):
Privát Sub Form1_Load () Nyomtatás "Hello, world!" vége alJava :
public class HelloWorld { public static void main ( String [ ] args ) { System . ki . println ( "Szia, világ!" ); } }menj :
csomag fő ; import "fmt" func main () { fmt . println ( "Szia, világ!" ) } " Hello , World!"Python , Lua , Perl és Swift :
print ( "Helló, világ!" )Python (alternatíva):
import __hello__ fn main () { println! ( "Helló, világ!" ); }PHP :
<?php echo "Helló, világ!" ; ?>JavaScript (böngésző verzió):
dokumentumot . írj ( "Helló, világ!" );JavaScriptben ( Node.JS opció):
konzol . log ( "Szia, világ!" ); void beállítás (){ méret ( 400 , 150 ); háttér ( 255 ); textSize ( 30 ); kitölt ( 0 ); szöveg ( "Hello World" , 100 , 100 ); } ( formátum t "Hello, world!~%" )NASM :
globális indulás szakasz.szöveg _ kezdés: mov rax , 0x2000004 ; írd mov rdi , 1 ; stdout mov rsi , "Hello, world!" mov rdx , 13 syscall mov rax , 0x2000001 ; kilépés a mov rdi -ből , 0 syscall1C :
Értesítés ( "Helló, világ!" ); ++++++++ [ > ++++ [ > ++ > +++ > +++ > + <<<< - ] > + > + > - >> + [ < ] < - ] > > . > --- . +++++++ .. +++ . >> . < - . < . +++ . ------ . -------- . >> + . > ++ .Dart :
main () { print ( "Hello, World!" ); } HMalbolge ezoterikus nyelven : _
( ' &%: 9 ] !~ } | z2Vxwv - , POqponl$Hjig % eB @@ > } =< M : 9 wv6WsU2T | nm - , jcL ( I &% $ # "`CB]V?Tx<uVtT` Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj" Fhg$ { z @ >A Whitespace ezoterikus nyelvén :
Minden szóköz , tabulátor és soremelés karakter előtt egy "S", "T" és "L" megjegyzés található:
S S S T S S T S S S LT L S S S S S S S T S T S T L T L S S S S S S T S T S T S L T L S S S S S S S S T S T S T T _ _ _ _ T T L T L S S S S S S S S S S S L T L S S S S S S S S S S S L T L S S S S S T T T T T T L S S S S S S T T S T T T T L T L S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S T L T L S S L L Stílus=
Ez a példacsoport egyes technológiák terjedelmességét hivatott bemutatni.
Példa C++ programra a Component Object Model használatával [ uuid(2573F8F4 - CFEE - 101A - 9A9F - 00AA00342820) ] könyvtár LSzia { // hozza be a főkönyvtárat importlib( "actimp.tlb" ); importlib( "actexp.tlb" ); // behozom a felületeimet # include "pshlo.idl" [ uuid(2573F8F5 - CFEE - 101A - 9A9F - 00AA00342820) ] cotype THello { interfész IHello; interfaceIPersistFile; }; }; [ alkalmazás, uuid(2573F890 - CFEE - 101A - 9A9F - 00AA00342820) ] modul CHelloLib { // néhány kóddal kapcsolatos fejlécfájl importheader(); importheader(); importheader(); importheader( "pshlo.h" ); importheader( "shlo.hxx" ); importheader( "mycls.hxx" ); // szükséges typelibs importlib( "actimp.tlb" ); importlib( "actexp.tlb" ); importlib( "thlo.tlb" ); [ uuid(2573F891 - CFEE - 101A - 9A9F - 00AA00342820), összesíthető ] coclass CHello { THello társtípus; }; }; #include "ipfix.hxx" extern Handle hEvent ; osztály CHello : nyilvános CHelloBase { nyilvános : IPFIX ( CLSID_CHello ); CHello ( IUnknown * pUnk ); ~ CHello (); HRESULT __stdcall PrintSz ( LPWSTR pwszString ); privát : statikus int cObjRef ; }; #include "thlo.h" #include "pshlo.h" #include "shlo.hxx" #include "mycls.hxx" int CHello :: cObjRef = 0 ; CHello :: CHello ( IUnknown * pUnk ) : CHelloBase ( pUnk ) { cObjRef ++ ; visszatérés ; } HRESULT __stdcallCHello :: PrintSz ( LPWSTR pwszString ) _ { printf ( "%ws \n " , pwszString ); return ( ResultFromScode ( S_OK )); } CHello ::~ CHello ( érvénytelen ) { // amikor az objektumok száma nullára megy, állítsa le a kiszolgálót cObjRef -- ; if ( cObjRef == 0 ) PulseEvent ( hEvent ); visszatérés ; } #include "pshlo.h" #include "shlo.hxx" #include "mycls.hxx" HANDLE hEvent ; int _cdecl main ( int argc , char * argv []) { ULONG ulRef ; DWORD dwRegisztráció ; CHelloCF * pCF = új CHelloCF (); hEvent = CreateEvent ( NULL , FALSE , FALSE , NULL ); // Az OLE könyvtárak inicializálása CoInitializeEx ( NULL , COINIT_MULTITHREADED ); CoRegisterClassObject ( CLSID_CHello , pCF , CLSCTX_LOCAL_SERVER , REGCLS_MULTIPLEUSE , & dwRegistration ); // vár egy eseményre a WaitForSingleObject leállításához ( hEvent , INFINITE ); // az osztályobjektum visszavonása és felszabadítása CoRevokeClassObject ( dwRegistration ); ulRef = pCF -> Release (); // Mondd meg az OLE-nek, hogy elmegyünk. CoUninicialize (); visszatérés ( 0 ); } extern CLSID CLSID_CHhelló ; külső 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 */ 0x2573F891 , 0xCFEE , 0x101A , { 0x9A , 0x9F , 0x00 , 0xAA , 0x00 , 0x34 , 0x28 , 0x20 } }; #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 ]; // objektum elérési útja wcsPath [ 0 ] = '\0' ; wcsT [ 0 ] = '\0' ; if ( argc >= 1 ) { mbstowcs ( wcsPath , argv [ 1 ], strlen ( argv [ 1 ]) + 1 ); wcsupr ( wcsPath ); } else { fprintf ( stderr , "Az objektum elérési útját meg kell adni \n " ); visszatérés ( 1 ); } // nyomtatási karakterlánc lekérése if ( argc >= 2 ) mbstowcs ( wcsT , argv [ 2 ], strlen ( argv [ 2 ]) + 1 ); más wcscpy ( wcsT , L "Hello World" ); printf ( "Hivatkozás a %ws objektumhoz \n " , wcsPath ); printf ( "Szövegkarakterlánc %ws \n " , wcsT ); // Az OLE könyvtárak inicializálása hRslt = CoInitializeEx ( NULL , COINIT_MULTITHREADED ); if ( SIKERÜLT ( hRslt )) { hRslt = CreateFileMoniker ( wcsPath , & pmk ); ha ( SIKERÜLT ( hRslt )) hRslt = BindMoniker ( pmk , 0 , IID_IHello , ( void ** ) & pHello ); if ( SIKERÜLT ( hRslt )) { // karakterlánc nyomtatása pHello -> PrintSz ( wcsT ); Alvás ( 2000 ); ulCnt = pHello -> Release (); } más printf ( "Sikertelen csatlakozás, állapot: %lx" , hRslt ); // Mondd meg az OLE-nek, hogy elmegyünk. CoUninicialize (); } return 0 ; }A programozási oktatóanyagokban használt egyéb programok a következők:
Szabványos tesztobjektumok | |
---|---|
2D grafika | |
3D grafika |
|
MP3 audio | |
Programozás | |
Adattömörítés |
|
Szöveg elemek | |
Küzdelem a vírusok ellen | |
Tartomány | |
Optimalizálás |
|