Лекция 5 (8 лекций в ворде), страница 2
Описание файла
Файл "Лекция 5" внутри архива находится в папке "Lection 5". Документ из архива "8 лекций в ворде", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "информатика" в общих файлах.
Онлайн просмотр документа "Лекция 5"
Текст 2 страницы из документа "Лекция 5"
поэтому условие выхода из цикла
или условие продолжения цикла
С хема алгоритма уточнения корня алгебраического уравнения методом половинного деления приведена на рис. 5.13. В результате выполнения такого алгоритма выводится значение корня (с заданной погрешностью), а также значение функции f(x), которое очень близко к нулевому значению и может быть использовано для контроля правильности полученного результата.
y
f(z)
-
a
x* z b
f(a)
a)
y
y=f(x)
0 a x*
f(z) z b x
f(a)
b)
Рис. 5.12 Графическая иллюстрация
метода половинного деления
Метод касательных
Для обеспечения сходимости метода касательных (метода Ньютона) необходимо, чтобы производные f' (x) и f" (x) были определены, непрерывны и сохраняли постоянные знаки на отрезке [a, b]. На рис. 5.14 представлена геометрическая интерпретация метода Ньютона.
Выберем некоторую точку x0 на отрезке [a, b] и проведем касательную к кривой y=f(x) в точке P0(x0, y0). Ее уравнение
y = y0 + f' (x0)(x–x0),
где y0 = f(x0).
Новое приближение корня х1, равно абсциссе точки пересечения касательной с осью абсцисс, т. е.
y
y0
y1
y2
Выберем некоторую точку x0 на отрезке [a, b] и проведем касательную к кривой y=f(x) в точке P0(x0, y0). Ее уравнение
y = y0 + f' (x0)(x–x0),
где y0 = f(x0).
Новое приближение корня х1, равно абсциссе точки пересечения касательной с осью абсцисс, т. е.
Проведя касательную через точку P1(x1, y1), получим второе приближение корня x2. Вычисление приближений корня по формуле
продолжается до выполнения неравенства
где ε – абсолютная погрешность определения корня уравнения.
Начальное приближение х0 выбирают таким образом, чтобы выполнялось условие
В противном случае сходимость метода Ньютона не гарантируется. На практике выбирают x0 = a или x0 = b, в зависимости от того, в какой из этих точек выполняется указанное условие. Схема алгоритма уточнения корня методом Ньютона (методом касательных) приведена на рис. 5.15.
Алгоритмы обработки массивов
Определение минимального элемента в массиве.
Задача нахождения минимума (или максимума) в массиве из 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 Алгоритм подсчета количества слов в строке и их вывод
Алгоритм обработка записей
Пусть имеются некоторые данные о заводах города, сведенные в следующую таблицу:
Завод | Основные сведения | ||||
Зани-маемая площадь | Объем выпускаемой продукции | Количество обслуживающего персонала | |||
по плану | факти-чески | с высшим образованием | со средним образованием | ||
АЗЛК ВАЗ ЗИЛ ИЖ | 800 396 203 544 | 484,9 348,5 384,3 667,3 | 484,9 348,7 399,4 701,3 | 282 130 448 396 | 204 669 125 157 |
Всего |
Необходимо описать массив записей, содержащий данную информацию, произвести расчет и заполнить итоговую строку, вывести результат.
Для решения задачи следует обеспечить ввод массива записей, эхо-печать введенных данных, накопление суммы по каждому полю записи для формирования итоговой строки таблицы и вывод полученного результата. Общий вид схемы алгоритма представлен на рис. 5.22.
Рис. 5.22 Алгоритм обработки массива записей
21