ФЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования «САНКТ-ПЕТЕРБУРГСКИЙ
ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ им. проф. М. А. БОНЧ-БРУЕВИЧА»
____________________________________________________________
Л. Н. Бережной
ИНФОРМАТИКА
УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ
(для гуманитарных специальностей 031600 и 032000)
СПбГУТ)))
САНКТ-ПЕТЕРБУРГ
2013
УДК 004(077) ББК 32.81я73 Б 48
Рецензент Кандидат физико-математических наук заведующий кафедры
прикладной информатики Санкт-Петербургского ИВЭСЭП (института внешнеэкономических связей, экономики и права)
А. Н. Протопопов
Утверждено редакционно-издательским советом СПбГУТ в качестве учебного пособия
Бережной, Л. Н.
Б 48 Информатика : учебно-методическое пособие (для гуманитарных специальностей 031600 и 032000) / Л. Н. Бережной ; СПбГУТ. – СПб., 2013. – 24 с.
Раскрыты основные положения дисциплины «Информатика» по таким темам как «Алгоритм», «Схема алгоритма», «Постановка задачи», «Элементы программирования», «Вычислительный эксперимент» на примерах методов численного интегрирования.
Предназначено для студентов гуманитарных специальностей «Реклама и связи с общественностью» (бакалавры) 031600.62 и «Зарубежное регионоведение» (бакалавры) 032000.62. Возможно использование при изучении тем «Численное интегрирование», «Вычислительный практикум» для любых специальностей.
УДК 004(077) ББК 32.81я73
©Бережной Л. Н., 2013
©Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования «Санкт-Петербургский государственный университет телекоммуникаций им. проф. М. А. Бонч-Бруевича», 2013
2
ПРЕДИСЛОВИЕ
Дисциплина «Информатика» является интегративной, поскольку вобрала в себя практически все науки: от лингвистики до математики, от биологии до атомной физики, от арифметики до философии. Однако, достаточно большая часть студентов различных специальностей и направлений плохо себе представляет связь информатики с другими дисциплинами, а особенно с математикой (максимум – вспоминают двоичную систему счисления).
Кроме того, в университетах существует проверка «остаточных знаний» по министерским тестам по различным дисциплинам, в частности по «Информатике», куда входят такие темы как «Алгоритм», «Блок-схема», «Программа (приводятся в тестах фрагменты программ)», «Вычисление по блок-схеме», «Системы счисления», «Измерение информации (конкретные примеры на согласование (перевод) одних единиц измерения информации в другие)» и прочие. Причем перечисленные темы присутствуют в тестах для гуманитарных специальностей и направлений.
Для гуманитарных специальностей читаются такие дисциплины как «Математический анализ», «Теория вероятностей и математическая статистика», которые, мягко говоря, не очень легко усваиваются студентами. Однако в усвоении отдельных тем по высшей математике могут помочь практические и лабораторные занятия по информатике. Так, например, представление об определенном интеграле исторически и «технологически» приводит к очень простым расчетным алгоритмам (простым для восприятия обучаемого) вычислительной математики, которые с легкостью реализуются на любом языке программирования или используются в программных математических системах (wxMaxima, MathCAD, MATLAB или сайтах, например http://www.wolframalpha.com/).
Несмотря на «автоматику в математике» и наличие «всезнающего Интернета» надо иметь четкие и ясные представления, благодаря которым можно достаточно быстро и эффективно ориентироваться в окружающем быстро меняющемся мире.
В предлагаемой маленькой брошюре предлагается возможность быстро и по возможности качественно и количественно (на предметном уровне) освоить набор терминов, понятий, подходов и методов, присущих дисциплинам: «Информатика» и «Математика», а также «Вычислительная техника», «Моделирование», «Социология», «Психология».
3
1.КРАТКИЕ СВЕДЕНИЯ
ОНАЧАЛЬНОМ ЯЗЫКЕ ПРОГРАММИРОВАНИЯ
Перечислим (напомним) минимум операторов языка QBASIC, позволяющих реализовать любой вычислительный алгоритм:
1. «REM» – «ремарка», «замечание».
После оператора «REM» может идти любой набор символов.
Пример:
REM Ф.И.О. разработчика; дата; название задачи. {РЕМАРКА Ф.И.О. разработчика; дата; название задачи}.
Текст, следующий после оператора «REM», никак не влияет на расчетный алгоритм.
2. «INPUT» – оператор ввода данных с клавиатуры.
Пример:
INPUT А, В, С {ВВОД с клавиатуры конкретных значений А, В, С}.
3. «PRINT» – операторвыводаданныхнаэкран(печатьзначенийданных).
Пример:
PRINT А, В, С {ПЕЧАТЬ значений А, В, С}.
4. «=» – оператор ПРИСВАИВАНИЯ переменной конкретного значения простого или сложного выражения. Часто (в практике) интуитивно воспринимается как арифметический знак «равно». Во многих языках программирования изображается как «:=» и читается «положить равным», а не «равно».
Пример:
S = A+B+C {присвоитьзначениесуммы3 чисел«A+B+C» переменнойS}.
5. IF <условие> THEN |
oп1 |
ELSE |
oп2 |
|
{(если)<условие>(то) |
оператор 1 (иначе) |
оператор 2}. |
||
Оператор условного перехода (или логический оператор; или оператор |
||||
«выбора»; или оператор «развилка»). |
|
|
||
Пример: |
|
|
|
|
IF Х>0 THEN Y=SQR(X) ELSE Y=Х^2 |
|
|
||
если Х>0 (то) Y=√x |
иначе Y= x2. |
|
||
Эта фраза реализует следующую математическую запись: |
||||
|
у= х, |
если |
х> 0 |
|
|
|
или |
|
|
|
у= x2 , |
если |
х 0. |
|
4 |
|
|
|
|
6. Оператор цикла.
FOR X=Xmin TO Xmax STEP hx { заголовок цикла} (для) (до) (шаг)
……………………………
……………………………
операторы {тело цикла}
……………………………
……………………………
NEXT X – {последний оператор цикла}, (следующий)
где «X» – параметр цикла.
Замечание: в роли параметра цикла может выступать любой идентификатор.
Пример. Рассчитать таблицу значений заданной функции f(x) = x2+1 от
Xmin до Xmax с шагом hx.
Замечание: конкретные данные Xmin = –3; Xmax = +2; шаг hx = 1. Ручной просчет дает следующую табл. 1.
Таблица 1
|
|
|
|||
|
Х |
Y = Х2 +1 |
|||
Xmin |
–3 |
(–3)2 +1 = 10 |
|||
|
–2 |
(–2)2 |
+1 = 5 |
||
|
–1 |
(–1)2 |
+1 = 2 |
||
|
0 |
02 |
+1 |
= 1 |
|
|
1 |
12 |
+1 |
= 2 |
|
Xmax |
2 |
22 +1 |
= 5 |
Программа, реализующая «ручной» просчет таблицы значений функ-
ции f(x) = x2+1:
REM Иванов И.С. дд.мм.гг. |
{РЕМАРКА «Иванов И.С. дд.мм.гг »} |
INPUT Xmin, Xmax, hx |
{ВВОД значений Xmin, Xmax, hx с клавтатуры} |
FOR X=Xmin TO Xmax STEP hx |
{ЦИКЛ по Х (заголовок), начало цикла } |
У=X^2+1 |
{ПРИСВОИТЬ «У» значение x2+1} |
PRINT “Х=”; Х; “У=”; У |
{ПЕЧАТЬ на экране значений Х= ; У= } |
NEXT X |
{СЛЕДЮЩИЙ «заход на продолжение |
|
цикла по Х», признак записи конца цикла} |
PRINT “Конец задачи” |
{ПЕЧАТЬ на экране фразы: «Конец задачи»} |
PRINT “До свидания!” |
{ПЕЧАТЬ на экране фразы: «До свидания!»} |
END |
{КОНЕЦ текста программы} |
5
7. DEF FN<имя_функции> (х) = … .
Оператор описания пользовательской функции, то есть функции, которую может задать сам автор алгоритма.
Пример. Описать функцию: Y=X^2+1
РЕШЕНИЕ:
DEF FNZ(Х) = X^2+1
Обращение к пользовательской функции:
Y = FNZ (Х), или Р = FNZ (2), или R = FNZ (–3).
8. DIM – оператор описания размерности массива. Пример. Описать в виде массивов:
- арифметическую прогрессию а1, а2, а3, а4, а5;
-геометрическую прогрессию в1, в2, в3, в4, в5, в6, в7, в8, в9;
-таблицы игры в морской бой «Т1» и «Т2»;
-матрицу М, имеющую «L» строк и «К» столбцов.
Таблица Т1
|
А |
Б |
В |
Г |
Д |
Е |
Ж |
З |
И |
К |
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
|
|
|
|
7 |
|
|
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
|
|
|
|
|
9 |
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица Т2 |
|||
А |
Б |
В |
Г |
Д |
Е |
Ж |
З |
И |
К |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
|
|
|
7 |
|
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
|
|
|
|
9 |
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
|
РЕШЕНИЕ:
Задания
DIM A(5), {пять элементов арифметической прогрессии} B(9), {девять элементов геометрической прогрессии}
Т1(10,10), {описание табл. Т1 или, другими словами, массива Т1} Т2(10,10), {описание табл. Т2 или, другими словами, массива Т2} M(L,K). {описание матрицы «М» имеющей «L» строк «К» столбцов}
6
Обращение к элементам массива:
|
Таблица 2 |
|
|
Присвоить значения переменным |
Обращение к элементам массива |
с индексом |
в QBASIC |
а3 |
А(3) |
в7 |
В(7) |
Из табл. Т1: КА,1 |
Т1(1,1) |
Из табл. Т2: КГ,5 |
Т2(5,4) |
Из матрицы М: М13,2 |
М(13,2) |
Замечание. При обращении к элементам массива индексы записываются в круглых скобках, причем сначала указывается номер строки, а затем номер столбца на перекрестье которых находится элемент.
9. Таблица минимального количества стандартных (встроенных) функций в языке QBASIC:
sin x |
SIN (X) |
cos x |
COS (X) |
tg x |
TAN (X) |
arctg x |
ATN (X) |
|x| |
ABS (X) |
ex |
EXP (X) |
√x |
SQR (X) |
ln x |
LOG (X) |
Замечание. Аргумент в стандартных (встроенных) функциях заключается всегда в скобках (круглых); в противном случае (без скобок) транслятор не будет воспринимать эту запись как функцию, а воспримет (скорее всего) как идентификатор.
2. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ. МЕТОД ПРЯМОУГОЛЬНИКОВ
Рассмотрим в качестве примера практическую работу: «Численное интегрирование методом левых прямоугольников».
1. Формулировка задачи.
Найти определенный интеграл методом левых прямоугольников
7
ba f (x)dx
при заданном количестве разбиений интервала интегрирования [a, b] на «n» равных частей.
Найти
ba f (x)dx
по аналитической формуле Ньютона–Лейбница
b
f (x)dx P(x) ba P(b) P(a),
a
где Р(x) – первообразная.
Сравнить полученные результаты.
2.Постановка задачи (т. е. четкое определение исходных данных и результатов решения)
Дано:
-подынтегральная функция f(x),
-нижний предел интегрирования «a»;
-верхний предел интегрирования «b»;
-количество делений интервала интегрирования [a, b] – «n». Найти:
-значение интеграла по методу левых прямоугольников;
-аналитическое значение интеграла.
3.Описание метода левых прямоугольников.
а) построим в декартовой системе координат график подынтегральной функции у = f(x).
8
Рис. 1
б) отложим на оси ОХ точки х=а и х=b (см. рис. 1).
в) восставим из этих точек перпендикуляры к оси ОХ до пересечения с графиком у = f(x): получим точки (•) Мa и (•) Мb (см. рис. 1).
г) разделим отрезок ab на «n» равных частей (пусть n=4). Восставим из точек деления перпендикуляры к оси ОХ до пересечения с графиком по-
дынтегральной функции у = f(x): получим точки пересечения (•) М1, |
(•) |
М2, (•) М3 [см. рис. 1]. |
|
д) далее проведем следующие построения: |
|
-из первой «левой» точки пересечения перпендикуляра с графиком
подынтегральной функции (•) Ма проводим прямую, параллельную оси ОХ, до пересечения с первым справа перпендикуляром – получаем (•) K1. Таким образом, будет построен прямоугольник S1 (штриховка ) (рис. 2);
-из следующей точки (•) М1, проведем аналогичное построение; получим точку K2 и прямоугольник S2 (штриховка );
-аналогично получим:
точку K3, прямоугольник S3;
точку K4, прямоугольник S4.
е) исходя из чертежа (рис. 2), получим: площадь, заключенная между осью абсцисс ОХ, подынтегральной кривой у = f(x) и двумя перпендикулярами (аMa и bMb) приблизительно равна площади ступенчатой фигуры, состоящей (в данном случае) из площадей 4 прямоугольников S1, S2, S3 и S4. Формальная запись этого факта (см. рис.2):
b |
f (x)dx S1+ S 2+ S3+ S 4. |
a |
|
9
Рис. 2
ж) как известно еще из начальной школы, площадь прямоугольника равна произведению его сторон.
Следовательно, если будем знать основания и высоты каждого из прямоугольников, то задача нахождения приближенного значения интеграла сведется к тривиальной (т. е. чрезвычайно простой) задаче суммирования «n» чисел, соответствующих площадям этих элементарных геометрических фигур.
Основания (h) прямоугольников равны по построению. Следовательно, их можно рассчитать по формуле:
h b n a ;
при n=4 (в частном случае):
h b 4 a .
Высотам элементарных прямоугольников будут соответствовать ординаты соответствующих точек на подынтегральной кривой (в частном случае):
у1=f(x)=f(a) – для прямоугольника S1 x=a;
у2=f(x)=f(a+h) – для прямоугольника S2 x=a+h;
у3=f(x)=f(a+2h) – для прямоугольника S3 x=a+2h;
у4=f(x)=f(a+3h) – для прямоугольника S4
10
x=a+3h.
Тогда площади прямоугольников:
S1=Y1 · h; S2=Y2 · h; S3=Y3 · h; S4=Y4 · h.
Резюме:
Таким образом, задача численного интегрирования сводится:
-к разбиению площади подынтегральной кривой (функции у=f(x)) на элементарные геометрические фигуры;
-к суммированию площадей этих элементарных фигур.
Замечание:
-в методе прямоугольников элементарной фигурой является прямоугольник;
-в методе трапеций – трапеция;
-в методе парабол (метод Симпсона) – криволинейная трапеция (т. е. трапеция, верхним основанием которой является парабола).
4. Алгоритм вычисления интеграла методом левых прямоугольников. Опишем для частного случая блок-схему при n=4:
11
Замечание:
-алгоритм, реализующий частный случай (n=4) расчета интеграла, от-
носится к классу линейных алгоритмов;
-алгоритм не является «красивым» решением, однако работоспособ-
ным;
-чтобы заставить студента думать над более «красивым» решением, сразу предлагаем решить эту же частную задачу при n=10 000 (вручную). Что вы при этом будете делать?
Возможные реальные пути:
-рассчитывать вручную (что нецелесообразно по времени);
-автоматизировать вычисление (составить соответствующую программу).
5. Эскиз программы на языке QBASIC (реализующий алгоритм, описанный блок-схемой).
Пусть подынтегральная функция: f (x)= x2 +1, a=1; b=2; n=4.
Программа № 1:
REM Метод левых прямоугольников. Иванов И. И. дд.мм.гг. INPUT “a=”;a
INPUT “b=”;b INPUT “n=”;n DEF FNY(x)=x^2+1 h=(b–a)/n Y1=FNY(a)
Y2= FNY(a+h) Y3= FNY(a+2h) Y4= FNY(a+3h) S1=Y1*h S2=Y2*h S3=Y3*h S4=Y4*h
SS=S1+S2+S3+S4 |
|
PRINT “SS=”; SS |
можно было задать |
PRINT “при а=”; а; “b=”; b; “n=”; n |
вывод результата одним |
оператором PRINT |
|
END |
|
12
Замечание:
-алгоритмипрограммарешаютзадачу«влоб», т. е. некрасиво, новерно;
-алгоритм полностью отражает геометрическую сущность метода.
6. Алгоритм и программа вычисления интеграла На основе аналитической формулы Ньютона–Лейбница
b |
|
f (x)dx = P(b) P(a) : |
|
a |
|
для подынтегральной функции
f (x) = x2 +1
найдем первообразную:
P(x) = f (x)dx = x3 + x+C .
3
Замечание: C=0.
Блок-схема алгоритма:
Программа 2:
REM Точное (числовое) значение интеграла. Иванов И. И. дд.мм.гг. REM Интеграл по первообразной
INPUT “a=”;a INPUT “b=”;b
DEF FNP(x)=(x^3)/3+x Тzi =FNP(b)–FNP(a)
13
PRINT “Точное значение интеграла Тzi =”; Тzi
PRINT “При а=”; а; “b=”; b END
7. Анализ рассчитанных значений интеграла на ПК
Анализ значений SS=. . . . ., Tzi=. . . . ., |SS – Tzi|=. . . . . показывает методическую неточность метода левых прямоугольников.
Как повысить точность метода? Ответ понятен из рис. 2: с увеличе-
нием числа «n», площадь ступенчатой фигуры все точнее будет приближаться к истинному значению интеграла.
Математическая формулировка: предел суммы площадей элементарных прямоугольников (Si) при стремлении числа делений интервала интегрирования «n» к бесконечности равен точному значению искомого интеграла:
n |
b |
lim Si = f (x)dx. |
|
i=1 |
a |
Программа № 3:
REM Приближенное значение интеграла при любом «n» REM Иванов И. И. дд.мм.гг.
INPUT “n=”;n DEF FNY(x)=x^2+1 h=(b–a)/n
FOR x=a TO b STEP h Y=FNY(x)
Si=h*Y SS=SS+Si
NEXT x
PRINT “Приближенное значение интеграла SS=”; SS
PRINT “при a=”; a; “b=”; b; “n=”; n
PRINT “Конец вычислений”;“До свидания!”
ЕND
3. ПЛАН ПОДГОТОВКИ И ПРОВЕДЕНИЯ ВЫЧИСЛИТЕЛЬНОГО ЭКСПЕРИМЕНТА
Вычислительный эксперимент проводится для следующего набора вариантов (m=18) при заданном «n»:
n=4; 10; 50; 100; 200; 300; 400; 500; 1 500; 2 000; 2 500; 3 000; 3 500; 4 000; 5 000; 10 000; 20 000; 50 000.
Результаты записываются в табл. 3:
14
Таблица 3
m |
n= |
SS= |
Ер |
1 |
4 |
– |
– |
2 |
10 |
– |
Ep=|SS2–SS1| |
– |
– |
– |
– |
– |
– |
– |
Ep=|SSm–SSm–1| |
– |
– |
– |
– |
17 |
20 000 |
– |
– |
18 |
50 000 |
– |
Ep=|SS18–SS17| |
Замечание: m – номер варианта; Е – заданная точность; Ep – реальная точность
По результатам вычислительного эксперимента делаются выводы. Цель вычислительного эксперимента:
опровергнуть или подтвердить предельное равенство:
n |
b |
lim Si = f (x)dx |
|
i=1 |
a |
выявить реальную вычислительную погрешность метода: Eр=|SS–Tzi| при изменении «n», где Tzi – точное аналитическое значе-
ние интеграла.
8. Любой из численных методов интегрирования можно модифицировать в метод численного интегрирования с автоматическим выбором шага.
Суть модификации:
1.Пусть n=4
2.По методу левых прямоугольников рассчитываем значение интегра-
ла (SS).
3.Запоминаем это значение (SS) интеграла в переменной SSm
[SSm=SS].
4.«Обнуляем» переменную SS [SS=0].
5.Находим модуль разности предыдущего значения интеграла (SS0) и последующего (SS): Ep=| SSm–SS |.
6.Сравниваем Ер реальное с Е заданным:
а) если Ер меньше или равно, чем Е заданное, то печатаем результат и заканчиваем процесс; б) если Ер больше Е заданного, то переходим к п. 7.
15