Главная страница
Навигация по странице:

  • Операторы

  • Таблица 2. Стандартные целые типы данных Object Pascal (операционная среда Windows)

  • Таблица 3.Стандартные вещественные типы данных Borland Pascal (операционная среда MS DOS)

  • Таблица 4.Стандартные вещественные типы данных Object Pascal (операционная среда Windows)

  • Var a, b:real; n,i, j,k:integer; Именованные константы описываются в разделе констант после ключевого слова Const

  • программирование на паскале2. Учебное пособие по курсу Высокоуровневые методы информатики и программирования для студентов Гуманитарноприкладного института


    Скачать 0.89 Mb.
    НазваниеУчебное пособие по курсу Высокоуровневые методы информатики и программирования для студентов Гуманитарноприкладного института
    Анкорпрограммирование на паскале2.doc
    Дата25.05.2018
    Размер0.89 Mb.
    Формат файлаdoc
    Имя файлапрограммирование на паскале2.doc
    ТипУчебное пособие
    #19648
    страница2 из 10
    1   2   3   4   5   6   7   8   9   10

    Часть . Основы программирования на Паскале

    1.1. Структура простейшей Паскаль-программы


    Простейшая программа на Паскале состоит из одного файла и имеет следующую структуру (см. рис.1).

    program Имя_программы;

    Var описания переменных

    begin

    операторы

    end.





    program summa;

    Var a,b,c:integer;{описание трех целых переменных}

    begin

    writeln(‘введите a и b’);

    {приглашение к вводу a и b}

    readln(a.b); {ввод a,b}

    c=a+b; {вычисление с – суммы}

    writeln(c);{вывод с}

    end.

    а)




    б)

    Рис.1

    а) общая схема простейшей Паскаль-программы;

    б) пример программы вычисления суммы двух чисел.
    Программа начинается с заголовка (program Имя_программы). Затем идет ключевое слово1 Var, после которого даются описания переменных2 программы. Далее между ключевых слов begin и end записывается операторы программы; эти слова в паскале играют роль скобок, т. е. объединяют компоненты в единое целое. Обратим внимание, что последнее слово end программы требует после себя точку.

    Любая программасостоит из инструкций языка. Инструкции могут быть либо описаниями, либо операторами. Операторы - это исполняемые инструкции; при компиляции они пере­водятся в одну или несколько машинных команд. Описания - это не­ис­полняемые инструкции языка; они используются компилятором для распределе­ния памяти под данные и определения характера операций, которые могут выполняться с этими данными. Описания характеризуют область значений данных.

    Фрагмент Паскаль-программы, начинающийся со слова Var и содержащий описания переменных, называется разделом переменных. Программа может иметь и другие разделы описаний (констант, типов и т. д.); но простейшая программа, приведенная на рис.1,а, также дает возможность решить многие практически важные задачи.

    В любое место программы можно включить комментарии - по­яс­няющие фразы, окаймленные фигурными скобками. Ком­ментарии компилятором не обрабатываются и служат только для по­яснения текста программы. В Объектном Паскале также допускается использо­вать как комментарий часть строки программы от сим­волов // до конца строки.

    1.2. Данные и операции над ними

    1.2.1. Свойства ячейки памяти. Переменные и константы


    Компьютерные программы, для написания которых предназна­чен алгоритмический язык Паскаль, обрабатывают данные, которые хранятся в оперативной памяти компьютера. Каждое элемен­тарное данное имеет некоторый смысл (например, число или символ) и занимает один или несколько байтов памяти3. Эту область памяти часто называют ячейкой памяти. Для того, чтобы ячейки памяти можно было различать и использовать их в программе, каждой ячейке дается имя. Таким образом, ячейка памяти характеризуется своим именем и содержимым (т. е. данным, которое в ней хранится). Кроме того, ячейка имеет адрес (адресом ячейки считается адрес младшего из занимаемых ею байтов). В программе имена ячеек участвуют как имена переменных, т. е. переменные программы - это, по существу, ячейки памяти. При написании программ считают, что ячейка памяти обладает следующими свойствами:

    1. Информация в ячейке памяти хранится всё время выполнения программы.

    2. При записи нового содержимого в ячейку предыдущее содержимое не сохраняется. Запись содержимого в ячейку называется присваиванием. Оператор присваивания описан в п.1.3.1.

    3. При считывании содержимое ячейки не изменяется.

    4. Если в ячейку на протяжении программы не было ничего записано, то ее содержимое считается неопределенным. Отметим, что это свойство не всегда выполняется в реализациях алгоритмических языков (например, все переменные в Borland Pascal при объявлении обнуляются).

    Под константой в программировании понимается значение, не изменяющееся в процессе выполнения программы. Константам, также как и переменным, соответствуют ячейки памяти. Можно считать, что эти ячейки защищены от записи. В программе, кроме констант обозначенных или именованных (т. е. имеющих имя), могут использоваться явные константы, заданные своим значением. Например, можно использовать константу с именем epsilon, предварительно задав ей значение 0.0001, а можно использовать в программе явную константу 0.00014.

    В качестве имен переменных и констант, также как в качестве других имен, в языках программирования (в том числе Паскале) используются идентификаторы. Под идентификатором понимается последовательность букв, символов подчеркивания и цифр, начинающаяся с буквы или символа подчеркивания. В Паскале при формировании имен (а также служебных слов) прописные и соответствующие строчные буквы не различаются.

    1.2.2. Типы данных


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

    Существование двух числовых типов (целого и вещественного) связано с двумя возможными формами представления чисел в памяти компьютера.

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

    Тип вещественный соответствует форме представления чисел с плавающей точкой, для которой характерны приближенное представление числа с заданным количеством значащих цифр (знаков мантиссы) и большим диапазоном порядка числа, что обеспечивает возможность представления как очень больших, так и очень малых по абсолютной величине чисел. В силу приближенного представления данных вещественного типа сравнение их на равенство является некорректным.

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

    Данные символьного типа принимают значения на всем множестве допустимых для данного компьютера символов. Каждому символу соответствует двоичный код, все коды символов собраны в специальные стандартные таблицы кодирования. В настоящее время используются таблицы ANSI (в которой для хранения одного символьного значения отводится один байт) и UNICODE (код одного символа занимает два байта). Эти таблицы совместимы: первые 256 кодов UNICODE совпадают с кодами ANSI. Существование двух кодовых таблиц объясняется необходимостью поддержки приемственности программного обеспечения при развитии компьютерной техники: для уже устаревших 16-разрядных компьютеров используется таблица ASCII, первая половина которой совпадает с ANSI.

    В Паскале для описания данных символьного типа используется ключевое слово char. В версии Borland Pascal используется только система кодирования ANSI. В Object Pascal, кроме типа char, имеется тип widechar, поддерживающий кодировку UNICODE.

    Данные логического типа в Паскале описываются с помощью ключевого слова boolean.

    Используемые в различных версиях Паскаля целые и вещественные типы представлены в таблицах 1-4.

    Таблица 1.

    Стандартные целые типы данных Borland Pascal
    (операционная среда MS DOS)


    Тип данных

    Размер,

    байты

    Диапазон значений

    byte

    1

    0...255

    shortint

    1

    -128...127

    word

    2

    0...65535

    integer

    2

    -32768...32767

    longint

    4

    -2147483648...2147483647


    Таблица 2.

    Стандартные целые типы данных Object Pascal
    (операционная среда Windows)


    Тип данных

    Размер,

    байты

    Диапазон значений

    byte

    1

    0...255

    shortint

    1

    -128...127

    word

    2

    0...65535

    smallint

    2

    -32768...32767

    integer

    2

    -2147483648...2147483647

    longint

    4

    -2147483648...2147483647

    longword

    4

    0…4294967295

    int64

    8

    -263…+263-1

    Таблица 3.
    Стандартные вещественные типы данных Borland Pascal (операционная среда MS DOS)


    Тип данных

    Размер,

    байты

    Диапазон порядка

    Число цифр

    мантиссы

    single

    4

    -45...+38

    7…8

    real

    6

    -39…+38

    11…12

    double

    8

    -324...+308

    15…16

    extended

    10

    -4951...+4932

    19…20

    comp6

    8

    -263-1…+263-1

    19…20


    Таблица 4.
    Стандартные вещественные типы данных Object Pascal
    (операционная среда Windows)


    Тип данных

    Размер,

    байты

    Диапазон порядка

    Число цифр

    мантиссы

    single

    4

    -45...+38

    7…8

    real48

    6

    -39…+38

    11…12

    real

    8

    -324...+308




    double

    8

    -324...+308

    15…16

    extended

    10

    -4951...+4932

    19…20

    comp7

    8

    -263-1…+263-1

    19…20

    currency8

    8

     922337203685477.5808…922337203685477.5807

    19…20


    Заметим, что помнить эти таблицы совершенно необязательно. Для написания программ первой части пособия нам потребуются всего два числовых типа: вещественный real и целый integer.

    Все рассмотренные в этом параграфе типы относятся к стандартным ( т. е. встроенным в язык) типам Паскаля. У пользователя имеется возможность задать собственные, нестандартные типы в разделе TYPE программы – об этом см. §§1.5.2, 1.6.

    1.2.3. Правила записи констант


    Мы рассмотрим простейшие9 правила записи явных констант. Целая десятичная константа - это последовательность десятичных цифр, например, 12678909. Последовательность шестнадцатеричных цифр (0, 1, ..., 9, A, B, C, D, E, F), перед которой записан символ доллара $, представляет собой целую шестнадцатеричную константу; например, $FF - шестнадцатеричное представление числа 255.
    Соответствующие отрицательные значения получаются в результате применения унарной операции минус (-), см. п.1.2.5.

    Простейшие правила записи вещественных констант состоят в следующем: разделителем между целой и дробной частью числа является точка; можно использовать показатель десятичного порядка Е (большую или малую латинскую букву). Пример вещественных констант: 100.01, 3.44Е3 (значение 3.44*103), 1.0 Е-2 (значение 0.01).

    Для представления числовых констант в памяти компьютера выбирается подходящий тип в соответствии с таблицами 1-4. Естественно, при этом следует выбирать минимальный диапазон и минимальное число значащих цифр. Такой выбор не только уменьшает память и время работы программы, но и повышает ее надежность, так как компилятор может обеспечить контроль над значениями переменных (чтобы они находились в указанных границах).

    Символьная константа - это соответствующий символ клавиатуры, заключенный в апострофы. Примеры: 'a', '5', '?'. Другой способ задания констант - в виде #код, например, #32 –пробел, #90 буква Z.

    Уже при написании простейших программ при записи операторов вывода (а иногда и ввода) нам потребуется понятие строковой константы. Это последовательность символов, заключенная в одинарные кавычки (апострофы). Например: ‘Введите исходные данные'.

    Логические константы обозначаются следующим образом: false – ложь, true - истина

    1.2.4. Описание переменных и именованных констант
    в Паскале


    Пока мы рассматриваем данные, занимающие одну ячейку памяти. Такие данные называются простыми. Простые переменные описываются в разделе переменных после слова Var с помощью инструкций вида:

    Var список_имен_переменных: тип;

    Слово список при описании фрагментов алгоритмического языка обычно означает, что элементы списка перечисляются через запятую. Инструкции в Паскале разделяются точкой с запятой (обратите внимание на этот знак в конце описания).

    Пример описания:

    Var a, b:real; n,i, j,k:integer;

    Именованные константы описываются в разделе констант после ключевого слова Const с помощью инструкций вида:

    Const имя_константы=значение константы;

    Здесь ключевое слово const показывает, что определяемое данное имеет постоянное значение, т. е. доступно только для чтения. Тип константы определяется по ее значению.

    Общепринятый (обязательный для стандартной версии Паскаля, но необязательный в реализациях) порядок следования разделов такой: сначала идет раздел констант, потом раздел переменных. В Паскале требуется, чтобы все используемые имена (в том числе переменные и константы) были описаны.

    1.2.5. Выражения


    Выражения в Паскале, как и в других алгоритмических языках, различаются по типу (в зависимости от участвующих в выражении операндов и операций) и бывают арифметическими (числовыми), логическими (булевскими), символьными. Напомним очевидное определение: выражение - это операнды, соединенные знаками операций. Тип операндов должны быть согласован с операциями, используемыми в выражении. Операнд - это либо константа, либо переменная (простая или с индексами), либо указатель функции, либо выражение, заключенное в скобки. Особенность логических операндов состоит в том, что логическим операндом может быть и соотношение.

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

    Арифметические: * (умножение), div (деление нацело), mod (остаток от целочисленного деления), / (деление), + (сложение), - (вычитание).

    Логические: NOT (отрицание), OR (дизъюнкция), AND (конъюнкция).

    Соотношения: = (равно), <> (неравно), < (меньше), > (больше), <= (меньше или равно), >= (больше или равно), IN (вхождение в множество).

    Операции DIV и MOD, естественно, применимы только к целым операндам.

    Действия выполняются слева направо с учетом следующих приоритетов (перечислены в порядке убывания):

    1) NOT;

    2) мультипликативные операции: *, /, div, mod, AND;

    3) aддитивные операции: +, -, OR;

    4) соотношения: =, <>, <, >, <=, >=, IN.

    Программистам, привыкшим к СИ и Фортрану, следует быть внимательными: приоритеты отличны от принятых в этих языках.

    Например, в паскалевском выражении

    (a>0.1) AND (b<0)

    скобки обязательны: при их отсутствии первой будет выполняться операция AND, что логически неверно. Заметим, что компилятор при этом выдаст сообщение о несоответствии типа операндов (0.1 и b) типу операции AND.

    Смешивать типы операндов допустимо лишь для арифметических выражений (один операнд типа integer, другой - типа real). Тип результата в этом случае определяется следующим образом: операции *, +, - при целых операндах дают целый результат; если хотя бы один операнд вещественный, то эти операции дают вещественный результат. Операция / дает вещественный результат при любых операндах (в отличии от СИ и Фортрана).

    В таблице 5 приведены некоторые часто используемые стандартные функции Паскаля.

    Таблица 5. Некоторые встроенные функции Паскаля

    Обозначение Паскаля

    Смысл (математическое обозначение)

    Тип аргумента

    Тип результата

    abs(x)

    abs(x)

    числовой

    совпадает с типом аргумента

    arctan(x)

    arctg(x)

    вещественный

    вещественный

    cos(x)

    cos(x)

    вещественный

    вещественный

    exp(x)

    ex

    вещественный

    вещественный

    ln (x)

    ln x

    вещественный

    вещественный

    sin (x)

    sin x

    вещественный

    вещественный

    sqr(x)

    x2

    числовой

    совпадает с типом аргумента

    sqrt(x)



    вещественный

    вещественный

    round(x)

    преобразование из вещественного в целое с округлением

    вещественный

    целый

    trunc(x)

    преобразование из вещественного в целое с отбрасыванием дробной части

    вещественный

    целый

    odd(x)



    целый

    булевский

    ord(x)

    номер х в последовательности значений порядкового типа10

    любой порядковый

    целый

    succ(x)

    следующее значение порядкового типа

    любой порядковый

    совпадает с типом аргумента

    pred(x)

    предыдущее значение порядкового типа

    любой порядковый

    совпадает с типом аргумента


    1   2   3   4   5   6   7   8   9   10


    написать администратору сайта