1. Вы находитесь в архивной версии форума xaker.name. Здесь собраны темы с 2007 по 2012 год, большинство инструкций и мануалов уже неактуальны.
    Скрыть объявление

[Pascal]Помогите разобраться с типами данных!

Тема в разделе "Pascal/Delphi", создана пользователем ibragimov, 15 мар 2011.

  1. ibragimov

    ibragimov Продвинутый

    Регистрация:
    26 дек 2010
    Сообщения:
    184
    Симпатии:
    43
    Баллы:
    0
    Дано задание:
    Определить тип результата выражения:

    Вот как я определил:
    1. integer
    2. real
    3. Boolean
    4. integer
    5. real
    6. integer
    7. Boolean
    8. Boolean
    9. real
    10. integer
    11. integer
    12. byte

    Проверьте меня.
    ЗЫ - и как правильно определять где integer а где real или byte. Они похожи дюже.
     
  2. ~|~евто|-|

    ~|~евто|-| Silentium ..::V.I.P::..

    Регистрация:
    26 май 2007
    Сообщения:
    30
    Симпатии:
    377
    Баллы:
    0
    ibragimov,
    Integer может и похож на Byte, но вот Real никакого сходства с ними не имеет...


    Неправильно - 6, и скорее всего 11 не правильно)
    Но тут хз, само по себе задание странноватое)))
     
    Последнее редактирование: 15 мар 2011
  3. ibragimov

    ibragimov Продвинутый

    Регистрация:
    26 дек 2010
    Сообщения:
    184
    Симпатии:
    43
    Баллы:
    0
    Ну в 6 ответ получается 4. ну это либо интежер либо Byte.
    В 11 ответ = 2
     
  4. ~|~евто|-|

    ~|~евто|-| Silentium ..::V.I.P::..

    Регистрация:
    26 май 2007
    Сообщения:
    30
    Симпатии:
    377
    Баллы:
    0
    Справку, хотя бы изредка нужно читать.

    Я в паскале не помню, гуглить лень, но в Delphi ln возвращает результат - Real. В крайнем случае по входному параметру, который у тебя e^2, что никак не Integer. Поэтому и оговорился, что наверняка не правильно)
     
    1 человеку нравится это.
  5. ibragimov

    ibragimov Продвинутый

    Регистрация:
    26 дек 2010
    Сообщения:
    184
    Симпатии:
    43
    Баллы:
    0
    Ну я как бы числа не с воздуха беру, и не вручную считаю. Все посчитанно в Free Pascal.
     
  6. ~|~евто|-|

    ~|~евто|-| Silentium ..::V.I.P::..

    Регистрация:
    26 май 2007
    Сообщения:
    30
    Симпатии:
    377
    Баллы:
    0
    Не обманывай стариков))))
    _http://lazarus-ccr.sourceforge.net/docs/rtl/system/int.html


    _http://lazarus-ccr.sourceforge.net/docs/rtl/system/ln.html
     
  7. ibragimov

    ibragimov Продвинутый

    Регистрация:
    26 дек 2010
    Сообщения:
    184
    Симпатии:
    43
    Баллы:
    0
    Ну не знаю, я вот так считал в 6 примере, в паскале :

    Ответ - 4

    [​IMG]
     
    Последнее редактирование: 15 мар 2011
  8. ~|~евто|-|

    ~|~евто|-| Silentium ..::V.I.P::..

    Регистрация:
    26 май 2007
    Сообщения:
    30
    Симпатии:
    377
    Баллы:
    0
    ibragimov, ну так картинка только подтверждает мои слова :) Не понимаю, что тут еще можно обсуждать?))))
     
  9. ibragimov

    ibragimov Продвинутый

    Регистрация:
    26 дек 2010
    Сообщения:
    184
    Симпатии:
    43
    Баллы:
    0
    ты писал что ответ в 6 задании - '4' - не верен.
     
  10. ~|~евто|-|

    ~|~евто|-| Silentium ..::V.I.P::..

    Регистрация:
    26 май 2007
    Сообщения:
    30
    Симпатии:
    377
    Баллы:
    0
    ibragimov, ты невнимателен) Я такого не говорил) Я говорил и повторюсь, что ответ - Integer, неверен. Потому что результатом работы функции Int, является тип данных Real.

    Функция Int ВСЕГДА возвращает Real.:)

    А вот, то что результат выражения int(4.92) приводится к Integer'у без потери точности - я абсолютно согласен :)
     
    Последнее редактирование: 15 мар 2011
  11. Robo

    Robo ░░▒▓█▓▒░░ Модератор

    Регистрация:
    10 авг 2007
    Сообщения:
    301
    Симпатии:
    169
    Баллы:
    0
    если ты не видишь дробной части, это не значит, что ее нет. int() возвращает real - это факт. Если ты думаешь что это интегер или байт, то попробуй собрать следующий код:

    program tst;
    var
    i:integer;
    b:byte;
    begin
    i := int(100.03);
    b := int(100.03);
    end.

    а потом попробуй с реалом. всё станет понятно. Да, конечно ты можешь преобразовать результат к байту или интегеру (то есть округлить), но что int возвращает реал - это блин факт :)
     
  12. Dr. MefistO

    Dr. MefistO Крывіч Глобальный модератор

    Регистрация:
    3 авг 2008
    Сообщения:
    152
    Симпатии:
    254
    Баллы:
    0
    Прямо на парах пишешь с мобилы на хн?)) Эх, в свое время у меня таких возможностей не было))
     

Поделиться этой страницей