Новые книги

Arduino — стандартный микроконтроллер, получивший широкое признание у инженеров, мастеров и преподавателей благодаря своей простоте, невысокой стоимости и большому разнообразию плат расширения. Платы расширения, подключаемые к основной плате Arduino, позволяют выходить в Интернет, управлять роботами и домашней автоматикой.

Простые проекты на основе Arduino не вызывают сложностей в реализации. Но, вступив на территорию, не охваченную вводными руководствами, и увеличивая сложность проектов, вы быстро столкнетесь с проблемой нехватки знаний — врагом всех программистов.

Эта книга задумана как продолжение бестселлера «Programming Arduino: Getting Started with Sketches». Несмотря на то что эта книга включает краткое повторение основ из книги «Programming Arduino», она познакомит читателя с более продвинутыми аспектами программирования плат Arduino.
Книга развивает идеи, изложенные автором в статье, опубликованной в «Harvard Business Review» и получившей престижную премию компании McKinsey за прикладной характер и новаторское мышление в сфере бизнеса и управления. Джон Коттер призывает организации к созданию комбинированной системы управления, сочетающей проверенную временем, надежную и эффективную иерархическую организационную структуру с гибкой и динамичной сетевой структурой, схожей с устройством начинающей компании (стартапа). По мнению автора, комбинированная система управления предоставляет крупным, зрелым компаниям ключевой инструмент для того, чтобы соответствовать требованиям быстро меняющейся среды.

Книга предназначена всем, кто готов реализовать в своей организации значительную реформу с целью достижения конкурентных побед в любой отрасли – будь то государственное управление или финансовые услуги.

5. Стандартные типы данных

5. Стандартные типы данных

   К стандартным относятся целые, действительные, символьный и адресный типы.

   Целые типы  определяют константы,переменные и функции,значения

которых реализуются множеством целых чисел,  допустимых в данной ЭВМ.

 

 тип            диапазон значений       требуемая память

__________________________________________________________

Shortint            -128 .. 127           1 байт

Integer           -32768 .. 32767         2 байта

Longint      -2147483648 .. 2147483647    4 байта

Byte                   0 .. 255           1 байт

Word                   0 .. 65535         2 байта

__________________________________________________________

   

   Над целыми операндами  можно  выполнятьследующие  арифметические

операции: сложение,вычитание, умножение, деление, получение остатка

от деления. Знаки этих операций:

  

        +      -     *     div     mod

   

   Результат арифметической операции над целыми операндами есть вели-

чина целого типа. Результат выполнения операции деления целых величин

есть целая часть частного.Результат выполненияоперации  получения

остатка от деления - остаток от деления целых. Например:

  

        17 div 2 = 8,   3 div 5 = 0.

        17 mod 2 = 1,   3 mod 5 = 3.

  

   Операции отношения,  примененные к целым операндам, дают результат

логического типа TRUE или FALSE ( истинаили  ложь ).

   В языке ПАСКАЛЬ имеются следующие операции отношения: равенство =,

неравенство <>, больше или равно >=,  меньше или равно <=,больше >,

меньше < .

   К аргументам целого типа применимы следующие стандартные (встроен-

ные) функции, результат выполнения которых имеет целый тип:

  

        Abs(X),   Sqr(X),   Succ(X),   Pred(X),

  

и которые определяют соответственно абсолютное значение Х,  Х в квад-

рате, Х+1, Х-1.

   Следующая группа стандартных функций для аргумента целого типа да-

ет действительный результат:

  

        Sin(X), Cos(X), ArcTan(X), Ln(X), Exp(X), Sqrt(X).

  

   Эти функции вычисляют синус,  косинус и арктангенс угла, заданного

в радианах,логарифм натуральный, экспоненту и корень квадратный со-

ответственно.

   Результат выполнения функции проверки целой величины на нечетность

Odd(X) имеет    значение истина,  если аргумент нечетный,  и значение

ложь, если аргумент четный:

  

        X=5    Odd(X)=TRUE ,    X=4    Odd(X)=FALSE.

  

   Для быстрой работы с целыми числами определены процедуры:

  

    Inc(X)     X:=X+1

    Inc(X,N)   X:=X+N

    Dec(X)     X:=X-1

    Dec(X,N)   X:=X-N

 

   Действительные типы  определяет  теданные,   которые реализуются

подмножеством действительных чисел, допустимых в данной ЭВМ.

  

   Тип           Диапазон        Количество цифр     Требуемая

                 значений            мантиссы      память (байт)

