ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01...

48
Министерство образования Республики Беларусь УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ «ГРОДНЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМЕНИ ЯНКИ КУПАЛЫ» ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ (для студентов специальности 1-31 03 01-02 “Математика”) Часть 1 Гродно 2012

Upload: others

Post on 13-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

Министерство образования Республики Беларусь УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ «ГРОДНЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИМЕНИ ЯНКИ КУПАЛЫ»

ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ

(для студентов специальности 1-31 03 01-02 “Математика”)

Часть 1

Гродно 2012

Page 2: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

2

УДК ББК

Рецензенты:

Рекомендовано советом факультета математики и информатики ГрГУ им. Я.Купалы.

Макарова, Н.П., Ревчук, И.Н.

Задания к вычислительной практике (для студентов специальности 1-31 03 01-02 «Ма-тематика»). Часть 1. – Гродно: ГрГУ, 2012. – 50 с.

ISBN

В пособии содержатся индивидуальные задания по вычислительной практике для студентов 1-го курса специальности 1-31 03 01-02 «Математика». Приводятся условия и решения типовых задач, оформленные в соответствии с требованиями к заданиям вычисли-тельной практики.

УДК ББК

ISBN

ГрГУ им. Я.Купалы, 2012

Page 3: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

3

ВВЕДЕНИЕ

Уважаемые студенты! Вы держите в руках учебно-методическое пособие, которое по-может Вам успешно справиться с выполнением заданий вычислительной практики на 1-м кур-се.

Пособие соответствует «Типовой учебной программе для высших учебных заведений по направлению специальности 1-31 03 01-02 Математика (научно-педагогическая деятельность)» по курсу «Методы программирования и информатика» (составители: Расолько Г.А., Кремень Ю.А., Мн.: 2008). При этом занятия по вычислительной практике предназначены для закрепле-ния лекционного материала по курсу «Методы программирования и информатика», формиро-вания умений составлять эффективные алгоритмы и программы.

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

Отчет защищается перед руководителем практики путем демонстрации работающих про-грамм на компьютере, при условии получения правильных ответов на поставленные вопросы об используемых методах решения задач, используемых переменных, конструкциях языка про-граммирования и т.д. Для принятия решения о зачете руководитель практики руководствуется рейтинговой системой с учетом выделенных в ней критериев оценки, как в ходе всего периода прохождения практики, так и на завершающем ее этапе.

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

Авторы будут признательны Вам, уважаемый Читатель, за критические замечания и предложения по совершенствованию данного пособия.

Page 4: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

4

1. ЗАДАЧИ НА ПОЛНЫЙ ПЕРЕБОР (АРИФМЕТИЧЕСКИЕ РЕБУСЫ)

Цель: овладеть алгоритмами перебора на примере задачи расшифровки арифметических ребусов, методами организации циклических алгоритмов и программ.

Сущность задания заключается в следующем. В некотором арифметическом примере цифры заменили буквами, причем одинаковые цифры – одинаковыми буквами. В результате этого получился ребус. Требуется расшифровать этот ребус, то есть выполнить обратную заме-ну букв цифрами.

Примеры решения задач:

Пример 1. Расшифровать ребус ШЛАК

+ ШЛАК

ШЛАК

БЛОК

Решение: Математическая постановка задачи.

Требуется: расшифровать числовой пример (заменить буквы цифрами).

Связь: ШЛАК⋅3=БЛОК. При: Ш, Л, А, К, Б, О – различные цифры.

Метод: Из условия следует, что 1000<ШЛАК<9999, 1000<БЛОК<9999, значит, допусти-мо условие:1 ≤ Ш ≤ 3. Так как в ШЛАК и БЛОК справа записана одна и та же буква, то К равно 0 или 5. Алгоритм решения задачи может быть таким:

1) сформировать число ШЛАК, где Ш, Л, А, К – различные цифры; 2) вычислить число БЛОК = ШЛАК*3, где БЛОК < 9999; 3) выбрать числа, которые соответствуют условию задачи. Проверку значений переменных Ш, Л, А, К, Б, О на несовпадение можно организовать

разными способами: после задания числа ШЛАК и выделения в нем отдельных цифр, после за-дания значений всех цифр, или сразу после задания значения очередной цифры. Наиболее эф-фективным является последний алгоритм, так как время его реализации значительно уменьша-ется. При этом действия целесообразно выполнять поразрядно справа налево, проверяя цифры результата. Например, зададим переменной А некоторое значение; найдем произведение Р1=А*3+РR с учетом переноса из предыдущего разряда; найдем О как остаток от деления Р1 на 10; проверим, что О не равно А и К и т.д.

Ниже приведена запись алгоритма расшифровки ребуса на псевдокоде. Блок-схема ал-

горитма представлена на рисунке 1.

Алгоритм _1 (цел ШЛАК, БЛОК) Надо ШЛАК, БЛОК Начало цел Ш, Л, А, К, Б, О, PR, Р1, Р2, Р3, Р4, Л1 К:=0 Повторять PR:=[K*3/10] Нц для А от 0 до 9 Если А≠К

То Р1:=А*3+PR; Р2:=[P1/10]; О:=остаток(Р1/10)

Page 5: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

5

Если О≠А и О≠К То Нц для Л от 0 до 9 Если Л≠О и Л≠А и Л≠К То P3:=Л*3+Р2; Р4:=[P3/10]; Л1:=остаток(Р3/10) Если Л1=Л

То Нц для Ш от 1 до 3 Если Ш≠Л и Ш≠А и Ш≠О и Ш≠К То Б:=Ш*3+Р4

Если Б<10 и Б≠Л и Б≠А и Б≠О и Б≠К

Рисунок 1

Page 6: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

6

То ШЛАК:=Ш*1000+Л*100+А*10+К БЛОК:=Б*1000+Л*100+О*10+К вывод (ШЛАК, БЛОК) Все Все Кц Все Все Кц Все Все Кц К:=К+5 Кц до К>5 Конец

Листинг соответствующей программы на языке программирования Паскаль представлен ниже. При этом предполагается, что будет осуществляться вывод расшифрованных ребусов по 4 примера в строке. Для организации такого вывода в программе используется переменная FLAG.

PROGRAM _1;

CONST D=10;

TYPE CIPFER=0..9;

VAR A,P2,P4,PR,O,L,L1,S,FLAG: CIPFER;

K,P1,P3,B,SLAK,BLOK: INTEGER;

BEGIN

K:=0; FLAG:=0;

REPEAT

PR:=K*3 DIV D;

FOR A:=0 TO 9 DO

IF A<>K THEN

BEGIN

P1:=A*3+PR; P2:=P1 DIV D; O:=P1 MOD D;

IF(O<>A) AND (O<>K) THEN

FOR L:=0 TO 9 DO

IF (L<>O) AND (L<>A) AND (L<>K) THEN

BEGIN

P3:=L*3+P2; P4:=P3 DIV D; L1:=P3 MOD D;

IF L1=L THEN

FOR S:=1 TO 3 DO

IF (S<>L) AND (S<>A) AND (S<>O) AND (S< >K) THEN

BEGIN

Page 7: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

7

B:=S*3+P4;

IF(B<D)AND(B<>L)AND(B<>A)AND(B<>O)AND (B<>K) THEN

BEGIN SLAK:=S*1000+L*100+A*D+K;

BLOK:=B*1000+L*100+O*D+K;

WRITE (SLAK:5,'*3=',BLOK:5,' ');

INC(FLAG);

IF FLAG>3 THEN

BEGIN WRITELN; FLAG:=0

END;

END

END

END

END;

K:=K+5

UNTIL K>5

END.

Результаты выполнения программы приведены на рисунке 2.

Рисунок 2

Анализ результата

Сравнивая в каждом примере значения цифр в множимом и произведении, заметим, что цифры сотен, а также цифры единиц (значения переменной Л и переменной К) совпадают. Ос-тальные цифры – несовпадающие. Сами числовые примеры являются правильными. Таким об-разом, задача решена правильно.

Пример 2. Расшифровать ребус НОТЫ.РЕДО =⋅

Решение: Математическая постановка задачи.

Требуется: расшифровать числовой пример (заменить буквы цифрами) Связь: ДО*РЕ=НОТЫ При: Д, О, Р, Е, Н, Т, Ы – различные цифры. Метод: Из условия следует, что 12≤ДО≤98, 12≤РЕ≤98, НОТЫ>1000. Нижнюю границу диапазона изменения переменной РЕ можно сузить, получив ее как ре-

зультат округления частного от деления числа 1001 на ДО. В этом случае условие НОТЫ>1000 будет выполнено автоматически.

Будем перебирать значения переменных ДО и РЕ в указанных диапазонах, выделять пе-ременные Д, О, Р, Е, проверять, чтобы они были несовпадающими. Затем найдем значение НО-ТЫ, равное произведению ДО*РЕ и проверим на несовпадение переменные Н, О, Т, Ы.

Алгоритм решения задачи представлен в графическом виде на рисунке 3. Ниже приво-дится листинг соответствующей программы на языке программирования Паскаль.

Page 8: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

8

Рисунок 3

PROGRAM _2;

VAR DO_,RE,NOTY,D,O,R,E,N,O1,T,Y,NOT_,NO: INTEGER ; FLAG: BYTE;

BEGIN

FLAG:=0;

FOR DO_:=12 TO 98 DO

BEGIN

D:=DO_ DIV 10; O:=DO_ MOD 10;

IF O<>D THEN

FOR RE:=ROUND(1001/DO_) TO 98 DO

BEGIN

Page 9: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

9

E:=RE MOD 10; R:=RE DIV 10;

IF (E<>R)AND(E<>O)AND(E<>D)AND(R<>O)AND(R<> D) THEN

BEGIN

NOTY:=DO_*RE; Y:=NOTY MOD 10;

IF (Y<>D)AND(Y<>O)AND(Y<>R)AND(Y<>E) THEN

BEGIN

NOT_:=NOTY DIV 10; T:=NOT_ MOD 10;

IF (T<>Y)AND(T<>D)AND(T<>O)AND(T<>R)AND (T<>E) THEN

BEGIN

NO:=NOT_ DIV 10; O1:=NO MOD 10;

IF O1=O THEN

BEGIN

N:=NO DIV 10;

IF (N<>T)AND(N<>Y)AND(N<>D)AND(N<>O )AND

(N<>R)AND(N<>E) THEN

BEGIN

WRITE(DO_,'*',RE,'=',NOTY,' ' );INC(FLAG)

END;

IF FLAG>3 THEN BEGIN WRITELN; FL AG:=0 END;

