“Merhaba, Dünya!” yazdır


79

Evet gerçekten. Basılı kopya oluşturmak için bir donanım yazıcısıyla 🖨 yazdırın .

Gerekli komutları / verileri yazıcınıza, aşağıdaki metin bir kağıda basılacak şekilde gönderin:

Selam Dünya!

Kullanabileceğiniz yerel veya ağa bağlı herhangi bir yazıcıyı kullanabilirsiniz.

Yazıcınız izin veriyorsa, beyaz kağıda siyah mürekkeple 8 punto veya daha büyük bir metin kullanmanız gerekir.

Metin kendi satırında görünmelidir. İstediğiniz gibi sola veya sağa yerleştirilmiş olabilir.

Gönderilen dijital fotoğraf / video / GIF kanıtları yardımcı olacaktır.

Donanımınız kağıt yapamıyor, ancak 3D baskı, CNC işleme veya atomik düzeyde baskı gibi diğer egzotik basılı kopyaların üretilmesine izin veriyorsa, bu kadar ilginç gönderimleri kabul etmekten memnuniyet duyarım.


Açıklığa kavuşturmak için, soru "Yazıcınıza gerekli komutları / verileri gönderin" diye sorar . Bunun anlamı, başka bir kullanıcı girişi gerektirmemesi gerektiğidir. Bir yazdırma iletişim kutusunu açmak yeterli değil. 31 Aralık 2016 PST 10:48 itibariyle bunu yapan mevcut cevaplar dede olacak (ancak benim tarafımdan değil).


56
Lütfen doğrulama için başvuru gönderebileceğimiz bir adres girin.
steenbergh

1
@steenbergh Yep - iyi nokta - Gönderilen dijital fotoğraf / video / GIF kanıtları yeterince iyi olmalıdır.
Dijital Travma

3
Eski yazıcıların çoğunun özel komut setleri kullandığını fark etmek önemlidir. Bu ASCII karakterlerinin çoğu kelimenin tam anlamıyla basılabiliyorsa, söz konusu yazıcılardan birine erişiminiz varsa (veya sadece hak talebinde bulunabilirsiniz), Hello, World!yazıcı bağlantı noktasına göndermek yeterli olacaktır.

1
print("Hello, World!")Firefox konsolunda bir kez denediğime yemin edebilir ve bir diyalog penceresi açabilirdi (işe yaramaz çünkü hiçbir şekilde bir yazıcıya bağlı değildim), ama şimdi sadece dizeyi döndürür ...
ETHproductions

2
@ET krom işlerinde basımlar <script>print("Hello, World!")</script> yazdırma iletişim kutusunu açar, ancak üzerinde gerçek metin yoktur.
FlipTack

Yanıtlar:


41

Bash, 21 19 bayt

lp<<<Hello,\ World!

gerçek çıktı

Ve işte orada.

Dennis sayesinde 2 bayt kurtarıldı !


1
+1 Bir komut dosyası olarak geçerli. Mac'imde iyi çalışıyor. Doğrudan komut satırında çalıştırmak istiyorsanız, çift tırnak işaretini tek tırnak işaretine değiştirmeniz gerekir.
Dijital Travma

neden ot güzel görünmesi için afiş yok
juggernauthk108

@ juggernaut1996 nerede? Değil tekrar bir şeyler yazdırmak varsa
Mavi

37

PowerShell , 18 bayt

'Hello, World!'|lp

Çevrimiçi deneyin!

görüntü tanımını buraya girin


9
TIO bağlantısının noktasından emin değiliz. Yine de +1.
Dijital Travma

1
@DigitalTrauma Komik olduğunu düşündüm; ve benim için görev yarattı. Ayrıca sadece işi biriktirmeye çalıştığını (ve başarısız olduğunu) görmek için hata ayıklama çıktısına bakabilirsiniz. :-p
briantist

19
@DigitalTrauma Adresinizi giriş alanına yazarsanız, TIO sonucu size postayla gönderir.
Dennis,

Yakacak param olsaydı @Dennis, baskı için API servisini kullanan bir cevap gönderirdim. Ne yazık ki ...
briantist

19

QBIC , 11 bayt

'LPRINT `_h

Neredeyse unuttum 'Merhaba, Dünya!' QBIC içine komut ...

