Программа Hello, world!
Материал из Википедии — свободной энциклопедии
Программа «Hello world» — программа, результатом работы которой является вывод на экран или иное устройство фразы «Hello, world!» (в переводе с английского «Здравствуй, мир!»). Обычно это первый пример программы в учебниках по программированию, и для многих студентов такая программа является первым опытом при изучении нового языка.
Такая постановка задачи обращает внимание учащегося сразу на несколько ключевых моментов языка программирования, главным из которых является базовая структура программы.
Хотя небольшие тестовые примеры использовались с тех самых пор как появились компьютеры, традиция использования фразы «Hello, world!» в качестве тестового сообщения была введена в книге «The C Programming Language» («Язык программирования Си») Брайана Кернигана и Денниса Ричи, опубликованной в 1978 году.
Содержание |
[править] Примеры
[править] Бейсик
PRINT "Hello, world!"
[править] C
#include <stdio.h> int main (void) { printf("Hello, world!\n"); return 0; }
[править] C++
#include <iostream> using namespace std; int main() { cout << "Hello, World!" <<endl; return 0; }
[править] C#
public class ExampleClass { public static void Main() { System.Console.WriteLine("Hello, world!"); } }
[править] Python
print("Hello, world!")
[править] Pascal
program HelloWorld; begin WriteLn('Hello, world!'); end.
[править] Perl
print 'Hello, world!';
[править] Ruby
puts "Hello, world!"
[править] Scheme
(begin (display "Hello, world!") (newline))
[править] PHP
<?php echo 'Hello, world!';?>
[править] Java
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, world!"); } }
[править] Ассемблер
Пример программы Hello world для MS-DOS для архитектуры x86 на диалекте TASM:
.MODEL TINY CODE SEGMENT ASSUME CS:CODE, DS:CODE ORG 100h START: mov ah,9 mov dx,OFFSET Msg int 21h int 20h Msg DB 'Hello World',13,10,'$' CODE ENDS END START
[править] JavaScript и JScript
document.write('Hello, world!');
[править] Brainfuck
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++ .>+.+++++++..+++.>++.<<+++++++++++++++.>.+++. ------.--------.>+.>.
[править] Маргинальные примеры
Данная группа примеров обычно призвана демонстрировать громоздкость технологий.
[править] C++ с использованием Component Object Model
[ 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; }; };
#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; }; #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; } #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 CoInitiali, 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 } }; #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); }
[править] Другие программы
В учебниках по программированию используются и другие программы:
- Пустая программа — ничего не делает, но корректно запускается и выгружается из памяти.
- «99 бутылок пива» демонстрирует простейшее применение циклов, печатает стишок:
99 бутылок пива на стене! 99 бутылок пива! Возьми одну и выпей её — 98 бутылок пива на стене! 98 бутылок пива! <…> 1 бутылка пива на стене! 1 бутылка пива! Возьми одну и выпей её — Нет больше бутылок пива на стене!
- Программы вычисления факториала и чисел Фибоначчи.
- Quine — программа, печатающая сама себя.
- JAPH.
[править] Ссылки
- Коллекция «The Hello World» — более 300 программ, включая «Hello World» на 50+ реальных языках
- Hello world на многих языках (проект заморожен)
- Юмор
- Художественные работы

