Глава 10. ОСНОВЫ ПРОГРАММИРОВАНИЯ

§1. Язык как средство общения. Необходимость создания языков программирования

Компьютер - инструмент для обработки информации. Чтобы компьютер мог обработать информацию, нужно составить для него алгоритм, выполняя который ком­пьютер решит задачу. На каком языке должен быть описан алгоритм, чтобы компью­тер мог его понять? Язык - одно из самых великих творений человечества. Он является важнейшим средством общения, тонким и гибким инструментом, с помощью которого формируется и выражается мысль Важнейшая функция языка - функция общения или коммуникативная (от латинского "communicatio" - сообщение).

Принято считать, что сейчас существует 2795 языков и около 3-х тысяч диалек­тов. Известны еще языки "мертвые" - латинский, древнегреческий, хеттский, арамей­ский и другие. Воистину, как сказал Вольтер," различие языков - одно из величайших несчастий бытия". К одиннадцати наиболее распространенным языкам относятся: анг­лийский, арабский, индонезийский, испанский, китайский, немецкий, португальский, русский, хинди и японский.

Слов в каждом языке меньше, - чем понятий, и поэтому приходится совершенно разные понятия обозначать одинаково. Это приводит к многозначности слов. Напри­мер, если вы возьмете " Словарь русского языка " Ожегова, то обнаружится, что слово "идет" имеет 26 значений. Вот некоторые из них:

Облака идут на север. Перемещаться.

Шляпа тебе идет. Быть к лицу.

Поезд идет через час. Отправляться.

НЕ нашли? Не то? Что вы ищете?

Идет снег. Падают осадки.

Пенсия идет сама собой. Выплачивается.

Идут слухи. Распространяться.

Идет весна. Наступает.

Споем? Идет. Согласие.

Если в общении с компьютером употребить слово "идет", компьютер должен перебрать 26 значений и выбрать единственное.

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

Для общения с компьютером тоже созданы искусственные языки, которые назы­вают алгоритмическими или языками программирования.

§2. История создания языков программирования

Началась она с разработки машинных языков: языка нулей и единиц. Запись на таком языке была очень трудоемкой и утомительной работой. В конце 1940-х и в нача­ле 1950-х годов для облегчения тяжкого труда написания программ в машинных кодах была изобретена система обозначений, называемая языком АССЕМБЛЕРА. Вместо двоичных цифр, обозначающих какую-то команду, писались короткие слова или аб­бревиатура, например, ADD (добавить), SUB (вычесть), MOV (поместить). Например, алгоритм вычисления выражения Х = Y + Z на языке ассемблера записывается следую­щим образом:

MOV AX, Y загрузить Y в регистр АХ

MOV BX, Z ; загрузить Z в регистр ВХ

ADD AX. BX ; добавить Z к Y

MOV Х, АХ ; сохранить результат в Х

Программисты называют ассемблер языком программирования низкого уровня, поскольку он близок к машинному языку - языку программирования самого низкого уровня. У каждого компьютера свой язык ассемблера, поэтому написанная на нем про­грамма непригодна для выполнения на компьютерах других типов.

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

Под языком программирования следует понимать искусственный язык, ис­пользуемый для написания программы, т. е. алгоритма решения задачи, предназначенного для исполнения вычислительной машиной.

Говоря об искусственном языке, необходимо отметить его краткость и немно­гословность (до 50-ти слов и конструкций). Языков программирования и их версий на­считывается, по крайней мере, несколько сотен, а вернее - несколько тысяч.

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

Языки программирования, одна фраза которых эквивалентна нескольким. ко­мандам компьютера, принято называть языками высокого уровня. Появились они для компьютеров второго поколения. Приведем несколько примеров языков программиро­вания высокого уровня.

• ЛИСП - ( от List Processing - обработка списков) - применяется для исследований в

