Файл: Алгоритмизация как обязательный этап разработки программы.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.04.2023

Просмотров: 68

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Ниже приведены блок-схема алгоритма и листинг программы на языке Паскаль.

истина

Ввод a, b, eps

x= (a + b)/2,i=0

F (x) =

F(x) =0

Abs (F(x))<eps

F(x)*F (a)>0

x: = b

x = (a + b)/2,i=i+1

конец

Печать x,i

x: = a

истина

истина

ложь

ложь

ложь

Program lab3;

function f1 (x: real): real;

begin

f1:=cos(0.2*x*x-2);

end;

var

x,a,b,e: real;

iteraz: integer;

begin

write ('Input a = '); readln (a);

write ('Input b = '); readln (b);

write ('Input e = '); readln (e);

iteraz:=0;

x:=(a+b)/2;

while (f1(x)<>0) and (abs(a-b)>e) do

begin

x:=(a+b)/2;

iteraz:=iteraz+1;

if (f1(a)*f1(x))<0 then b:=x

else a:=x;

writeln ('n=', iteraz,' x=', x:3:6,' f(x)=', f1(x):3:6);

end;

readln;

end.

Решение этой задаче было проведено и в MS Excel. Лист с решением задачи и ответом приведен ниже.

Задача 13.

Вычислить определенный интеграл методом прямоугольников: или трапеций, на выбор.

, , , , с точностью .

Формула метода прямоугольников:

Формула метода трапеций: .

9

-3π

0

РЕШЕНИЕ

Алгоритм метода трапеций заключается в следующем:

  1. Отрезок [a, b] разбивается на n равных частей.
  2. Интеграл представляет собой площадь криволинейной трапеции, ограниченной осью OX, прямыми x=a и x=b и графиком функции. Очевидно, что интеграл от функции на отрезке равен сумме интегралов от этой же функции на каждом из маленьких отрезков, полученных в результате разбиения. Но на каждом из маленьких отрезков мы приближенно заменяем площадь криволинейной трапеции на площадь прямолинейной трапеции с основанием (высотой), равным длине маленького отрезка, и высотами (основаниями) f(xn) и f(xn+1), где xn – левая граница отрезка, xn+1 – правая граница отрезка. Основание (высота трапеции) равно
    (b-a)/n, и таким образом площадь трапеции равна
    (f(xn)+f(xn+1)) (b-a)/2n. У нас всего n трапеций, причем каждые две соседние трапеции имеют одинаковые высоты (основания). Таким образом, в сумму каждое из f(xn) кроме f(a) и f(b) войдет дважды, и таким образом весь интеграл вычисляется как , где .
  3. В методе трапеций не определен шаг (количество отрезков разбиения). Очевидно, что чем больше количество отрезков, тем более точным будет результат. Поэтому, задаем начальное значение n (например n=10) и вычисляем интеграл.
  4. После этого удваиваем n и снова вычисляем интеграл (п. 2). Сравнивая полученные результаты, делаем вывод, достигнута ли требуемая точность.
  5. Если результаты отличаются друг от друга меньше чем на ε, то требуемая точность достигнута. Если нет, то снова удваиваем n и вычисляем интеграл еще раз (возвращаемся к п. 4).

Ниже представлена блок-схема алгоритма и листинг программы.

a=-3∙ pi,b=0,n=10,e=0.001

f(x)=

S:=0,h:=(b-a)/n,x:=a

i=1,n,1

S:=S+h* (f(x)+f(x+h))/2,x:=x+h

S1=S,n=2*n,x:=a,h:=(b-a)/n

i=1,n,1

S:=S+h* (f(x)+f(x+h))/2,x:=x+h

|S1-S|<e

ложь

истина

Печать S,n

program pr4;

uses crt;

var

h,a,b,S,dS,P,x,eps:real;

n,i:integer;

function f(x:real) : real;

begin

f:=0,1*sin(0.1*x+0.0025*x*x)/cos(0.1*x+0.0025*x*x);

end;

begin

clrscr;

writeln('input a,b,n,eps, please');

write('a');

readln(a);

write('b');

readln(b);

write('n');

readln(n);

write('eps');

readln(eps);

s:=0;

repeat P:=S;

h:=(b-a)/2;

S:=0;

x:=a;

for i:= 1 to n do

begin

x:=x+h;

S:=S+f(x);

end;

S := S*h;

write('n=',n:3,' h=',h:12:9);

n:=n*2;

until abs(P-S)/(s*100)<eps;

writeln;

writeln('Result S=',S:10:6,' dS=',dS:12:9);

writeln;

writeln('Process ended');

writeln('Press any key to exit');

repeat until keypressed;

end.

Данная задача была решена также в MS Excel. Лист с решением задачи приведен ниже. Требуемая точность была достигнута при n=10.

Задача 14.

Дана прямоугольная матрица Ci, j, размером . Если данная матрица является квадратной, найти сумму элементов главной диагонали, в противном случае найти сумму всех членов матрицы.

РЕШЕНИЕ

Составим схему алгоритма.

начало

m, n

i= 1 до m

j= 1 до n

C

m = n

«прямоугольная»

«квадратная»

S = 0

i = 1 до m

S = 0

i = 1 до m

j = 1 до n

j = i

S = S + C

S = S + C

S

конец

Program Lab_5;

uses crt;

var

i,j,m,n:integer;

b,a : array[1..10,1..10] of real;

s : real;

begin

clrscr;

write ('chislo stolbcov n='); Readln(n);

write ('chislo strok m='); readln (m);

begin

if m=n then

s:=0;

for i := 1 to n do

begin

for j := 1 to m do

begin

write('a[',i,',',j,']='); readln(a[i,j]);

end;

writeln;

end;

begin

if i=j then s:=s+a[i,j];

writeln(s:6:3);

end;

if i<>j then

begin

s:=0;


for i := 1 to n do

begin

for j := 1 to m do

begin

s:=s+a[i,j];

end;

writeln(s:6:3);

end;

end;

readln;

end;

end.

Данная задача была решена также в MS Excel. Лист с решением задачи приведен ниже.

Вывод

При выполнения курсовой работы я научился разрабатывать, обоснование, представление, анализ и тестирование.

1) Разработка – должна осуществляться в соответствии с принципом структурного проектирования (пошаговая детализация) Структурное проектирование – это методология разработки алгоритма, представляющая их как совокупность модулей. Основные принципы структурного проектирования(СП):1. Принцип разделения. – алгоритм делится на модули, причём модуль — это простой независимый фрагмент алгоритма, физически и логически отделённый от других, реализующий одну часть задачи, допускающий независимую проверку. 2. Принцип пошаговой детализации алгоритма – задача разбивается на отельные подзадачи и у каждой подзадачи свой алгоритм, если подзадача отказывается сложной, она опять делиться на под-подзадачи, до тех пор, пока подзадачи не оказываться простыми для реализации.2) Обоснование предполагает доказательство того, что алгоритм эффективный.3) Представление – это запись алгоритма на конкретном языке программирования, либо в виде схемы. Существует 3 способа представления алгоритма.1. Словесное представление – описание алгоритма по пунктам.2. Алгоритмическое представление (на языке программирования).3. Структурная схема алгоритма.4) Анализ и тестирование – этот этап означает доказательство правильности алгоритма и его тестирование на различных наборах данных. Ошибки в алгоритмах бывают 2х типов:1. Синтаксические – неверная запись команды.2. Логические ошибки – для решения выбран неправильный путь. Тестирование алгоритма – процесс тестирование алгоритма с целью найти в нём баги. Задача тестирование – это найти компромиссное решение, тесть минимальный набор тестовых данных для нахождения максимального количества ошибок. Правило оформление схемы алгоритма описаны в ГОСТе 10.701-90 имеется 3 этапа символов.

1. Предопределённый 2. Пояснительный текст 3. Соединительные линии.

1) К предопределённы относятся основные символы (когда не известен вид или тип процесса, или носителя), и специфические, когда известен точный вид.

Схема – это графическое представление метода решения задач, в котором используются графическое символы, для отображения операций данных и так далее.