Операционные системы, классификация

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
Учреждение образования “Витебский Государственный
Технологический Университет”
ИНФОРМАТИКА, ЧИСЛЕННЫЕ МЕТОДЫ И
КОМПЬЮТЕРНАЯ ГРАФИКА
методические указания и задания к контрольным работам для студентов
специальности 1-53 01 01-05 «Автоматизация технологических процессов и
производств (легкая промышленность)» заочной формы обучения
ВИТЕБСК
2007
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
Учреждение образования “Витебский Государственный Технологический
Университет”
РЕКОМЕНДОВАНО:
Зам. председателя редакционноиздательского Совета УО ВГТУ
_______________ В. В. Пятов
«____»___________ 2007 г.
УТВЕРЖДАЮ:
Первый проректор
УО ВГТУ
_______________С. И. Малашенков
«____»___________ 2007 г.
ИНФОРМАТИКА, ЧИСЛЕННЫЕ МЕТОДЫ И
КОМПЬЮТЕРНАЯ ГРАФИКА
методические указания и задания к контрольным работам для студентов
специальности 1-53 01 01-05 «Автоматизация технологических процессов и
производств (легкая промышленность)» заочной формы обучения
ВИТЕБСК
2007
УДК 004
ИНФОРМАТИКА, ЧИСЛЕННЫЕ МЕТОДЫ И КОМПЬЮТЕРНАЯ ГРАФИКА:
методические указания и задания к контрольным работам для студентов
специальности 1-53 01 01-05 «Автоматизация технологических процессов и
производств (легкая промышленность)» заочной формы обучения.
Витебск: Министерство образования Республики Беларусь, УО «ВГТУ», 2007 г.
Составитель: ст. преп. Казаков В. Е.
В настоящих методических указаниях приведена методика разработки программ,
рассмотрены вопросы построения алгоритмов основных вычислительных процессов,
а также представлены требования к оформлению и защите контрольных работ.
Методические указания предназначены для использования при выполнении
контрольных работ по курсу «Информатика, численные методы и компьютерная
графика» и подготовке к их защите.
Одобрено кафедрой информатики УО “ВГТУ”:
29 июня 2007 г., протокол № 12.
Рецензент:
Редактор:
Шарстнёв В.Л.
Терентьев В. П.
Рекомендовано к опубликованию редакционно-издательским советом УО
«ВГТУ» “___”___________ 2007 г., протокол № _____
Ответственный за выпуск: Соколов И. В.
Учреждение образования
«Витебский государственный технологический университет»
_________________________________________________________________
Подписано к печати _________ Формат ________ Уч.-изд. листов._____
Печать ризографическая. Тираж ____ экз. Заказ №________ Цена _________
_________________________________________________________________
Отпечатано на ризографе Учреждения образования «Витебский государственный
технологический университет». Лицензия 02330/0133005 от 01.04.2004г.
210035, Витебск, Московский пр-т, 72
Содержание
Введение ................................................................................................................... 4
Методика решения задач ........................................................................................ 5
Разработка алгоритма.............................................................................................. 5
Постановка задачи. .................................................................................................. 6
Математическое описание задачи. ........................................................................ 6
Выбор и обоснование метода решения. ................................................................ 6
Алгоритмизация вычислительного процесса. ...................................................... 6
Блок-схемы ............................................................................................................... 7
Типовые алгоритмы ................................................................................................ 7
Разработка программы на языке Pascal ............................................................... 12
Составление и компиляция программы .............................................................. 12
Тестирование.......................................................................................................... 12
Решение задачи на ЭВМ и анализ результатов. ................................................. 13
Оформление отчёта о решении задачи................................................................ 13
Защита контрольной работы ................................................................................ 18
Задание №1 ............................................................................................................. 19
Задание №2 ............................................................................................................. 20
Задание №3 ............................................................................................................. 21
Задание №4 ............................................................................................................. 22
Задание №1 ............................................................................................................. 25
Задание №3 ............................................................................................................. 27
Список рекомендуемой литературы .................................................................... 29
Введение
“Информатика, численные методы и компьютерная графика” - одна из
базовых дисциплин в комплексе фундаментальной подготовки инженеров
по автоматизации.
Целью дисциплины является изучение основ современной
информатики, формирование у студентов современных теоретических
знаний и практических навыков в области информатики и применения ЭВМ,
необходимых как в течение учебного процесса в вузе, так и в сфере научнопрактической деятельности будущих специалистов.
В результате изучения дисциплины студент должен знать основные
понятия теории информации, организацию, устройство, характеристики
ЭВМ, операционные системы и управление вычислительными ресурсами,
компьютерное моделирование с применением численных методов, языки
программирования и основы алгоритмизации, прикладное программное
обеспечение.
В результате изучения дисциплины студент должен уметь владеть
научной организацией труда с применением компьютерной обработки
информации,
приобретать
знания,
пользуясь
современными
информационными технологиями, вести исследования в своей прикладной
области, организовать и вести делопроизводство.
Настоящие методические указания составлены в соответствии с
рабочей программой курса “Информатика, численные методы и
компьютерная графика” и предназначены для студентов специальности
«Автоматизация технологических процессов и производств (легкая
промышленность)» заочной формы обучения.
В методических указаниях приведены варианты заданий контрольных
работ, требования к оформлению отчёта, а также пример оформления
задания.
4
Методика решения задач
Разработка алгоритма
Алгоритм — это точное предписание, которое определяет процесс,
ведущий от исходных данных к требуемому конечному результату.
Алгоритмами, например, являются: последовательность операций,
используемых при сложении, умножении матриц; решение алгебраических
уравнений и т.п.
Применительно к ЭВМ алгоритм определяет вычислительный процесс,
начинающийся с обработки некоторой совокупности возможных исходных
данных и направленный на получение определенных этими исходными
данными результатов. Термин «вычислительный процесс» распространяется
и на обработку других видов информации, например, символьной,
графической или звуковой.
Если вычислительный процесс заканчивается получением результатов,
то говорят, что соответствующий алгоритм применим к рассматриваемой
совокупности исходных данных. В противном случае говорят, что алгоритм
неприменим к совокупности исходных данных. Любой применимый
алгоритм обладает следующими основными свойствами:
 результативностью;
 определенностью;
 массовостью.