области искусственного интеллекта. . ФОРТРАН - (от Formula Translator - переводчик формул ^разработан в середине 50-

х годов для описания математических алгоритмов.

• КОБОЛ - ( от CommonBusiness Oriented Language ) - для решения финансово - эко­номических задач.

• БЕЙСИК - ( от Beginner All Purpose Symbolic Code ) - универсальный символиче­ский язык(код) для начинающих, разработан в 1964 году.

• СИ - разработан в 1972 году как универсальный язык системного программирова­ния, он как бы являет собой компромисс между низким уровнем ассемблера и высо­ким уровнем описанных выше языков.

. ПАСКАЛЬ - получил свое название в честь французского математика 17 века Бле-за Паскаля. Разработан швейцарским ученым, специалистом в области информатики Никлаусом Виртом как язык для преподавания современных принципов програм­мирования. Применим для решения прикладных задач различных типов.

Допустим, написана программа решения задачи на каком-то языке программи­рования, но компьютер понимает только команды, переведенные в двоичный код. Этот перевод можно осуществить с помощью трансляторов.

Транслятор - программа, переводящая текст алгоритма, записанного на ка­ком-то языке программирования, на язык машинных кодов.

Различают два вида трансляторов: компиляторы и интерпретаторы. Они раз­личаются с точки зрения выполнения работы. Компилятор читает всю программу це­ликом, делает •ее перевод и создает законченный вариант программы на машинном языке, который затем загружается в компьютер и выполняется; интерпретатор пере­водит и выполняет программу строка за строкой (как синхронный переводчик).

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

Для каждого языка программирования существует свой транслятор, иногда для одного языка создается и компилятор, и интерпретатор. Откомпилированная про­грамма выполняется быстрее, чем та, которая обрабатывается интерпретатором.

Языки программирования высокого уровня - машиннонезависимые языки: про­грамма, написанная на таком языке, может быть выполнена на ЭВМ разных типов при наличии соответствующего транслятора.

§3. Системы программирования. Введение в среду программирования Турбо Паскаль

Основное назначение систем прграммирвания - облегчить труд программиста при разработке программ. Язык программирования, с которым работает система про­граммирования, называется ее входным языком.

В названии некоторых систем программирования есть приставка "Турбо". Турбо - это торговая марка разработчика системы программирования: фирмы Borland International. Популярны системы программирования Турбо Си, Турбо Бейсик, Турбо Паскаль(ТР). ТР появилась в середине 80-х годов. Известны ее версии 3.0, 4.0, 5.0, 5.5, 6.0, 7.0.

Система ТР представляет собой единство двух в одинаковой степени само­стоятельных начал: компилятора с языка программирования Паскаль и некоторой ин­струментальной программной оболочки, способствующей повышению эффективности создания программы.

ТР поддерживает следующие режимы работы:

• редактирование текста,

• компиляция программы,

• исполнение откомпилированной программы,

• работа с файлами (например, сохранение файла на

• внешнем носителе, загрузка файла с внешнего носителя

• в оперативную память),

• помощь при работе в среде, . отладка программ. Система ТР состоит из множества файлов, основые из которых:

• TURBO. EXE, который содержит готовую к работе диалоговую систему про­граммирования ТР (в нее входят текстовый редактор, компилятор, компо­новщик, загрузчик),

• TURBO. TPL - основная библиотека ТР,

• TURBO. HLP - справочная служба.

Выход из среды ALT-X. Вход в верхнее меню - F10. В ТР можно одновременно работать с несколькими программами (или частями одной крупной программы), каж­дая из которых может располагаться в отдельном окне редактора (всего таких окон 9).

Функциональные клавиши Турбо Паскаль Fl-помощь. F2 - сохранение редактируемого текста на диске.

F3 - загрузка текста с диска в окно редактирования. F4 - используется в отладочном режиме: начать или продолжить

исполнение программы и остановиться перед исполнением той

ее строки, на которой стоит курсор. F5 - распахнуть окно на весь экран. F6 - сделать активным следующее окно. F7 - используется в отладочном режиме: выполнить следующую

строку программы; если в строке есть обращение к процедуре

(функции), войти в эту процедуру и остановится перед

исполнением первого ее оператора. F8 - используется в отладочном режиме: выполнить следующую

строку программы; если в строке есть обращение к процедуре

(функции), исполнить ее и не прослеживать ее работу. F9 - компилировать программу, но не выполнять ее. F10- переход к верхнему меню. CTRL-F9 - выполнить прогон программы:

компилировать программу, находящуюся в редакторе, загрузить ее в оперативную память и выполнить, потом вернуться в среду ТР.

ALT-F5 - сменить окно редактора на окно вывода результатов (прогона) программы.

Текстовый редактор Турбо Паскаль

Чтобы из главного меню попасть в окно редактирования, надо нажать клавишу ESC.

Приемы работы с текстовым редактором.

Ввести текст с клавиатуры компьютера. После набора очередной строки сле­дует нажать клавишу ENTER.

Окно редактора - длинный и широкий лист, который можно прокручивать. Максимальная длина строки и листа ограничивается только общим числом символов в файле, которое не должно превосходить 65535. Но компилятор ТР воспринимает строки длиной не более 126 символов.

Полезно знать назначение некоторых клавиш:

HOME - курсор в начало строки,

END - курсор в конец строки,

CTRL-PgUp - курсор в начало текста,

CTRL-PgDn - курсор в конец текста,

BS - удаление символа перед курсором,

DELETE - удаление символа под курсором,

CTRL-Y - удаление строки, на которой стоит курсор,

CTRL-Q-L - восстановление текущей строки. Работа с фрагментом текста (блоком).

SHIFT - клавиши управления курсором - выделение блока,

CTRL-K-Y - удаление блока,

CTRL-K-V - перемещение блока,

CTRL-K-C - копирование блока,

CTRL-K-W - сохранение блока в виде файла,

CTRL-K-R - чтение блока из файла,

CTRL-K-P - печать блока.

Практическая работа в текстовом редакторе ТР.

Загрузите среду ТР, введите следующий текст, используя возможности текстового редактора ТР:

Program Proba;

begin

{ работа в текстовом редакторе ТР} writeln('EDIT - редактирование');

writeln('OPEN - открытие окна редактирования и помещение в него файла с указанным именем');

writeln('SAVE - запись содержимого активного окна редактора в файл');

writeln('COMPILE - компиляция программы из окна редактора');

writeln('RUN - компиляция, компановка и выполнение программы из окна редактора');

end.

©•>______________________________________

1. Почему естественные языки не могут служить для общения с компьютером?

2. Что такое язык программирования?

3. Что называется программой?

4. Для чего предназначен транслятор?

5. В чем сходство и отличие компилятора и интерпретатора?

6.Назначение систем программирования.___

§4. Типы данных. Структура программы на языке Pascal. Понятие переменной, константы, выражения

4.1.Алфавит языка PASCAL. Понятие синтаксиса и семантики

Изучение любого языка начинается с изучения алфавита языка и правил написа­ния и использования отдельных языковых конструкций.

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

Алфавит языка PASCAL можно разбить на три группы символов:

буквы - строчные и прописные буквы латинского алфавита от А до Z и буквы русского

алфавита (в стандарте языка PASCAL их нет). Цифры - арабские цифры от 0 до 9. Специальные символы:

а) знаки арифметических операций:

