ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.07.2024
Просмотров: 142
Скачиваний: 0
2. При записи конструкций алгоритма на языке Паскаль следует строго придерживаться правил синтаксиса алгоритмического языка Паскаль.
а. Выражение записывается в строчку, запрещены над- и подстрочечные символы, а также дроби
типа ab ;
b. Число должно быть записано по правилам синтаксиса;
c. Знак умножения пропускать нельзя (3x+5y → 3*x+5*y).
d. Запрещается ставить рядом 2 и более знака арифметических операций.
e.Запрещается заканчивать запись выражения знаком арифметической операции.
f.Запрещается начинать выражение знаком арифметической операции (кроме “+” и ”-“).
g.Количество открывающих и закрывающих скобок должно соответствовать друг другу.
h.Аргументы у функций заключаются в скобки (sin x → sin(x)).
i.При переносе выражения на новую строчку знак операции не дублируется;
j. Пробелы, концы строк, и комментарии считаются разделителями, их запрещается вставлять в имена, числа, ключевые слова. Там где может находиться хотя бы один разделитель может нахо- диться их любое количество.
При записи выражений также следует учитывать порядок старшинства (приоритет) операций:
1.Вычисления в круглых скобках;
2.Вычисление значений функций;
3.Унарные операции: not (операция отрицания), унарный +, унарный -;
4.Операции типа умножения: *; ÷ ; div; mod; and (логическое умножение).
5.Операции типа сложения :. +; -; or (логическое сложение);
6.Операции отношения: >; > =; <; < =; =; < >; in (проверка принадлежности).
При записи выражений для расчета наших функций используем операцию присваивания и кон- струируем выражения:
- 13 -
Выражение |
Конструкция |
y = x+5 |
y:=x + 5 |
y = x2 |
y:=x * x или y:= sqr(x) |
y = Sin x. |
y:= sin(x) |
С учетом этих особенностей реализация алгоритма на языке Паскаль выглядит так:
Program TASK (input, output); |
{Заголовок программы} |
Var x,y: real; |
{Описание переменных} |
Begin |
{Начало программы} |
Clrscr: |
{Процедура очистки экрана} |
Writeln(’Программа расчета функции); |
{Вывод пояснений к программе} |
Writeln(’Укажите значение аргумента’); |
{Организация диалога} |
Write(’x = ’); read(x); |
{Ввод значения переменной x } |
If x > 10 then y:=x + 5 else |
{Проверка первого условия с расчетом} |
If x > 5 then y:=x * x else y:= sin(x); |
{Проверка второго условия с расчетом} |
Writeln(’Функция равна, y = ’,y:6:4); |
{Вывод результата на экран} |
Repeat Until Keypressed; |
{Процедура «задержки» экрана } |
End. |
{Конец программы} |
ВАЖНО! Еще раз обратите внимание на правила построения конструкции условного оператора. Внутри его конструкции отсутствуют символы « ; ». Точка с запятой ставится лишь один раз в конце конструкции. Если нарушить это условие, решение перестанет быть верным.
Тема 2.
Операторы циклов.
Краткая теория
ВПаскале существует четыре типа операторов цикла:
1)while (пока) - с предварительной проверкой условия
2)repeat (повторять) - с последующей проверкой условия
3) for-to |
формы с параметром |
|
4) for-downto |
||
|
Самая мощная форма – while (с предусловием) – используема для любого случая, repeat (с по- стусловием) – почти не уступает по мощности, и такая же универсальная форма оператора цикла, но в ряде задач применять эту форму просто не удобно. For – частный, но довольно распространенный и широко применимый, частный случай оператора цикла. Во многих задачах эта форма просто не применима.
- 14 -
Оператор While (оператор с предварительной проверкой условия)
while A do S
(пока) (делать)
А- логическое выражение, S- любой оператор языка Паскаль (тело цикла), НО ТОЛЬКО ОДИН !!!
Оператор цикла в форме while организует выполнение только одного оператора неизвестное заранее число раз. Тело цикла выполняется до тех пор, пока условие верно. Выполнение прекращается если условие стано- вится ложно. Так как истинность условия проверяется в начале, тело цик- ла может не выполняться ни разу. При необходимости выполнения не- скольких действий внутри цикла, следует применять операторные скобки (составной оператор).
Оператор repeat (оператор с последующей проверкой условия)
Общая структура оператора цикла с постусловием имеет вид:
repeat <оператор 1>;<оператор 2>;...<оператор N> until <логическое условие A >;
(повторять) (до)
Оператор цикла repeat организует выполнение нескольких операто- ров неизвестное заранее число раз. Оператор цикла в форме repeat орга- низует выполнение тела цикла до тех пор пока условие А ложно. Выпол- нение тела цикла прекращается, если условие становится истинным. В связи с тем, что условие проверяется последним, тело цикла выполняется хотя бы один раз. В некоторых случаях применять repeat более удобно.
В отличие от оператора цикла while этот оператор цикла всегда вы- полнится хоть один раз.
Операторы цикла с параметром
Конструкции операторов циклов с параметром имеют вид:
For <параметрХ>:=<начальное знач.А1> To <конечное знач.А2> Do
Begin
<оператор 1>; <оператор 2>;
.............
<оператор N>
End;
For <параметр Х>:=<конечное знач.А1> DownTo <начальное знач.А2> Do
Begin
<оператор 1>; <оператор 2>;
.............
<оператор N>
End;
- 15 -
Параметр цикла – любая переменная скалярного типа, кроме вещественного типа. В приведенных структурах сразу используется составной оператор (последовательность операторов в операторных скобках), поскольку операторы цикла For организуют выполнение только одного оператора заранее известное число раз. Тело циклов этих операторов выполняется до тех пор, пока параметр цикла не достигает конечного или начального значения, соответственно. Тип начального и конечного значе- ний должен быть таким же, что и у параметра цикла. Эти значения не должны изменяться в процес- се выполнения цикла. Например,
s := 0; p := 1;
For i := 1 To n Do
Begin s:=s+i; p:=p*n
End
Замечание: значение параметров цикла, значения переменных от которых оно зависит не допустимо изменять в теле цикла или в процессе выполнения цикла.
Особенности использования оператора цикла с параметром.
Применяя операторы цикла с пред- или постусловием мы сами должны обеспечить переход от одного значения параметра, используемого в цикле, к другому. В цикле с параметром эти действия осуществляются автоматически. Следовательно, существуют определенные ограничения, которые выражаются в виде правил:
∙в теле цикла запрещено изменять как значения параметра цикла, так и величины от которых зави- сит начальные и конечные значения параметра цикла;
∙переходить в тело цикла с помощью оператора перехода goto в обход заголовка запрещено. Заго- ловок управляет значением параметра цикла, если использовать оператор goto, то параметр цик- ла остается без текущего значения.
∙после завершения выполнения цикла, параметр цикла считается величиной неопределенной. По- этому запрещается использовать переменные – параметры цикла после завершения его работы без дополнительного определения значения.
Общие правила построения цикла.
Если проанализировать программы, содержащие операторы цикла, то можно выделить три основ- ных момента, из которых складывается выполнение цикла
1.Подготовительные действия. Они состоят в том, что всем величинам, участвующим в цикличе- ских вычислениях приписывают начальные значения;
-16 -
2.Определяется условие завершения цикла (или продолжение цикла в зависимости от формы ис- пользуемого оператора).
3.Четко сформулировать действия, которые должны выполняться в цикле.
Образцы решения задач Пример 2. Рассчитать сумму первых 50 слагаемых в последовательности заданной формулой
50 |
|
|
1 |
|
S = å |
|
|
, при L = 0,53 |
|
i |
2 |
+ L |
||
i =1 |
|
|
Решение. Расчет суммы следует производить по следующей схеме:
∙Следует ввести значение числа слагаемых суммы n;
∙Выбрать для расчета соответствующий оператор цикла (Поскольку число слагаемых заранее известно, можно воспользоваться оператором цикла с параметром);
∙Определить условия продолжения (или завершения) действия оператора цикла. В нашем примере это будет условие достижения параметром цикла своего конечного значения, опре- деляемого числом слагаемых в сумме;
∙Занулить начальное значение суммы;
∙Сформировать тело цикла для расчета суммы, в котором будет осуществляться вычисление слагаемых и добавление их к сумме;
∙Вывести результат на экран.
Блок схема для решения задачи выглядит следующим образом:
При реализации этой схемы на алгоритмическом языке Паскаль учтем следующие обстоятельства:
∙ Во-первых, все переменные должны быть описаны. Поэтому в разделе описаний переменных введем переменные i – в качестве параметра цикла, n – в качестве числа слагаемых суммы, цело- го типа, и переменную S – для расчета накапливаемой суммы, вещественного типа. Параметр L опишем как константу в разделе описания констант. Заметим, что пользователь программы будет вводить только значение числа слагаемых.
∙Во-вторых, в силу особенностей оператора цикла с параметром, следует учесть, что действия
и
предусмотренные схемой, выполняются автоматически при формировании оператора цикла с пара- метром, и нет необходимости их отдельно прописывать программным образом.
- 17 -