Результативность означает возможность получения результата после
выполнения конечного количества операций.
Определенность состоит в совпадении получаемых результатов
независимо от пользователя и применяемых технических средств.
Массовость заключается в возможности применения алгоритма к
целому классу однотипных задач, различающихся конкретными значениями
исходных данных.
В процессе разработки алгоритма решения задачи можно выделить
следующие этапы:
1) постановка задачи;
2) математическое описание задачи;
3) выбор и обоснование метода решения;
4) алгоритмизация вычислительного процесса.
В задачах другого класса некоторые этапы могут отсутствовать,
например, в задачах разработки системного программного обеспечения
отсутствует математическое описание. Перечисленные этапы связаны друг с
другом. Например, анализ результатов может показать необходимость
внесения изменений в программу алгоритм или даже в постановку задачи.
Для уменьшения числа подобных изменений необходимо на каждом этапе по
возможности учитывать требования, предъявляемые последующими этапами.
В некоторых случаях связь между различными этапами, например, между
постановкой задачи и выбором метода решения, между составлением
5
алгоритма и программированием, может быть настолько тесной, что
разделение их становится затруднительным.
Постановка задачи
На данном этапе формулируется цель решения задачи и подробно
описывается ее содержание. Анализируются характер и сущность всех
величин, используемых в задаче, и определяются условия, при которых она
решается. Корректность постановки задачи является важным моментом, так
как от нее в значительной степени зависят другие этапы.
Математическое описание задачи
Настоящий этап характеризуется математической формализацией
задачи, при которой существующие соотношения между величинами,
определяющими результат, выражаются посредством математических
формул. Так формируется математическая модель явления с определенной
точностью, допущениями и ограничениями. При этом в зависимости от
специфики решаемой задачи могут быть использованы различные разделы
математики и других дисциплин.
Математическая модель должна удовлетворять, по крайней мере, двум
требованиям: реалистичности и реализуемости. Под реалистичностью
понимается правильное отражение моделью наиболее существенных черт
исследуемого явления.
Реализуемость достигается разумной абстракцией, отвлечением от
второстепенных деталей, чтобы свести задачу к проблеме с известным
решением. Условием реализуемости является возможность практического
выполнения необходимых вычислений за отведенное время при доступных
затратах требуемых ресурсов.
Выбор и обоснование метода решения
Модель решения задачи с учетом ее особенностей должна быть доведена
до решения при помощи конкретных методов решения. Само по себе
математическое описание задачи в большинстве случаев трудно перевести на
язык машины. Выбор и использование метода решения задачи позволяет
привести решение задачи к конкретным машинным операциям. При
обосновании выбора метода необходимо учитывать различные факторы и
условия, в том числе точность вычислений, время решения задачи на ЭВМ,
требуемый объем памяти и другие.
Одну и ту же задачу можно решить различными методами, при этом в
рамках каждого метода можно составить различные алгоритмы.
Алгоритмизация вычислительного процесса
На данном этапе составляется алгоритм решения задачи согласно
действиям, задаваемым выбранным методом решения. Процесс обработки
данных разбивается на отдельные относительно самостоятельные блоки, и
6
устанавливается последовательность выполнения блоков. Разрабатывается
блок-схема алгоритма.
Блок-схемы
Для начертания схем алгоритмов используется набор символов,
определяемых ГОСТ 19.701 — 90 (ИСО 5807 — 85) «Единая система
программной документации». Схема, составленная из этих символов,
называется блок-схемой.
Типовые алгоритмы
Процесс обработки данных при решении задачи, как уже упоминалось
ранее, разбивается на отдельные относительно самостоятельные блоки.
Рассмотрим некоторые стандартные алгоритмические конструкции.
Линейные вычисления
В линейной части алгоритма все операции выполняются
последовательно одна за другой.
В качестве примера приведём часть алгоритма, вычисления периметра
(r) и площади (S) треугольника, у которого заданы длины сторон (a, b, c).
r : =(a+b+c)/2
P : = a+b+c
S : r (r  a)(r  b)(r  c)
Рис. 1. Линейный алгоритм
Ветвление
Разветвленные структуры применяются, когда в зависимости от
некоторого условия необходимо выполнить либо одно, либо другое
действие.
Примером может служить алгоритм выбора большего из двух
значений (a, b), который используется как составная часть многих
алгоритмов, таких как сортировка или поиск элементов в массиве
данных.
7
да
a>b
max : = b
max : = a
Рис. 2. Разветвляющийся алгоритм
Цикл со счётчиком
Циклы со счётчиком используются в том случае, когда количество
повторений определённой части алгоритм (тела цикла) может быть
вычислено на момент разработки алгоритма.
Наиболее часто циклы со счётчиком используются для обработки
массивов и символьных строк (которые, по сути, являются
одномерными массивами, состоящими символьных элементов).
Приведём пример алгоритма удаления одного элемента массива (A)
со сдвигом остальных элементов влево (рис. 3).
i = k..n-1
A[i] : = A[i+1]
A[n] : = 0
Рис. 3. Цикл с параметром
8
Цикл с условием
Имеется целый класс задач, при решении которых заранее
определить
количество
повторений
определённых
действий
затруднительно. Такие задачи решаются при помощи так называемых
циклов с условием. В зависимости от взаиморасположения заголовка и
тела цикла выделяют циклы с предусловием (тело цикла располагается
после заголовка) и циклы с постусловием (тело цикла располагается
перед заголовком).
Пример использования цикла с предусловием, использующегося
при решении задачи вывода цифр, составляющих число N, представлен
на рис. 4.
N>=1
да
Вывод
N mod 10
N : = N div 10
Рис. 4. Цикл с предусловием
Следует обратить внимание на то, что внутри цикла находится линейная
часть алгоритма: операция вывода и присваивания.
Ту же самую задачу можно решить и с помощью цикла с постусловием
(см. рис. 5). Однако в этом случае нужно учитывать, что тело цикла
обязательно будет выполнено хотя бы один раз.
9
Вывод
N mod 10
N : = N div 10
N<1
да
Рис. 5. Цикл с постусловием
В этом случае нужно надеяться на то, что значение N до начала работы
цикла будет больше 1.
В качестве законченного алгоритма приведём пример алгоритма
сортировки одномерного массива (рис. 6.).
Алгоритм
состоит
из
нескольких
частей,
выполняющихся
последовательно: ввод размера массива (n), ввод элементов массива (А),
обработка массива, вывод элементов массива А.
Ввод элементов массива выполняется с помощью конечного цикла. Блок
3 является заголовком, а тело цикла составляет блок ввода (4).
Обработка массива выполняется также с помощью конечного цикла 5,
счётчик цикла i изменяется от 1 до значения n-1. Таким образом, счётчик
цикла принимает значения индексов элементов массива с первого до
предпоследнего. Таким образом, тело цикла, состоящее из блоков 6, 7, 8, 9 и
10, будет выполнено для всех элементов массива, кроме предпоследнего.
Блоки 6, 7, 8, 9 и 10 составляют алгоритм с одним входом А5->6 и одним
выходом А6->5 (см. рис. 6). От внешнего цикла алгоритм получает значение i.
Затем в конечном цикле (блок 6) при помощи счётчика j, перебираются
индексы элементов массива А начиная с i+1-го до последнего.
10
1
начало
2
Ввод:
n
3
i = 1..n
4
Ввод:
A[i]
А5->6 А6->5
5
i = 1..n-1
6
j = i+1..n
B7,10->6
7
B6->7
A[i] < A[j]
да
8
tmp : = A[i]
9
A[i] : = A[j]
10
A[j] : = tmp
11
i = 1..n
12
Вывод:
A[i]
13
конец
Рис. 6. Алгоритм сортировки одномерного массива
11
В теле цикла 6 при помощи блока разветвления 7 сравнивается элемент с
индексом i и элемент с индексом j. Если массив должен быть отсортирован в
порядке убывания значений элементов, то элемент с индексом i должен быть
больше элемента с индексом j, в противном случае запускается линейный
алгоритм перестановки двух элементов: значение элемента А[i] сохраняется
во временной переменной tmp (блок 8), значение элемента А[j] копируется в
ячейку А[i] (блок 9), значение из переменной tmp записывается в ячейку А[j]
(блок 10).
Завершающая часть алгоритма – вывод элементов массива является
конечным циклом. Как видно из рис. 6 эта часть алгоритма имеет такую же
структуру, как и часть, отвечающая за ввод элементов массива. Разница
состоит лишь в использовании блока вывода, вместо блока ввода.
Можно отметить, что сложный алгоритм состоит из некоторого
количества более простых алгоритмов, а те, в свою очередь, состоят из
элементарных алгоритмических конструкций.
Разработка программы на языке Pascal
После того, как разработан вычислительный алгоритм можно
приступать к его реализации на одном из языков программирования, при
этом каждый блок алгоритма заменяется соответствующим оператором или
конструкцией языка программирования.
Необходимо также помнить о необходимости описания всех структур
хранения данных (переменных) в специальном разделе текста программы.
Составление и компиляция программы
В ходе синтаксического контроля программы компилятором выявляются
конструкции и сочетания символов, недопустимые с точки зрения правил их
построения или написания, принятых в данном языке. Сообщения об
ошибках компилятор выдает в верхней, или нижней части окна с текстом
программы в виде красной строки, на которой помещается код ошибки и её
текстовое описание. Курсор в окне с текстом программы помещается в ту
строку, в которой была обнаружена ошибка. Текст программы от начала и до
места нахождения курсора был успешно скомпилирован, однако это не
означает, что его не придётся изменить в процессе устранения ошибки.
Тестирование
Отладка программы. Отладка заключается в поиске и устранении
синтаксических и логических ошибок в программе.
После устранения синтаксических ошибок проверяется логика работы
программы в процессе ее выполнения с конкретными исходными данными.
Для этого используются специальные методы, например, в программе
выбираются контрольные точки, для которых вручную рассчитываются
12
промежуточные результаты. Эти результаты сверяются со значениями,
получаемыми ЭВМ в данных точках при выполнении отлаживаемой
программы. Кроме того, для поиска ошибок могут быть использованы
отладчики, выполняющие специальные действия на этапе отладки, например,
удаление, замена или вставка отдельных операторов или целых фрагментов
программы, вывод или изменение значений заданных переменных.
Решение задачи на ЭВМ и анализ результатов
После отладки программы ее можно использовать для решения
прикладной задачи. При этом обычно выполняется многократное решение
задачи на ЭВМ для различных наборов исходных данных. Получаемые
результаты интерпретируются и анализируются специалистом или
пользователем, поставившим задачу.
Разработанная программа длительного использования устанавливается
на ЭВМ, как правило, в виде готовой к выполнению машинной программы. К
программе прилагается документация, включая инструкцию для
пользователя.
Чаще всего при установке программы на диск для ее последующего
использования помимо файлов с исполняемым кодом устанавливаются
различные
вспомогательные
программы
(утилиты,
справочники,
настройщики и т. д.), а также необходимые для работы программ разного
рода файлы с текстовой, графической, звуковой и другой информацией.
Оформление отчёта о решении задачи
Отчёт о решении задачи должен содержать:
1) полный текст задания;
2) описание математического метода решения задачи (если требуется);
3) блок-схему
вычислительного
алгоритма,
выполненную
в
соответствии с требованиями ГОСТ 19.701 — 90 (ИСО 5807 — 85);
4) исходный текст программы на языке Pascal;
5) результаты тестовых запусков.
В качестве примера представим отчёт о решении следующей
задачи:
Найти экстремум функции:
y  x12  2x22
методом покоординатного спуска. Проверочное значение: 0.
В тексте задачи приведено проверочное значение, являющееся
абсциссой экстремума заданной функции. Это значение можно использовать
для тестирования программы. Фактически для данной функции программа
при любых входных параметрах должна выдавать результат равный нулю.
13
Вначале опишем предложенный в задании метод поиска экстремумов
многомерных функций.
Методы спуска состоят в процедуре построения последовательности
{x1, x2, …, xk}, где последнее значение соответствует экстремуму функции
у. В
качестве начального приближения выбирается любая точка x0.
Последовательные приближения x1, x2, … строятся по следующей схеме:
1) в точке xk выбирают направление спуска - Sk;
2) находят (k+1)-е приближение по формуле xk+1=xk-pkSk (где pk –
значение шага).
Направление Sk выбирают таким образом, чтобы обеспечить
неравенство у(xk+1)<у(xk) по крайней мере, для малых значений величины
pk.
В методе покоординатного спуска эта процедура повторяется для
каждой координаты (рис. 7). Затем значение pk уменьшается в два раза и
процесс спуска по каждой из координат повторяется снова, пока значение pk
не станет меньше точности вычисления е
х1
y=(х1, х2 )
х2
0
Рис. 7. Графическое представление метода
покоординатного спуска
Представленная схема вычисления используется для разработки
алгоритма. Блок-схема алгоритма представлена на рис. 8.
14
НАЧ.
1
Подпрограмма
Spusk(hg:real;var x:mas; koord:byte);
2
Ввод
n, h, e
НАЧ.
3
i = 1,n
1
2
4
Fn1:=F(x)
x[koord]:=x[koord]+hg
;
Ввод А[i]
да
F(x)>Fn1 3
5
Ap := A
hg:=-hg
6
i = 1,n
5
Fn:=Fn1;
x[koord]:=x[koord]+hg;
Fn1:=F(x)
7
Spusk(h,A,i)
h := h / 2
8
Fn1>Fn 6
да
7
9
x[koord]:=x[koord]-hg
h<e
да
10
i = 1,n
КОН.
8
11
Ввод А[i]
12
КОН.
Рис. 8. Алгоритм нахождения экстремума методом
покоординатного спуска
15
4
По разработанной схеме алгоритма составляем программу на языке
Pascal:
program mkbfj;
type mas=array[1..10] of real;
var A,Ap:mas;
i,n:integer;
h,e:real;
function F(var x:mas):real;
begin
F:=x[1]*x[1]+2*x[2]*x[2];
end;
procedure Spusk(hg:real;var x:mas; koord:byte);
var Fn, Fn1:real;
begin
Fn1:=F(x);
x[koord]:=x[koord]+hg;
if F(x)>Fn1 then hg:=-hg;
repeat
Fn:=Fn1;
x[koord]:=x[koord]+hg;
Fn1:=F(x)
until Fn1>Fn;
x[koord]:=x[koord]-hg;
end;
begin
writeln('n perem'); read(n); { Ввод количества переменных }
writeln('hag'); read(h); { Ввод начального шага }
writeln('e'); read(e); { Ввод точности вычисления }
writeln('nah pribl');
for i:=1 to n do
read(A[i]);
repeat
Ap:=A;
for i:=1 to n do
begin
Spusk(h,A,i);
h:=h/2;
end;
until h<e;
for i:=1 to n do
writeln('x',i,'-',A[i]:3:2,' ');
end.
16
Для представления в отчёте результатов тестовых запусков программы
можно воспользоваться снимком окна. Для этого, при запуске программы из
среды Turbo Pascal, необходимо перевести приложение из полноэкранного
режима в оконный с помощью комбинации клавиш Alt + Enter. Затем, когда
программа завершит свою работу и в окне будут отображены результаты её
работы, нужно скопировать изображение окна в буфер обмена с помощью
комбинации клавиш Alt + Prt Scr. Изображение можно обычным образом
вставить из буфера обмена в нужное место отчёта.
Исследуем поведение разработанной программы при различных
входных данных. Известно, что функция y  x1  2x2 имеет только один
экстремум – минимум в точке х1 = 0, х2 = 0 (рис. 9). Таким образом,
программа должна выдавать координаты этой точки при любых входных
данных.
2
2
2
2
Рис. 9. График функции y  x1  2x2
Входными данными, при заданной функции, являются:

