Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 1.docx
Скачиваний:
8
Добавлен:
30.04.2019
Размер:
22 Мб
Скачать
☆

Тема 1.2 Базовые конструкции алгоритмов. Создание и решение задач с применением линейной структуры алгоритмов. Теоретическая часть:

Линейный алгоритм-это, алгоритм в котором все операции выполняются последовательно друг за другом.

Операторы, используемые при составление программ, линейной структуры алгоритма.

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

Readln (x1[,x2,x3,...]) - сначала идет имя процедуры Readln, затем имена переменных, которым будут присвоены значения. Их может быть несколько либо одно. Но необходимо помнить, что Readln после ввода каждой переменной требует переход на новую строку, иначе часть введенной строки отбрасывается.

Замечание: иногда Readln используют для организации ожидания до нажатия клавиши Enter. Это требуется, когда перед завершением программы необходимо просмотреть результаты ее работы. Наверх

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

Writeln (['Текст пояснения ',]x1[,x2,x3,...]) - сначала идет имя процедуры Writeln, затем текст, имена переменных, арифметические выражения. Их может быть несколько либо одно имя.

Но необходимо помнить, что Writeln переводит курсор на новую строку в отличии от Write.

Арифметические выражения вычисляются, а затем выводятся.

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

Writeln(real2:5:2); Здесь переменная real2 выводится на экран ограниченная по ширине в 5 символов, а также с 2 знаками после запятой.

Оператор присваивания

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

<Имя переменной>:=<Выражение>;

Выражение, указанное справа от знака ":=", должно приводить к значению того же типа, какого и сама переменная, или типа, совместимого с переменной относительно команды присваивания. Например, переменной типа Real можно присвоить значение типа Integer или Word (впрочем, наоборот делать нельзя). Выражение будет сначала вычислено, затем, его результат будет положен в ячейки памяти, отведенные для переменной.

Практическаячасть:

Вычислить Y=a+b

ВычислитьY=2x+3b-4c

ВычислитьY=cos(a)

Индивидуальные задания:

ВычислитьX=

ВычислитьY=7d(4c+2a)

Задачи:

  1. Написать программу вычисления площади параллелограмма

  1. Написать программу вычисления площади поверхности параллелепипеда

  1. Написать программу вычисления суммы доходов по вкладам

Создание и решение задач разветвляющейся структуры алгоритма.

Теоретическая часть:

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

Операторы языка Pascal для организации ветвления: составной, выбираемый (оператор условного перехода, оператор варианта)

Основные служебные слова, используемые при составлении разветвляющихся алгоритмов на языке Pascal: program, var, begin, end, if, then, else.

Составной оператор (оператор, начинающийся ключевым словом begin и заканчивающийся оператором, который выполняется в порядке их следования).

Begin

I: =2; k: =i/5; j: =i+k;

End;

Слова begin и endиграют роль операторных скобок. Тело самой программы также имеет вид составного оператора. Оператор перехода имеет следующий вид: Goto метка, где метка указывает на то, что дальнейшая работа должна проводиться в другой части программы, а именно с той строки, на которую указывается метка. Метки, используемые в операторе, должны быть предварительно описаны в разделе label.

Program Gy;

Label7;

Var

A, b: real;

Begin

…

B: =5

Goto7;

…

7: a: =b*3;

…

End.

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

Выбираемый оператор (предназначен для выделения из множества операторов одного)

  1. Оператор условного перехода

  2. Оператор варианта

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

Ifусловиеthenоператор1elseоператор 2;

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

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

If условие then оператор;

В этом случае, если условие истинно, то выполняется оператор, если условие ложь, то управление передаётся следующему оператору программы.

…if a=0 then

B: =h/a

B: =x*a…

В этом примере, если условие, а=0 не выполняется, то управление передаётся оператору b:=x*a.

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

Имеет следующий вид:

Caseпереключательofelseоператор 2:

Константа 1, …, Константа N оператор 1,

Константа 2, …, Константа N оператор 2,

Else

Оператор N

End.

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

Ветвь else в операторе может отсутствовать.

