Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы компьютерных наук. Ч.1. Учебное пособие
.pdf
Начало / Конец
Действие
Ввод / Вывод
Начало цикла
Условие
rang(A) = n:
если условие выполняется, то на экран выводится
сообщение о том, что система уравнений имеет одно
решение;
если условие не выполняется, то на экран выводится
сообщение о том, что система имеет бесконечное
множество решений;
2) если условие не выполняется, то на экран выводится
сообщение о том, что система решений не имеет.
6. Завершение выполнения алгоритма.
Вывод — в данном примере было рассмотрено решение задачи
определения количества решений системы уравнений с
использованием теоремы Кронекера – Капелли. Была построена блоксхема полученного алгоритма и дано его словесное описание.
Таблица 15. Элементы блок-схемы для практического занятия № 8
Задачи для самостоятельного выполнения
Задание: по аналогии с приведенным примером решить задачу
(построить блок-схему, дать словесное описание построенного
алгоритма). Подробно расписать этап преобразования расширенной
матрицы в матрицу, удобную для расчета ранга. Для этого
использовать (табл. 14):
вариантам 1, 4, 7, 10 – цикл for;
вариантам 2, 5, 8 – цикл while;
71

вариантам 3, 6, 9 - цикл until.
А также привести письменное решение, доказывающее верность
определения количества решений разработанным алгоритмом.
6.8. Практическое занятие № 8. Сложные задачи
Цель занятия — научиться строить алгоритмы для решения
сложных задач, комбинирующих в себе различные типы алгоритмов.
Данное практическое занятие посвящено решению задач,
связанных с датами (табл. 15).
Для работы с датами основными являются следующие
алгоритмы:
1) проверка правильности введенной даты;
2) определение дня недели введенной даты;
3) алгоритм сложения даты с целым числом;
4) алгоритм вычисления количества дней между двумя датами.
Очень важно определить операции сложения даты и переменной
целого типа, сравнения двух дат, а также операцию вычитания между
двумя датами, которая дает число дней между ними.
Дана дата d. Прибавить к ней число n.
Решение.
1. Исходные данные – дата в виде одномерного массива d, где d[0] -
день, d[1] - месяц, d[2] - год, прибавляемое число n.
2. Для решения поставленной задачи необходимо построить
алгоритм с двумя циклами с предусловием и несколькими
разветвлениями.
3. Решение задачи состоит:
1) в определении знака числа n;
2) в проведении вычислений в зависимости от номера месяца и
високосности года.
4. Блок-схема алгоритма решения данной задачи приведена на рис.
20 и 21 .
5. Из рис. 20 и 21 видно, что:
1) предусмотрен блок выдачи результатов вычисления;
2) после выполнения вычислений осуществляется переход к
блоку «Конец».
72

Рис. 20. Блок-схема части алгоритма, выполняющей сложение даты с
числом
Пример
Таким образом, был построен алгоритм вычисления по формуле
на основе принципов алгоритмизации. На рис.20 и 21 приведена блоксхема данного алгоритма. Словесно он описывается следующим
образом:
1. Начало выполнения алгоритма.
2. Ввод исходных данных — значения d и n.
73

0n
in
[1] 1d
Рис. 21. Блок-схема части алгоритма, выполняющей вычитание числа
из даты
3. Проверка условия
:
3.1. Если условие верно:
Переменная i устанавливается в 1.
Начало цикла с предусловием
:
Вычисление значения переменной b.
Проверка условия b:
Если условие выполняется (т.е. b присвоено значение true), то
значение d[0] увеличивается на 1.
Если условие не выполняется(т.е. b присвоено значение false),
то происходит проверка условия
.
Если условие верно, то к значению d[1] прибавляется 1, а
значение d[0] устанавливается в 1.
Если условие неверно, то значение d[2] увеличивается на 1,
74

in
[0] 1 0d
[0] 28 (d[2])d vis
[0] [ [0]]d dm d
№
вар.
Задача
1
Вычислить разность между 19 октября 2017 года и 28 мая 2001
года. Результат представить в годах, месяцах и днях
а значенияd[1] и d[0] устанавливаются в 1.
Значение переменной i увеличивается на 1.
Конец выполнения цикла.
3.2. Если условие не верно:
Переменная i устанавливается в 1.
Начало цикла с предусловием
Проверка условия -
.
:
Если условие верно, то значениеd[0]уменьшается на 1.
Если условие неверно:
Проверка значения d[1]:
Если d[1]=1, то значение d[2] уменьшается на 1, а
значениеd[1] устанавливается в 12, а d[0] устанавливается
в 31.
Если d[1]=2, то значениеd[1] устанавливается в 2, а
, где vis- функция, принимающая
значение 1, если год високосный, и 0 – в противном
случае.
В остальных случаях значениеd[1] уменьшается на 1, а
, где dm – число дней в месяце не
високосного года.
Значение переменной i увеличивается на 1.
1) Конец выполнения цикла.
4. Вывод значения d.
5. Завершение выполнения алгоритма.
Вывод — в данном примере было рассмотрено решение задачи,
комбинирующей в себе использование цикла с предусловием и
разветвляющихся алгоритмов.
Задачи для самостоятельного выполнения
Задание: по аналогии с приведенным примером решить задачу:
построить блок-схему, дать словесное описание построенного
алгоритма (табл. 16).
Таблица 16. Варианты заданий для практического занятия № 8
75