+ - знак операции сложения,

- - знак операции вычитания,

* - знак операции умножения, / - знак операции деления;

б) знаки операций отношения:

= - знак операции "равно",

о - знак операции "не равно",

> - знак операции "больше", ..-

< - знак операции "меньше",

>= - знак операции "больше или равно",

<= - знак операции "меньше или равно";

в) разделители:

.,:;{}[}'-0

г) служебные слова:

and - и, begin - начать, const - константа, div - делить, do - делать, else - иначе, for - для и т. д.

Синтаксис языка - это система правил, определяющих допустимые конст­рукции из символов алфавита.

Для каждой цепочки символов синтаксис позволяет ответить на вопрос: является ли она текстом на данном языке или нет.

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

4.2. Объекты, с которыми работает программа

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

Итак, программа может обрабатывать числа: целые и дробные (вспомните элек­тронные таблицы), буквы, строки (текстовые редакторы), графическую информацию ( графические редакторы ). Понятно, что с числовыми данными можно выполнять мате­матические; вычисления, а с текстом - нет.

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

В языке программирования PASCAL все данные в зависимости от способа их хранения и обработки можно разделить на две группы: константы и переменные.

Константы - это данные, значения которых не изменяются в процессе выпол­нения программы.

Переменная - это объект программы, который может менять свое значение