'          Starts a code literal. This used to be "$", finally changed it.
 LPRINT `  Feeds everything from ` to the next ` directly to QBasic. 
           In this case, "LPRINT" and a space
_h         Yields "Hello, World!"

QBasic cevabımla aynı şekilde test edildi ve bulundu: görüntü tanımını buraya girin


1
um .. yani bu bağlantı nedir? Senin icat ettiğin bir dil mi?
eis

1
@eis Evet, QBIC yaptım. Bağlantı, içindeki tüm kodu içeren bir Google Drive klasörü - GitHub’a emiliyorum ... QBasic'in tepesinde bir tercüman (QBIC, Quick Basic’in Codegolf yorumcusu anlamına gelir) ve DosBox’da çalışıyor. Bazı örnekler için Vitrin başlığına göz atın (veya sadece profilimin cevap sayfasını açın,% 75'i QBIC’dedir). WIP, bu yüzden sözdizimi ve belirteçler zaman zaman değişiyor.
steenbergh

OP, yerleşik "merhaba dünyası" ndan kaçınmak için büyük bir "W" kullandı ( ayrıca bakınız ) .: iş için kendi yerleşik komutunuzu oluşturmak kod golfü değildir, ya da bunun için yerleşik bir varsayılan davranışla "0 bayt" yapabilirsiniz .
Coeur

2
@ Cœur: Bugünlerde pek işe yaramaz, çoğu yeni golf dili PPCG'de standart olduğu için tam olarak büyük harf W'yi kullanıyor ve komutun bu özel zorluk hakkında hiçbir bilgisi olmadan eklenmiş olması muhtemel (muhtemelen daha "Merhaba, Dünya! "zorluklar gelecekte gönderilecektir)

@ Cœur PPCG'ye Hoşgeldiniz! Belirli bir kaygının gerçekleştiği ilk kişi olmadığınızı öğrenmek sizi şaşırtabilir. İşte okumaya başlamak için iyi bir yer: meta.codegolf.stackexchange.com/q/4867/11261 Ayrıca kod golf etmekten hoşlanan kişiler
Ürdün

16

Toplu iş, 22 bayt

echo Hello, World!>prn

Bu echokomutun çıktısını PRN aygıt dosyasına yönlendirir , yani doğrudan varsayılan yazıcıya gönderilir (genellikle LPT1).

Ne bir DOS makinem, ne de bir yazıcım yok, korkarım bunu şu anda test edemiyorum, ancak bunu gün içinde yaptığımdan oldukça eminim. Windows XP veya daha yeni sürümlerde çalışmaz.


Bu, bir dosya oluşturmaya çalıştığımda conve yapamadığım zamanı hatırlatıyor . Ah, DOS aygıt dosyalarının sevinci ...
Ocak'ta

NT (ve varsayılan XP vb.) "Net" komutunu kullanarak bu şekilde yazdırmak üzere yapılandırılabilir. iirc "net use lpt1: bir şey"
Jasen

16

HTML + Javascript, 37 34 bayt

<body onload=print()>Hello, World!

Safari'de test edildi:

görüntü tanımını buraya girin

Bazı tasarruf için @ jimmy23013 'e teşekkür ederiz .


11
Bu, yalnızca yazdırma iletişim kutusunu açmak için görünür ve el ile müdahale etmeden işi gerçekten yazıcıya göndermez
Digital Trauma

4
@DigitalTrauma JS bunu yapamaz
Sayın Alien

1
Emin misin, @EriktheOutgolfer? Firefox ve Chrome, komut dosyasını yalnızca kapanış etiketi karşılandığında değerlendirir.
Manat çalışması

1
Evet ayrılmayı denedim </script>ve işe yaramadı.
kabarık

2
-3 bayt:<body onload=print()>Hello, World!
jimmy23013

13

Python 2.7, 421 bayt

import zlib,base64,os;os.system("s=$'%s';lp<<<\"$s\""%zlib.decompress(base64.decodestring("eNqVkk1qxDAMha/yupNgwNfoDboReDPdhQRmrcNXP3bixA3tGEMesj/r5wXoq+YysUemI0BWlYgV\npTyAEDKEQSDucxLxJaj6gUVKE8BFsH2TIOM5iMyrcTIL3YnMqCH4X0TLONTwF3H04Z0XuRPeR3Wi\nxDOi1EZY7gUTWFa8s+z5kTgcnK3sBtbZQRtCt5LPDlrliKouDh5DYz07KB6COuETUL/YRthGxHqZ\nbjyWBAU8EFk6z350Yt97Dol65hxUow9i3zr8YGxFS61nB4szPqvDnS7CU/nFwYLIYczn97JsD3xt\nr+X5wT/ARNN3\n")))

Biraz uzun görünüyor? Belki de biraz fazla karışık ....: P

Bir sürü merhaba dünya

Tüm ciddiyetle, işte kısa bir tane:

import os;os.system("lp<<<'Hello, World!'")

Yine de çok ilginç değil.



13

merhaba + lp + tr, 9 15 bayt

hello|tr w W|lp

Başlangıçta vardı

hello|lp

Ancak o yanlış büyük harf kullanımı vardı. w

merhaba gnu merhaba Debian paketinden merhaba


7
hellowçoğu programlama sitesinde olduğu gibi küçük harf olarak da yazdırılır . (Büyük Wharfin PPCG'de nasıl standart hale geldiğinden emin değilim .)

7
@ ais523 Ben böyle büyük yerleşik önlemek için tam olarak burada büyük W standart olduğunu düşünüyorum.
Pavel,

2
Büyük harf kullanımı yanlışsa, korkarım bu geçersiz.
Dennis,

Yorumlarınız için teşekkürler, bu cevabı yarın silerim.
Jasen

6
Nasıl hakkında hello|tr w W|lp?
David Conrad

11

ZX Spektrumu BASIC, 16 bayt

LPRINT "Hello, World!"

LPRINT 224 kod noktasına sahip olan ZX Spectrum BASIC içindeki 1 baytlık bir anahtar kelimedir.


1
basılı kopyanın bir fotoğrafını gösterebilir misin?
Jasen

4
@Jasen Teoride hala etrafımda bir kit var, ancak onu kazmak ve yeterince eski bir TV'ye bağlamak biraz zorlayıcı olurdu. Bunun için üzgünüm.
Neil

Muhtemelen bu komutu "kör" yazabilirsiniz.
Jasen

10

MATLAB, 40 37 36 bayt

Metin yazdırma normalde Matlab'da yapacağınız bir şey değildir, ancak yapılabilir.

title 'Hello, World!'
axis off;print

Tom Carpenter sayesinde 3 bayt biriktirdim ( titleyerine kullanın text(0,0,. title('Hello, World!') with'Merhaba, Dünya!' Başlıklı alt yazı yazarak , ardından noktalı virgül yerine yeni bir satır ekleyerek 2 bayt daha ekledim .

titlebir şekle bir başlık ekler. Bir rakam henüz açık değilse, yaratılacaktır.

axis off çerçeve ve eksenlerden kurtulmak için kullanılır, böylece metin yalnız görünür.

print Giriş argümanları verilmezse, mevcut değeri varsayılan yazıcıya yazdırır.

Bunu ofiste (varsayılan olarak iletişim kutusuna göre) varsayılan yazıcımda yazdırdım. Onu oradan alıp ispatlayabilirim ama iki hafta beklemeniz gerekecek. Varsayılanı bir pdf-yazıcıya değiştirdikten sonra, çıktı şöyledir:

görüntü tanımını buraya girin

^^ Artık doğru görüntü değil.


8

QBasic, 21 bayt

LPRINT"Hello, World!"

LPRINTmetni doğrudan yazıcıya gönderir. Ne yazık ki denenmemiş, DosBox yerel olarak desteklemiyor NET USE, bu yüzden NovaPDF'ye yönlendiremiyorum LPT1:.

Sahip olduğum sorunlar ...

GÜNCELLEME: QB64'te test edilmiştir. Sonuç PDF, Microsoft Edge’de açıldı. Buna benzer: görüntü tanımını buraya girin


7

8086 makine kodu, 28 bayt

00000000  be 0f 01 b9 0d 00 31 d2  ac 98 cd 17 e2 fa c3 48  |......1........H|
00000010  65 6c 6c 6f 2c 20 57 6f  72 6c 64 21              |ello, World!|
0000001c

Standart int 0x17BIOS aramasını kullanır . Şimdi nokta-matris yazıcım kurulmadı, bu yüzden bu kod denenmedi.

Nasıl çalışır:

            |   org 0x100
            |   use16
be 0f 01    |       mov si, msg         ; source pointer = msg
b9 0d 00    |       mov cx, 13          ; counter = length of msg
31 d2       |       xor dx, dx          ; clear dx
ac          |   @@: lodsb               ; al = *si++
98          |       cbw                 ; sign-extend al->ax (simply clears ah)
cd 17       |       int 0x17            ; send char in al to printer dx
e2 fa       |       loop @b             ; loop while (cx-- > 0)
c3          |       ret
48 65 6c    |   msg db "Hello, World!"
6c 6f 2c    |   
20 57 6f    |   
72 6c 64    |   
21          |   

1
Tabii, ekledim.
user5434231 22.0317

Şimdi konuşuyoruz!
Sınırlı Kefaret

6

Toplu İş + Sıkışmış, 12 bayt

Bu cevaptan esinlenilmiş boş bir takılan program "Merhaba, Dünya!"

  1. Bilgisayarınıza LPT1 portuna bağlı bir yazıcınız olsun
  2. Yorumlanacak boş bir sıkışmış dosya oluşturun (dosyaa a)
  3. Boş dosyada sıkışmış yorumlayıcıyı çalıştırın ve sonucu LPT1'e bağlayın

kod

stuck a>LPT1

4
Birden çok dil kullanıyorsanız, bayt sayınızın bir parçası olarak bunları birbirine bağlayan tutkalı da saymanız gerekir. Bunu, Batch programı için 15, artı 0 baytlık bir harici dosya ihtiyacı nedeniyle 0 olarak sayardım.

1
Windows toplu betiğini ve açıkça Stuck'ı çağırıp sonucu yazıcıya iletmek için kullanılan komutu açıkça gösterebilir misiniz? Açıkça söylemek gerekirse, bunun gibi bir şey demek stuck empty > LPT1. BTW eğer bu bir REPL kullanıyorsa, fikir birliğinin açıkça belirtilmesi gerektiğine inanıyorum (bu şekilde karışıklığı en aza indireceğine inanıyorum).
redstarcoder

@ ais523 Fethetmeliyim - yapıştırıcıyı saymalıyım ve bu yüzden 5 bayttan 12'ye çıkardım
Daniel

LPT1 yerine PRN'ye yönlendirerek buraya bir byte kaydedebilirsiniz.
user5434231

1
IMO, 1 bayt dosya adı için 1 bayt eklemeniz gerekir.
Hesap MakinesiFeline

4

GFA-Basic, 22 bayt

Sadece bir Atari ST emülatöründe, paralel port bir dosyaya yönlendirilmiş olarak test edilmiştir. GFA-Basic'in (ücretsiz olan) Windows sürümünde çalışması gerekir , ancak bu denenmemiş.

LPRINT "Hello, World!"

Not: Bu, QBasic sözdizimi ile aynı olduğu ortaya çıkıyor .


4

Java, 330 bayt

golfed:

import java.awt.print.*;void f()throws Throwable{PrinterJob job=PrinterJob.getPrinterJob();job.setPrintable(new Printable(){public int print(java.awt.Graphics g,PageFormat f,int i){if(i==0){((java.awt.Graphics2D)g).translate(f.getImageableX(),f.getImageableY());g.drawString("Hello, World!",0,90);}return i>0?1:0;}});job.print();}

Ungolfed (yalnızca içe aktarma artı işlevi):

import java.awt.print.*;

void f() throws Throwable {
  PrinterJob job = PrinterJob.getPrinterJob();
  job.setPrintable(new Printable() {
    public int print(java.awt.Graphics g, PageFormat f, int i) {
      if (i == 0) {
        ((java.awt.Graphics2D) g).translate(f.getImageableX(), f.getImageableY());
        g.drawString("Hello, World!", 0, 90);
      }
      return i > NO_SUCH_PAGE ? 1 : PAGE_EXISTS;
    }
  });
  job.print();
}

Java harika bir golf dili değildir ve bazı donanımlarla ilgili, baskı dahil herhangi bir şeyi golf oynarken oldukça zayıf bir iş çıkarır .

Bu programı test ederken, PDF yazıcımı varsayılan olarak ayarlıyorum. İşe yaradı ama aynı zamanda 87.792 sayfa "Merhaba Dünya!" İçeren lazer yazıcıma da bir baskı işi gönderdi. Kağıt tepsisini çektim ve işi iptal ettim, sonra tekrar test ettim. Bir daha olmadı. Teşekkürler, Windows 10.


-7 bayt 3x değiştirerek jobetmek jve i==0için i<1.
Kevin Cruijssen

3

JavaScript, 37 36 bayt

print(document.write`Hello, World!`)

@ Manatwork ve @ xem sayesinde 15 bayt kurtarıldı!


3
Gerek açıkça belirtmek için window: document.write('Hello, World!');print(). Hatta daha kısa: print(document.write('Hello, World!')).
Manat çalışması

3
ES6 ile şunları bile yapabilirsiniz: document.write`Hello, world!` (daha fazla bilgi burada: xem.github.io/articles/#webspeech )
xem

Onay olmadan yazdırıyor mu? Hayır? Çok kötü, geçersiz.
Hesap MakinesiFeline

@ Hesap MakinesiFeline Neden düşmanlık? Eğer mücadelenin dipnotunu okursanız, göreceksiniz "...Existing answers that do this as of 10:48am PST 31st Dec 2016 will be grandfathered...".
Oliver

Ah. Bu kısmı özledim.
Hesap MakinesiFeline


2

c #, 259 250 bayt

using System.Drawing;using System.Drawing.Printing;struct p{static void Main(){var p=new PrintDocument();p.PrintPage+=(s,e)=>e.Graphics.DrawString("Hello,World!",new Font("Arial",12),new SolidBrush(Color.Black),new Rectangle(0,0,999,99));p.Print();}}

Örnek çıktı


2

Toplu iş, 32 bayt

echo Hello, World!>t
notepad/P t

Manuel müdahale gerektirmeden tüm pencere sürümlerinde çalışmalıdır.


1

Raket 35 bayt

(system("echo 'Hello World!'\|lp"))

1

HTML (33)

Hello, World!<svg onload=print()>

(Tarayıcıda bir yazdırma penceresi ister, doğrudan yazdırmaz)


Etiketin <svg>özel olmasının bir nedeni var mı , yoksa herhangi bir etiketin çalışması mı? (Pek çok etiketin adı daha kısa.)

7
afaik, sadece svg, img (geçerli bir src ile), iframe ve body, sayfa yüklendiğinde tetiklenen bir onload olayına sahiptir. src olmadan img bir onerror olayı başlatır. Sonuçta, bulduğumuz en kısa svg onload = ...
xem

Meydan büyük harf ister W(bayt sayınızı değiştirmez).
Martin Ender

1

APL (Dyalog) , 50 bayt

Elbette, bir Batch / Bash çözümü seçip kullanabiliriz, ancak bunun yerine gerçek bir baskı işi yaratalım:

{'X.'WC'Text' 'Hello, World!'⍵⊣'X'WC'Printer'}⍳2

⎕WC bir B indows REATE nesne

İlk önce biz denilen bir yazıcı nesnesi (bir yazdırma işi) yarattıktan 'X'sonra ( ) bunun içinde ( 'X.') isimsiz fonksiyonun argümanında bir metin nesnesi yaratıyoruz {}. Argüman, ⍳2ilk iki tamsayıyı ( 1 2) verir ve yukarıdan% 1 ve soldan% 2 anlamına gelir. Anonim işlev sona erdiğinde, tüm yerel değişkenleri ( X) yok edilir; bu da Windows’a yazdırma işinin yazdırılmaya hazır olduğunu bildirir:


Yazdırma işi


0

Javascript, 36 bayt

print(document.write`Hello, World!`)

Bu sadece yazdırma iletişim kutusunu açar. Aslında yazdırmak için daha fazla manuel müdahale gerekir. Lütfen sorunun altındaki notu okuyun.
Dijital Travma,


0

JavaScript + HTML, 20 bayt

print()
Hello, World!


Bu sadece yazdırma iletişim kutusunu açar. Aslında yazdırmak için daha fazla manuel müdahale gerekir. Lütfen sorunun altındaki notu okuyun.
Dijital Travma,

0

C #, 174 bayt

namespace System.Drawing.Printing{_=>{var p=new PrintDocument();p.PrintPage+=(s,e)=>e.Graphics.DrawString("Hello, World!",new Font("Onyx",9),Brushes.Black,0,0);p.Print();};}

Tam / Biçimli sürüm:

namespace System.Drawing.Printing
{
    class P
    {
        static void Main(string[] args)
        {
            Action<float> f = _ =>
            {
                var p = new PrintDocument();
                p.PrintPage += (s, e) =>
                    e.Graphics.DrawString("Hello, World!", new Font("Onyx", 9), Brushes.Black, 0, 0);
                p.Print();
            };

            f(0);
        }
    }
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.