END

END

END

END

END

END;

END.

Результаты выполнения программы представлены на рисунке 4.

Рисунок 4

Анализ результата

Сравнивая в каждом примере значения цифр в множимом и произведении, заметим, что цифры единиц и соответственно цифры сотен (значение переменной О) совпадают. Остальные цифры – несовпадающие. Сами числовые примеры являются правильными. Таким образом, за-дача решена верно.

Индивидуальные задания: Расшифровать ребус, полученный в результате замены одинаковых букв одинаковыми

цифрами. Найти также такие значения цифр, при которых сумма цифр в результате окажется наибольшей.

1. БЛОК 2 ДНИ 3. ГОРОД 4. СТЕНА 5. ВАНЯ 6. ДОМА

Page 10: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

10

БЛОК БЛОК + БЛОК БЛОК БЛОК БЛОК СТЕНА

ДНИ ДНИ + ДНИ ДНИ ДНИ ДНИ ГОДЫ

ГОРОД + ГОРОД ГОРОД ГОРОД ГОРОД СТРАНА (Д=А)

СТЕНА + СТЕНА СТЕНА СТЕНА СТЕНА ЗДАНИЕ

ВАНЯ + ВАНЯ ВАНЯ ВАНЯ ИВАНЫ

ДОМА + ДОМА ДОМА ДОМА УЛИЦЫ

7. ОГОНЬ + ОГОНЬ ОГОНЬ ОГОНЬ ПОЖАР

8. ГОД + ГОД ГОД ГОД ВЕК

9. ДОМА + ДОМА ДОМА ДОМА РАЙОН

10. ЗЕРНО + ЗЕРНО ЗЕРНО ЗЕРНО КОЛОС

11. ОКНО ОКНО + ОКНО ОКНО ДОМА

12. ДУБ ДУБ + ДУБ ДУБ РОЩА

13. Д0ЖДЬ + ДОЖДЬ ДОЖДЬ ОСЕНЬ

14. РЕШИ + ЕСЛИ СИЛЕН

15. ДА х МА ЯЯЯ

16. ФАСАД АСАД + САД АД СУДОК

17.ДОКЛАД ОКЛАД + КЛАД ЛАД АД ДДДДДД

18. БИТ БИТ БИТ + БИT БИТ БИТ БИТ БИТ БАЙТ

19. УЛИЦЫ УЛИЦЫ + УЛИЦЫ УЛИЦЫ ГОРОД

20. ЧАС * 24 = ДЗЕНЬ 21. ЛОБ + ТРИ = САМ 22. ДО * РЕ + МИ = НОТЫ 23. ДЕНЬ * 8 = МЕСЯЦ 24. ТРУД * 12 = УСПЕХ

25. ДОСКИ * 4 = ЗАБОР 26. ГОРАД * 20 = КРАIНА 27. КОРОВА + ТРАВА = МОЛОКО 28. МЕСЯЦ + МЕСЯЦ = НОЧЧУ

29. Найти такие числа, которые зашифрованы в виде слов (одинаковые буквы соответ-ствуют одинаковым цифрам): 1) ТВАР, ВАР, АР, если известно, что сумма этих чисел является палиндромом (то есть читается одинаково слева направо и справа налево); 2) KУ, КА, РЕ, если известно, что они выражают длины сторон некоторого прямоугольного треугольника; 3) ДНО, ДОМ, ДЫМ, которые выражают длины сторон некоторого прямоугольного треугольника.

30. Найти все варианты расшифровки ребуса:

1) ...LKTALKTALKTA,0DID

EVE = (здесь 0 – цифра «ноль»); 2) КУ

РЕ

КА

КУ = .

Page 11: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

11

2. МЕТОД МОНТЕ-КАРЛО

Цель: овладеть методом статистических испытаний и навыками его использования при решении задач, закрепить умения работы с операторами языка программирования.

Примеры решения задач:

Рисунок 5

Пример 3. Вычислить значение числа π. Решение. В квадрат со стороной, равной 2 единицы, впишем единичную окружность (окружность единичного радиуса), см. рисунок 5. В область квадрата будем «бросать» случайным об-разом n точек с координатами (x, y): -1 ≤ x ≤ 1, -1 ≤ y ≤ 1. Под-считаем количество точек k, попавших в круг x2 + y2 ≤ 1. Так как площадь квадрата равна 4, а площадь круга π, то получим:

n

k⋅≈ 4π . Очевидно, что результат будет тем точнее, чем

больше значение n.

Алгоритм вычисления значения числа π в графическом виде изображен на рисунке 6. Ниже приведен листинг программы решения данной задачи.

PROGRAM _3; VAR N,K,I: LONGINT;

X,Y,P: REAL; BEGIN RANDOMIZE; WRITE('N='); READLN(N); K:=0; FOR I:=1 TO N DO BEGIN X:=2*RANDOM-1; Y:=2*RANDOM-1; IF X*X+Y*Y<=1 THEN INC(K); END; P:=4*K/N; WRITELN('PI=',P:0:10) END.

Анализ результатов

Результаты выполнения программы при различных значени-ях n приведены в таблице 1 (при повторном запуске программы ре-зультаты могут быть другими). Как видно, полученные значения

переменной Р близки к истинному значению числа π. Таблица 1

n P n P

100 3.0800000000 100000 3.1410200000

500 3.1520000000 1000000 3.1409440000

10000 3.1404000000 10000000 3.1413732000

Рисунок 6 Рисунок 6

Рисунок 6

Page 12: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

12

Пример 4. Ученику поручено купить на данную сумму, истратив деньги полностью, как можно больше линеек и карандашей: простых и цветных. Известно, что линейка стоит А р., а каранда-ши – цветной и простой соответственно В р. и С р.

Решение: Дано: S – заданная денежная сумма (р.), A – стоимость линейки (р.),

B – стоимость цветного карандаша (р.), C – стоимость простого карандаша (р.). Требуется: x – количество линеек, y – количество цветных карандашей, z – количество простых карандашей.

Связь:

→++=++

.max

,

zyx

SCzByAx (1)

Метод: Решим задачу двумя способами: точным (путем перебора возможных значений

переменных x, y, z: 0 ≤ x ≤ [S/A], 0 ≤ y ≤ [(S-Ax)/B], C

ByAxSz

−−= – целое число) и приближен-

ным с помощью метода Монте-Карло, где будем случайным образом формировать значения пе-ременных x, y, z и проверять требуемые условия (1). Повторяющиеся вычисления в обоих спо-собах решения задачи удобно оформить в виде процедуры.

Рисунок 7

Page 13: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

13

Алгоритм решения задач представлен в графическом виде на рисунке 7. Ниже приведен лис-тинг соответствующей программы на языке программирования.

PROGRAM _4;

VAR N,A,B,C,S,X,Y,Z,B1,C1,SUM,MAX,XM,YM,ZM,I: INT EGER;

T: REAL;

PROCEDURE VICH;

BEGIN

C1:=B1-B*Y; T:=C1/C;

IF T=INT(T) THEN

BEGIN

Z:=TRUNC(T);SUM:=X+Y+Z;

IF SUM>MAX THEN

BEGIN MAX:=SUM; XM:=X; YM:=Y; ZM:=Z END

END

END;

BEGIN

WRITE('S='); READLN(S); WRITE('A='); READLN(A);

WRITE('B='); READLN(B); WRITE('C='); READLN(C);

MAX:=0; { ТОЧНОЕ РЕШЕНИЕ:}

FOR X:=0 TO S DIV A DO

BEGIN

B1:=S-A*X;

FOR Y:=0 TO B1 DIV B DO VICH;

END;

WRITELN(' ТОЧНОЕ РЕШЕНИЕ:'); WRITELN(XM,',',YM,',',ZM);

WRITE('N='); READLN(N);

RANDOMIZE; { ПРИБЛИЖЕННОЕ РЕШЕНИЕ:}

MAX:=0;

FOR I:=1 TO N DO

BEGIN

X:=RANDOM(S DIV A+1); B1:=S-A*X; Y:=RANDOM(B1 D IV B+1);

VICH;

END;

WRITELN(' ПРИБЛИЖЕННОЕ РЕШЕНИЕ:'); WRITELN(XM,',',YM,',',ZM)

END.

Анализ результатов

Результаты выполнения программы приведены в таблице 2 (приближенное решение мо-жет быть другим).

Page 14: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

14

Таблица 2

S A B C Точное решение Приближенное решение

mx my mz n mx my mz

10000 2000 3000 1000 0 0 10 10 2 0 6

50 0 0 10

100000 2500 4000 150 1 0 650 100 7 0 550

10000 1 0 650

Как видно, с увеличением числа статистических испытаний n результат решения задачи по методу Монте-Карло становится более точным.

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

В приведенных ниже задачах требуется получить решение точным и приближенным ме-тодами (Монте-Карло).

1. В швейном цехе имеется Р м ткани. На пошив одного платья требуется 5 м ткани, а на одну куртку – 3 м. Осуществить выбор такого плана производства, который позволит полу-чить наибольшую прибыль от реализации продукции, если известно, что из имеющегося мате-риала можно выкроить не более А платьев и не более B курток (платье стоит С руб., а куртка – К руб.)

2. В нижеследующих задачах определить такие варианты покупок, чтобы деньги были истрачены полностью, а количество предметов было наибольшим:

1) Ученику поручено купить на данную сумму как можно больше общих тетрадей и ша-риковых ручек. Известно, что общая тетрадь стоит А р., а ручка В р.

2) Требуется на данную сумму купить почтовые марки стоимостью Х р., Y р. и Z р. 3) К новогоднему утреннику требуется купить на сумму S руб. елочные игрушки. В ма-

газине имеются наборы из игрушек по N1, N2, N3 штук в каждом наборе, стоимостью соответ-ственно А руб., В руб. и С руб.

4) Требуется купить на заданную сумму фрукты, если на рынке установлены следующие цены: один арбуз – А руб., одно яблоко – В р., один персик – Р р.

3. В магазине имеется мастика в ящиках по А1 кг, А2 кг и А3 кг. Некоторой организации требуется получить М кг мастики. Определить, можно ли это сделать, не вскрывая ящики.

4. На складе находятся станки четырех типов массой соответственно М1 кг, М2 кг, М3 кг и М4 кг. Требуется увести часть из них на машине грузоподъемностью Р тонн, загрузив ее максимально, но не перегрузив. Определить, какие станки, и в каком количестве нужно помес-тить в машину.

5. Мощность цеха сборки некоторого предприятия составляет М1 изделий вида А или М2 изделий вида Б в сутки. ОТК в сутки может проверить не более К изделий. Составить план выпуска продукции, обеспечивающий ее максимальную стоимость, если стоимость изделия А равна Р1, стоимость изделия Б – Р2.

6. В вагон, грузоподъемность которого известна, необходимо погрузить ящики трех ти-пов. Осуществить выбор варианта загрузки вагона, обеспечивающего размещение не более М

ящиков с общей максимальной стоимостью груза, если стоимость и вес ящиков каждого типа

Page 15: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

15

известны. 7. На определенном участке ленты транспортера длиной L (м) требуется плотно уло-

жить коробки, размеры которых вдоль ленты различны: d1, d2, d3 см. Требуется выбрать вари-ант укладки, обеспечивающий размещение наибольшего количества коробок.

8. В следующих задачах требуется определить план выпуска продукции, обеспечиваю-щий наибольшую суммарную прибыль:

а) Цех выпускает два вида продукции: I и П. Для производства единицы продукции вида I требуется А1 деталей типа А и А2 деталей типа В, а вида II – А3 детали типа А и A4 детали ти-на С. На складе имеется соответственно Р, М и N деталей типа А, В и С. Прибыль от реализации единицы продукции I и П равна соответственно P1 руб. и P2 руб.

б) Процесс изготовления изделий двух видов А и В некоторым заводом требует последо-вательной обработки на токарных и фрезерных станках: в количестве А1 и А2 станко-часов (для изделия А) и В1 и В2 станко-часов (для изделия В). Имеющееся оборудование позволяет полу-чить М и N станко-часов соответственно для токарных и фрезерных станков. Прибыль от реали-зации единицы изделия А и В составляет предприятию соответственно P1 и P2 денежных еди-ниц.

в) В одном цехе производится женская обувь двух моделей. На изготовление одной пары обуви каждой модели требуется соответственно клей (в граммах) в количестве L1 и L2 и кожа (в дм) – K1 и K2. Прибыль от реализации одной пары обуви каждой модели составляет P1 руб. и P2 руб. Запасы клея - L граммов, кожи – K дм2 .

г) Некоторый завод налаживает выпуск двух различных изделий, требующих обработки на машинах А и В, причем возможности использования этих машин в течение дня ограничены: они составляют для машин A – А часов, В – В часов. Технология изготовления изделия первого вида требует часа обработки на машине А и такого же времени обработки на машине В, а изде-лия второго вида – соответственно получаса и часа. Прибыль от реализации единицы изделия первого вида составляет P1 руб., второго вида – Р2 руб.

д) На предприятии организуется побочный цех для использования отходов производства. Цех может освоить выпуск продукции двух видов: столы и книжные шкафы. На производство одного стола и одного шкафа затрачивается соответственно рабочего времени – С1 человеко-часов и С2 человеко-часов, древесины – D1 м3 и D2 м3, а на производство одного шкафа, кроме того – 2 м стекла. Ресурсы основных материалов в месяц составляют: С человеко-часов рабоче-го времени, V м3 древесины и S м2 стекла. Прибыль от реализации стола составляет P1 руб., шкафа – P2 руб.

9. В пункты А и В прибыло по 15 вагонов одного в того же продукта. Эти вагоны тре-буется доставить в пункты потребления С и D: в С – десять вагонов, D – двадцать. Транспорти-ровка одного вагона в пункты С и D стоит соответственно из пункта А: М и N денежных еди-ниц, из В – Р и R единиц. Составить план транспортировки, минимальный по стоимости.

10. Ежегодно в город поставляется одним видом транспорта P т картофеля из колхозов «Тарново», «Макаровцы», «Прогресс» соответственно по цене за одну тонну С1 руб., С2 руб. и С3 руб. Для обеспечения своевременной доставки картофеля в город погрузка всего картофеля должна занять не более М минут. Известно, что погрузка одной тонны в колхозах «Тарново»,

Page 16: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

16

«Макаровцы» и «Прогресс» занимает соответственно время до M1, M2 и M3 минут. Производ-ственные мощности колхозов таковы: они могут ежедневно выделять для доставки в город со-ответственно не более А, В и С тонн. Требуется распределить заказы колхозам на поставки тре-буемого картофеля таким образом, чтобы общая стоимость доставки картофеля была мини-мальной.

11. На приобретение оборудования для нового производственного участка и его разме-щения на плошади, не превышающей S м2, выделена денежная сумма в N руб. Предприятие может заказать оборудование двух видов: машины А стоимостью Р1 р., требующие производ-ственной площади S1 м2 и обеспечивающие производительность R1 единиц продукции за сме-ну, и машины Б стоимостью P2 руб., занимающие площадь S2 м2 и дающие за смену R2 единиц продукции. Требуется рассчитать оптимальный вариант приобретения оборудования, обеспечи-вающий максимальную производительность участка.

12. Требуется отправить на экскурсию К человек. Можно использовать автобусы двух типов, вместимость которых известна. Определить, сколько потребуется автобусов каждого ти-па, если предполагается оставить свободными как можно меньше мест.

13. Требуется разлить М литров жидкости в бутыли емкостью P1 л, P2 л и P3 л таким образом, чтобы все использованные бутыли были полными, а их количество минимальным.

14. На велосипедном заводе выпускают дорожные и гоночные велосипеды. Требуется определить, сколько велосипедов обеих типов нужно выпускать на заводе в день для получения максимальной прибыли, если известно, что гоночный велосипед приносит прибыль G р., а до-рожный – D р. Производство организовано таким образом, что вместо одного гоночного завод может выпускать два дорожных велосипеда. Завод может произвести А дорожных велосипедов в день, склад же может принять не более В велосипедов в день.

15. В населенных пунктах А и В расположены кирпичные заводы, а в пунктах С и D – карьеры, снабжающие их песком. Известны потребности заводов в песке и производительность каждого карьера (потребности не больше производительностей). Требуется организовать снаб-жение заводов песком так, чтобы затраты были наименьшими, если известна стоимость пере-возки тонны песка из каждого карьера до заводов.

16. Из строительных деталей двух видов нужно собрать три типа домов сельского типа. Для сборки X-квартирного дома требуется A деталей первого и B деталей второго вида; для сборки Y-квартирного дома – C и D, а для Z-квартирного дома – E и F деталей первого и второ-го вида соответственно. Определить, какое количество домов каждого типа нужно собрать, что-бы общее количество квартир в них было наибольшим, если всего имеется Р деталей первого и Т деталей второго вида.

17. Требуется загрузить грузовик грузоподъемностью Р тонн (не перегрузив его) кон-тейнерами трех видов: по А, В и С кг. Требуется определить, какое количество контейнеров каждого вида нужно вместить в машину, чтобы их количество было наибольшим.

18. Требуется разменять данную сумму в S р., на купюры достоинством А, В и С р. та-ким образом, чтобы их количество составляло М купюр.

19. До предприятия доведен план производства по времени и номенклатуре: требуется за время Т выпустить соответственно N1 и N2 единиц продукции вида I и II. Каждый из видов

Page 17: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

17

продукции может производиться двумя машинами А и В с различными мощностями: в единицу времени машина А производит соответственно Р1 и Р2 единиц продукции I и II, машина В – по P3 и P4 единиц продукции I и П. Требуется составить оптимальный план работы машин, то есть определить длительность использования машин А и В для изготовления каждого из видов про-дукции. Оптимальный план должен обеспечить выполнение заданного плана производства и минимизировать стоимость всей продукции предприятия. Известно, что расходы на изготовле-ние единицы продукции вида I на машинах А и В составляют С1 и С2 денежных единиц, а вида П – С3 и С4 денежных единиц соответственно.

20. Вычислить значение интеграла:

а) ∫4

1

2

dxxex ; б) ∫4/7

3/

2cosπ

π

xdx; в) ∫+−

2

1

42

3 24dx

x

x.

21. Вычислить площадь фигуры, ограниченной линиями:

а) 12

1 2 −= xy и 33

1 += xy ; б) xxy cossin += и 3

3

1xy = ;

в) 62 −= xy и 2

2xy −= ; г) xy = и 32 −= xy .

3. ВЫЧИСЛЕНИЕ КОНЕЧНЫХ СУММ

Цель: овладеть алгоритмами вычисления конечных сумм и разработки соответствующих программ с учетом основных положений теории приближенных вычислений и элементов тех-нологии программирования.

Сущность задания заключается в следующем. Задана некоторая функция у=f(х) и неко-торый ряд. Требуется получить таблицу значений данной функции y и суммы (S) на заданном отрезке [a, b] (рис. 8).

Примеры решения задач:

Рисунок 8

Пример 5. Разработать алгоритм вычисления функ-ции y и суммы S для a=0,1; b=1. Шаг изменения значений аргумента x на заданном отрезке h=0,1; количество членов ряда n=20.

...!4

3cos

!3

2cos

!2

1cos1

32

+⋅−⋅+⋅−= xxxS ;

x

xey