Case i of

1, 2: x=0;

3: x: =x*x

100: x: =sin (x);

Else

X: =cos (x);

End.

В этом примере если селектор i принимает значение 3, то выполняется оператор x:=x*x.

Практическая часть:

ВычислитьY=a/b

ВычислитьY= (sqrt(x+3))/(x)

ВычислитьY=a*x*x+b*x+c

Индивидуальные задания:

ВычислитьY=

ВычислитьY=

ВычислитьY=((sqr

ВычислитьY=

ВычислитьY=

Создание и решение задач циклической структуры алгоритма.

Теоретическая часть:

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

Операторы языка Pascal для организации цикла: цикл пока, составной оператор, цикл Do, оператор с параметром.

Основные служебные слова, используемые при составлении разветвляющихся алгоритмов на языке Pascal: program, var, begin, end, for, to, do.

В языке Паскаль существует 3 вида циклов:

1) цикл с параметром или цикл типа for,

2) цикл с предусловием или цикл типа while,

3) цикл с постусловием или цикл типа repeat ... until.

В цикле типа for число повторений известно заранее, в циклах типа while и repeat ... until число повторений цикла заранее неизвестно, производится проверка условия повторения цикла: в цикле типа while - перед циклом, в цикле типа repeat ... until - после его окончания. В циклах типов for и while повторяющяся часть (тело цикла) состоит из одного оператора, если требуется выполнить в цикле несколько операторов, они заключаются в операторные скобки begin ... end, образуя составной оператор. В цикле типа repeat ... until тело цикла помещается между зарезервированными словами языка (лексемами) repeat и until, операторные скобки не требуются, в названии цикла его тело условно обозначается тремя точками. С помощью цикла типа for удобно находить суммы, произведения, искать максимальные и минимальные значения и т.п. При нахождении суммы некоторой переменной, например S присваивается значение 0, затем в цикле к этой переменной прибавляется соответствующий член заданной последовательности. При нахождении произведения переменной присваивается значение 1, затем в цикле эта переменная умножается на общий член последовательности.

Цикл пока. Реализуется с помощью оператора while (с предусловием). Общий вид:

While условие Do оператор;

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

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

…x: =5;

While x<>0 Do

Begin

C: = (c+1)/x;

X: =x+1;

End;…

Цикл Do. Реализуется с помощью оператора Repeat. Общий вид:

Repeat оператор 1; оператор 2; …; until условие;

Здесь условие это логическое выражение, определяющее условия окончания цикла.

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

...x: =0;

Repeat

C: =c+1/x;

I: =x-1’

Untilx=0;…

Операторы цикла с параметром. Этот оператор предусматривает повторное выполнение операторов тела цикла с одновременным изменением по правилу арифметической прогрессии значения, присваиваемого параметру цикла. Общий вид:

For параметр; начальное значение to

конечное значение Do оператор;

Параметр цикла должен быть любого целочисленного типа. Начальное и конечное значения параметра цикла могут задаваться выражениями, которые должны иметь тот же тип, что и параметр. Начальное и конечное значения вычисляются только один раз перед началом цикла. Параметр цикла можно изменить. Шаг изменения параметра в этом цикле = 1.

Общий вид цикла по убиваемому значению:

For параметр; начальное значение

Downto конечное значение do оператор;

Шаг изменения параметра в таком цикле равен 1.

Практическая часть:

Вычислить

Вычислить

Индивидуальные задания:

Вычислить

Вычислить

Вычислить

Вычислить

Вычислить

Вычислить

Задачи:

  1. Написать программ, которая выводит таблицу квадрата первых десяти положительных чисел (от 1 до 10).

  1. Написать программу, которая вычисляет сумму первых n членов ряда 1…3…5…7.

  1. Написать программу, которая выводит таблицу степени тройки.

  2. Н аписать программу, которая выводит таблицу значения функции у=2,4х2+5х-3 в диапазоне от -2 до 2 с шагом 0,5.

  1. Написать программу, которая вычисляет сумму и среднее арифметическое положительных чисел, которые вводятся с клавиатуры.