Практическая работа. Информационные ресурсы общества. Образовательные информационные ресурсы. Работа с программным обеспечением
Скачать 5.79 Mb.
|
|
Номер п/п | Автор | Наименование | Издательство, год издания |
ОИ1 | И. И. Сергеева | Информатика Режим доступа: http: //znanium. com/ bookread2.php?id=517652 | НИЦ ИНФРА-М, 2016 |
ОИ2 | М. С. Цветкова | Информатика. [Текст]: Учебное пособие для студ. учреждений среднего профессионального образования | М.: Академия, 2017 |
Дополнительные источники (ДИ):
Таблица 2в
№ п/п | Автор | Наименование | Издательство, год издания |
ДИ 1 | В. Д. Колдаев | Сборник задач и упражнений по информатике Режим доступа: http: //znanium .com/ bookread2 .php?id=504814 | ИНФРА-М, 2015 |
ДИ 2 | Е. А. Колмыкова | Информатика. [Текст]: Учебное пособие для студ. учреждений среднего профессионального образования | М.: Академия, 2014 |
ДИ 3 | Н. Г. Плотникова | Информатика и информационнокоммуникационные технологии (ИКТ) Режим доступа: http: //znanium .com/ bookread2.php?id=433676 | ИНФРА-М, 2014 |
ДИ4 | Р. Ю Царев | Программные и аппаратные средства информатики Режим доступа: http://znanium.com/ bookread2.php?id=550017 | Краснояр.: СФУ, 2015 |
Практическая работа №11
Тема: Разработка и программирование задач с циклической алгоритмической структурой.
Цель работы: Изучить операторы цикла языка PASCAL.
Студент должен знать:
-I- алгоритмическую структуру циклов;
-1- базовые понятия языка программирования Pascal;
-1- форматы операторов цикла.
уметь:
-1- запускать среду программирования Pascal;
-1- набирать и компилировать программу;
-I- разрабатывать программу для решения задачи с алгоритмической
структурой цикл;
-1- запускать программу на выполнение;
-1- анализировать полученный результат.
Теоретическое обоснование.
Алгоритмы циклической структуры
Применительно к алгоритмическому языку циклом можно назвать повторение последовательности действий. При этом данные повторяющиеся действия составляют так называемое тело цикла. Условие прекращения повторений называется условием конца цикла.
С точки зрения программирования, цикл - повторяющиеся фрагменты программ. В языке Pascal имеются три различных оператора, служащих для программирования циклов: цикл с параметром For...to...Do, цикл с предусловия прекращения повторений While...Do и цикл с постусловия прекращения повторений Repeat... Until.
Оператор цикла с параметром
Блок-схема, соответствующая циклу с параметром, представлена на рис. 1.
Здесь i - параметр цикла; i0 - начальное значение параметра; iT- конечное значение параметра; is- шаг приращения параметра (в случае языка Pascal +1 либо -1). Циклическая ветвь блок-схемы выполняется для всех i, начиная с i0 и кончая iT с шагом is (т.е. для io , io+is, io+2is, io+3is, ... ). Как только i выйдет за пределы
Рисунок 1 Блок-схема цикла с параметром
Оператор цикла с параметром на языке Pascal имеет следующий формат:
For i:=io to h do <оператор>
Здесь For, to, do - зарезервированные слова («для», «до», «выполнить»); i (параметр цикла) - переменная типа INTEGER (точнее, в общем случае, любого порядкового типа);
i0 (начальное значение) и iT (конечное значение параметра) - константы или выражения того же типа;
<оператор> - произвольный оператор языка Pascal (тело цикла). В качестве оператора может выступать расширенный оператор с операторными скобками begin... end.
Шаг приращения параметра при этом постоянен и равняется +1.
При выполнении оператора For вначале вычисляется выражение i0 и выполняется присваивание i: =i0. После этого циклически повторяется:
- проверка условия i<= iT; если условие не выполнено, то оператор For прекращает свою работу;
-выполнение тела цикла <оператор>;
-наращивание переменной цикла на единицу.
Если условие не выполняется в самом начале работы оператора For, то исполняемый оператор не будет выполнен ни разу.
Существует и другая форма записи оператора For, при которой шаг приращения параметра принимает значение -1. В этом случае оператор For будет иметь следующий вид:
For i:=i0 downto iT do <оператор>
Пример. Вычислить функцию f=x+e x при х=0, 1, 2, ..., 10 и распечатать полученные значения в табличном виде.
Возможный текст программы:
program calcjf, var Г real, x: integer, begin
for x:=Q to 10 do
begin
f:=x+exp(-x), writeln(‘x=’,x,1 f=’, 0, end
end.
Цикл с предусловия
Оператор цикла с предусловием While.Do схематично представлен в виде блок- схемы на рисунке 2 и имеет следующий формат:
While <условие> Do <оператор>
Здесь While, Do - зарезервированные слова («Пока [выполняется условие]», «делать»);
<условие> - выражение логического типа;
<оператор> - произвольный оператор, составляющий тело цикла (включая случай расширенного оператора).
Если условие имеет значение “Истинно” (True), то выполняется <оператор>, после чего проверка условия повторяется. Если условие имеет значение “Ложь” (False), то оператор While прекращает свою работу.
Рисунок 2 Блок-схема цикла с предусловием
Данный оператор может быть использован в тех случаях, когда заранее не известно предстоящее число повторений.
Пример. Дан бесконечный ряд вида
„ . 1 1 1 1
S =1+-+-+-+-+
2 3 4 5
Найти сумму данного бесконечного ряда с заданной точностью e=0.01, т.е. продолжать процесс суммирования до тех пор, пока модуль разности между суммами для к-то и (к+1)-то шага не станет меньше е program Summa, var k: integer, s, ss, eps: real; begin eps —0.01;
s:=l, {значение суммы на 1 шаге цикла}
ss:=0, {начальное значение вспомогательной переменной для хранения промежуточных сумм} к:=1, {номер шага цикла} while abs(s-ss)>^eps do begin
ss — s, {сохранение значения суммы на текущем шаге цикла}
1с:=к+1, {переход к следующему шагу цикла} s:=s+l/k, {вычисление суммы на следующем шаге)
end;
writeln(‘Сумма ряда с заданной точностью^,s), end.
Цикл с постусловия
Оператор цикла с постусловия имеет следующий формат:
Repeat <тело цикла> Until <условие>
Здесь Repeat, Until - зарезервированные слова («Повторять», «пока не [выполнится условие]»);
<тело цикла> - произвольная последовательность операторов;
<условие> - выражение логического типа.
Операторы тела цикла всегда выполняются хотя бы один раз, после чего вычисляется значение <условие>: если его значение ложно (FALSE), операторы тела цикла повторяются, в противном случае оператор Repeat завершает свою работу. Блок-схема данного оператора представлена на рисунке 3.
Рисунок 3 Блок-схема цикла с постусловия
Методические указания к выполнению работы Пример 1. Вычислить функцию y
полученные значения в табличном виде.
Листинг программы:
program pr11_11_1;
var y:real; x:integer;
begin
for x:=0 to 10 do
begin
y: =arctan(sqrt(x));
writeln('x=',x,' y=',y);
end;
end.
Пример 2 Вывести на экран значение функции
ОХ -С
Л*) =
Ь'х - а
■а:
, если аргумент х меняется -1 до 0,5
с шагом h=0,15. Значения a, b, c вводятся с
клавиатуры (a=2, b=-1, c=1). Построить блок - схему.
program pr11_11_2;
var a,b,c,f,x:real;
begin
write ('a='); read (a);
write ('b='); read (b);
write ('c='); read (c);
f:=0;
x:=-1;
while x<=0.5 do
begin
f:=a* sqr(x)/(b*x+a)+a;
x:=x+0.15;
writeln('x=', x , ' f=', f );
end;
end.
При решении стандартной задачи на нахождение суммы ряда прежде всего требуется выявить закономерность построения ряда, т.е. зависимость вида слагаемого от его порядкового номера.
Например, в случае суммы ряда вида
cos(x)+cos(2x)+cos(3x)+... +cos(7x)
общий вид слагаемого с номером k будет иметь вид cos(k*x), где k изменяется от 1 до 7.
Накопление суммы при этом должно проводиться по шагам, на каждом шаге цикла к имеющемуся уже значению суммы должно прибавляться очередное слагаемое (в самый первый момент предполагается, что значение суммы равно 0).
Фрагмент программы нахождения указанной выше суммы ряда с помощью оператора FOR может иметь, например следующий вид:
s:=0;
for k:=1 to 7 do s:=s+cos(k*x);
writeln(‘сумма =’, s);
end.
С помощью оператора While:
s:=0;
k:=1;
while k<=7 do begin
s:=s+cos(k*x);
k:=k+1;
end;
writeln(‘cyMMa =’, s); end.
С помощью оператора Repeat:
s:=0;
k:=1;
repeat
s:=s+cos(k*x); k:=k+1; until k>7;
writeln(‘сyмма =’, s); end.
„ cosx cos2x cos3x
S= + + + .