2
Определить, каким днем недели было 3 апреля 1986 года
3
Определить, через сколько лет, месяцев и дней наступит 31
августа 2199 года
4
Сформировать массив из всех високосных годов, кроме годов,
оканчивающихся на 6, находящихся в промежутке между
1800 и 2100 годами. Посчитать их количество
5
Вычислить, сколько времени прошло с начала Второй
мировой войны (5:30 1 сентября 1939 года). Результат
представить в годах, месяцах, днях, часах и минутах
6
Вычислить, сколько времени прошло между концом Первой
мировой войны (11 ноября 1918 года) и началом Великой
отечественной войны (22 июня 1941 года). Результат
представить в годах, месяцах и днях
7
Рассчитать, сколько длился 7206 год от сотворения мира, если
учесть, что год наступил 1 сентября, а закончился — 31
декабря. Результат представить в годах, месяцах и днях
8
Определить, сколько в текущем году пятниц
9
Определить, каким днем недели в текущем году является 1
сентября
10
Сформировать массив из годов, оканчивающихся на 9,
находящихся в промежутке между 1800 и 2100 годами, 1
января в которых не является субботой или воскресеньем
Таблица 16. Окончание
7. Вопросы к зачету
1. Вычислительные машины и вычислительные системы.
2. Уровни детализации структуры вычислительной машины.
3. Концепция вычислительной машины с хранимой в памяти
программой.
4. Архитектура ЭВМ. Принцип двоичного кодирования.
5. Архитектура ЭВМ. Принцип программного управления.
6. Архитектура ЭВМ. Принцип однородности памяти.
7. Архитектура ЭВМ. Принцип адресуемости памяти.
8. Фон-неймановская архитектура.
9. Типы структур вычислительных машин и систем.
10. Структуры вычислительных машин.
11. Структуры вычислительных систем.
12.Перспективы совершенствования архитектуры
вычислительных машин и вычислительных систем.
13.Тенденции развития больших интегральных схем.
76

14. Перспективные направления исследований в области
архитектуры вычислительных машин и вычислительных систем.
15. Оценка характеристик вычислительных машин.
16. Быстродействие.
17. Эффективность вычислительных машин.
18.Оценка эффективности вычислительных машин. Выделение
главного показателя.
19. Оценка эффективности вычислительных машин. Способ
последовательных уступок.
20. Оценка эффективности вычислительных машин. Отношение
частных показателей.
21. Оценка эффективности вычислительных машин. Аддитивная
форма.
22. Оценка эффективности вычислительных машин.
Мультипликативная форма.
23. Оценка эффективности вычислительных машин.
Максиминная форма.
24. Оценка эффективности вычислительных машин.
Нормализация частных показателей.
25. Оценка эффективности вычислительных машин.
Использование отклонения частного показателя от максимального.
26. Оценка эффективности вычислительных машин.
Использование безразмерной величины.
27. Оценка эффективности вычислительных машин. Учет
приоритета частных показателей.
28. Понятие алгоритма.
29. Свойства алгоритмов.
30. Блок-схемы.
31. Виды алгоритмов.
32. Основные принципы алгоритмизации.
33. Алгоритмы обработки массивов данных.
34. Виды массивов.
35. Сортировка элементов в массиве.
36. Сортировка обменом (метод «пузырька»).
37. Сортировка выбором.
38. Сортировка вставкой.
77

Библиографический список
1. Брукшир Дж., Гленн. Б. Введение в компьютерные науки.
Общий обзор. 6-е изд. : пер. с англ. М. : Вильямс, 2001. 688 с.
2. Орлов С. А., Цилькер Б. Я. Организация ЭВМ и систем:
учебник для вузов. 2-е изд. СПб.: Питер, 2011. 688 с.
3. Перова В.И., Сабаева Т.А., Чекмарев Д.Т. Разработка
алгоритмов для решения задач наЭВМ: учеб. пособие. Нижний
Новгород: Нижегородский госуниверситет, 2015. 136 с.
4. Чичко А. Н. Информатика. Практикум: учеб. пособие для
студентов высших учебных заведений по техническим специальностям
/ А. Н. Чичко, О. А. Сачек, О. И. Чичко. Минск: БНТУ, 2011. 398 с.
5. Левитин Ананий В. Алгоритмы: введение в разработку и
анализ.: пер. с англ. М.: Вильямс, 2006. 576 с.
6. Марманис Х., Бабенко Д.Алгоритмы интеллектуального
Интернета. Передовые методики сбора, анализа и обработки данных:
пер. с англ. СПб.: Символ-Плюс, 2011. 480 с.
7. Дасгупта С. и др.Алгоритмы / С. Дасгупта, Х. Пападимитриу,
У. Вазирани:пер. с англ. под ред. А. Шеня. М.: МЦНМО,2014. 320 с.
8. КорменТ., ЛейзерсонЧ., РивестР., ШтайнК. Алгоритмы.
Построение и анализ.3-е изд. М.: Вильямс, 2013. 1324 с.
9. Просвиркина Е.А., Кубышкина С.Н. Матрицы и
определители: практикум. 2-е изд. доп. и перераб. Самара: Самар. гос.
техн. ун-т, 2014. 64 с.
10. ГОСТ 15971-90 Системы обработки информации. Термины и
определения.
11. ГОСТ 19.701-90 (ИСО 5807-85) Единая система
программной документации (ЕСПД). Схемы алгоритмов, программ,
данных и систем. Обозначения условные и правила выполнения.
78

