Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: hello, world  (Прочитано 2156 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
Re: hello, world
« Ответ #15 : 22 Января 2012, 08:54:49 »
Señor_Gaga, это не совсем то, что нужно. Нужен вывод всевозможного написания данной фразы.

Оффлайн Señor_Gaga

  • Забанен
  • Активист
  • *
  • Сообщений: 878
  • Ubuntu 12.04LTS & Linux Mint 13LTS "Maya"
    • Просмотр профиля
Re: hello, world
« Ответ #16 : 22 Января 2012, 09:13:28 »
Вот проверенный код на Питоне:

list1 = ["hello","hello,","Hello","Hello,"]
list2 = ["world","world!","World","World!",]

def Main():
    for word1 in list1:
        for word2 in list2:
            print word1+word2

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
Re: hello, world
« Ответ #17 : 22 Января 2012, 10:55:09 »
Verilog:
module hw (
input clk
);
reg count[3:0]
reg countt[1:0]
always @ (posedge clk) begin
count <= count + 1'b1;
if count[1] begin
countt <= countt +1'b1;
$display({str1[countt],str2[count]});
end
end

reg [8*10:1] str1[1:0];
reg [8*10:1] str2[1:0];
initial
begin
str1[0] <= "Hello, ";
str1[1] <= "hello, ";
str1[2] <= "Hello ";
str1[3] <= "hello";
str2[0] <= "world";
str2[1] <= "world!";
str2[2] <= "World";
str2[3] <= "World!";
end

endmodule

Понятно, что это не язык программирования в общем понимании этого выражения. Да и код этот никак не проверить) Но если абстрагироваться от всех ограничений, то это бы выглядело примерно так)))
« Последнее редактирование: 22 Января 2012, 17:35:22 от truegeek »

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: hello, world
« Ответ #18 : 22 Января 2012, 14:51:34 »
Мой вариант быдлокода на Qt
    QString str1("Hello, ");
    QString str2("World!");
    for (int i = 0; i < 4; ++i) {
        qDebug()<<str1+str2;
        qDebug()<<str1+str2.toLower();
        qDebug()<<str1.toLower()+str2;
        qDebug()<<str1.toLower()+str2.toLower();
        if (i == 0) str2.remove("!");
        if (i == 1) str1.remove(",");
        if (i == 2) str2.append("!");
    }
"Hello, World!"
"Hello, world!"
"hello, World!"
"hello, world!"
"Hello, World"
"Hello, world"
"hello, World"
"hello, world"
"Hello World"
"Hello world"
"hello World"
"hello world"
"Hello World!"
"Hello world!"
"hello World!"
"hello world!"
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

andrey_p

  • Автор темы
  • Гость
Re: hello, world
« Ответ #19 : 23 Января 2012, 06:48:21 »
Ну зачем так... По крайней мере все понятно, а вот Verilog просто вогнал в ступор. :)

Haskell:

main = mapM_ putStrLn msg
       where
         msg = [ h ++ w | h <- ["hello ", "hello, ", "Hello ", "Hello,"],
                          w <- ["world",  "world!",  "World",  "World!"]]

Пробовал сделать через список списков функций, обрабатывающих строку, но моих рудиментарных знаний как ФП, так и Haskell не хватило.

Пользователь решил продолжить мысль 23 Января 2012, 07:40:59:
@arcfi +1000000.

Я думал про шелл, но совсем забыл о brace expansion!
« Последнее редактирование: 23 Января 2012, 07:41:51 от andrey_p »

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: hello, world
« Ответ #20 : 23 Января 2012, 07:41:04 »
При условии, что используются только два слова - "hello" и "world", может быть 16 разных строк: ...
Задача - вывести их все на некоем языке, идиоматичным / типичным для данного языка способом. Ну и желательно элегантно или необычно.
Код: (bash) [Выделить]
echo -e \\r{h,H}ello{,\,}\ {w,W}orld{,\!}\\n::)

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: hello, world
« Ответ #21 : 23 Января 2012, 08:36:37 »
echo -e \\r{h,H}ello{,\,}\ {w,W}orld{,\!}\\n
Супер мупер.
Когда я разрабатывал контроллеры, тоже писал на Verilog. Знание C никогда и никому не вредило, хотя Verilog - это язык описания аппаратных извращений.

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
Re: hello, world
« Ответ #22 : 23 Января 2012, 09:04:27 »
arcfi, божественно!

... а вот Verilog просто вогнал в ступор. :)
Ну так ничего удивительного, Verilog - не есть язык программирования в чистом виде, это язык описания аппаратуры. В нем нет таковых операций со строками, его задача работать с битами, байтами, регистрами, триггерами. Да и комбинаторная логика дается не сразу и не всем )))

alexander.pronin, не согласен, AHDL - вот это, язык аппаратных извращений))) На Verilog описывать логику -  просто сказка.

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: hello, world
« Ответ #23 : 23 Января 2012, 09:15:05 »
alexander.pronin, не согласен, AHDL - вот это, язык аппаратных извращений))) На Verilog описывать логику -  просто сказка.
Согласен, я слегка иронизирую.
Везде все зависит от индивидума на 90%. Раньше это было нагляднее и материальнее, когда все делалось на мелочевке (рассыпухе). Сейчас извращения очень даже хорошо скрыты. Размер тот же, а что там наваяно лучше не знать.
Кроме AHDL , есть VHDL - тоже еще та штучка (лаконичный наш).
« Последнее редактирование: 23 Января 2012, 09:30:42 от alexander.pronin »

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
Re: hello, world
« Ответ #24 : 23 Января 2012, 09:50:38 »
Ну так есть и не только VHDL. Для меня нет принципиальной разницы на чем из них писать. На Verilog получается более приятней глазу чтоли. Согласен, все от человека зависит. А так да, стандартизированы только Verilog и VHDL вроде как.

Оффлайн Señor_Gaga

  • Забанен
  • Активист
  • *
  • Сообщений: 878
  • Ubuntu 12.04LTS & Linux Mint 13LTS "Maya"
    • Просмотр профиля
Re: hello, world
« Ответ #25 : 23 Января 2012, 11:39:32 »
А я люблю всё делать тупо, зато понятно и 100% надежно:

(Нажмите, чтобы показать/скрыть)

К тому же это решение самое элегантное для данного случая.

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.