---------------------------------------------------------------

Real         2.9e-39 .. 1.7e+38        11                6

Single       1.5e-45 .. 3.4e+38         7                4

Double      5.0e-324 .. 1.7e+308       15                8

Extended   3.4e-4932 .. 1.1e+4932      19               10

Comp        -9.2e+18 .. 9.2e+18        19                8

---------------------------------------------------------------

  

   Тип Real определен в стандартном ПАСКАЛЕ иматематическим  сопро-

цессором не поддерживается.

   Остальные действительные типы определены стандартом IEEE 457 и ре-

ализованы на всех современных компьютерах.

   Для их использования при наличии сопроцессора илипри  работе  на

ЭВМ типа 80486 необходимо компилировать программу с ключом {$ N+},  а

при отсутствии сопроцессора - с ключами {$N-,E+}.

   Тип Comp  хотяи относится к действительным типам,хранит только

длинные целые значения.

   Над действительными операндами можно выполнять следующие арифмети-

ческие операции, дающие действительный результат:

  

    сложение + ,  вычитание - ,умножение * ,деление / .

  

   К величинам действительного типа применимы все операции отношения,

дающие булевский результат.

   Один из операндов, участвующих в этих операциях, может быть целым.

   К действительным аргументам применимы функции, дающие действитель-

ный результат:

   

     Abs(X), Sqr(X), Sin(X), Cos(X),  ArcTan(X),  Ln(X),Exp(X),

Sqrt(X), Frac(X), Int(X), Pi.

   

   Функция Frac(X) возвращает дробную часть X, функция Int(X) - целую

часть X.

   Безаргументная функция  Pi  возвращаетзначение числа Пи действи-

тельного типа.

   К аргументам действительного типа применимы также функции

   

     Trunc(X) и Round(X),

   

дающие целыйрезультат.  Первая из них выделяет целую часть действи-

тельного  аргумента  путемотсечения дробной части, вторая округляет

аргумент до ближайшего целого.

 

   ЛОГИЧЕСКИЙ тип (Boolean)  определяет те данные, которые могут при-

нимать логические значения TRUE и FALSE.

   К булевским операндам применимы следующие логические операции:

   

     not     and      or     xor.

   

   Логический тип определен таким образом, что FALSE < TRUE. Это поз-

воляет применять к булевским операндам все операции отношения.

   В ТУРБО ПАСКАЛЬ введены еще разновидности логического типа:

ByteBool, WordBool и LongBool, которые занимают в памяти ЭВМ один, два

и четыре байта соответственно.

 

   Символьный тип (Char) определяет упорядоченную совокупность симво-

лов, допустимых    в  данной ЭВМ.  Значение символьной переменной или

константы - это один символ из допустимого набора.

   Символьная константа  может  записываться в тексте программы тремя

способами:

    -как один символ, заключенный в апострофы, например:

   

      'A'   'a'   'Ю'  'ю';

   

   -с помощью конструкции вида #K, где K - код соответствущего симво-

ла, при этом значение K должно находиться в пределах 0..255;

   -с помощью конструкции вида ^C, где C - код соответствущего управ-

ляющего  символа, при этом  значениеC должно быть на 64 больше

кода управляющего символа.

   К величинам символьного типа применимы все операции отношения.

   Для величин символьного типа определены две функции преобразования

     

        Ord(C)     Chr(K).

  

   Первая функция определяет порядковый номер символа С в наборе сим-

волов,  вторая  определяет по порядковому номеру К символ, стоящий на

К-ом месте в наборе символов. Порядковый номер имеет целый тип.

   К аргументам символьного типа применяются функции, которые опреде-

ляют предыдущий и последующий символы:

   

      Pred(C)    Succ(C).   Pred('F') = 'E' ; Succ('Y') = 'Z' .

   

   При отсутствии  предыдущего или последующего символов значение со-

ответствующих функций не определено.

   Для литер из интервала 'a'..'z' применима функция UpCase(C), кото-

рая переводит эти литеры в верхний регистр 'A'..'Z'.

   

   Адресный тип (Pointer) определяет переменные, которые могут содер-

жать значенияадресов данных или фрагментов программы.Для хранения

адреса требуются два слова (4 байта), одно из них определяет сегмент,

второе - смещение.

   Работа с адресными переменными  (указателями)   будетрассмотрена

позже, сейчасотметим,  что для получения значения адреса какой-либо

переменной введена унарная операция @.