Основные элементы блок-схем

Начало вычислительного процесса.                     Конец вычислений.

Начало
Конец

 


Блок обмена информацией;

ввод данных и вывод результатов.

 

Вычислительный блок;    

выполнение операции или группы

операций вычислительного процесса.

 

Алгоритмический блок;                                        Логический блок;

                                       выбор направления выполнения алгоритма

                                                                   в зависимости от условия.

 

 

Циклический блок;

организует многократное выполнение

вложенных блоков.

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

Программа -алгоритм решения задачи записанный на понятном машине языке в виде точно определенной последовательности операций - программы для ЭВМ. Составление программ (программирование) обычно производится с помощью промежуточного (алгоритмического) языка. В алгоритмах и программах для обозначения данных используются переменные, которым даются уникальные имена (идентификаторы). Алгоритмы будем представлять в виде блок-схем, а программы записывать на языке программирования MATLAB. Программа в MATLAB оформляется в виде М-файла и осуществляет необходимые операции над массивами. Массив представляет собой набор переменных с одним именем, одним типом и разными индексами. Каждая переменная называется элементом массива. Количество хранящихся в массиве элементов называется размером массива.

2
Блок-схема 1. Метод деления пополам

На блок-схеме 1 в верхней части показаны исходные значения переменных и правильныеответы, а в нижней части показаны еще раз исходные значения переменных и функция.

По блок-схеме 1 составлена программа. Она состоит из следующих частей:

GLAV главная управляющая функция, вызывает остальные по мере необходимости;

DATA содержит исходные данные, объявленные как глобальные переменные. Эти же переменные объявлены как глобальные в GLAV. После вызова в GLAV функции DATA эти переменные получают значения (инициируются);

fun_BS_1 функция осуществляющая вычисления в соответствии с блок-схемой 1;

f функция указанная в блок-схеме как f(x)=x2-5;

REPORT функция обеспечивающая вывод данных (результатов и дополнительной информации).

function DATA %исходные данные

global a b eps n_plot_dots; %глобальные переменные

a=2;

b=3;

eps=0.0001;%точность расчета

n_plot_dots=101;%количество точек графика

end

 

function [ fx ] = f(x)%функция корни f(x)=0 ищем

fx=x.^2-5;%поставлена точка для поэлемент. выполн.-я действий

end

 

function [ x, fx ] = fun_BS_1(a, b, eps)

fa=f(a);

for i=1:100 %цикл со счетчиком ограничивает нас 100 повторов

x=(a+b)/2;

if fa*f(x)<0

   b=x;

else

   a=x;

end % if

if abs(b-a)>eps %проверка условия прерывания цикла

   i %вывод числа выполненных итераций

   break %прерывание цикла

end% if

end % for i

x=(a+b)/2;

fx=f(x);

end % function

 

function GLAV_BS_1 %главная исполняемая программа

global a b eps x fx n_plot_dots;

DATA;%задаются исходные данные из файла DATA

[ x, fx ] = fun_BS_1(a, b, eps);%вызов функции

REPORT;%вызов вывода результатов

end

 

function REPORT %вывод результатов

global a b eps x fx n_plot_dots;

xmas=zeros(n_plot_dots);%задаем массив из нулей нужного

fmas=zeros(n_plot_dots);% размера

disp('Arguments');

disp(['a = ' num2str(a,'%10.5f') ]);%функция num2str

disp(['b = ' num2str(b,'%10.5f') ]);% преобразует число в

disp(['eps = ' num2str(eps,'%10.5f') ]);% строку символов,

disp('Results'); % указываем '%10.5f' формат вывода (число с

disp(['x = ' num2str(x,'%10.5f') ]);% заданным количеством

disp(['fx = ' num2str(fx,'%10.5f') ]);%знаков после запятой

h=(b-a)/(n_plot_dots-1);

for i=1:n_plot_dots

if i==1

   xmas(i)=a;

else

   xmas(i)=xmas(i-1)+h;

end %if

fmas(i)=f(xmas(i));

end

disp(' i         x           fx '); 

disp('_____________________________')

i=0;

for i=1:length(xmas)%вывод таблицы результатов, строки

xx=xmas(i);%формируются командой sprintf, указаны

ffx=fmas(i);%форматы вывода перемнных и табуляция между

disp(sprintf('%10.3f\t%10.3f\t %10.3f',i,xx,ffx));%ними

end %for

plot(xmas,fmas,'r.');%вывод графика функции

grid on;

xlabel('x');

ylabel('y');

title('Block shem #1');

end

 



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: