Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика учебно-методическое пособие (для гуманитарных специальностей 031600, 032000)..pdf
Скачиваний:
1
Добавлен:
15.11.2022
Размер:
562.37 Кб
Скачать

ФЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования «САНКТ-ПЕТЕРБУРГСКИЙ

ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ им. проф. М. А. БОНЧ-БРУЕВИЧА»

____________________________________________________________

Л. Н. Бережной

ИНФОРМАТИКА

УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ

(для гуманитарных специальностей 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=(ba)/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=(ba)/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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]