x )1sin1cos(1cos 1cos +−=−

. (2)

Решение: Математическая постановка задачи.

Дано: a, b – границы отрезка, h – шаг изменения значений аргумента, n – число членов ряда.

Требуется: SUM – сумма членов ряда, y – значение функции. Связь: см. формулы (2).

Page 18: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

18

Метод: Вначале выведем «шапку» таблицы, далее будем вычислять значения функции и суммы в каждой точке отрезка (х=а, х=а+h, х=а+2h, …, х=b).

Так как формула общего члена заданного ряда содержит степенное выражение и факто-риал, целесообразно получить рекуррентное соотношение для вычисления очередного элемента ряда на основе предыдущего элемента. Это позволит более быстро и точно получить результат

решения задачи. В данном случае члены ряда можно получить по формуле: )!1(

cos)1(

+−=

n

nxa

nn

n

(n = 0, 1, 2, …). Обозначим )!1(

)1(+

−=k

xz

kk

k . Тогда !

)1(1

11 k

xz

kk

k

−−

− −= . Далее 11 +

−=− k

x

z

z

k

k . Если

использовать одну переменную z, то получим:

zk

xz

1+−= , (3)

где первоначально z=1, k=1. Таким образом, для вычисления суммы SUM будем считать перво-начально SUM=1 (это первый элемент ряда) и вычислять далее сумму по форму-

ле kzSUMSUM cos+= , где z вычисляется по формуле (3).

Графическая схема алгоритма вычисления функции и суммы (2) приводится на рисун-ке 9. Ниже приведен листинг соответствующей программы на языке программирования Пас-каль. На рисунке 10 приведены результаты выполнения программы.

PROGRAM _5;

CONST A=0.1; B=1; H=0.1; N=20;

VAR SUM,X,Y,Z,C,S: REAL; K :INTEGER;

BEGIN

X:=A; C:=COS(1); S:=SIN(1);

WRITELN('-----------------------------');

WRITELN('¦ x ¦ y ¦ S ¦');

WRITELN('-----------------------------');

WHILE X<=B+H/2 DO

BEGIN

Y:=(C-EXP(-X*C)*COS(1+X*S))/X;

SUM:=1; Z:=1;

FOR K:=1 TO N DO

BEGIN Z:=-Z*X/(K+1);

SUM:=SUM+Z*COS(K)

END;

WRITELN('¦',X:5:2,' ¦',Y:9:6,'

¦',SUM:9:6,' ¦');

X:=X+H

END;

WRITELN('------------------------------');

END.

Page 19: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

19

Рисунок 9

Анализ результата.

Известно, что функция x

xey

x )1sin1cos(1cos 1cos +−=−

рас-

кладывается в заданный в условии задачи ряд. Значит, от-веты должны быть примерно равными. Сравнивая значе-ния y и S при одних и тех же значениях x, заметим, что ре-зультаты совпадают. Таким образом, задача решена верно.

Рисунок 10

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

Таблица 3

№ п

/п

Запись функции и ряда Отрезок, шаг, кол-во членов ряда

1. n

nxSxxy

n )3/cos(...

1

)3/cos(,

3cos21ln

2

1 2 πππ ++=

+−−=

[0,1; 0,8] h=0,1; n=35

Page 20: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

20

2. )14/()1(...15/3/,2/

2

1 2121532

−−++−=−+= ++ nxxxSxarctgxx

y nn [0,1;1]

h=0,1; n=30

3. )!2/(...!2/1,

222 nxxS

eey n

xx

+++=+=−

[0,1;1]

h=0,1; n=10

4.

14

)2cos(...

3

2cos,sin

42

12 −

++=−=n

nxxSxy

π

[0,1;0,8] h=0,05; n=50

5. ,2xey =

!

)2(...

!1

21

n

xxS

n

+++= [0,1; 1]

h=0,1; n=20

6. ,1

242

2 x

exx

y

++=

nx

n

nxS

++++=2!

1...

221

2

[0,1; 1]

h=0,1; n=30

7.

12)1(...

3,

123

+−++−==

+

n

xxxSarctgxy

nn

[0,1;0,5] h=0,02; n=20

8. nn x

n

nxSx

xx

xy 2

22

2

)!2(

12)1(...

2

31,sin

2cos

21

+−++−=−

−=

[0,1;1] h=0,1; n=35

9. ( ))!2(

)2()1(...

24

)2(

2

)2(,1cos2

2422

n

xxxSxy

nn−+−+−=−=

[0,1;1] h=0,05; n=15

10. )!12/(...!3/1,

2123 ++++=−= +

nxxSee

y nxx

[0,1;1]

h=0,1; n=20

11.

n

xxxS

xxy

nn

242

2

)1()1(...

2

)1()1(,

22

1ln

+−+−+++−=++

= [-2;-0,1]

h=0,2; n=20

12.

14...

5,

2

1

1

1ln

4

1 145

++++=+

−+=

+

n

xxxSarctgx

x

xy

n

[0,1;0,8]

h=0,1; n=10

13. ( ) nx xn

nxSexy 222

!

12...31,21

++++=+= [0,1;0,8]

h=0,05; n=10

14. 123

1

1

12

1...

1

1

3

1

1

1,ln

2

1+

+−

+++

+−+

+−==

n

x

x

nx

x

x

xSxy

[0,2;1] h=0,1; n=10

15.

( )nxnnxxS

x

xxy )2(...83,

1

)3( 23

++++=−

−= [0,1;0,8]

h=0,05; n=20

16.

)12(2)1(...

42,1ln

21

422

−−++−=+−= +

nn

xxxSxxarctgxy

nn

[0,1;0,8] h=0,05; n=10

17. n

nx x

nxSy

!

3ln...

!1

3ln1,3 +++==

[0,1;1] h=0,05; n=10

18.

n

nxxxS

xy

cos...

2

2coscos,

2sin2ln +++=−=

[ ]/5;95/ ππ10/π=h ; n=20

19.

n

nxxxS

xy n sin

)1(...2

2sinsin,

21+−++−==

[ ]/5;95/ ππ20/π=h ; n=20

Page 21: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

21

20. ( ) nx xn

xSxey!

)4/cos(...

!1

)4/cos(1,)4/sin(cos)4/cos( ππππ +++==

[0,1;1] h=0,05; n=15

21.

4sin...

4

2sin

4sin,

4cos21

4sin

2

2

ππππ

πn

xxxSxx

xy n++++=

+−=

[0,1;0,8] h=0,05; n=20

22.

!

cos...

!1

cos1),cos(sincos

n

nxxSxey x +++==

[0,1;0,8] h=0,05; n=20

23. 22

22 cos

)1(...2

2coscos,

34

1

n

nxxxSxy n−+−+−=

−= π

[ ]2/ ;10/ ππ

20/π=h ; n=55

24. )4/(cos...)4/cos(,

)4/cos(21

)4/cos(2

2

πππ

πnxxS

x

xxy n++=

+−−=

[0,1;0,8] h=0,05; n=30

25.

( )2

2

12

)12cos(...cos,

48 −−++=⋅−=

n

xnxSx

πy

π

[ ]ππ ;5/

15/π=h ; n=30

26.

!...

!2!11,

2

n

xxxSey

nx ++++==

[1;2] h=0,04; n=12

27. nx

n

nxxSxchshx

x

xy

)!12(...

!5

4

!3,

1

4

1 22

++++=

−+= [0,2;0,8]

h=0,05; n=17

28. xxy 3cos= ,

)!2(

3)1(...

!6

3

!4

3

!2

3 122765432

n

xxxxxS

nnn +⋅⋅−++−+−= [0,1; 1]

h=0,1; n=20

29. )1ln( 2xy −= ,

n

xxxxS

n2642 ...

32−−−−−=

[-0,5; 0,7] h=0,1; n=25

30. ,

32

6

x

xy

−= 1

32

23

...4

272

93 −++++= n

nn xxxxS

[-0,5; 0,5] h=0,05; n=30

31. n

n

n

xxxSx

y )1(2

)1(...)1(

8

1)1(

4

1

2

1,

3

11

2 +⋅−+−+++⋅−=+

= + [-2; 0,5]

h=0,1; n=33

4. ВЫЧИСЛЕНИЯ С ТРЕБУЕМОЙ ТОЧНОСТЬЮ Цель: овладеть методами суммирования бесконечных сумм с заданной точностью, за-

крепить умения использования операторов цикла с предусловием и постусловием. Сущность задания заключается в следующем. Задана запись некоторой бесконечной

суммы .),(0

∑∞

==

kk

kxfS Требуется вычислить значение этой суммы и найти число слагаемых, ко-

торые вошли в сумму. При этом считать, что процесс вычислений нужно завершить, когда оче-

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

Порядок выполнения задания может быть следующим:

Page 22: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

22

1. Представить S в виде суммы соответствующих слагаемых и попробовать ответить на вопрос: можно ли вычислить очередное слагаемое (само слагаемое или его часть: числитель или знаменатель), используя предыдущее слагаемое. Если «да», то получить рекуррентное соотно-шение, которое позволит выполнить эти вычисления.

При этом полезно вернуться к заданию 3 (с. 15 данной книги).

2. Осуществить анализ входной информации, то есть определить, при каких значениях ε и х задача имеет смысл.

Рисунок 11

3. Разработать алгоритм решения задачи с учетом ре-зультатов, полученных в пунктах 1-2.

Примеры решения задач:

Пример 6. Вычислить ∑∞

= +−=

0 )!1(

cos)1(

n

nn

n

nxS с заданной точ-

ностью ε. Решение:

В лабораторной работе № 3 было показано, что

zk

xz

1+−= , где первоначально z=1, k=1. Так как

...!4

3cos

!3

2cos

!2

1cos1

32

+⋅−⋅+⋅−= xxxS , а первое слагаемое

равно 1, то очевидно, что если ε ≥ 1, то решение задачи те-ряет смысл (число слагаемых окажется равным нулю).

Математическая постановка задачи.

Дано: x – заданное значение аргумента, ε - точность результата.

Требуется: k – число слагаемых, S – значение суммы.

При: 0<ε <1. Метод: Пусть первоначально k=0.

Будем вычислять очередное слагаемое суммы. Если оно окажется больше ε, то значение k увеличим на 1.

Графическая схема алгоритма вычисления суммы приводится на рисунке 11. Ниже приведен текст программы решения задачи.

PROGRAM _6;

VAR S,X,EPS,Z,A: REAL; K:INTEGER;

BEGIN

REPEAT

WRITE('X='); READLN(X);

Page 23: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

23

WRITE('0<EPSILON<1 '); READLN(EPS)

UNTIL (EPS<1) AND (EPS>0);

K:=0; S:=0; A:=1; Z:=1;

WHILE ABS(A)>EPS DO

BEGIN S:=S+A; K:=K+1; Z:=-Z*X/(K+1);

A:=Z*COS(K)

END;

WRITELN('S=',S:0:6,', K=',K)

Рисунок 11 END.

Результаты выполнения программы приведены на рисунке 12.

1. 2. 3. Рисунок 12

Анализ результата

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

1; -0,2701512; -0,0693578; 0,0412497; -0,0054470; -0,0003940; 0,0001905; -0,0000187; 0,0000004.

Как видно, 9-е слагаемое оказалось меньше ε, поэтому его учитывать не следует. Таким образом, k=8, значение S, равное сумме восьми слагаемых, примерно равно 0,696072, что сов-падает с ответом, полученным с помощью нашей программы. Таким образом, можем предпо-ложить, что задача решена верно.

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

1. Вычислить сумму и найти число слагаемых, которые вошли в сумму (см. таблицу 4). Процесс вычислений требуется закончить, когда очередное слагаемое по модулю окажется

меньше ε (это слагаемое при вычислении суммы уже не учитывать). Таблица 4

Номер варианта

Сумма Номер варианта

Сумма Номер варианта

Сумма

1

2

3

4

5 6

7

8

9

Page 24: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

24

10

11

12

13

14

15

16

17 ∑

+−1

21 sin

)1(n

n

n

nx

18 ∑

=

+

+−

0

1

)!1(

)1(

n

nn

n

x

19 ∑

=++012)12(

1

nnxn

20

∑∞

=0 !n

n

n

x

21 ∑

=

−0

2

!

)1(

n

nn

n

x

22 ∑

=+

+

++−

01

1

)1)(1(

)1(

nn

n

xn

x

23 ∑

=

−0

2

)!2(

)1(

n

nn

n

x

24 ∑

=

+

+−−

0

1

)!1(

)1()1(

n

nn

n

x

2. Вычислить бесконечную сумму ряда с заданной точностью (считать, что требуемая точность достигнута, если очередное слагаемое по модулю станет меньше, чем заданная точ-

ность ε):

1) ...8642642422

1432

+⋅⋅⋅

−⋅⋅

+⋅

−+ xxxx ; 2) ...

