
- •2. Три концепции информации, измерение информации, вероятностный и объемный подход. Показатели качества информации.
- •4. Системы счисления. Примеры задания чисел в различных системах счисления. Перевод целых и дробных чисел из десятеричной системы в 2-чную, 8-чную, 16-чную и обратно. Примеры.
- •6. Классификация эвм по принципу действия, по назначению, по этапам создания. Развитие элементарной базы и языков программирования.
- •7. Алгоритм, свойства алгоритмов и способы записи алгоритмов.
- •8. Технология разработки алгоритмов, метод пошаговой детализации, структурный подход. Базисные управляющие структуры. Примеры алгоритмов линейной, разветвляющейся и циклической структуры.
- •11. Ошибки. Классификация и виды ошибок, где появляются, где выявляются. Последовательность обнаружения ошибок. Методы устранения. Примеры.
- •12.Алгоритмы обработки данных. Итерационные алгоритмы вычисления суммы ряда, интегралов, нахождение корней уравнения.
- •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. Основные характеристики сетей.
- •39. Уровни модели взаимодействия открытых сетей. Задачи каждого уровня.
- •40. Сетевые протоколы, свойства протоколов.
- •41.Топология вс. Кольцо, шина, звезда. Преимущества и недостатки каждой из них.
- •42. Виды коммутации. Коммутация каналов, сообщений, пакетов. Преимущества и недостатки каждой из них.
11. Ошибки. Классификация и виды ошибок, где появляются, где выявляются. Последовательность обнаружения ошибок. Методы устранения. Примеры.
...Ошибки несовпадения результатов программы с тестами.
Накопление погрешностей результатов вычисления (некорректное отбрасывание дробных цифр чисел, некорректное использование приближенных методов вычисления, игнорирование использования разрядной сетки ЭВМ и тп)
Ошибки логики (семантические):
некорректное использование переменных (до инициализации, использование индексов, выходящих за границы массивов и тп.)
ошибки вычисления (некорректное использование целочисленной арифметики, незнание Приоритетов выполнения операций, деление на 0, извлечение корня из отриц. числа и тп)
ошибки межмодульного интерфейса (игнорирование системных соглашений при передаче параметров, нарушение области действия локальных и глобальных переменных и тп)
неправильная реализация алгоритма программы.
Семантические ошибки -- самые непредсказуемые ошибки, которые могут иметь разную природу, при этом часть из них обнаруживается ОС, а часть -- нет.
((синтаксические ошибки; семантические ошибки; логические ошибки.))
Лекция 3
12.Алгоритмы обработки данных. Итерационные алгоритмы вычисления суммы ряда, интегралов, нахождение корней уравнения.
Итерационные вычисления -- Вычисления, при которых на каждом шаге вычислений (на каждой итерации) мы все ближе подходим к решению. количество шагов (повторений цикла) при этом неопределенно и зависит от той точности, с которой необходимо произвести вычисления, т.е. используем циклы с условием.
Алгоритмы вычисления определенных интегралов.
Основу численных методов вычисления определенных интегралов составляет их геометрический смысл. Определенным интегралом
называют площадь криволинейной трапеции, ограниченную подынтегральной кривой, осью абсцисс и ординатами f(a) и f(b). На рис. 5.1 данная площадь заштрихована.
Рис. 5.1 Геометрический смысл
определенного интеграла
Метод прямоугольников.
метод, основанный на применении формулы прямоугольников. В этом случае подынтегральную функцию/кривую заменяют прямой, а формула для вычисления площади прямоугольника известна. Для повышения точности вычислений участок интегрирования [a, b] разбивается на n равных частей. Далее берутся значения подынтегральной функции в левых (или правых) концах полученных участков. При этом подынтегральная функция f(x) на отрезке [a, b] заменяется ступенчатой кривой (см. рис. 5.2), и приближенное значение интеграла определяется суммой площадей прямоугольников
где
y

