Программа 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>

int main()
{
  std::cout << "Hello, world!\n";
  return 0;
}

C#

public class ExampleClass
{
   public static void Main()
   {
       System.Console.WriteLine("Hello, world!");
   }
}

Turbo Pascal

begin
  writeln('Hello, world!');
end.

Глагол

ОТДЕЛ Привет+;

ИСПОЛЬЗУЕТ Вывод ИЗ "…\Отделы\Обмен\";

УКАЗ
  Вывод.Цепь("Здравствуй, мир!")

КОН Привет.

Perl

#!/usr/bin/perl                                                                                    
print "Hello World!\n";

Scheme

(begin                                                                          
   (display "Hello, world!")                                                    
   (newline))

Лисп

Common Lisp

(format t "Hello, world!~%")

Emacs Lisp

(print "Hello, world!")

Руби

puts "Hello, world!"

PHP

<?php echo "Hello, world!\n"; ?>

Java

public class HelloWorld {
  public static void main(String args) {
    System.out.println("Hello, world!");
  }
}

Ассемблер (только для DOS и Windows)

TITLE Hello World
Msgstr DB 'Hello, World!'
start:    
   mov ax,DATASEG
   mov ds,ax
   mov bx,1
   mov cx,13
   mov dx,offset Msgstr
   mov ah,40h
   int 21h
   mov ax, 04C00h
   int 21h
end start

Visual Basic

Sub Main()
    MsgBox "Hello, world!"
End Sub

JScript и JavaScript

document.write('Hello, world!');

Tcl/Tk

button .b -text "Hello, world!" -command { exit }
pack .b

Fortran

PROGRAM HELLO
    PRINT *, 'Hello, world!'
  END

Python

print "Hello, world!"

Brainfuck

    ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++
    .>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.
    ------.--------.>+.>.

Маргинальные примеры

Данная группа примеров обычно призвана демонстрировать монстрообразность и громоздкость технологий

C++ с использованием рекомендованной Майкрософт технологией COM

[
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
#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;
}
#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
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
#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);
}

Другие стандартные программы

Существует несколько других программ, кочующих между учебниками по программированию на разных языках:

  • Пустая программа — ничего не делает, но корректно запускается и выгружается из памяти.
  • «99 бутылок пива» демонстрирует простейшее применение циклов, печатает глупый стишок:
   99 bottles of beer on the wall
   99 bottles of beer!
   Take one down, pass it around
   98 bottles of beer on the wall!
   <…>
   1 bottle of beer on the wall
   1 bottle of beer!
   Take one down, pass it around
   No more bottles of beer on the wall!

Ссылки

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home