Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

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

 

  Вопрос: Что вернется? Добавлено: 23.07.08 17:00  

Автор вопроса:  Artyom

Ответить

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

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #31
Добавлено: 24.07.08 20:29
__Pavel__, чтобы "деградировать" до меня, большинству присутствующих несколько лет понадобится без перерыва умные книжки читать. То, чем ты занимаешься, шифрованием нельзя назвать даже по укурке.

Ответить

Номер ответа: 32
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #32
Добавлено: 24.07.08 20:36
Если следовать логике тупизма

если вы чего-то не можете сделать, то не валите это на других! вопрос был поставлен конкретно:
как сделать так чтоб при d_Int = 5 завершились ВСЕ циклы и КОД продолжился дальше? причем сделать это нужно при помощи одной конструкции if... then... end if

использовать можете что угодно не только конструкцию if... then... если вы об этом =)
жду ответ...

Ответить

Номер ответа: 33
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #33
Добавлено: 24.07.08 20:41
if d_int = 5 then goto metka

Ответить

Номер ответа: 34
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #34
Добавлено: 24.07.08 20:47
в одной статье я прочитал следующий текст:
...программисты делятся на два типа, те кто знают оператор goto и те кто не знают его...


yxaxa прав вот правильный ответ на мой вопрос:
    Sub Main()
        Dim d_Int As Integer
        For d_1 As Integer = 1 To 100
            For d_2 As Integer = 1 To 100
                For d_3 As Integer = 1 To 100
                    For d_4 As Integer = 1 To 100
                        For d_5 As Integer = 1 To 100
                            d_Int = d_1 + d_2 + d_3 + d_4 + d_5
                            if d_int = 5 then goto metka
                        Next
                    Next
                Next
            Next
        Next
metka:
        'код
    End Sub

Ответить

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



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #35 Добавлено: 24.07.08 20:57
Паша, ты как-то раздвоением личности стал страдать?

#27:
как сделать так чтоб при d_Int = 5 завершились ВСЕ циклы и КОД продолжился дальше? причем сделать это нужно при помощи одной конструкции if... then... end if =)


#32:
использовать можете что угодно не только конструкцию if... then... если вы об этом =)
жду ответ...


Путаешься в показаниях!!!

Я уже показал как ее решить с помощью If/EndIf
А вот как вообще без условного оператора If (и попробуй доказать что где-то здесь есть ошибка! Порву сразу!)

На выбор:
    Sub Main()
        Dim d_Int As Integer
        For d_1 As Integer = 1 To 100
            For d_2 As Integer = 1 To 100
                For d_3 As Integer = 1 To 100
                    For d_4 As Integer = 1 To 100
                        For d_5 As Integer = 1 To 100
                            d_Int = d_1 + d_2 + d_3 + d_4 + d_5
                            GoTo Ex
                        Next
                    Next
                Next
            Next
        Next
Ex:
        'код
    End Sub


    Sub Main2()
        Try
            Dim d_Int As Integer
            For d_1 As Integer = 1 To 100
                For d_2 As Integer = 1 To 100
                    For d_3 As Integer = 1 To 100
                        For d_4 As Integer = 1 To 100
                            For d_5 As Integer = 1 To 100
                                d_Int = d_1 + d_2 + d_3 + d_4 + d_5
                                Throw New Exception
                            Next
                        Next
                    Next
                Next
            Next
        Catch ex As Exception
            'код
        End Try
    End Sub


    Sub Main2()
        Try
            Dim d_Int As Integer
            For d_1 As Integer = 1 To 100
                For d_2 As Integer = 1 To 100
                    For d_3 As Integer = 1 To 100
                        For d_4 As Integer = 1 To 100
                            For d_5 As Integer = 1 To 100
                                d_Int = d_1 + d_2 + d_3 + d_4 + d_5
                                Throw New Exception
                            Next
                        Next
                    Next
                Next
            Next
        Finally
            'код
        End Try
    End Sub


    Sub Main2()
        Try
            Dim d_Int As Integer
            For d_1 As Integer = 1 To 100
                For d_2 As Integer = 1 To 100
                    For d_3 As Integer = 1 To 100
                        For d_4 As Integer = 1 To 100
                            For d_5 As Integer = 1 To 100
                                d_Int = d_1 + d_2 + d_3 + d_4 + d_5
                                Return
                            Next
                        Next
                    Next
                Next
            Next
        Finally
            'код
        End Try
    End Sub

Ответить

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



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #36 Добавлено: 24.07.08 20:58
О боже, __Pavel__!
Какая экспрессия, какой слог!
Уникальное красивое решение с оператором GoTo!

Я же чуть выше показал как обойтись вообще без условного оператора! Учись!

Ответить

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



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #37 Добавлено: 24.07.08 21:04
Продолжаем вопросы.

__Pavel__, внимание! Я ожидаю что ты первый правильно ответишь на все вопросы :)

6. Итак, имеем следующий код:
        Dim Value = 0
        For i = Int64.MinValue To Int64.MaxValue
            Value = Value + 1
            If Value >= 100 Then Value = 0
        Next
        Console.WriteLine(Value)

Что выведется в консоль? (не запускать Visual Studio я сказал! :) Думаем головой, потом запускаем :)

7. Продолжение задачи номер 6.
Имеем несколько циклов. Циклы одинаковые, разные только типы данных.
Задача: сказать, какой из приведенных кусков кода выдаст в консоль наибольшее число!

Очень важно - коды запускать нельзя. Иначе вы автоматически дисквалифицируетесь!

7.1
        Dim Value As Decimal = 0
        For i = Byte.MinValue To Byte.MaxValue
            Value = Value + 1
        Next
        Console.WriteLine(Value)