5443321

432

+

⋅+

⋅+

⋅+ xxx

3. Задано действительное число ε. Найти первый элемент последовательности {an}, для

которого выполняется условие | an-an-1| < ε , если последовательность создается по следующему закону:

1) 2

1

2

1...

2

1

2

1

2

1...

2

1

2

1

2

1

2

1

2

1

2

1

2

1

2

1 +++⋅⋅++⋅+⋅=na ;

2)

++⋅⋅

+⋅

+=)!1(

11...

!3

11

!2

11

nan ; 3)

++⋅⋅

+⋅

+=1

11...

3

11

2

11

nan ;

; 5)

++⋅⋅

+⋅

+=1

1...3

21

2

11

n

nan ; 4)

6) ,...3,2,1,1

83,

211 =+++== + na

xaaxa

nnn ;

5. ПРИБЛИЖЕННОЕ РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ

Цель: овладеть методами приближенного решения нелинейных уравнений и навыками их использования при решении задач.

Сущность задания заключается в следующем. Для заданной функции y=f(x) методом та-

булирования локализовать корни уравнения f(x)=0 и найти с точностью до заданного значения ε приближенные значения корней (можно использовать следующие методы: метод половинного деления или дихотомии, метод Ньютона или касательных, метод хорд, метод секущих, метод простых итераций и т. д.).

121

)12...(

13

11

1

++−

++

=

nn

an

Page 25: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

25

Порядок выполнения задания может быть следующим. Первый этап. Отделение корней, то есть, поиск отрезков, на каждом из которых находит-

ся только один корень уравнения. Второй этап. Уточнение значения корня с требуемой точностью. Пусть заданная функция y=f(x) исследуется на отрезке [a; b]. Рассмотрим поведение

функции на концах каждого маленького отрезка [с; d], где сначала с=а, d=с+h (h – некоторый шаг, равный, например, 1 или 0.1); затем с=d, d=с+h.

В соответствии с одной из основных теорем математического анализа, на отрезке [c; d] находится один корень уравнения f(x)=0, если выполняется условие: f(c)*f(d)≤0.

Продемонстрируем основные принципы уточнения корня уравнения на примере приме-нения метода дихотомии.

Пусть корень уравнения обнаружен на отрезке [xn, xk]. Вычислим f(S), где .2

kn xxS

+=

Если f(xn)*f(S) ≤ 0, то корень нужно искать на отрезке [xn; S] (то есть xk =S), в противном случае – на отрезке [S; xk] (то есть xn=S).

Будем далее делить отрезок пополам до тех пор, пока f(S) не станет равным нулю или не

выполнится условие: |xk - xn| ≤ ε. Тогда будем считать значение 2

kn xx + корнем уравнения

f(x)=0. Введем переменную k в качестве признака обнаружения хотя бы одного корня уравне-ния f(x)=0.

Примеры решения задач:

Пример 7. Найти корни уравнения sin 2x - 0,5 = 0 на отрезке [a; b] с заданной точностью ε мето-дом дихотомии. Решение:

Алгоритм решения задачи представлен в графическом виде на рисунке 13. Ниже представлен листинг соответствующей программы на языке программирования Паскаль.

PROGRAM _7;

CONST H=0.1;

VAR A,B,E,C,D,XN,XK,S: REAL; K: INTEGER;

FUNCTION F(X: REAL): REAL;

BEGIN

F:=SIN(2*X)-0.5

END;

BEGIN

REPEAT

WRITE('a='); READLN(A); WRITE('b>a b='); READ LN(B);

WRITE('0<e<1 '); READLN(E)

UNTIL (A<B) AND (E>0) AND (E<1);

K:=0; C:=A;

Page 26: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

26

Рисунок 13

REPEAT

D:=C+H;

IF F(C)*F(D)<=0 THEN

BEGIN

XN:=C; XK:=D; K:=1;

WHILE ABS(XK-XN)>E DO

BEGIN S:=(XN+XK)/2;

IF F(XN)*F(S)<=0 THEN XK:=S ELSE XN:=S

END;

Page 27: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

27

WRITE((XK+XN)/2:10:6);

END;

C:=D

UNTIL C+H>B;

IF K=0 THEN WRITELN(' КОРНЕЙ НЕТ')

END.

Результаты выполнения программы при a= -3, b=3, e=0,0001 представлены на рисунке 14 слева. Результаты выполнения программы при a= 3.5, b=4, e=0.1 представлены на рисунке 14 справа.

Рисунок 14

Анализ результата На рисунках 15-16 представлены графики заданной функции на промежутках [-3;3] и

[3.5;4] соответственно (выполненные в табличном процессоре MS Excel). Сравнивая графики с полученными результатами, приходим к выводу о том, что программа решения данной задачи работает верно.

Рисунок 15 Рисунок 16

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

На заданном отрезке найти все корни уравнения f(x)=0 с точностью ε (таблица 5).

Таблица 5

№ варианта

f(x)=0

№ варианта

f(x)=0

№ варианта

f(x)=0

1 2

3

Page 28: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

28

4 5

6

7

8 9

10 11 12

13 14

15

16 17

18

19

20 21

22

23

24

25 26 27

28 013sin5 2 =−− xx 29 02,033

sin =−− xx 30 05,0logsin 5,0 =+− xxx

6. ОБРАБОТКА МАТРИЦ

Цель: овладеть алгоритмами обработки двумерных массивов, закре-пить навыки работы с массивами в языке программирования.

Примеры решения задач: Пример 8. Для заданной матрицы A(n, n), где n – нечетное число, требуется найти наибольший и наименьший элементы в заштрихованной ее части (рис. 17).

Решение: Математическая постановка задачи:

Дано: n – количество строк (столбцов) матрицы, A11, A12, …, Ann – элементы матрицы. Требуется: max – наибольший элемент матрицы, min – наименьший элемент матрицы в

заштрихованной области. При: n – нечетное число.

Метод: найдем значения искомых величин сначала в верхнем треугольнике, перебирая номер

строки i от 1 до k, где 12

+

= nk , а номер столбца j от k до k+1-i с шагом -1. В нижнем тре-

угольнике i нужно перебирать от k до n, j – от k+n-i до k с шагом -1. Непосредственное сравне-ние элементов Aij с переменными max и min оформим в виде вспомогательного алгоритма (про-

цедуры) Poisk .

Графическое изображение алгоритма представлено на рисунках 18а и 18б. Ниже приводится листинг программы на языке программирования Паскаль. Значение n (3≤n≤17) и значения эле-ментов матрицы (0 ≤ Aij ≤ 99) формируются случайным образом:

Рисунок 17

Page 29: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

29

Рисунок 18а

Рисунок 18б

PROGRAM _8;

VAR A: ARRAY[1..17,1..17] OF INTEGER;

N,I,J,K,MAX,MIN: INTEGER;

PROCEDURE POISK;

BEGIN

IF A[I,J]>MAX THEN MAX:=A[I,J]

ELSE IF A[I,J]<MIN THEN MIN:=A[I,J]

END;

BEGIN

RANDOMIZE;

REPEAT N:=RANDOM(15)+3

UNTIL N MOD 2=1;

WRITELN('N=',N);

FOR I:=1 TO N DO

BEGIN FOR J:=1 TO N DO

BEGIN A[I,J]:=RANDOM(100);

WRITE(A[I,J]:4) END;

WRITELN

END;

K:=TRUNC(N/2)+1; MAX:=A[1,K]; MIN:=MAX;

FOR I:=1 TO K DO FOR J:=K DOWNTO K+1- I DO

POISK;

FOR I:=K TO N DO FOR J:=K+N- I DOWNTO K DO

POISK;

WRITELN(MAX,',',MIN);

END.

Результаты выполнения программы представлены на рисунке 19.

Рисунок 18

Page 30: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

30

Рисунок 19

Анализ результата Просматривая матрицу в пределах выделенной в условии задачи области, находим наи-

больший и наименьший элементы, и замечаем, что они совпадают с результатами выполнения программы. Приходим к выводу о том, что программа решения данной задачи работает верно.

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

1. Найти наибольший и наименьший элементы в заштрихованной части матрицы:

а) б) в) г)

д) е) ж) з)

и) к) л) м)

н) о) п) р)

Page 31: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

31

2. В заданной прямоугольной матрице найти: а) наибольший и наименьший элементы и поменять местами строки, в которых они на-

ходятся; б) максимальный элемент в каждой строке и поменять местами строки, содержащие

наибольший и наименьший элементы среди найденных максимальных значений; в) наименьший элемент в каждой столбце и поменять местами столбцы, содержащие

максимальный и минимальный элементы среди найденных наименьших значений; г) наибольший по модулю элемент и удалить строку, в которой он находится; д) наименьший элемент и удалить столбец, в котором он находится; е) минимальный элемент и вставить единичную строку ниже строки, которая содержит

найденный элемент; ж) максимальный элемент и левее столбца, который содержит этот элемент, вставить

столбец, состоящий из чисел, равных найденному максимальному элементу; з) наименьший по модулю элемент и поменять местами соответствующие элементы пер-

вой строки и элементы, расположенные в строке, содержащей найденный элемент. 3. Из заданной прямоугольной матрицы получить матрицу путем поворота данной на:

а) 900 вправо; б) 900 влево; в) 1800 вправо. 4. На основе заданной прямоугольной матрицы получить вектор, компоненты которого

образуют разности значений наибольшего и наименьшего элементов каждой строки. 5. В каждом столбце заданной прямоугольной матрицы найти наименьший элемент и

получить вектор, компоненты которого – номера столбцов, содержащих эти элементы в поряд-ке их возрастания.

6. В заданной квадратной матрице найти максимальный элемент и заменить числом «ноль» все элементы, расположенные на диагоналях, которые проходят через этот элемент.

7. В заданной прямоугольной матрице поменять местами первый и последний столбцы, второй и предпоследний и т.д.