в процессе выполнения программы.

Кроме констант и переменных объектами программы могут быть функции, вы­ражения и т. д., с ними мы познакомимся позже.

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

Для того, чтобы " объявить компьютеру ", какие ячейки памяти мы собираемся использовать при решении задачи, вводится понятие типа данных.

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

При работе с данным в программе на него надо ссылаться, для этого данному дают имя. Роль таких имен играют идентификаторы.

Идентификатор - любая конечная последовательность латинских букв, цифр и символа " подчеркивание " (J. Идентификатор не может начинаться с цифры

Примеры правильных идентификаторов:

X, PI, Summa, a28, RabJ, _PROBA. Примеры неправильных идентификаторов:

s-f символ "-" не может использоваться в идентификаторе,

Sum(2) - символы"(" и ")" недопустимы,

7step - идентификатор не может начинаться с цифры,

Алма-Аты - русские буквы недопустимы в идентификаторе.

4.4.Правила написания и использования идентификаторов

1. Максимальное количество символов в идентификаторе 127, но транслятор ис­пользует только первые 64 символа.

2. При написании идентификаторов можно использовать как прописные так и строчные буквы. Компилятор не делает различий между ними ( идентификаторы ZAP, ZaP, zap, zAp являются тождественными).

3. В качестве идентификаторов нельзя использовать служебные (зарезервиро­ванные) слова.

4. Идентификатор должен быть уникальным, т. е. в данном блоке программы один идентификатор не может быть использован для обозначения более чем одного объекта.

5. Следует использовать идентификаторы, отображающие либо физический смысл данного, либо его назначение - это облегчает понимание программы.

Например,

если в программе используется данное "скорость", то для обозначения соот­ветствующей переменной лучше использовать идентификатор У(как общепринятый в физике),

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

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

4.5. Структура программы

Программа - способ записи алгоритма. В ней надо описать последовательность действий, выполняемых над определенными данными для получения результата.

В программе на языке PASCAL, кроме того, надо описать все данные, которые используются в алгоритме, причем, описать их раньше, чем описывать действие над ними.

Программа состоит из строк. Набор текста программы осуществляется с помо­щью встроенного редактора текстов системы ТР (с ним мы знакомились на предыду­щем занятии ) либо любого другого редактора в формате ASCII. Строка может начи­наться с любой колонки.

Общую структуру программы для простых алгоритмов можно представить сле­дующим образом.

PROGRAM Идентификатор программы>; {заголовок программы} VAR {раздел описания переменных}

описание_1;

описание_2;

описание_п;

BEGIN {раздел операторов} оператор_1;

оператор_2;

оператор_т;

END. {конец программы}

В каждой программе обязательно должен быть:

. заголовок, состоящий из служебного слова PROGRAM и идентификатора, который выбирает сам программист;

• раздел операторов, в котором описываются все действия алгоритма;

этот раздел начинается со служебного слова BEGIN и заканчивается слу­жебным словом END с точкой.

Раздел описания переменных может отсутствовать (если программа не исполь­зует никаких переменных). Если же в программе задействованы переменные величи­ны, то их описание нужно'произвести в разделе, начинающемся со слова VAR. Общий вид описания переменной:

Идентификатор переменной>:<имя типа>;

Если в программе используется несколько переменных одного типа, то описание примет вид:

<идентиф_1>,<идентиф_2>,...,<идентиф_п>:<имятипа>;

В программе, описывающей более сложные алгоритмы, могут быть и другие разделы описаний.

4.6.Полная структура программы

PROGRAM Идентификатор программы>; {заголовок программы}

USES <идентиф_мод_1,..идентиф_мод_1>; {раздел описания модулей}

LABEL... ;{раздел описания меток}

CONST... ; {раздел описания констант}

TYPE... ;{раздел описания типов}

VAR {раздел описания переменных}

описание_1;

описание_2;

описание_п;

PROCEDURE<идeнтификaтop_пpoцeдypы>; {раздел описания процедур} <тело процедуры>;

FUNCTION<идeнтификaтop_фyнкции>; {раздел описания функций} <гело функции>;

BEGIN {раздел операторов} оператор_1;

оператор_2;

оператор_т;

END. {конец программы}

В разделе операторов рекомендуется каждый оператор записывать от - дельной строкой. Оператор заканчивается разделителем ";".

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

§5. Числовые типы. Целый и вещественный. Числовые константы, переменные, выражения

5.7. Целочисленный тип данных

Данные этого типа представляют собой значения, которые занимают в памяти от 1 до 4 байт.

имя типа диапазон значений____требуемая памятъ(байт)

byte_____от 0 до 255_______1_______

shortint от-128 до 127_______1_______

integer от-32768 до 32767_______2_______

word_____от 0___до 65535_______2_______

longint от- 4

.______I______до |________________

Целочисленные константы - это последовательность цифр, перед которыми может быть знак минус(-).

Т. е., если в тексте программы встречается последовательность символов 30000, транслятор понимает это как целую константу. Чтобы указать конкретный целый тип константе, ее можно описать в разделе описания констант CONST, дать константе идентификатор и указать ее значение,

Такие константы называются типизированными.

Общий вид описания типизированных констант:

CONST <идентиф_константы>:<имя_типа>=<значение_константы>;

Пример.

Пусть при решении задачи используется данное "пульс человека", норма его 60 ударов

в минуту.

Объявим эту константу, например, так:

CONST PULS:byte=60;

Встретив такое описание, транслятор отведет в памяти ячейку размером 1байт, назовет эту ячейку именем PULS и поместит туда целое число 60. Дальше, в тексте программы, вместо значения 60 можно будет писать идентификатор PULS.

Целочисленные переменные должны быть описаны в разделе описания пере­менных, начинающемся со слова VAR (от variable - переменная).

Общий вид описания:

VAR <идентификатор_переменной> ;<имя_типа>;

Пример.

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

па. Пусть число людей будет храниться в ячейке памяти с именем W, а номер квартиры - в переменной с именем N. Чтобы сообщить компьютеру, что нам понадобятся такие переменные, надо сделать следующее описание:

var w, n: integer;

Этому описанию равносильно и описание вида:

var w: integer;

n:integer;

Следуя такому описанию, компилятор отведет в памяти две ячейки по 2 байта каждая и будет знать, что в этих ячейках может храниться любое целое число от -32768 до 32767.

5.2.0перации над целочисленными данными

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

Арифметические операции.

знак операции содержание операции_____ + сложение

вычитание * умножение div деление и отбрасывание

дробной части

___mod___получение остатка от деления В результате выполнения этих операций получается целая величина.

Приоритет операций:

1.*,div, mod (операции одинакового ранга)

2.+,- (операции одинакового ранга)

Пример:

7 div 2 (результат 3) 3 div 5 (результат 0)

-7 div 3 (результат -2)

-7 div (-2) (результат 3) 7 mod 2 (результат 1) 3 mod 5 (результат 3)

-14 mod 3 (результат 1)

Операции отношения.

Операции отношения выполняют сравнение двух операндов и определяют: вер­но это сравнение или нет. Знаки операций отношения мы описали при рассмотрении алфавита языка в группе "спецсимволы".

Стандартные функции.

В состав языка PASCAL входит набор функций, позволяющих вычислять значе­ние какой-то величины, пользуясь разработанными алгоритмами, которые оформлены соответствующим образом, и обратиться к которым можно по имени (идентификатору) этого алгоритма, указав исходные данные для него. Например, есть функция определе­ния модуля числа X: abs(x); функция нахождения следующего целого после X: succ(x);

функция нахождения предшествующего Х целого числа: pred(x).

5.3.Вещественный тип данных (real)

К нему относятся целые и дробные, положительные и отрицательные числа. Данное типа real в памяти занимает 6 байт. Диапазон значений от 10"39 до 10"1"38, число значащих цифр 12.

Вещественные константы могут быть записаны в форме с фиксированной запя­той или в форме с плавающей запятой.

Константы в форме с фиксированной запятой - это дробные числа в общепри­нятой форме записи, но вместо символа "," пишется символ ".".

Константы в форме с плавающей запятой - это числа, представленные с деся­тичным порядком, т. е. в виде "тЕр"(без пробелов), где "т"- мантисса (целое или веще­ственное число с фиксированной запятой), "Е" - признак записи числа с десятичным порядком, "р" - порядок(только целое число).

Пример._______________________________________

Значение Запись на языке PASCAL Запись на языке вещественной в форме с фиксированной PASCAL в форме с константы_____запятой__________плавающей запятой

16,4 1Е1

0,0032________| 0.0032____________| 0.32E-2________

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

значение запись на языке PASCAL константы _________________________

___________правильная_____неправильная___

2 0,5_________| 0.5___________|_5___________

Вещественные переменные должны быть описаны в разделе описания перемен­ных VAR.

Например, при решении задачи используется данное - " вес человека"; идентификато­ром переменной, которая будет хранить значение веса, можно принять Р. Поскольку вес в общем случае дробное число, переменная Р должна быть типа real, т. е. ее надо описать так:

VAR

P:real;

Типизированные константы вещественного типа могут быть описаны в разделе

CONST.

Пример:

CONST L-real-0.1;

5.4. Операции над вещественными данными

знак операции содержание операции + " сложение

вычитание * умножение / деление

В ТР отсутствует операция возведения в степень, при необходимости ее исполь­зования применяют стандартные функции. А" соответствует EXP (A*Ln(x)), где Ln(x)-функция вычисления натурального логарифма для числа Х(х>0),ЕХР(у)-экспонеита числа Y,-r. e. е^ Существуют стандартные функции, позволяющие определить некото­рые тригонометрические величины, например, для нахождения синуса числа Х служит функция SIN(x), х задается в радианах. Функция SQR(x) вычисляет квадрат числа X, а SQRT(x) - значение корня квадратного из X.

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

Арифметическое выражение- это конструкция языки, задающая правили вычис­ления значения величины и состоящая из числовых констант, переменных, стандартных функг^ий, соединенных знаками арифметических операций.

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

1. Вычисление значений стандартных функций.

2. Операции умножения и деления.

3. Операции сложения и вычитания.

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

1. Знак операции деления "/" позволяет записать в строку выражение, которое традиционно записывается с выходом из строки.

А

Например: выражение — записывается как А/В. В

2. Знак операции умножения нельзя опускать. Например:

9. Записать порядок операций и вычислить выражение

-a mod b + a div b*c при а=-1 l, b=2,c=3

10. При каком значении Х справедливо равенство 20 div Х = 20 mod X?

11. Подберите соответствующие идентификаторы переменных для хранения значений ниже перечисленных данных и опишите их:

- число дней в году;

- количество листов в книге;

- расстояние между планетами;

- стоимость билета в театр;

- температура человека.

\a\-\b\ c(a+b)

12. Записать на языке PASCAL выражение ~,——-Г + —у,—— \a-b\ a be

©?

I. Для чего используется указание типа данных величин?

2.Как описывается тип величины в программе на языке PASCAL?

З. Чем отличается константа от переменной?

4.Для чего нужен идентификатор?

5.Чем характеризуется целый тип данных?

б. Чем характеризуется вещественный тип данных?

7.Что такое выражение?

8.Каков приоритет выполнения операций в выражении?

9.Какого типа будет результат арифметического выражения?

10.Какие утверждения правильны?

1/10 - вещественная константа;

0.1 - вещественная константа в форме записи с фиксированной точкой;

-1273.- отрицательное целое число;

6.1*10 - вещественная константа в форме с плавающей запятой;

II. Какие из следующих соотношений (запись константы в форме с плавающей и в форме с фиксированной запятой) неправильны? 6.22Е+02 622 20ЕЕОЗ 2000.0 1200Е+03 12000.0______________________________

§6. Понятие оператора. Операторы присваивания, ввода, вывода

6.1. Оператор языка

Оператор - это законченная фраза языка программирования, определяющая какое-то действие над данными

Все операторы записываются в разделе операторов и отделяются друг от друга символом ";".

Оператор присваивания (:=)

Оператор присваивания позволяет присвоить переменной какое-то значение. Общий вид оператора присваивания:

«^идентификатор _ переменной>:=<выражение>;

Выполнение оператора:

1 .Вычисляется значение выражения, стоящего в правой части. 2.Вычисленное значение присваивается переменной, имя которой стоит слева от знака ":=" в операторе. Например: Х:=Х+2;

М:=0;

Следует помнить:

1 .Чтобы оператор присваивания выполнился правильно, все переменные, входящие в вы­ражение правой части, обязательно должны иметь некоторые значения к моменту выполнения оператора.

Пример: оператор Y:=X1+X2; будет иметь смысл только тогда, когда перед ним были выполнены, например, такие операторы: Х1:-5;Х2:—11; иначе значение пере­менной Y не определено.

2. При выполнении оператора присваивания предыдущее значение переменной, иденти­фикатор которой стоит слева от знака "присвоить", заменяется на текущее.

var

a: integer;

begin

а:=2; {Чему будет равно значение переменной "а"}

а:=а+3; {после выполнения этих операторов?}

3. Необходимо, чтобы переменная в левой части оператора и выражение в пра­вой его части были одного типа.

Исключение:

разрешается присваивать переменной вещественного типа значение целого типа; в этом случае значение преобразуется в вещественный тип.

var

x, y:integer;

begin

х:-=2;

у:=-2.5; {неверно}

_©?___________________________________________________________

1. Какие из следующих конструкций не являются оператором присваивания и почему? а) а:=Ь; г) у:=у;

