Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Документ Microsoft Word (2).docx
Скачиваний:
9
Добавлен:
21.02.2016
Размер:
238.23 Кб
Скачать

1)Алгори́тм — набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачиза конечное число действий. Формы записи алгоритма:

  • словесная или вербальная (языковая, формульно-словесная);

  • псевдокод (формальные алгоритмические языки);

  • схематическая:

    • графическая (блок-схемы и ДРАКОН-схемы);

    • структурограммы (диаграммы Насси-Шнейдермана).

2) Алфавит языка программирования — это набор символов (разрешенный к использованию и воспринимаемый компилятором), с помощью которого могут быть образованы выражения и операторы данного языка. 

Зарезерви́рованное сло́во (или ключево́е сло́во) — в языках программирования слово, имеющее специальное значение. Идентификаторы с такими именами запрещены.

В лексическом анализе зарезервированное слово фигурирует как одна лексема особого типа.

  • В Паскале нельзя создать переменную const — это слово предназначено для задания констант.

Опознакидентификатор (англ. ID, identifier — опознак) — неповторимый признак объекта, позволяющий различать его от других объектов. Идентификатор-Это признак, по которому объект можно однозначно выделить из множества подобных. Чаще всего это уникальное имя.

Например : номер паспорта идентифицирует человека, но действует только в пределах РФ; ФИО человека идентифицирует человека, но действует только в рамках его ближайшего окружения (где-то в России найдётся человек с точно такими же ФИО) ID записи в базе идентифицирует строку, но только в пределах данной таблицы. и т.п.

5-6)

Структура программы на Турбо Паскаль

Программа на языке Паскаль состоит из заголовка, разделов описаний и раздела операторов. Заголовок программы содержит имя программы, например:

Program PRIM;

Описания могут включать в себя:

  • раздел подключаемых библиотек (модулей);

  • раздел описания меток;

  • раздел описания констант;

  • раздел описания типов;

  • раздел описания переменных;

  • раздел описания процедур и функций.

Раздел описания модулей определяется служебным словом USES и содержит имена подключаемых модулей (библиотек) как входящих в состав системы Turbo Pascal, так и написанных пользователем. Раздел описания модулей должен быть первым среди разделов описаний. Имена модулей отделяются друг от друга запятыми:

uses CRT, Graph;

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

label 3, 471, 29, Quit;

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

const K= 1024; MAX= 16384;

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

var P,Q,R: Integer;

A,B: Char;

F1,F2: Boolean;

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

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

begin.......end

последовательность операторов. Операторы отделяются друг от друга символом ;. Текст программы заканчивается символом точка.

Кроме описаний и операторов Паскаль - программа может содержать комментарии, которые представляют собой произвольную последовательность символов, расположенную между открывающей скобкой комментариев { и закрывающей скобкой комментариев }.

Пример 1

program Primer; {вычисление суммы двух чисел}

var

x,y,s: integer;

begin

WriteLn('Введите через пробел два числа ');

ReadLn(x,y);

s := x + y;

WriteLn('Сумма чисел равна ',s);

end.

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

Пример 2

program Primer; {вычисление суммы двух чисел}

uses Crt; {подключение модуля, необходимого для процедур

очистки экрана и задержки}

var

x,y,s: integer;

begin

ClrScr; {очистка экрана}

WriteLn('Введите через пробел два числа ');

ReadLn(x,y);

s := x + y;

WriteLn('Сумма чисел равна ',s);

ReadKey; {ожидание нажатия клавиши}

end.

6) Оператор присваивания - основной оператор любого языка программирования. Общая форма записи оператора:

  имя величины := выражение

Например, V:=A; или V:=A+1;

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

Как только в программе встречается переменная, для неё в памяти отводится место. Оператор присваивания помещает значение выражения в место, отведённое переменной.

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

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

Арифметические выражения

Арифметические выражения должны быть записаны в так называемой линейной записи согласно следующим правилам:

  • выражение должно быть записано в виде линейной цепочки символов;

  • используемые операции приведены в таблице:

 НАЗВАНИЕ ОПЕРАЦИИ

 ФОРМА ЗАПИСИ

 сложение

 x + y

 вычитание

 x - y

 умножение

 x * y

 деление

 x / y

  • нельзя опускать знаки операций, например, писать 5b. Для записи произведения чисел 5 и b надо писать 5*b;

  • аргументы функций (sin, cos и др.) как и аргументы вспомогательных алгоритмов, записываются в круглых скобках, например sin(x), cos(4*x).

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

  • вычисляет значение всех алгоритмов-функций и стандартных функций;

  • выполняет справа налево все операции возведения в степень;

  • выполняет слева направо все операции умножения и деления;

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

В нашем случае(*) сначала переменной number1 присваивается значение равное 3 и переменной number2 присваивается значение равное 4, затем вычисляется значение выражения (number1 + number2) и оно присваивается переменной result.

Сумма чисел посчитана.

Теперь надо вывести ее значение на экран. Для этого используют оператор Write - записать (вывести) на экран значение переменной, записанной в скобках. В нашем случае значение переменной number1, затем символ + , далее значение переменной number2, символ = и, наконец, значение результата result.

