Отчет(15)2. Программирование циклических вычислительных процессов
![]()
|
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() «Академия гражданской защиты» Министерство по делам гражданской обороны, Чрезвычайным ситуациям и ликвидации последствий стихийных бедствий Донецкой_Народной_Республики_Отчет_по_лабораторной_работе_№_2_По_дисциплине_«Информатика»'>Донецкой Народной Республики Отчет по лабораторной работе № 2 По дисциплине «Информатика» На тему: «Программирование циклических вычислительных процессов» Вариант № 15 Подготовил студент Группы ЗЧС-18в Рязанцев М. И. Проверил: доцент, канд. техн. наук Зензеров В.И. Донецк 2018
Описание алгоритма После ввода a, Xn, Xk, ![]() Для вычисления значений переменной t проверяем область допустимых значений соответствующей функции. В данной функции присутствует ряд ограничений ![]() ![]() Для подсчета значений произведения и суммы требуется проверить условие ![]() В конце каждой итерации увеличиваем значение параметра цикла на шаг и все действия, составляющие тело цикла, повторяются до тех пор, пока параметр цикла не достигнет своего конечного значения. Как только условие работы цикла перестанет выполняться, цикл завершает свою работу и управление передается оператору, следующему за оператором цикла. На последнем этапе работы алгоритма выполняется вывод значений переменных K, P, S. Вывод выполняется за циклом, поскольку нас интересует итоговое значение каждой из переменных K, P, S, а не процесс их накопления. Блок-схема алгоритма решения задачи приведена на рисунке. procedure TForm1.Button1Click(Sender: TObject); var S,P,x,t,a,b,Xn,Xk,dX :real; N,i,K:integer; begin a:=StrToFloat(Edit1.Text); b:=StrToFloat(Edit2.Text); Xn:=StrToFloat(Edit3.Text); Xk:=StrToFloat(Edit4.Text); dX:=StrToFloat(Edit5.Text); x:=Xn; K:=0; S:=0; P:=1; N:=trunc((Xk-Xn)/dX)+1; StringGrid1.RowCount:=N+1; StringGrid1.Cells[0,0]:='x'; StringGrid1.Cells[1,0]:='t'; i:=1; Repeat if (x>0) and (b+x>0) and (a+ln(b+x)<>0) then begin t:=((a+b/x)*sqrt(x))/sqr(a+ln(b+x)); StringGrid1.Cells[0,i]:=FloatToStr(x); StringGrid1.Cells[1,i]:=FloatToStr(t); K:=K+1; begin if t<1 then P:=P*t else S:=S+t; end ; end else begin ![]() StringGrid1.Cells[0,i]:=FloatToStr(x); StringGrid1.Cells[1,i]:='t не определено'; end; x:=x+dX; i:=i+1; Until x>Xk; Edit6.Text:=IntToStr(K); Edit7.Text:=FloatToStr(P); Edit8.Text:=FloatToStr(S); end; end. Конец Вывод K, P, S ![]() ![]() t не определено x=Xn K=0, S=0, P=1 Ввод a, b, Xn, Xk, ![]() авв Начало Цикл с постусловием - + ![]() ![]() ![]() ![]() - + + - Вывод x, t ![]() ![]() a+ln(b+x) ![]() b+x>0 Цикл с предусловием - + ![]() ![]() ![]() ![]() + ![]() Вывод x, y ![]() a+ln(b+x) ![]() b+x>0 - - + Конец Вывод K, P, S t не определено ![]() ![]() K=0, S=0, P=1 x=Xn Ввод a, b, Xn, Xk, ![]() авв Начало Цикл по перечислению + - ![]() ![]() ![]() ![]() - + ![]() a+ln(b+x) ![]() b+x>0 Вывод x, t ![]() t не определенo ![]() ![]() ![]() K=0, S=0, P=1 Ввод a, b, Xn, Xk, ![]() авв Начало Конец Вывод K, P, S 1> |