б)а:=с+ 1; д)-у:=у;

в) а*х-Ь:=0;

2. Пусть переменная Х имеет значение 0.2, а переменная Y-значение -0.2. Какие значе­ния будут иметь Х и Y после выполнения операторов присваивания.

х:=х-2+у;

У-У/2;________________ ____________________________

6.3. Оператор ввода

Задать определенные значения переменным можно не только с помощью оператора присваивания. Точнее, это процедура ввода значений с клавиатуры (т. е. вспомогательный алгоритм, решающий данную задачу). Таких процедур две: READ и RE ADLN.

Общий вид процедур ввода:

READ (список _ идентификаторов _переменных);

READLN (список _ идентификаторов _ переменных);

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

VAR

i.-real;

j, k:integer;

BEGIN

read(ij, k);

Первый вариант ввода: 2.enter) обеспечивает нормальный ввод данных, после чего переменная i получит значение 2.144, переменная j - значение 8, а переменная k - соответственно 1.

Второй вариант ввода: 8 2.144 1 вызовет ошибку транслятора, т. к. была попытка при­своить целой переменной i значение вещественной константы 2.144.

VAR a, b,suml integer;

c, d,sum2:real;

BEGIN read(a, b);

suml:=a+b;

read(c, d);

sum2:=c+d;