И, наконец, в конце раздела операторов стоит служебное слово End, после которого стоит точка.

7) Условные операторы Pascal-Паскаль

Условные операторы позволяют выбирать для выполнения те или иные части программы в зависимости от некоторых условий. Если, например, в программе используются вещественные переменные x и z, и на каком-то этапе решения задачи требуется вычислить z=max(x, y), то желаемый результат получается в результате выполнения либо оператора присваивания z:=x, либо оператора присваивания z:=y. Поскольку значения переменных x и y заранее неизвестны, а определяются в процессе вычислений, то в программе необходимо предусмотреть оба эти оператора присваивания. Однако на самом деле должен выполниться один из них. Поэтому в программе должно содержаться указание о том, в каком случае надо выбирать для исполнения тот или иной оператор присваивания.

Это указание естественно сформулировать с использованием отношения x>y. Если это отношение при текущих значениях x и y справедливо (принимает значение true), то для исполнения должен выбираться оператор z:=x; в противном случае для исполнения должен выбираться оператор z:=y (при x=y безразлично, какой оператор выполнять, так что выполнение оператора z:=y в этом случае даст правильный результат).

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

if B then S1 else S2

Здесь if (если), then (то) и else (иначе) являются служебными словами, В – логическое выражение, а S1 и S2 – операторы.

Выполнение такого условного оператора в Паскале сводится к выполнению одного из входящих в него операторов S1 или S2: если заданное в операторе условие выполняется (логическое выражение В принимает значение true), то выполняется оператор S1, в противном случае выполняется оператор S2.

Алгоритм решения упомянутой выше задачи вычисления z= max( x, y) можно задать в виде условного оператора Паскаля

if x>y then z:= x else z:= y

При формулировании алгоритмов весьма типичной является такая ситуация, когда на определенном этапе вычислительного процесса какие-либо действия надо выполнить только при выполнении некоторого условия, а если это условие не выполняется, то на данном этапе вообще не нужно выполнять никаких действий. Простейшим примером такой ситуации является замена текущего значения переменной х на абсолютную величину этого значения: если x<0, то необходимо выполнить оператор присваивания x:= - x; если же x>=0, то текущее значение х должно остаться без изменений, т.е. на данном этапе вообще не надо выполнять каких-либо действий.

В подобных ситуациях удобна сокращенная форма записи условного оператора в Паскале:

if B then S

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

В языке программирования Паскаль в условном операторе между then и else, а также после else по синтаксису может стоять только один оператор. Если же при выполнении (или невыполнении) заданного условия надо выполнить некоторую последовательность действий, то их надо объединить в единый, составной оператор, т.е. заключить эту последовательность действий в операторные скобки begin... end (это важно!). Если, например, при x< y надо поменять местами значения этих переменных, то условный оператор будет записан следующим образом в Паскале:

if x<y then begin r:=x; x:=y; y:=r end

Наличие сокращенной формы условного оператора Паскаля требует большой осторожности при использовании. Например, условный оператор

if B1 then if B2 then S1 else S2

допускает, вообще говоря, две разные трактовки:

  • как полный условный оператор Паскаля вида

if B1 then begin  if B2 then S1 end else S2

  • как сокращенный условный оператор Паскаля вида

if B1 then begin if B2 then S1 else S2 end

По правилам Паскаля имеет место вторая трактовка, т.е. считается, что каждое слово else соответствует первому предшествующему ему слову then. Для избежания возможных ошибок и недоразумений можно порекомендовать во всех подобных случаях четко выделять желаемую форму условного оператора Паскаля путем взятия в операторные скобки.

8) Пример программы с использованием оператора case, которая по введенному вами номеру дня недели выводит на экран видеомонитора его название на русском языке. program Day_Week;

var Day : byte; begin Write ('Введите номер дня недели (от 1 до 7) :'); Readln (Day); case Day of {Вычисление значения выражения и выбор} 1: Writeln ('Понедельник'); 2: Writeln ('Вторник'); 3: Writeln ('Среда'); 4: Writeln ('Четверг'); 5: Writeln ('Пятница'); 6: Writeln ('Суббота'); else Writeln ('Воскресенье'); end; end.

В данном примере на экран видеомонитора выводится приглашение "Введите номер дня недели с клавиатуры считывается целочисленное значение дня недели и присваивается переменной Day. Затем в зависимости от значения селектора DAY обеспечивается реализация того оператора, константа выбора которого равна текущему значению селектора. Например, если значение Day равно 3, то реализуется оператор

Writeln ('Cpeдa')

Если значение Day равно 7, а ни одна из констант не равна этому значению селектора, то выполняется оператор, стоящий за словом else (на экран выводится текст 'Воскресенье'). Если слово else отсутствует, активизируется оператор, находящийся за словом end;, т. е. первый оператор за границей case. Если значение Day не равно значению ни одной из констант выбора (например, Day=8 или Day=0), то активизируется оператор, находящийся за словом end;, т. е. первый оператор за границей case — оператор end.