Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Офф-топ

Страница: 1 | 2 | 3 | 4 |

 

  Вопрос: Соцопрос Добавлено: 20.02.07 10:48  

Автор вопроса:  Black Berill

Ответить

  Ответы Всего ответов: 59  

Номер ответа: 46
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #46 Добавлено: 15.04.07 12:13
2BUMM, давай не будем голословными. Приводи пример хотя бы одного тупого языка.

2Brand, а с чего ты взял, что brainfuck тупой язык? Давай, напиши на нём хотя бы hello world. Потом выясним кто тупой ;)

Вот вам ещё интересные языки программирования:
Графический язык Piet
http://99-bottles-of-beer.net/language-piet-1269.html

Malbolge, for those not familiar with it, is a language designed to be difficult
http://99-bottles-of-beer.net/language-malbolge-995.html

"Язык коровы" коровы. Всё состоит только из одного Му.
http://99-bottles-of-beer.net/language-cow-146.html

Язык Шекспира.
http://99-bottles-of-beer.net/language-shakespeare-664.html

Язык из непечатных символов:
http://99-bottles-of-beer.net/language-whitespace-154.html

Язык четырех.
http://99-bottles-of-beer.net/language-hq9+-1334.html

Ответить

Номер ответа: 47
Автор ответа:
 BUMM ®



Вопросов: 8
Ответов: 482
 Профиль | | #47 Добавлено: 15.04.07 12:27
2BUMM, давай не будем голословными. Приводи пример хотя бы одного тупого языка.

2UU - Читай номер ответа 39
Давай, напиши на нём хотя бы hello world.


:))))


++++++++++
[>+++++++>++++++++++>+++>+<<<<-] The initial loop to set up useful values in the array
>++.                             Print 'H'
>+.                              Print 'e'
+++++++.                         Print 'l'
.                                Print 'l'
+++.                             Print 'o'
>++.                             Print ' '
<<+++++++++++++++.               Print 'W'
>.                               Print 'o'
+++.                             Print 'r'
------.                          Print 'l'
--------.                        Print 'd'
>+.                              Print '!'
>.                               Print newline



UU ты ссылку читал? :)

Ответить

Номер ответа: 48
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #48 Добавлено: 15.04.07 12:35
А, сори - это был не ты:)

А про хеловорлд - давай сам пиши, а не гугли:)

Ответить

Номер ответа: 49
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #49 Добавлено: 15.04.07 12:44
А чем там сложного писать? Всего-то 8 команд...

Вот MD5 - это да, посложнее будет...

Ответить

Номер ответа: 50
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #50 Добавлено: 15.04.07 18:19
Программа написана за 10 минут рабочего времени, заработала после второго запуска (невнимательно спецификацию читал).
Возможно, реализация не идеальна тем не менее работает.

Option Strict On

Module Module1
    Sub Main()
        Console.WriteLine("BrainFuck .NET by Black Brand";)
        Dim Program As String = Console.ReadLine
        Dim Stack As New System.Collections.Generic.Stack(Of Integer)
        Dim ProgramPosition As Integer = 0
        Dim DataPosition As Integer = 0
        Dim Data(Int16.MaxValue - 1) As Byte

        Do While ProgramPosition < Program.Length
            Select Case Program(ProgramPosition)
                Case ">"c
                    ;DataPosition += 1
                    If DataPosition < 0 Or DataPosition >= Data.Length Then
                        Console.WriteLine("выход за пределы допустимого массива данных, позиция {0}", ProgramPosition)
                        Exit Do
                    End If
                Case "<"c
                    ;DataPosition -= 1
                    If DataPosition < 0 Or DataPosition >= Data.Length Then
                        Console.WriteLine("выход за пределы допустимого массива данных, позиция {0}", ProgramPosition)
                        Exit Do
                    End If
                Case "+"c
                    If Data(DataPosition) = 255 Then
                        ;Data(DataPosition) = 0
                    Else
                        ;Data(DataPosition) = CByte(Data(DataPosition) + 1)
                    End If
                Case "-"c
                    If Data(DataPosition) = 0 Then
                        ;Data(DataPosition) = 255
                    Else
                        ;Data(DataPosition) = CByte(Data(DataPosition) - 1)
                    End If
                Case "["c
                    If Data(DataPosition) <> 0 Then
                        Stack.Push(ProgramPosition)
                    Else
                        Dim BC As Integer = 0
                        For i = ProgramPosition + 1 To Program.Length - 1
                            If Program(i) = "["c Then
                                BC += 1
                            ElseIf Program(i) = "]"c Then
                                BC -= 1
                                If BC = -1 Then
                                    ProgramPosition = i + 1
                                    Continue Do
                                End If
                            End If
                        Next
                        Console.WriteLine("лишняя [, позиция {0}", ProgramPosition)
                        Exit Do
                    End If
                Case "]"c
                    If Stack.Count > 0 Then
                        If Data(DataPosition) <> 0 Then
                            ProgramPosition = Stack.Peek + 1
                            Continue Do
                        End If
                    Else
                        Console.WriteLine("лишняя ], позиция {0}", ProgramPosition)
                        Exit Do
                    End If
                Case "."c
                    Console.Write(Convert.ToChar(Data(DataPosition)))
                    'System.Threading.Thread.Sleep(100)
                Case ","c
                    ;Data(DataPosition) = CByte(Console.Read())
            End Select
            ProgramPosition += 1
        Loop
        Console.WriteLine("Program terminated";)
        Console.ReadLine()
        Console.ReadLine()
    End Sub