Набираем на клавиатуре 18enter)2.62Eenter)

Процедура ввода значений READLN аналогична процедуре READ, единст­венное отличие в том, что после считывания значения последней переменной процеду-

ры READLN данные для следующей процедуры READLN будут считываться с новой строки.

6.4. Оператор вывода

Целью написания программы является получение результата, причем в удобном для человека виде. Наиболее часто результат решения задачи выдается на экран дис­плея. Для этого используются процедуры вывода данных на экран WRITE и WRITELN. Общий вид процедур:

WRITE(cnHCOK вывода);

WRITELN(cimcoK вывода);

Список вывода составляют перечисленные через запятые выражения. Вспомни­те, что переменная и константа - частные случаи выражения. Процедура вывода вычис­ляет значение выражения и вычисленное значение выводит на экран дисплея.. Значения всех выражений из списка вывода выводятся в строчку, одно за другим до конца стро­ки; Причем, если для вывода использовалась процедура WRITE, курсор остается на той строке, где было выведено значение последнего выражения списка вывода. При выводе с помощью WRITELN курсор переместится в начало следующей строки экрана после того как будут выведены все значения списка.

VAR X, Y: integer;

begin

х:=2;

у-10;

writeln(x, y,x+y);

end.

После выполнения программы на экране появится: 21012 и курсор переместится на следующую строку.

Процедура WRITELN без списка вывода просто переводит курсор в начало еле-' дующей строки дисплея.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4