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

  1. Дано задание:
    Определить тип результата выражения:

    Вот как я определил:
    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. ibragimov,
    Integer может и похож на Byte, но вот Real никакого сходства с ними не имеет...


    Неправильно - 6, и скорее всего 11 не правильно)
    Но тут хз, само по себе задание странноватое)))
     
  3. Ну в 6 ответ получается 4. ну это либо интежер либо Byte.
    В 11 ответ = 2
     
  4. Справку, хотя бы изредка нужно читать.

    Я в паскале не помню, гуглить лень, но в Delphi ln возвращает результат - Real. В крайнем случае по входному параметру, который у тебя e^2, что никак не Integer. Поэтому и оговорился, что наверняка не правильно)
     
    1 человеку нравится это.
  5. Ну я как бы числа не с воздуха беру, и не вручную считаю. Все посчитанно в Free Pascal.
     
  6. Не обманывай стариков))))
    _http://lazarus-ccr.sourceforge.net/docs/rtl/system/int.html


    _http://lazarus-ccr.sourceforge.net/docs/rtl/system/ln.html
     
  7. Ну не знаю, я вот так считал в 6 примере, в паскале :

    Ответ - 4

    [​IMG]
     
  8. ibragimov, ну так картинка только подтверждает мои слова :) Не понимаю, что тут еще можно обсуждать?))))
     
  9. ты писал что ответ в 6 задании - '4' - не верен.
     
  10. ibragimov, ты невнимателен) Я такого не говорил) Я говорил и повторюсь, что ответ - Integer, неверен. Потому что результатом работы функции Int, является тип данных Real.

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

    А вот, то что результат выражения int(4.92) приводится к Integer'у без потери точности - я абсолютно согласен :)
     
  11. если ты не видишь дробной части, это не значит, что ее нет. int() возвращает real - это факт. Если ты думаешь что это интегер или байт, то попробуй собрать следующий код:

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

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