начальный шаг;

точность нахождения экстремума;

начальное приближение.
Количество тестовых запусков программы, позволяющих провести
наиболее полный анализ влияния входных данных на результат работы
программы, достаточно велико, поэтому можно ограничиться несколькими
тестами.
Как видно из рис. 10а и 10б программа стабильно даёт правильный
результат при разных данных.
Таким образом, можно с большой долей уверенности утверждать, что
задание выполнено.
17
а
б
Рис. 10. Экраны работы программы при разных
входных данных
После окончания этапа тестирования программы её можно использовать
и для исследования других функций, по крайней мере тех, которые имеют
один экстремум на всей области определения.
Защита контрольной работы
Цель защиты контрольной работы – доказательство того, что
разработанный студентом алгоритм решает поставленную задачу и обладает
всеми требуемыми свойствами, а программа на языке Pascal соответствует
схеме разработанного алгоритма и не приводит к возникновению ошибок во
время исполнения при вводе различных входных значений.
На защите рекомендуется обратить внимание на следующее:

указание альтернативных способов решения задачи и обоснование
выбранного;

описание назначения каждой из использованных в программе
переменных;

описание назначения каждой части алгоритма и программы;

каким образом будет изменяться работа программы при вводе
различных входных данных (под изменением работы программы
понимается изменение последовательности выполнения операторов
и состояния переменных программы).
18
Задания к контрольной работе №1
Задание №1
0. Локатор ориентирован на одну из сторон света («С» — север, «З» —
запад, «Ю» — юг, «В» — восток) и может принимать три цифровые
команды поворота: 1 — поворот налево, –1 — поворот направо, 2 —
поворот на 180°. Дан символ C — исходная ориентация локатора
и целые числа N1 и N2 — две посланные команды. Вывести
ориентацию локатора после выполнения этих команд.
1. Элементы окружности пронумерованы следующим образом: 1 —
радиус R, 2 — диаметр D = 2·R, 3 — длина L = 2··R, 4 — площадь
круга S = ·R2. Дан номер одного из этих элементов и его значение.
Вывести значения остальных элементов данной окружности (в том же
порядке).
2. Дан номер года (положительное целое число). Определить количество
дней в этом году, учитывая, что обычный год насчитывает 365 дней, а
високосный — 366 дней. Високосным считается год, делящийся на 4,
за исключением тех годов, которые делятся на 100 и не делятся на 400
(например, годы 300, 1300 и 1900 не являются високосными, а 1200
и 2000 — являются).
3. Даны целочисленные координаты точки на плоскости. Если точка
совпадает с началом координат, то вывести 0. Если точка не совпадает
с началом координат, но лежит на оси OX или OY, то вывести
соответственно 1 или 2. Если точка не лежит на координатных осях,
то вывести 3.
4. Даны три переменные вещественного типа: A, B, C. Вывести их
значения в порядке возрастания.
5. Даны координаты точки, не лежащей на координатных осях OX и OY.
Определить номер координатной четверти, в которой находится данная
точка.
6. Дано целое число. Вывести его строку-описание вида «отрицательное
четное число», «нулевое число», «положительное нечетное число»
и т. д.
7. Арифметические действия над числами пронумерованы следующим
образом: 1 — сложение, 2 — вычитание, 3 — умножение, 4 — деление.
Дан номер действия N (целое число в диапазоне 1–4) и вещественные
числа A и B (В не равно 0). Выполнить над числами указанное
действие и вывести результат.
19
8. Элементы равнобедренного прямоугольного треугольника
пронумерованы следующим образом: 1 — катет a, 2 —
гипотенуза c = a·(2)1/2, 3 — высота h, опущенная на гипотенузу
(h = c/2), 4 — площадь S = c·h/2. Дан номер одного из этих элементов
и его значение. Вывести значения остальных элементов данного
треугольника (в том же порядке).
9. Единицы длины пронумерованы следующим образом: 1 — дециметр,
2 — километр, 3 — метр, 4 — миллиметр, 5 — сантиметр. Дан номер
единицы длины (целое число в диапазоне 1–5) и длина отрезка в этих
единицах (вещественное число). Найти длину отрезка в метрах.
Задание №2
0. Вычислить сумму элементов ряда
x 2 n * sin nx
S   (1) *
(2n  1)!
n1
8
n
1. Вычислить сумму элементов ряда
sin n3 (n  x)
S   (1) *
(2n  1)!
n 3
3*n
n
2. Спортсмен-лыжник начал тренировки, пробежав в первый день 10 км.
Каждый следующий день он увеличивал длину пробега на P процентов
от пробега предыдущего дня (P — вещественное, 0 < P < 50).
По данному P определить, после какого дня суммарный пробег
лыжника за все дни превысит 200 км, и вывести найденное количество
дней K (целое) и суммарный пробег S (вещественное число).
3. Вычислить сумму элементов ряда
20
4. Вычислить сумму элементов ряда
10
S 
n 1
n!
1 1
1
  ... 