7. ЗАДАЧИ ЦЕЛОЧИСЛЕННОЙ АРИФМЕТИКИ Цель: овладеть методами организации циклических алгоритмов и программ, приемами

ускорения процесса поиска требуемых чисел. Примеры решения задач:

Пример 9. На заданном числовом промежутке найти все натуральные числа, которые одновре-менно являются кубическими и палиндромическими.

Решение:

Математическая постановка задачи

Дано: [а, b] – числовой промежуток. Требуется: Р – признак того, имеются ли на этом промежутке числа, которые являются

одновременно кубическими и палиндромическими, С – кубическое палиндромическое число,

Page 32: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

32

Связь: С=x3, где а ≤ С ≤ b, С – палиндром, x – некоторое натуральное число.

=.существует не число если,2

,существует число если,1

C

CP

При: а, b – натуральные числа (a<b). Метод:

1. Пусть 3 ax = , P=0. Если x не является целым числом, то примем x равным [x]+1.

2. Вычислим y=x3. Если y ≤ b, то проверим, является ли это число палиндромом. Если яв-ляется, то будем считать, что P=1, С=y.

3. Увеличим x на единицу и будем повторять пункт 2 до тех пор, пока не выполнится не-равенство y>b.

Запись алгоритма поиска искомого числа в графическом виде приведена на рисунках 20а и 20б. Ниже представлен листинг соответствующей программы на языке программирования Паскаль.

PROGRAM _9;

VAR A, B, Y, X: LONGINT; R,K: BYTE; XX: REAL;

{-----------------------------------------}

PROCEDURE PALINDROM(N: LONGINT; VAR P: BYTE);

VAR T: STRING; D, I: INTEGER;

BEGIN

P:=0; STR(N,T); D:=LENGTH(T); I:=1;

WHILE (I<=INT(D/2)) AND (P=0) DO

IF T[I]=T[D+1-I] THEN I:=I+1 ELSE P:=1

END;

{-----------------------------------------}

BEGIN

WRITELN;

REPEAT

WRITE(' ВВЕСТИ НАЧАЛО И КОНЕЦ ЗАДАННОГО ОТРЕЗКА: ');

READLN(A,B)

UNTIL (A<B) AND (A>0);

XX:=EXP(LN(A)/3); X:=TRUNC(XX);

IF X*X*X<A THEN X:=X+1; Y:=X*X*X; K:=0;

WHILE Y<=B DO

BEGIN PALINDROM(Y,R);

IF R=0 THEN

BEGIN WRITELN (Y,'=',X,'^3'); K:=1 END;

X:=X+1; Y:=X*X*X

END;

IF K=0 THEN WRITELN(' ТАКИХ ЧИСЕЛ НЕТ')

END.

Page 33: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

33

На рисунке 21 представлены результаты работы программы на отрезке [1; 1000]. Дейст-вительно, полученные числа являются кубическими и палиндромическими.

Результаты работы программы на отрезке [100; 200]:

ТАКИХ ЧИСЕЛ НЕТ

Делаем вывод о том, что программа работает верно

Рисунок 21

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

1. На заданном числовом промежутке требуется найти все натуральные числа, которые имеют два разных представления в виде суммы:

1) квадратов двух натуральных чисел (представления a2+b2 и b2+a2 считать одинаковы-ми);

2) кубов двух натуральных чисел (представления a3+b3 и b3+a3 считать одинаковыми). 2. На заданном числовом промежутке требуется найти все: 1) числа Армстронга, то есть числа, для каждого из которых сумма цифр, возведенная в

n-ю степень, равна самому числу, где n – количество цифр числа; 2) числа, сумма цифр каждого из которых равна заданному натуральному числу; 3) числа, в десятичной записи которых отсутствуют хотя бы две одинаковые цифры; 4) числа, для каждого из которых выполняется условие: кубический корень из числа ра-

вен сумме его цифр; 5) простые палиндромические числа; 6) квадратные1 числа с убывающими слева направо цифрами; 7) совершенные числа, то есть числа, равные сумме всех своих делителей (кроме самих

себя); 8) дружелюбные числа, то есть числа, для каждого из которых сумма собственных дели-

телей одного числа равна второму числу; 9) числа, сумма цифр каждого из которых равна корню n-й степени из этого числа, где n

– количество цифр числа, например, 2155123 ++= ;

10) числа, сумма цифр каждого из которых при возведении в некоторую степень дает это же самое число, например, 81=92, 4913=173;

11) 2n-значные числа XY , равные сумме своих n-значных частей: 22 YXXY += (задача Линдона). Например, 1233 = 122 + 332;

12) пары чисел, куб одного из которых равен квадрату другого (например, 16 и 64; дей-ствительно, 163 = 642);

1 Число x называется квадратным, если x=n2 (n∈ N), и палиндромическим или «перевертышем», если оно равно числу, записанному теми же цифрами, но в обратном порядке.

Page 34: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

34

Рисунок 20а

Рисунок 20б

13) пары чисел, произведение которых содержит цифры большего множителя, «раз-двинутые вклинившимися» нулями, например, 111*91=10101, 480*85=40800 (задача Рачин-ского);

14) числа, каждое из которых можно представить в виде суммы квадратов четырех натуральных чисел не единственным образом;

15) числа, каждое из которых можно представить в виде суммы кубов двух нерав-ных натуральных чисел;

16) числа, для которых при отнимании из каждого из них числа 9…9 (n-1 цифр, где n – количество цифр в искомом числе) дает па-линдромическое число;

17) квадратные палиндромические числа; 18) квадратные палиндромические числа с

нечетным количеством цифр, например, 121, 10201;

19) трехзначные числа, для каждого из которых три последние цифры квадрата дают са-мо число, например, 376, действительно, 3762 = 141376;

Page 35: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

35

20) примитивные пифагоровы тройки (Указание. Пифагорова тройка (x, y, z) называется примитивной, если x и y – взаимно простые числа, x – нечетное, y – четное число);

21) пары близнецов, то есть простых чисел, разность которых равна 2; 22) натуральные числа, которые не делятся ни какие простые числа, кроме 2, 3 и 5. 3. Для каждого натурального числа x из заданного числового промежутка [a; b] найти та-

кое натуральное y, что 2122 ppyx ⋅=− , где p1 и p2 – простые числа (y, p1, p2 не обязательно при-

надлежат заданному отрезку). Если искомых чисел y несколько, найти одно из них. Например,

при х=9 получим y=4, действительно 13549 22 ⋅=− . 4. На заданном числовом промежутке найти наименьшее квадратное палиндромическое

число с четным количеством цифр. 5. Для заданного натурального значения n вывести в порядке возрастания все правиль-

ные дроби, знаменатели которых не превышают n. 6. Получить все способы представления заданного натурального числа N в виде суммы

натуральных чисел (например, для N=3: 3=1+1+1; 3=1+2; 3=2+1). 7. Найти все натуральные числа, меньшие заданного n, если известно, что сумма цифр

каждого числа равна m. 8. На заданном числовом промежутке найти треугольники с целочисленными площадями

(треугольники Герона), длины сторон которых являются последовательными числами нату-рального ряда.

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

чисел (задача Эйлера); 2) всякое натуральное число можно представить в виде суммы четырех квадратов неот-

рицательных целых чисел (теорема Лагранжа); 3) для всякой пары натуральных чисел x, y выполняется следующее равенство:

НОД(x+y, НОК(x+y))= НОД(x,y),

где НОД и НОК – сокращенная запись наибольшего общего делителя и наименьшего общего кратного;

4) всякое нечетное число, большее пяти, можно представить в виде суммы трех простых чисел (задача Гольдбаха);

5) количество делителей всякого натурального числа n не превышает n2 ;

6) для всякого целого n числа вида nnn 34 35 ++ и 13 24 ++ nn не имеют общих делите-лей, отличных от единицы.

8. РЕКУРСИВНЫЕ АЛГОРИТМЫ

Цель: выработка умений применять рекурсивные алгоритмы для решения задач. Примеры решения задач:

Пример 10. Требуется вычислить сумму последовательных натуральных чисел от 1 до N.

Решение:

Page 36: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

36

1) Использование рекурсивной функции. Обозначим через S(K) сумму последовательных натуральных чисел от 1 до K. Вначале

положим S равным нулю: S(0)=0. Прибавим к S единицу, затем к полученному результату 2, 3 и т.д.: S(1)=S(0)+1; S(2)=S(1)+2; S(3)=S(2)+3; и т.д. Таким образом, мы получим рекурсивную зависимость:

>+−=

=0. при )1(

0, при 0)(

KKKS

KKS

2) Использование рекурсивной процедуры. Чтобы найти сумму K последовательных натуральных чисел, нужно знать сумму после-

довательных (K-1) чисел. Это можно сделать путем рекурсивного обращения SUM (K-1, S), ре-зультатом выполнения которого окажется соответствующее значение суммы S. Затем остается добавить к ней значение последнего числа K: S:=S+K.

Графическое представление алгоритма для способа 2) представлено на рисунке 22.

Рисунок 22

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

PROGRAM _10_1;

VAR N: INTEGER;

FUNCTION S(K:INTEGER):LONGINT;

BEGIN

IF K=0 THEN S:=0

ELSE S:=S(K-1)+K

END;

BEGIN

WRITE('N='); READLN(N);

WRITELN('S=',S(N))

END.

PROGRAM _10_2;

VAR N:INTEGER; SS:LONGINT;

PROCEDURE SUM(K:INTEGER;

VAR S:LONGINT);

BEGIN

IF K=0 THEN S:=0

ELSE BEGIN SUM(K-1,S);

S:=S+K

END

END;

BEGIN

WRITE('N='); READLN(N);

SUM(N,SS);

WRITELN('S=',SS)

END.

Page 37: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

37

Результаты выполнения программы при n=500 представлены на рисунке 23.

Рисунок 23

Анализ результата

Сумму n последовательных натуральных чисел можно вычислить как

сумму членов арифметической прогрессии, которая равна naa n

2

)( 1 +, в нашем случае:

.1252502

500)5001( =⋅+

Так как результат нашего расчета совпадает с результатом, полученным при выполнении программы, делаем вывод, что программа решения данной задачи работает верно.

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

Составить программы решения задач с использованием рекурсии. 1. Для заданного значения n вычислить n! 2. Получить n-й член последовательности Фибоначчи. 3. Найти НОД двух заданных натуральных чисел. 4. Вывести на экран компьютера последовательность натуральных чисел от 1 до N (N

вводится с клавиатуры). 5. Вычислить значение суммы (значение n вводится с клавиатуры):

а) 1