End Module


Надеюсь сомнений что я смогу написать Hello World нету?

Ответить

Номер ответа: 51
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #51
Добавлено: 15.04.07 19:27
Согласно спецификации языка Brainfuck, лента, как и в машине Тьюринга, бесконечна в обе стороны. Уже программа < даст на твоем эмуляторе сбой.

Ответить

Номер ответа: 52
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #52 Добавлено: 15.04.07 19:37
В том документе который читал я было написано что изначально длина ленты была - 30 000 символов, и головка спозиционирована на 0-й. Все реализации должны поддерживать 30 000 и более для совместимости прогармм.

Может я не совсем верно понял - ленту нужно "склеить" с двух сторон, или что с ней сделать?

Ответить

Номер ответа: 53
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #53
Добавлено: 15.04.07 19:37
Brainfuck предполагает ограниченный размер ленты, судя по данным на
wikipedia:

The brainfuck language uses a simple machine model consisting,
besides the program, of an array of 30,000 byte cells initialized to
zero

Ответить

Номер ответа: 54
Автор ответа:
 someone



Вопросов: 215
Ответов: 1596
 Web-сайт: 123
 Профиль | | #54
Добавлено: 15.04.07 19:44
1)13
2)8==== =))))))))))
3)3
4)2
5)Самоучка, самообучающийся методом самотыка ))
6)VB6, легкообучаем скриптовым языкам :)
7)Незаконч. среднее
8)Сам себе начальник -)
9)Украина, Черкассы

Ответить

Номер ответа: 55
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #55
Добавлено: 15.04.07 20:19
Это его первоначальная реализация такая была, а реализация и стандарт вещи разные. По стандарту, brainfuck - это облегченная машина Тьюринга, лента которой бесконечна в обе стороны. Даже если делать ограниченную ленту, надо как минимум ее закольцевать, как, например, в Brainfuck Developer (http://4mhz.de/bfdev.html)

Ответить

Номер ответа: 56
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #56 Добавлено: 16.04.07 00:16
Как лента может быть неограниченой? :) Как минимум объемом ОЗУ должна быть ограничена :)

Короче если есть любители брэйнфака, за 20 WMZ или что-то другое что меня заинтерисует проведу мастер-класс по закольцовыванию ленты :)

Ответить

Номер ответа: 57
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #57
Добавлено: 16.04.07 01:05
Хехе, иди ботай разреженные массивы и узнаешь, как лента может быть длиннее ОЗУ :)

Ответить

Номер ответа: 58
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #58 Добавлено: 16.04.07 03:44
5)Самоучка, самообучающийся методом самотыка ))

Методом чего? o_O Ты же ещё маленький! :)))

Ответить

Номер ответа: 59
Автор ответа:
 someone



Вопросов: 215
Ответов: 1596
 Web-сайт: 123
 Профиль | | #59
Добавлено: 17.04.07 19:36
Методом чего? o_O Ты же ещё маленький! :)))

ехехе )) я хотел написать методом тыка ))

Ответить

Страница: 1 | 2 | 3 | 4 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам