![]()
Главная Обратная связь Дисциплины:
Архитектура (936) ![]()
|
Описание операций, их классификация и приоритет
Решение задачи Коши. Метод Эйлера. Если задачу об отыскании решений дифференциального уравнения удаётся свести к конечному числу алгебраических операций, операций дифференцирования и интегрирования известных функций, то говорят, что дифференциальное уравнение интегрируется в квадратурах. В приложениях крайне редко встречаются уравнения. интегрируемые в квадратурах. Для исследования и решения уравнений, которые не интегрируются в квадратурах, используются численные методы решения задачи Коши.
Численное решение задачи Коши y' = f(x, y), y(a) = y0 на отрезке [a, b] состоит в построении таблицы приближённых значений y0, y1, ..., yi, ...,yN решения y = y(x), y(xi) ≈ yi , в узлах сетки a = x0< x1< ...< xi< ...< xN = b. Если xi = a + ih, h = (b-a)/N, то сетка называется равномерной.
Численный метод решения задачи Коши называется одношаговым, если для вычисления решения в точке x0 + h используется информация о решении только в точке x0. Простейший одношаговый метод численного решения задачи Коши — метод Эйлера. В методе Эйлера величины yi вычисляются по формуле : yi+1 = yi + h·f(xi, yi): y' = f(x, y), y(a) = y0 , x ∈ [a, b], xi = a + ih, h = (b-a)/N, i = 0,1 , 2, ..., N, y(xi)≈ yi , yi+1 = yi + h·f(xi, yi).
Для погрешности метода Эйлера на одном шаге справедлива оценка а для оценки погрешности решения на всём отрезке [a, b] справедливо Для практической оценки погрешности можно рекомендовать правило Рунге:производятся вычисления с шагом h — вычисляютcя значения y(h)i, затем производятся вычисления с половинным шагом h/2 — вычисляютcя значения y(h/2)i . За оценку погрешности вычислений с шагом h/2 принимают величину Если соединить точки (xi, yi) прямолинейными отрезками, получим ломаную Эйлера — ломаную линию, каждое звено которой с началом в точке (xi, yi) имеет угловой коэффициент, равный f(xi, yi).
Найти в каждой строке матрицы максимальный и минимальный элементы и поместить их на место первого и последнего элемента строки соответственно.
const nmax = 20;
var a: array[1..nmax, 1..nmax] of integer; n, m, i, j, jmin, jmax, t: integer;
begin repeat write('Enter n, m(n<=', nmax, '; m<=', nmax,'): '); readln(n, m); until (n in [1..nmax]) and (m in [1..nmax]); writeln('Source matrix'); for i := 1 to n do begin for j := 1 to m do begin a[i, j] := random(99); write(a[i, j]:4); end; writeln; end;
// дабы не было путаницы при перестановке, разделяем цикл: // сначала ищем и меняем минимум, потом максимум jmin := 1; jmax := 1; for i := 1 to n do begin for j := 2 to m do if a[i, j] < a[i, jmin] then jmin := j; t := a[i, 1]; a[i, 1] := a[i, jmin]; a[i, jmin] := t;
for j := 2 to m do if a[i, j] > a[i, jmax] then jmax := j; t := a[i, m]; a[i, m] := a[i, jmax]; a[i, jmax] := t; end;
writeln('New matrix'); for i := 1 to n do begin for j := 1 to m do write(a[i, j]:4); writeln; end; readln; end. Билет № 7 1)Операторы языка описывают некоторые алгоритмические действия, которые необходимо выполнить для решения задачи. Тело программы можно представить как последовательность таких операторов. Составной оператор - это последовательность произвольных операторов программы, заключенная в операторные скобки. Begin Условный оператор IF<условие>THEN<оператор1>0[ELSE<оператор2>] Условие – значение типа BOOLEAN или логическая операция. Если условие верно, выполняется оператор, или блок операторов, следующий за THEN, в противном случае выполняется блок операторов после ELSE, если он есть.
3)Операторы повторений А)Цикл с предопределенным числом повторений. For <переменная цикла>:=<начальное значение> To(DownTo) <конечное значение> Do <блок операторов> Переменная должна быть целого или перечислимого типа. При исполнении цикла переменная цикла изменяется от начального до конечного значения с шагом 1. Если стоит to, то переменная увеличивается, если downto – уменьшается. Б)Условный цикл с проверкой условия перед исполнением блока операторов. While <условие> Do <блок операторов> Блок операторов будет исполняться, пока условие имеет значение true. Необходимо, чтобы значение условия имело возможность изменения при исполнении блока операторов, иначе исполнение цикла не закончится никогда. В)Условный цикл с проверкой после выполнения блока операторов. Repeat <тело цикла> Until <условие> Блок операторов независимо от значения условия будет выполнен хотябы один раз. Цикл заканчивается, если после очередного исполнения блока операторов условие имеет значение true. Г)Оператор выбора одного из вариантов. Case <ключ выбора> Of <список выбора> Else <оператор> End; <ключ выбора> - выражение любого перечислимого типа, Билет 8 если встречается более "легкий" (с меньшим значением) элемент, то они меняются местами;
Стандартная процедураswapбудет использоваться и в остальных алгоритмах сортировки для перестановки элементов (их тип мы уточнять не будем) местами:
Сортировка вставками
Второй метод называется метод вставок., т.к. на j-ом этапе мы "вставляем" j-ый элемент M[j]в нужную позицию среди элементов M[1], M[2],. . ., M[j-1], которые уже упорядочены. После этой вставки первые j элементов массива M будут упорядочены. нц для j от 2 до Nпереместить M[j] на позицию i <= j такую, что M[j] < M[k] для i<= k < j и либо M[j] >= M[i-1], либо i=1 2.Метод Гаусса является наиболее оптимальным и быстрым решением систем линейный уравнений.
![]() |