В результате расчетов по формулам «слева» и «справа» получается приближенное значение интервала (с недостатком или с избытком), которое может отличаться от действительного на некоторую величину, называемую ошибкой ограничения. Эта ошибка определяется величиной остаточного члена ряда Тейлора:
В качестве примера на рис. 5.3 приведена схема алгоритма, реализующего вычисления по формуле прямоугольников «слева». Увеличение числа участков разбиения n приводит к повышению точности вычисления интеграла. Следует обратить внимание также на формирование условия выхода из цикла на рис. 5.3, добавление половины шага h в условие необходимо для избежания возможного сравнения на равенство двух вещественных значений x и b–h.
Алгоритм вычисления суммы бесконечного ряда
Характерным примером итерационных циклов является задача вычисления суммы бесконечного ряда:
где tn(x) – слагаемое, зависящее от параметра x (в общем случае) и номера n. Вычисляемая последовательность
где
– частная сумма.
Для контроля погрешности можно использовать последовательность
где tn(x) = sn(x) – sn-1(x) – слагаемые ряда n.
.
Условие выхода из итерационного цикла (справедливо при знакопеременном ряде {tn(x)}):
| tn ( x ) | < .
Алгоритм вычисления бесконечной суммы является модификацией одного из алгоритмов вычисления конечной суммы. Если применение рекуррентных формул нецелесообразно, то вычисления будут наиболее эффективными, если каждое слагаемое определять по общей формуле и полученные значения накапливать в некоторой переменной. Общий вид схемы алгоритма, реализующего вычисление бесконечной суммы с погрешностью с помощью цикла с предусловием, показан на рис. 5.10, а.
Если для вычисления слагаемых используются рекуррентные соотношения
то общая схема итерационного алгоритма для вычисления бесконечной суммы показана на рис. 5.10, б.
Например, тригонометрическая функция sin(x) может быть представлена в виде бесконечной суммы
В данном случае
тогда
Теперь можно определить
Начальное значение слагаемого находим по формуле
Алгоритм нахождения корней уравнений методом половинного деления.
Для нахождения корня уравнения f(x)=0, принадлежащего отрезку [a, b], делим отрезок пополам z=(a+b)/2.
Рассмотрим значения функции в точках x=a, x=z. Если f(a)*f(z)<0, то исходный отрезок [a,b] уменьшим в два раза путем переноса точки b в точку z. новый отрезок а-б вновь делим пополам и если f(a)*f(z)>0, то переносим точку a в точку z, уменьшая [a,b] в два раза. повторяем указанную процедуру до тех пор, пока длина отрезка, содержащего корень, не станет меньше заданной погрешности Эпсилон. Любое значение является искомым значением корня, однако на практике в качестве корня выбирают середину отрезка, т.е. x=(a+b)/2.
13. Алгоритмы обработки массивов, нахождение количества, суммы, произведения, минимума, максимума, сортировки. Алгоритм нахождения произведения матриц. Алгоритмы обработки строк, разбиение строки на слова, поиск слов в строке.
Алгоритмы обработки массивов
Определение минимального элемента в массиве.
Задача нахождения минимума (или максимума) в массиве из N элементов может быть решена последовательным сравнением "текущего" минимального (максимального) значения со значением очередного элемента массива и "запоминанием" при необходимости нового значения. Схема алгоритма показана на рис. 5.18.
Рис.
5.18 Алгоритм определения минимального
элемента массива
Сортировка массива.
Допустим, необходимо упорядочить массив из N элементов по возрастанию. Задача решается последовательным сравнением пар соседних элементов массива и при необходимости их перестановкой. Сравнение происходит при N-1 проходах по всему массиву. Схема алгоритма показана на рис. 5.19.
Рис. 5.19 Алгоритм сортировки массива методом пузырька
Произведение матриц
Пусть необходимо найти произведение двух матриц А и В размером 2х3 и 3х3 соответственно. Элементы результирующей матрицы С (размером 2х3) определяются по формуле
где n – число строк матрицы А;
m – число столбцов матрицы А и число строк матрицы В;
p – число столбцов матрицы В. В общем случае результирующая матрица имеет размер np. Схема алгоритма умножения двух матриц представлена на рис. 5.20.
Рис. 5.20 Алгоритм умножения матриц
Алгоритм обработки строк
Пусть дана строка символов, группы символов в ней между одним или несколькими пробелами считаются словами. Подсчитать, сколько слов содержит строка, и вывести каждое из них на отдельной строке.
При решении задачи следует обратить внимание на следующую важную особенность. Если бы слово от слова отделялось только одним пробелом, то мы могли бы, посчитав количество пробелов, вычислить количество слов. В нашем случае необходимо перед каждым определением слова в строке удалять из нее первые пробелы и выделять слово до следующего пробела. После выделения слово удаляется из строки. Для выделения последнего слова строки, если в конце строки нет пробелов, за слово будет считаться оставшаяся часть строки.
Схема алгоритма решения данной задачи приведена на рис. 5.21. При этом алгоритм удаления пробелов в начале строки оформлен в виде процедуры, а выделения слова – в виде функции.
Рис. 5.21 Алгоритм подсчета количества слов в строке и их вывод