Оглавление
Введение ........................................................................................ 3
1. История вычислительной техники .......................................... 3
1.1. Основные определения ......................................................... 3
1.2. Уровни детализации структуры вычислительной машины 4
1.3. Эволюция средств автоматизации вычислений .................. 6
1.3.1. Нулевое поколение .......................................................... 6
1.3.2. Первое поколение ............................................................ 8
1.3.3. Второе поколение .......................................................... 10
1.3.4. Третье поколение .......................................................... 11
1.3.5. Четвертое поколение ..................................................... 13
1.3.6. Пятое поколение (1984–1990) ...................................... 14
1.3.7. Шестое поколение (1990-…) ........................................ 14
2. Архитектура ЭВМ .................................................................. 15
2.1. Концепция вычислительной машины с хранимой в памяти
программой ........................................................................................... 15
2.1.1. Принцип двоичного кодирования ................................ 15
2.1.2. Принцип программного управления ........................... 15
2.1.3. Принцип однородности памяти ................................... 16
2.1.4. Принцип адресуемости памяти .................................... 16
2.2. Фон-неймановская архитектура ................................ ......... 16
2.3. Типы структур вычислительных машин и систем ............ 19
2.3.1. Структуры вычислительных машин ............................ 19
2.3.2. Структуры вычислительных систем ............................ 21
2.4. Перспективы совершенствования архитектуры
вычислительных машин и вычислительных систем ......................... 22
2.4.1. Тенденции развития больших интегральных схем .... 22
2.4.2. Перспективные направления исследований в области
архитектуры вычислительных машин и систем ............................... 24
3. Оценка характеристик вычислительных машин .................. 25
3.1. Быстродействие ................................................................... 25
3.2. Эффективность вычислительных машин .......................... 28
3.2.1. Выделение главного показателя .................................. 28
3.2.2. Способ последовательных уступок ............................. 28
3.2.3. Отношение частных показателей ................................. 29
3.2.4. Аддитивная форма ........................................................ 29
3.2.5. Мультипликативная форма .......................................... 30
3.2.6. Максиминная форма ..................................................... 30
3.3. Нормализация частных показателей .................................. 30
79

3.3.1. Использование отклонения частного показателя от
максимального .................................................................................... 31
3.3.2. Использование безразмерной величины ..................... 31
3.4. Учет приоритета частных показателей .............................. 31
4. Алгоритмы и основы программирования. ............................ 32
4.1. Понятие алгоритма .............................................................. 32
4.2. Свойства алгоритмов ........................................................... 32
4.3. Блок-схемы ........................................................................... 33
4.4. Виды алгоритмов ................................................................. 34
4.5. Основные принципы алгоритмизации ............................... 37
5. Алгоритмы обработки массивов данных .............................. 38
5.1. Виды массивов ..................................................................... 38
5.2. Сортировка элементов в массиве ....................................... 39
5.2.1. Сортировка обменом (метод «пузырька») .................. 39
5.2.2. Сортировка выбором ..................................................... 40
5.2.3. Сортировка вставкой ..................................................... 40
6. Практическая часть................................................................. 41
6.1. Практическое занятие № 1. Основные принципы
алгоритмизации .................................................................................... 41
6.2. Практическое занятие № 2. Задачи на простые алгоритмы
............................................................................................................... 41
6.3. Практическое занятие № 3. Задачи на условия ................. 45
6.4. Практическое занятие № 4. Задачи на циклы с параметром
............................................................................................................... 49
6.5. Практическое занятие № 5.Задачи на циклы
с предусловием и постусловием ......................................................... 53
6.6. Практическое занятие № 6.Задачи с матрицами ............... 60
6.7. Практическое занятие № 7.Сложные задачи с матрицами.
............................................................................................................... 65
6.8. Практическое занятие № 8.Сложные задачи ..................... 72
7. Вопросы к зачету .................................................................... 76
Библиографический список ....................................................... 78
80
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