...4

3

3

2

2

1

+++++

n

n; б)

n

n 1)1(...

4

1

3

1

2

11

−−++−+− ; в) 2

1)1(...

9

1

4

11

n

n+−+−+− ;

г) )1(

1...

12

1

6

1

2

11

++++++

nn; д)

)2(

)1(...

15

1

8

1

3

1 1

+−+−+−

nn

n

; е) 12

...8

4

4

3

2

21 −+++++

n

n;

ж) 12

)1(...

5

1

3

11

1

−−+−+−

+

n

n

; з) 12

12...

8

15

4

7

2

31 −

−+++++n

n

; и)!

...!3!2!1

132

n

xxxx n

+++++

(x задано);

к) )12)(12(

...35

3

15

2

3

1

+−++++

nn

n; л) ...

)!12()1(...

!5!3

121

53

+−

⋅−+−+−−

n

xxxx

nn (значение x задано);

м) 12

...753

12753

−+++++

n

xxxxx

n

(x задано); н) .1

1...

15

1

8

1

3

11

2 −+++++

n

6. Вычислить значение произведения (взять n сомножителей):

а) ...7

6

5

6

5

4

3

4

3

2

1

2 ⋅⋅⋅⋅⋅⋅ ; б) n

n

2

12...

6

5

4

3

2

1 −⋅⋅⋅⋅ .

7. Найти n-й член последовательности, где каждый следующий член равен сумме обрат-

ных величин двух предыдущих членов: a1 = a2 =1, 21

11

−−

+=ii

i aaa .

8. Для вычисления a можно использовать рекуррентное соотношение

1,22 11 =+=+ x

x

axx

i

ii . Для заданного a получить N членов этой последовательности.

Page 38: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

38

9. Для вычисления 3 a можно использовать рекуррентное соотношение

1,33

2121 =+=+ x

x

axx

i

ii . Получить N членов этой последовательности.

10. Найти сумму цифр заданного натурального числа. 11. Определить количество цифр заданного натурального числа. 12. Проверить, является ли заданное натуральное число «перевертышем». 13. Найти старшую (первую слева) цифру заданного натурального числа. 14. Найти модуль разности старшей и младшей цифр заданного натурального числа. 15. Найти k-й член последовательности, заданной следующим образом:

а) 2,1

01 =−=+ xx

xxn

nn , б) 1,3

201 =+=+ x

x

xx n

nn .

16. Проверить, является ли заданный текст «перевертышем».

9. АЛГОРИТМЫ МНОГОКРАТНОЙ ТОЧНОСТИ

Цель: овладеть алгоритмами многократной точности и уметь разрабатывать программы, позволяющие получить достаточно «длинные» числа, или работать с «длинными» числами, за-крепить навыки работы с массивами в языке программирования.

Примеры решения задач:

Пример 11. Вычислить аn (где а и n – натуральные числа, а<10) и подсчитать, сколько раз в ре-зультате встречается цифра 0.

Решение: Математическая постановка задачи:

Дано: а, n – натуральные числа. Требуется: y – искомая степень, S – число, равное количеству цифр «0» в результате. Связь: y = аn При: а, n - натуральные числа, а<10.

Метод: Как известно, 43421разn

n aaaa ⋅⋅⋅= ... . (4)

Так как аn может оказаться «длинным» числом, то будем рассматривать его как совокупность

цифр: 121... cccca kkn

−= , где k – количество разрядов числа. Первоначально с1 = 1, k = 1.

Выделим в алгоритме решения данной задачи следующие этапы:

1. Формирование промежуточного произведения (умножение числа 121... cccc kk − на a).

Будем последовательно формировать последующие цифры в каждом промежуточном произведении путем умножения его на a, реализуя алгоритм умножения столбиком. Вначале

будем считать значение переменной P равным нулю. Тогда Pacr j +⋅= (произведение j-й

цифры на a, где j = 1, 2, …, k); цифру произведения в j-м разряде сj можно получить как остаток от деления r на 10, а перенос в следующий разряд P – как целую часть от деления r на 10. После

Page 39: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

39

умножения всех цифр c1, с2, … сk на a может быть получено значение Р , большее нуля; в этом случае значение k следует увеличить на 1 и в старший разряд числа (ck) записать P.

2. Формирование окончательного результата (y) согласно формуле (4). Для этого можно организовать цикл с параметром i, где i = 1, 2, …, n.

3. Вывод полученного результата. Для этого требуется вывести значения элементов мас-сива сi, где i = k, k-1, … 2, 1.

4. Проверка, сколько раз в результате встречается цифра 0. Для этого следует просмот-реть массив с и проверить справедливость условия: сi = 0. Если условие выполняется, значение переменной S следует увеличить на 1.

Схема алгоритма решения задачи приводится на рисунках 24а и 24б. Ниже представлен листинг соответствующей программы на языке программирования Паскаль. PROGRAM _11;

VAR A,N,K,P,I,J,S,PR: INTEGER;

C: ARRAY[1..10000] OF INTEGER;

BEGIN

REPEAT

WRITE('A='); READLN(A);

UNTIL (A>1) AND (A<10);

WRITE('N='); READLN(N); C[1]:=1; K:=1;

FOR I:=1 TO N DO

BEGIN P:=0;

FOR J:=1 TO K DO

BEGIN PR:=C[J]*A+P; C[J]:=PR MOD 10; P:=PR DIV 10

END;

IF P>0 THEN

BEGIN INC(K);

IF K>10000 THEN { КОНТРОЛЬ: C:ARRAY[1..10000]}

BEGIN WRITELN(' НУЖНО УВЕЛИЧИТЬ РАЗМЕР МАССИВА'); EXIT

END;

C[K]:=P

END

END;

S:=0;

FOR I:=K DOWNTO 1 DO

BEGIN WRITE(C[I]); IF C[I]=0 THEN INC(S) END;

WRITELN;

WRITELN(' КОЛИЧЕСТВО НУЛЕЙ= ',S)

END.

Page 40: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

40

Анализ результата Вычислим с помощью электронного калькулятора 260=(210)6=10246. Полученный нами

результат совпадает с результатами выполнения программы. Приходим к выводу о том, что программа решения данной задачи работает верно.

Заметим, что для ускорения вычислительного процесса целесообразно размещать в од-ном элементе массива не одну цифру, а несколько. Например, пусть в одном элементе массива с размещается 5 цифр. Тогда для получения очередного элемента массива с и переноса в сле-дующий разряд потребуется деление не на 10, а на 100000. Кроме того, при выводе результата нужно предусмотреть вывод значения каждого элемента массива в виде пятизначного числа (с недостающими незначащими нулями впереди числа), например, если очередное значение эле-мента массива равно 12, то на экран следует вывести 00012.

Результаты выполнения программы при a=2, n=60 представлены на рисунке 25. Ниже приведена запись фрагмента алгоритма для вывода результата вычисления аn на

псевдокоде. Вывод (c[k])

Для i от k-1 до 1 шаг -1

Нц

Выбор: при c[i]<10 Вывод («0000»)

при c[i]<100 Вывод («000»)

при c[i]<1000 Вывод («00»)

при c[i]<10000 Вывод («0»)

Все

Вывод ( с[i])

Кц

Фрагмент соответствующей программы на языке программирования Паскаль может иметь вид:

WRITE(C[K]);

FOR I:=K-1 DOWNTO 1 DO

BEGIN

IF C[I]<10 THEN WRITE('0000')

ELSE IF C[I]<100 THEN WRITE('000')

ELSE IF C[I]<1000 THEN WRITE('00')

ELSE IF C[I]<10000 THEN WRITE('0');

WRITE(C[I])

END;

Индивидуальные задания: 1. Найти n! и проверить, встречаются ли в записи этого числа две рядом стоящие одина-

ковые цифры. 2. Заданы два натуральных числа (которые не обязательно имеют одинаковое число

цифр). Найти:

Page 41: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

41

Рисунок 24а

Рисунок 24б

Рисунок 25

Page 42: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

42

1) их сумму и проверить, встречаются ли в записи суммы все десять цифр (0,1, 2, ..., 9); 2) их разность и определить, какая из цифр чаще всего встречается в полученном резуль-

тате; 3) их произведение и определить количество разных цифр в записи этого произведения; 4) остаток от деления первого числа на второе и определить, расположены ли цифры в

записи остатка в порядке возрастания или убывания слева направо; 5) целую часть от деления большего числа на меньшее и определить, является ли палин-

дромом сумма цифр результата. 3. Заданы числитель и знаменатель обыкновенной дроби. Представить эту дробь в виде

десятичной (получить n знаков после запятой) и определить, сколько раз встречается в резуль-тате цифра 5.

4. Найти m-й член последовательности {an}, если известно, что a1=k (натуральное число), ai+1=2ai - 1, где i=1, 2, 3, ... , и определить, встречается ли в записи результата, хотя бы один раз, цифра 7.

5. Вычислить значение суммы n

1...

4

1

3

1

2

11 +++++ (n – натуральное число, задано). В ре-

зультате получить m знаков после запятой и определить, совпадают ли в дробной части резуль-тата первая и последняя цифры.

6. Вычислить значение e, используя разложение в ряд (взять n членов ряда):

. В результате получить k знаков после запятой. 7. Выполнить вычисления, записав в ответе k знаков после запятой (взять n членов ряда)

с использованием соответствующего разложения: 1) найти значение π, если :

a) ...7

1

5

1

3

11

4+−+−=π

; б) ...7

6

5

6

5

4

3

4

3

2

1

2

2⋅⋅⋅⋅⋅⋅=π

; в) 2550

8011≈π ; г) 113

355≈π ;

д) ...!76

5

4

3

2

1

!54

3

2

1

!32

1arcsin

753

+⋅⋅⋅+⋅⋅+⋅+= xxxxx ;

2) найти значение ln2, если: a) ...4

1

3

1

2

112ln +−+−= ; б) ...

4321

1ln

432

++++=−

xxxx

x;

в)

++++=

−+

...753

21

1ln

753 xxxx

x

x;

3) найти cos1, используя разложение в ряд: ...)!2(

)1(...!6!4!2

1cos2642

+⋅−++=+−=n

xxxxx

nn ;

4) найти sin1, используя разложение в ряд:

...)!12(

)1(...!7!5!3

sin12

1753

+−

⋅−++=+−=−

n

xxxxxx

nn ;

Page 43: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

43

5) найти 2 , если ...8642

531

642

31

42

1

2

111 432 +

⋅⋅⋅⋅⋅−

⋅⋅⋅+

⋅−+=+ xxxxx ;

6) вычислить значение суммы 1

...5

4

4

3

3

2

2

1

++++++=

n

nS (n задано);

7) найти 3 , используя соотношение

+=+

nnn x

xx3

2

11 , где n = 0, 1, 2, … , x0 =3;

8) вычислить значение sh 1, используя разложение в ряд: ...!5/!3/ 53 +++= xxxxsh ;

9) вычислить значение ch 1, используя разложение в ряд: ...!4/!2/1 42 +++= xxxch ;

10) arth 1, используя разложение в ряд: ...7/5/3/ 753 ++++= xxxxxarth

8. Разложить заданное натуральное число на простые множители. 9. Найти k–й элемент последовательности Фибоначчи, которая задается следующим об-

разом: f1=1, f2=1, fi+2 = fi+1 + fi (i = 1, 2, 3, …). 10. Проверить, является ли заданное натуральное число простым. 11. Вычислить an, где a и n – натуральные числа. 12. Вычислить квадратный корень из заданного натурального числа (с недостатком), по-

лучив k знаков после запятой. 13. Известно, что всякое натуральное число P, большее семи, можно представить в виде

P=A*3+B*5. Найти все пары натуральных чисел A и B для заданного P.

10. ОБРАБОТКА СТРОК СИМВОЛОВ ПО ИНФОРМАЦИИ ИЗ ТЕКСТОВОГО ФАЙЛА

Цель: овладеть алгоритмами обработки строк символов, хранящихся в текстовом файле, иметь разрабатывать соответствующие программы, закрепить навыки работы с символьной и строковой информацией в языке программирования.

Примеры решения задач:

Пример 12. В каждой строке текстового файла хранится следующая информация: число в деся-тичной системе счисления (или в римской системе нумерации) и далее через пробел целое чис-ло – признак требуемого преобразования. Необходимо выполнить перевод числа в десятичную систему счисления, если значение признака равно 1, и в римскую систему нумерации, если зна-чение признака равно 2 (считать, что представленные в файле данные корректны). Результат нужно вывести на экран и в текстовый файл.

Решение: Математическая постановка задачи: Дано: N – заданное число, Р – признак перевода (1 – для перевода в десятичную, 2 – в римскую систему). Требуется: С – число, которое будет получено после перевода. Метод: Рассмотрим один из методов для перевода чисел, не больших 3999. Этот метод основан

на сравнении заданного числа и возможных записей чисел в римской системе нумерации в со-ответствии с таблицей 6.

Page 44: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

44

Таблица 6

Арабское число (А)

Запись в римской системе (R)

Арабское число (А)

Запись в римской системе (R)

1000 M 50 L 900 CM 40 XL 500 D 10 X 400 CD 9 IX 100 C 5 V 90 ХС 4 IV 1 I

Суть метода заключается в следующем: будем считывать из файла строку S и выделять из нее значения N и Р, а далее:

1) при Р=1 выполнять: С:=0; пока N – не пустой текст: считать из таблицы 6 значения A, R; «вырезать» в числе слева столько символов, какова длина арабского числа А; если R рав-

на этой «вырезке», тогда увеличить на A и заменить старое значение N на новое, равное тому, что осталось справа после «вырезки»;

2) при Р = 2 выполнять: С – пустой текст; пока N>0 считать из таблицы 6 значения A, R; если A≤N, то поместить («подклеить») R в C и уменьшить значение N на A. Схема алгоритма решения задачи приводится на рисунке 27. Ниже представлен листинг

программы на языке программирования Паскаль.

PROGRAM _12;

CONST K=12;

A: ARRAY[0..K] OF INTEGER=(1000,900,500,400 ,100,90,50,40,

10,9,5,4,1);

R: ARRAY[0..K] OF STRING=('M','CM','D','CD','C','XC ','L','XL',

'X','IX','V','IV','I' );

VAR P: CHAR; N,S,CRIM: STRING;

C,I,NAR,COD,PR: INTEGER; F1,F2: TEXT;

BEGIN

ASSIGN(F1,'H:\IN.TXT'); ASSIGN(F2,'H:\OUT.TXT');

RESET(F1); REWRITE(F2);

WHILE NOT EOF(F1) DO

BEGIN READLN(F1,S);

PR:=POS(' ',S); N:=COPY(S,1,PR-1); P:=S[PR+1 ];

I:=-1; C:=0;

WRITE(N:12,'(',P,')',':'); WRITE(F2,N:12,'(' ,P,')',':');

Page 45: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

45

CASE P OF

'1': BEGIN WHILE N>'' DO

BEGIN I:=I+1;

WHILE R[I]=COPY(N,1,LENGTH(R[I]) ) DO

BEGIN DELETE(N,1,LENGTH(R[I])); C:=C+A[I]; END

END;

WRITELN(C:12); WRITELN(F2,C:12);

END;

'2': BEGIN VAL(N,NAR,COD);

IF COD=0 THEN

BEGIN CRIM:='';

WHILE NAR>0 DO

BEGIN I:=I+1;

WHILE A[I]<=NAR DO

BEGIN CRIM:=CRIM+R[I];

NAR:=NAR-A[I]

END

END;

WRITELN(CRIM:12); WRITELN(F2,C RIM:12)

END

END

END

END;

CLOSE(F1); CLOSE(F2)

END.

Рисунок 26

Анализ результатов

На рисунке 26 приведен результат выполнения про-граммы. Слева расположена информация входного файла, справа – результат. Сравнивая исходные и полученные числа, заметим, что перевод выполнен правильно, что дает нам основание сделать вывод о том, что программа работает верно.

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

В приведенных ниже задачах предполагается, что все данные хранятся в некотором тек-стовом файле. Результат следует вывести на экран и в текстовый файл.

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

2. Задана бесконечная десятичная периодическая дробь, период которой записан в скоб-ках. Представить это число в виде обыкновенной дроби. Например, 12,25(7)=12 58/225.

Page 46: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

46

3. Задано математическое выражение, состоящее из чисел и знаков четырех арифметиче-ских операций с использованием круглых скобок. Требуется:

а) преобразовать это выражение в постфиксную форму, записав сначала операнды, а за-тем знак операции, например:

(5-2)/3 ————> 5 2 - 3 /; (3*(25-7)+14) —————> 3 25 7 - * 14 +; б) вычислить значение этого выражения. 4. Задано некоторое натуральное число k. Требуется вывести весь текст словами (напри-

мер, при k=5 вывод имеет вид «пять», при k=123 нужно вывести «сто двадцать три» т.д.): а) в виде фразы «мы нашли в лесу k грибов», согласовывая окончание слова «гриб» с

числом k; б) число, равное сумме цифр заданного числа; в) в виде фразы «мне k лет» (k<=100 ); г) в виде количественного числительного, которое означает заданное число в соответст-

вии с требуемым падежом (падеж задается по букве: i – именительный, r – родительный, d – да-тельный и т.д.).

5. Построить числовую последовательность и определить, какая цифра стоит в ее k-й по-зиции. В последовательность должны быть записаны:

а) последовательные числа натурального ряда чисел (123456789101112…); б) квадраты последовательных натуральных чисел (149162536...); в) числа Фибоначчи (112358132134...); г) простые натуральные числа (23571113...); д) четные числа из натурального ряда чисел (2468101214...); е) нечетные натуральные числа (13579111315...); ж) последовательные натуральные числа, делящиеся на 3 (369121518…). 6. Определить, обладает ли заданный текст следующим свойством а) текст является десятичным числом, кратным числу 9; б) текст является шестнадцатеричным числом, кратным пяти; в) сумма цифр, которые входят в текст, равна длине текста; г) текст совпадает с каким-либо отрезком числового ряда целых неотрицательных чисел

012345678910..., например, 3; 678; 101112; д) текст представляет собой правильную запись некоторого действительного числа; е) текст является записью четного числа в семеричной системе счисления; ж) текст состоит только из цифр, причем в его составе можно выделить числа, образую-

щие арифметическую прогрессию, например, 4681012, 174171168; з) текст представляет собой неубывающую последовательность чисел; если это условие

выполняется, то разделить эти числа запятыми, например, текст 334881014100 составлен из не-убывающей последовательности чисел 3, 3, 4, 8, 8, 10, 14, 100.

Page 47: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

47

Рисунок 27

7. Проверить, является ли заданный текст правильной записью в римской системе нуме-рации некоторого числа от 1 до 3999.

8. Перевести заданное действительное число из десятичной системы счисления в 16-ричную.

Page 48: ЗАДАНИЯ К ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ для 1-31 03 01 …elib.grsu.by/katalog/170629-383906.pdf · (АРИФМЕТИЧЕСКИЕ РЕБУСЫ ) Цель:

48

9. В заданном тексте слова разделяются символами: «,», «.», «-», «:», «;», « », «!», «?». Требуется:

а) найти самое длинное и самое короткое слово; б) определить, встречаются ли в тексте слова-перевертыши; в) найти частоту появления в каждом слове буквы «а»; г) перевернуть каждое слово, записав его в обратном порядке; д) удалить слова, содержащие заданное словосочетание (вводится с клавиатуры); е) найти самое длинное слово и получить частоту появления в нем каждой буквы из это-

го слова; ж) зашифровать текст, заменяя каждую букву двузначным числом, соответствующим ее

порядковому номеру в алфавите (разделители оставить без изменения).

11. СОЗДАНИЕ ПРОГРАММНОГО КОМПЛЕКСА

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

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

СОДЕРЖАНИЕ

1. ЗАДАЧИ НА ПОЛНЫЙ ПЕРЕБОР 4 2. МЕТОД МОНТЕ-КАРЛО 10 3. ВЫЧИСЛЕНИЕ КОНЕЧНЫХ СУММ 17 4. ВЫЧИСЛЕНИЯ С ТРЕБУЕМОЙ ТОЧНОСТЬЮ 21 5. ПРИБЛИЖЕННОЕ РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ 23 6. ОБРАБОТКА МАТРИЦ 27 7. ЗАДАЧИ ЦЕЛОЧИСЛЕННОЙ АРИФМЕТИКИ 31 8. РЕКУРСИВНЫЕ АЛГОРИТМЫ 35 9. АЛГОРИТМЫ МНОГОКРАТНОЙ ТОЧНОСТИ 37 10. ОБРАБОТКА СТРОК СИМВОЛОВ ПО ИНФОРМАЦИИ ИЗ ТЕКСТОВОГО ФАЙЛА

43

11. СОЗДАНИЕ ПРОГРАММНОГО КОМПЛЕКСА 49