2 3
n 1
5. Начальный вклад в банке равен 1000 руб. Через каждый месяц размер
вклада увеличивается на P процентов от имеющейся суммы (P —
вещественное число, 0 < P < 25). По данному P определить, через
сколько месяцев размер вклада превысит 1100 руб., и вывести
найденное количество месяцев K (целое число) и итоговый размер
вклада S (вещественное число).
6. Даны целые положительные числа A и B. Найти их наибольший общий
делитель (НОД), используя алгоритм Евклида:
НОД(A, B) = НОД(B, A mod B), если B <> 0;
НОД(A, 0) = A.
7. Дано целое число N (> 1). Последовательность чисел Фибоначчи FK
определяется следующим образом:
F1 = 1,
F2 = 1,
FK = FK–2 + FK–1, K = 3, 4, … .
Проверить, является ли число N числом Фибоначчи.
8. Вычислить произведение элементов ряда:
1
2
50
P  (  cos | x |)(  cos 2 | x |)...(  cos 50 | x |)
2
3
51
9. Вычислить сумму элементов ряда:
3
5
7
13
x
S   x  x  x  ...  x
1! 3! 5! 7!
13!
Задание №3
0. Дано целое число N (> 2) и набор из N вещественных чисел. Набор
называется пилообразным, если каждый его внутренний элемент либо
больше, либо меньше обоих своих соседей (то есть является «зубцом»).
Если данный набор является пилообразным, то вывести 0; в противном
случае вывести номер первого элемента, не являющегося зубцом.
1. Дан массив ненулевых целых чисел размера N. Проверить, образуют ли
его элементы геометрическую прогрессию (A, A·D, A·D2, A·D3,
первый член A и знаменатель D геометрической прогрессии). Если
образуют, то вывести знаменатель прогрессии, если нет — вывести 0.
21
2. Дано целое число N и набор из N целых чисел, содержащий по крайней
мере два нуля. Вывести сумму чисел из данного набора,
расположенных между последними двумя нулями.
3. Дан массив размера N. Найти максимальный из его локальных
минимумов (локальный минимум — это элемент, который меньше
любого из своих соседей).
4. Дан массив размера N. Найти количество его промежутков
монотонности (то есть участков, на которых его элементы возрастают
или убывают).
5. Дан массив размера N. Найти количество его промежутков
монотонности (то есть участков, на которых его элементы возрастают
или убывают).
6. Дан целочисленный массив размера N. Вывести все содержащиеся
в данном массиве нечетные числа в порядке убывания их индексов,
а также их количество.
7. Дан массив ненулевых целых чисел размера N. Проверить,
чередуются ли в нем положительные и отрицательные числа. Если
чередуются, то вывести 0, если нет, то вывести порядковый номер
первого элемента, нарушающего закономерность.
8. Дан
целочисленный
массив
размера N.
Если
он является
перестановкой, то есть содержит все числа от 1 до N, то вывести 0;
в противном случае вывести номер первого недопустимого элемента.
9. Дан целочисленный массив размера N. Проверить, чередуются ли в нем
четные и нечетные числа. Если чередуются, то вывести 0, если нет,
то вывести порядковый номер первого элемента, нарушающего
закономерность.
Задание №4
0. Вычислить определённый интеграл
2
 x 1 

sin

 



dx

1x


1
методом трапеций. Проверочное значение: 0.4015754667.
22
1. Найти корень нелинейного уравнения:
3Sin x  0.35x  38
. 0
с заданной точностью 0,001, методом простых итераций, отрезок
локализации корня [2; 3]. Проверочное значение: 18.84416595.
2. Найти корень нелинейного уравнения:
3x1.897366596 x2 0
с заданной точностью 0,001, методом дихотомии, отрезок локализации
корня [-1; 0]. Проверочное значение: -0.3563204154.
3. Вычислить определённый интеграл
2
  2  1 
( 1  x )
 e

e
dx


1
x
методом прямоугольников. Проверочное значение: 18.51121488.
4. Найти корень нелинейного уравнения:
x 4  2 x 3  0.5 x 2  0
с заданной точностью 0,001, методом хорд, отрезок локализации корня [3; -1]. Проверочное значение: -2.102150473.
5. Вычислить определённый интеграл
2
 1  x

 ( x 1 ) d x

 2
1
методом трапеций. Проверочное значение: -0.07983424249
6. Вычислить определённый интеграл
3
2

  2 sin( x ) d x


x 1


2
23
методом Симпсона. Проверочное значение: -0.2543967954.
7. Найти корень нелинейного уравнения:
ln ( x 2 )  x 10  0
с заданной точностью 0,001, методом дихотомии, отрезок локализации
корня [5; 8]. Проверочное значение: 7.725272129.
8. Вычислить определённый интеграл


2


1


dx


 2  cos  2 x 


4 


методом прямоугольников. Проверочное значение: 0.6831206307.
9. Найти корень нелинейного уравнения:
e
( x 2  1 )

2x
 0
x 1
с заданной точностью 0,001, методом дихотомии, отрезок локализации
корня [0; 1]. Проверочное значение: 0.1586959842.
24
Задания к контрольной работе №2
Задание №1
0. Дана строка. Если она представляет собой запись целого числа,
то вывести 1, если вещественного (с дробной частью) – 2; если строку
нельзя преобразовать в число, то вывести 0. Считать, что дробная часть
вещественного числа отделяется от его целой части десятичной
точкой «.».
1. Дана строка, содержащая, по крайней мере, один символ пробела.
Вывести подстроку, расположенную между первым и вторым
пробелом исходной строки. Если строка содержит только один пробел,
то вывести пустую строку.
2. Дана строка, изображающая целое положительное число. Вывести
сумму цифр этого числа.
3. Дано целое положительное число. Вывести символы, изображающие
цифры этого числа (в порядке справа налево).
4. Дана строка, содержащая полное имя файла, то есть имя диска, список
каталогов (путь), собственно имя и расширение. Выделить из этой
строки расширение файла (без предшествующей точки).
5. Дана строка, состоящая из слов (словом считать группу символов,
начинающуюся и заканчивающуюся пробелом). Вывести слова,
содержащие численные значения.
6. Дана строка, состоящая из слов (словом считать группу символов,
начинающуюся и заканчивающуюся пробелом, или знаками
препинания). Вывести самое длинное слово.
7. Дана строка, состоящая из слов (словом считать группу символов,
начинающуюся и заканчивающуюся одним или несколькими
пробелами). Вывести строку, содержащую эти же слова, разделенные
одним символом «.» (точка). В конце строки точку не ставить.
8. Дана строка, состоящая из слов (словом считать группу символов,
начинающуюся и заканчивающуюся одним или несколькими
пробелами). Вывести количество символов в каждом слове.
9. Дана строка, содержащая полное имя файла. Выделить из этой строки
название последнего каталога (без символов «\»). Если файл
содержится в корневом каталоге, то вывести символ «\».
25
Задание №2
0. Дано несколько матриц с различным количеством столбцов и строк.
При помощи процедуры поменять в каждой из них местами два
столбца, указанные пользователем.
1. Дан символ C и строка S. Удвоить каждое вхождение символа C
в строку S. Поиск символа в строке выполнять с помощью функции,
возвращающей номер позиции следующего вхождения символа С в
строку S.
2. Описать процедуру, которая формирует по данной строке S массив W
слов, входящих в S (массив W и его размер N являются выходными
параметрами). Словом считается набор символов, не содержащий
пробелов и ограниченный пробелами или началом/концом строки;
предполагается, что строка S содержит не более 10 слов. Используя эту
процедуру, найти количество слов N, содержащихся в данной строке S,
и сами эти слова.
3. Описать процедуру, формирующую для вещественного массива A
размера N индексный массив I — массив целых чисел того же размера,
содержащий номера элементов массива A в том порядке, который
соответствует возрастанию элементов массива A (сам массив A
при этом не изменяется). Индексный массив I является выходным
параметром. С помощью этой процедуры создать индексные массивы
для массивов A, B, C размера NA, NB, NC соответственно
4. Задан одномерный массив А. Вставить указанное пользователем число
в указанные пользователем позиции в массиве. Вставку в массив
одного элемента выполнить при помощи процедуры.
5. Описать функцию, возвращающую по времени T (в секундах) строку в
виде HH:MM:SS, где HH количество часов, ММ количество минут и SS
количество секунд во временном отрезке. Используя эту функцию,
получить результат для пяти данных отрезков времени T1, T2, …, T5.
6. Задан одномерный массив А (a1, …, a30). Получить массив B (b1, …,
,30), заполнив его индексами чётных элементов массива А. Поиск
очередного чётного элемента выполнять при помощи функции.
7. Описать функцию, находящую длину отрезка AB на плоскости
по координатам его концов: |AB| = ((xA – xB)2 + (yA – yB)2)1/2 (xA,
yA, xB, yB — вещественные параметры). С помощью этой функции
найти периметр фигуры, заданной координатами точек A, B, C, D.
8. В двумерном массиве проивольного размера вычислить сумму
элементов в каждом столбце и каждой строке. Вычисление суммы в
строке, столбце выполнить при помощи одной процедуры.
26
9. Описать процедуру, выполняющую транспонирование (то есть
зеркальное отражение относительно главной диагонали) квадратной
вещественной матрицы A произвольного размера. Транспонировать с
помощью этой функции несколько массивов.
Задание №3
0. Дан файл целых чисел. Создать два новых файла, первый из которых
содержит положительные числа из исходного файла (в обратном
порядке), а второй — отрицательные (также в обратном порядке). Если
положительные или отрицательные числа в исходном файле
отсутствуют, то соответствующий результирующий файл оставить
пустым.
1. Дана действительная квадратная матрица порядка А (nn). Сохранить в
файл ненулевые элементы матрицы. Предусмотреть просмотр таких
файлов с полным восстановлением исходной матрицы.
2. Разработать мини записную книжку: Имя, Адрес, Телефон. Данные
должны быть сохранены в файл. Предусмотреть возможность
просмотра файлов с данными записной книжки и добавление в файл
новых записей.
3. Протабулировать функцию Y(x) на заданном пользователем отрезке с
указанным пользователем шагом.
Предусмотреть возможность сохранения полученной таблицы в файл и
просмотра файлов с такими таблицами.
4. Сохранить в файл три одномерных массива разной размерности,
заданные пользователем. Предусмотреть возможность просмотра
содержимого таких файлов с полным восстановлением каждого из
массивов.
5. Дан файл вещественных чисел. Заменить в файле каждый элемент,
кроме начального и конечного, на его среднее арифметическое
с предыдущим и последующим элементом.
6. Дан файл целых чисел. Удалить из него все элементы, расположенные
на позициях с четными номерами.
27
7. Дан файл целых чисел. Удвоить его размер, записав в конец файла все
его исходные элементы (в обратном порядке).
8. Разработать программу сохранения в файл двумерного массива
произвольной размерности, задаваемой пользователем. Предусмотреть
возможность просмотра содержимого таких файлов с полным
восстановлением содержащихся в них массивов.
9. Дан файл целых чисел. Заменить в нем каждый четный элемент на два
нуля.
28
Список рекомендуемой литературы
1. Зуев, Е. А. Turbo Pascal. Практическое программирование. / Е. А. Зуев
– М.: Приор, 1997.
2. Епанешников, А.М. Программирование в среде TURBO PASCAL 7.0 /
А.М. Епанешников, Епанешников В.А. – М. “Диалог”-”МИФИ, 2000.
3. Гусева, А. И. Учимся программировать: PASCAL 7.0. Задачи и методы
их решения. / А. И. Гусева М.: Диалог-МИФИ, 1995.
4. Офицеров, Д. А. Программирование на персональных ЭВМ. / Д. А.
Офицеров, [и др.] – Минск: ВШ, 1993.
5. Демидович, Б. П. Основы вычислительной математики. / Б. П.
Демидович, И. А. Марон – М.: Наука, 1970.
6. Турчак, Л. И. Основы численных методов. / Л. И. Турчак – М.: Наука,
1987.
7. Мудров, А.Е. Численные методы решения для ПЭВМ на языках
Бейсик, Фортран, Паскаль. / А. Е. Мудров – Томск: МП «Раско», 1991.
8. Borland Pascal. Руководство пользователя [Электронный ресурс] –
2000. – Режим доступа:
http://citforum.ru/programming/bp70_ug/index.shtml
9. Математика и информатика. [Электронный ресурс] – 2006. – Режим
доступа: http://do.rksi.ru/library/courses/mathinf/l
10.Основы алгоритмизации и программирования [Электронный ресурс] –
2006. – Режим доступа: http://256bit.ru/informat/index11.htm
11.Информационный сервер для программистов. Исходники со всего
света [Электронный ресурс] – 2006. – Режим доступа:
http://pascal.sources.ru/math/index3.htm
29
Download