7.2
        Dim Value As Decimal = 0
        For i = SByte.MinValue To SByte.MaxValue
            Value = Value + 1
        Next
        Console.WriteLine(Value)

7.3
        Dim Value As Decimal = 0
        For i = Int16.MinValue To Int16.MaxValue
            Value = Value + 1
        Next
        Console.WriteLine(Value)

7.4
        Dim Value As Decimal = 0
        For i = UInt16.MinValue To UInt16.MaxValue
            Value = Value + 1
        Next
        Console.WriteLine(Value)

7.5
        Dim Value As Decimal = 0
        For i = Int32.MinValue To Int32.MaxValue
            Value = Value + 1
        Next
        Console.WriteLine(Value)

7.6
        Dim Value As Decimal = 0
        For i = UInt32.MinValue To UInt32.MaxValue
            Value = Value + 1
        Next
        Console.WriteLine(Value)

7.7
        Dim Value As Decimal = 0
        For i = Int64.MinValue To Int64.MaxValue
            Value = Value + 1
        Next
        Console.WriteLine(Value)

7.8
        Dim Value As Decimal = 0
        For i = UInt64.MinValue To UInt64.MaxValue
            Value = Value + 1
        Next
        Console.WriteLine(Value)


Пожалуйста, подумайте перед тем как отвечать, и тебя, Павел, это в первую очередь касается!
Ты может быть подумал, что поскольку byte самое маленькое число то оно занимает мало место следоательно результат будет больше - это подвох :) Подумай хорошенько :)

Ответить

Номер ответа: 38
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #38
Добавлено: 25.07.08 01:05
Путаешься в показаниях!!!

я не путаюсь... я имел ввиду что можно использовать только ОДНУ конструкцию, больше ограничений я не ставил!

насчет вопросов:
хм... интересно, особенно то что я увидел открыв студию! =)
хотя если подсчитать правильно мои ответы верны! я их не написал, т.к. все равно их можно считать неверными =))

Ответить

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



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #39 Добавлено: 25.07.08 01:17
я не путаюсь... я имел ввиду что можно использовать только ОДНУ конструкцию, больше ограничений я не ставил!

Четче формулируй пожалуйста.
С друзьями за пивом можно позволять себе вольности, а здесь где у каждого второго за плечами Гарванд, нужно быть внимательнее.

хм... интересно, особенно то что я увидел открыв студию! =)

А что же ты там такого увидел, поделись с нами

хотя если подсчитать правильно мои ответы верны! я их не написал, т.к. все равно их можно считать неверными =))

Ответы? Какие ответы, я их почему-то не вижу...

Пожалуйста, почитай условия задач 6 и 7 и выдай нам свои ответы :)

Ответить

Номер ответа: 40
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #40
Добавлено: 25.07.08 01:36
первая мысль как только я увидел задание №6 - это "сюда бы Sharp'а он бы в миг все в уме посчитал бы!" =))

dim d_max64 as int64 = Int64.MaxValue


6) = d_max64 - ((d_max64 \ 100) * 100) = 7
7) = 7.7 и 7.8

... а вообще все эти коды выводят одно - ОШИБКУ!

Ответить

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



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #41 Добавлено: 25.07.08 01:49
6) = d_max64 - ((d_max64 \ 100) * 100) = 7

Пожалуйста, поясните, не совсем понятно и обоснуйте...

7) = 7.7 и 7.8

Обоснуйте ваш ответ, пожалуйста.

... а вообще все эти коды выводят одно - ОШИБКУ!

Как это выводят ошибку? Павел, вы что, не послушались меня и все-таки запустили Visual Studio? Ну что ж, я разочарован!!!

Чтобы поднять себя в моих глазах, пожалуйста, поясните нам что же это за магическая ошибка и почему она происходит?

Ответить

Номер ответа: 42
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #42
Добавлено: 25.07.08 01:59
(не запускать Visual Studio я сказал! :) Думаем головой, потом запускаем :)

Павел, вы что, не послушались меня и все-таки запустили Visual Studio? Ну что ж, я разочарован!!!

я подумал, потом проверил... все как вы сказали =)

6) = d_max64 - ((d_max64 \ 100) * 100) = 7
Пожалуйста, поясните, не совсем понятно и обоснуйте...

а что тут не понятного? только не говорите что ВАМ нужно это объяснять!!!

7) = 7.7 и 7.8
Обоснуйте ваш ответ, пожалуйста.

а что тут объяснять-то?
For i = Int64.MinValue To Int64.MaxValue
For i = -9223372036854775808 To 9223372036854775807
For i = UInt64.MinValue To UInt64.MaxValue
For i = 0 To 18446744073709551615
-(-9223372036854775808)+9223372036854775807=18446744073709551615 т.е. эти циклы равны, а значит и ответы тоже!

Ответить

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



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

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #43
Добавлено: 25.07.08 06:16
А чорт его знает, что там вернется.

Ответить

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



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

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #44
Добавлено: 25.07.08 06:19
Ну 3,4,5 - Это примитивно, там сразу вернется 1, до "Return 2" даже
дело не дойдет.

А вот Brand задачку задал, да...
Я отвечу так: такого вида код я не допущу, потому что я пишу только
такой код, о котором точно знаю, как он будет выполнен.
По той же причине я не использую недокументированные API,
глючноработающие API (которые работают не так, как должны), и прочие
хаки. Себе дороже.

Ответить

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



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

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #45
Добавлено: 25.07.08 06:40
Поразмышлял за завтраком... Думаю, по пункту 1 вернутся 2.
Сначала выполнится Return 1, потом пойдёт в блок Finally, там
выолнится Return 2, и этот Return видимо победит.

В пункте 2 я всё еще в непонятках. Вообще такой синтаксис "Hel = 2" -
это пережиток советской системы, и его в нормальном коде быть не
должно.

Ответить

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

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



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