» Utilizator
LAMP
» Parteneri» De citit» Recomandari» Taskuri securitate » Statistici
  • 65486 de mesaje.
  • 7732 de topicuri.
  • 1231 de utilizatori.
  •  
  • Kopotosa e ultimul utilizator inregistrat.
[Detalii]

 

| |
Pagini: [1] 2
Print

Concurs HelloWorld [2048 afisari]

danieLs
*


Mesaje: 569
OfflineOffline

WWW

Vin si eu cu o idee de concurs.  Smile

Faceţi un progrămel (consola si poate sa fie in orice limbaj de programare) care să printeze pe ecran HelloWorld într-un mod cat mai ingenios/interesant/funny/original/etc...
Deci nu este vorba despre felul cum v-a fi afişat strigul respectiv pe ecran ci despre progrămelul care v-a face lucrul ăsta.

Nu pun un termen limita si soluţiile să le postaţi aici cat mai repede, care cum vrea.
Daca cineva a postat deja un mod de a face lucrul ăsta nu prea mai are rost ca sa mai posteze si altcineva după el aceeaşi soluţie.

Premii nu se dau  Devil si nici nu o sa votam care varianta e cea mai "tare" pentru ca toate o sa fie bune dar ar fi interesant sa comentam la fiecare ce va place si ce nu.

Voi posta si eu cat de curând varianta mea.

PS: Daca nu trebuia sa fi postat ideea de concurs fara aprobare ştergeţi topicul sau mai bine daţi acum aprobarea pentru el Tongue
Logged

The only valid measurement of code quality is: WTF's/minute

(\__/)
(+'.'+) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
17-01-2009, 18:10 Twitt ::
emi



Mesaje:

a mai fost pe aici dar acum poate sunt oameni noi si care vor sa participe.
Logged
17-01-2009, 19:10 Twitt ::
LeOCruX
*


Mesaje: 322
OfflineOffline


deci ...e un "Cel mai mic HelloWorld" sau
Quote
care să printeze pe ecran HelloWorld într-un mod cat mai ingenios/interesant/funny/original/etc...
Logged

Un gram de practica face cat o tona de teorie
17-01-2009, 19:44 Twitt ::
danieLs
*


Mesaje: 569
OfflineOffline

WWW

Quote
care să printeze pe ecran HelloWorld într-un mod cat mai ingenios/interesant/funny/original/etc...
exact

NU CEL MAI MIC,
poti sa faci un programel de 1000 de linii si 10mb ideea e sa il fac intr-un mod din cele descrie mai sus.

Hai sa dau un ex, faci un array cu codul ascii al caracterelor si apoi iterezi array-ul printand caracterele, sau aranjezi codul in asa fel in cat felul cum e formatata sursa sa fie un emoticon sau in forma de litera, H de ex.
Cam asta ar fi ideea.

LE: Sirul de caractere printat trebuie sa fie "HelloWorld" (fără ghilimele)
Logged

The only valid measurement of code quality is: WTF's/minute

(\__/)
(+'.'+) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
18-01-2009, 02:47 Twitt ::
LeOCruX
*


Mesaje: 322
OfflineOffline


poate sa se repete?
exemplu:
Hello
      WORLD, world, world, world
Hello
Logged

Un gram de practica face cat o tona de teorie
18-01-2009, 15:12 Twitt ::
danieLs
*


Mesaje: 569
OfflineOffline

WWW

Nu prea cred ca am inteles la ce te referi.
Ideea era sa afisezi HelloWorld pintrun programel de consola.
Nu stiu cum ai putea scrie de la mai mare la mai mic in consola  I don't know
Fa asa daca vrei Smile sa vedem mai bine la ce te-ai referit.



Varianta mea: http://pastebin.com/f4ec7c24f (Aici e cu syntax highlight)


Code:
#include <iostream>
using namespace std;

class HelloWorld {
        public:
        HelloWorld()    { cout << (char)0x48;              }
        HelloWorld* e() { cout << (char)0x65; return this; }
        HelloWorld* l() { cout << (char)0x6C; return this; }
        HelloWorld* o() { cout << (char)0x6F; return this; }
        HelloWorld* W() { cout << (char)0x57; return this; }
        HelloWorld* r() { cout << (char)0x72; return this; }
        HelloWorld* d() { cout << (char)0x64; return this; }
};
HelloWorld* H() { return new HelloWorld(); }

int main() {
        delete H()->e()->l()->l()->o()->W()->o()->r()->l()->d();
        cout << endl;
        return 0;
}
Logged

The only valid measurement of code quality is: WTF's/minute

(\__/)
(+'.'+) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
18-01-2009, 19:44 Twitt ::
danieLs
*


Mesaje: 569
OfflineOffline

WWW

nimeni interesat...
nu va place la nimeni, c#, pascal, autoit, php?
bagati un hello world mai ciudat in limbajul vostru preferat...
Logged

The only valid measurement of code quality is: WTF's/minute

(\__/)
(+'.'+) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
19-01-2009, 20:50 Twitt ::
astan
*


Mesaje: 773
OfflineOffline


Codul de mai jos nu intra in nici un concurs.
Nici nu l-am scris eu.
Autorul este Jason Tiscioni, promotor al curentului anti-patterns si popularizat intr-o carte de baza privind designul software ("Refactoring to patterns", de Joshua Kerievsky) . Codul este o parodie adusa la exagerarile multor zeloti care incearca sa aplice diverse patterns, chiar si in cazul unor probleme triviale, cand evident nu e cazul.

Analiza codului.
Observati "eleganta" deosebita in rezolvarea "problemei" Laughing :

- partea responsabila cu trimiterea unui mesaj este decuplata de restul codului, pentru flexibilitate. Deoarece algoritmul de trimitere a mesajului se doreste a fi "flexibil", este decuplat in clase ce implementeaza interfata MessageStrategy. Pattern-ul respectiv este descris in GOF sub numele strategy
-  Crearea obiectelor strategy se face prin intermediul clasei AbstractStrategyFactory, ce implementeaza un pattern Abstract Factory (descris tot in GOF)
- clasele care extind AbstractStrategyFactory (concrete factories) creeaza obiecte strategy concrete, in createStrategy().
- mesajul efectiv este "incapsulat" in obiectul MessageBody (si poate fi substituit la run-time)
- clasa ce implementeaza patternul concrete factory (DefaultFactory ), este pe deasupra si un "singleton" (ca oricum nu ai nevoie de mai multe instante de acest tip)

Code:
// HelloWorld.java
interface MessageStrategy {
public void sendMessage();
}

abstract class AbstractStrategyFactory {
public abstract MessageStrategy createStrategy(MessageBody mb);
}

class MessageBody {
Object payload;
public Object getPayload() {
return payload;
}
public void configure(Object obj) {
payload = obj;
}
public void send(MessageStrategy ms) {
ms.sendMessage();
}
}

class DefaultFactory extends AbstractStrategyFactory {
private DefaultFactory() {;}
static DefaultFactory instance;
public static AbstractStrategyFactory getInstance() {
if (instance==null) instance = new DefaultFactory();
return instance;
}

public MessageStrategy createStrategy(final MessageBody mb) {
return new MessageStrategy() {
MessageBody body = mb;
public void sendMessage() {
Object obj = body.getPayload();
System.out.println((String)obj);
}
};
}
}

public class HelloWorld {
public static void main(String[] args) {
MessageBody mb = new MessageBody();
mb.configure("Hello World!");
AbstractStrategyFactory asf = DefaultFactory.getInstance();
MessageStrategy strategy = asf.createStrategy(mb);
mb.send(strategy);
}
}
Logged
19-01-2009, 22:21 Twitt ::
danieLs
*


Mesaje: 569
OfflineOffline

WWW

tare  Laughing

Ai pus si explicaţii, perfect.
Merci, la chestii de genul asta m-am referit.
Logged

The only valid measurement of code quality is: WTF's/minute

(\__/)
(+'.'+) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
20-01-2009, 05:01 Twitt ::
DranaXum
*


Mesaje: 64
OfflineOffline

WWW

Code:
using System;
using System.Collections.Generic;

namespace HW {
static class HW {
private class innerHw() {
     private List<char> hw;
     public innerHw() {
          hw=new List<char>(new char[] {'H','e','l','l','o',' ','W','o','r','l','d','!'});
     }
     public string sendToScreen() {
          string ret="";
          for(int i=0;i<hw.Count;i++) ret+=hw[i].ToString();
          return ret;
     }
}
static void main() {
     innerHw hw=new innerHw();
     Console.WriteLine(hw.sendToScreen());
}
}
}
Logged

Puterea izvoraste din capacitatea omului de a gandi!
http://dranaxum.wordpress.com
20-01-2009, 09:18 Twitt ::
Dieliric
*


Mesaje: 507
OfflineOffline


Code:
PROGRAM Hello_world;
USES CRT;
VAR S:STRING;
I,J:INTEGER;
TASTA:CHAR;
BEGIN
TEXTBACKGROUND(BLACK); CLRSCR;
WRITE ('Hello world : '); READLN (S);
CLRSCR;
IF S=' ' THEN S:='PREZENTARE';
FOR I:=1 TO LENGTH (S) DO
FOR J:=2 TO 20 DO
BEGIN
GOTOXY(10+2*I,J-10); WRITE (' ');
GOTOXY(10+2*I,J); TEXTCOLOR(I); WRITE (S[I]);
GOTOXY(1,1); SOUND(200-10*J); DELAY(10);
END;
NOSOUND; TASTA:=READKEY;
END.
Cred ca codul este destul de explicit iar pentru cei care au nevoie de explicatii pot sa ma contacteze  Smug.
Logged



"Stii bine ca pe mine nimeni nu ma poate schimba
Nu ma mai intreba ce vreau sa fac cu viata mea
Pentru ca de pe acum iti spun asa raman
Pana cand va creste iarba la mine pe mormant"
07-02-2009, 18:14 Twitt ::
Claudiu
*


Mesaje: 1543
OfflineOffline

WWW

Sper ca nu e prea tarziu... azi am dat de site  Tongue

Am scris si eu ceva funny sa completeze colectia Smile

Code:
#ifndef REDEFINE_H_INCLUDED
#define REDEFINE_H_INCLUDED

bool e = true;
bool atunci = false;
int a;

#define Daca     if
#define mai      (
#define timp     !=
#define ma       )
#define inscriu  {
#define si       cout << "Hello world"
#define eu       ;
#define la       }
#define concurs  cout << " :)";

#endif // REDEFINE_H_INCLUDED

Code:
#include <iostream>
#include "redefine.h"
using namespace std;

int main()
{
    Daca mai e timp atunci ma inscriu si eu la concurs

}

Ah, da... si salutare la lume Laughing
Logged

09-04-2009, 08:44 Twitt ::
DarkByte



Mesaje:

^ Bine ai venit Smile Nice piece of code Big grin

Cu ocazia asta (mi-ai amintit de topic) o sa ma prezint si eu diseara cu ceva cod Smile
Logged
09-04-2009, 09:06 Twitt ::
Claudiu
*


Mesaje: 1543
OfflineOffline

WWW

Mersi DarkByte... sper sa gasesc si alte concursuri care sa-mi starneasca interesul pe aici Tongue
Logged

09-04-2009, 09:08 Twitt ::
DarkByte



Mesaje:

Lasa concursurile pentru 5 minute si treci pe aici Tongue
Logged
09-04-2009, 09:12 Twitt ::
Pagini: [1] 2
Print
SkullBox Forum  |  Development  |  Concursuri de programare  |  Topic: Concurs HelloWorld