Главная страница
Навигация по странице:

  • «Академия гражданской защиты» Министерство по делам гражданской обороны, Чрезвычайным ситуациям и ликвидации последствий стихийных бедствий

  • Донецкой Народной Республики Отчет по лабораторной работе № 2 По дисциплине «Информатика»

  • Донецк 2018

  • Цикл с постусловием

  • Цикл с предусловием

  • Цикл по перечислению

  • Отчет(15)2. Программирование циклических вычислительных процессов


    Скачать 245.07 Kb.
    НазваниеПрограммирование циклических вычислительных процессов
    Дата25.11.2018
    Размер245.07 Kb.
    Формат файлаdocx
    Имя файлаОтчет(15)2.docx
    ТипДокументы
    #57630

    Государственное Образовательное учреждение профессионального образования

    «Академия гражданской защиты» Министерство по делам гражданской обороны,

    Чрезвычайным ситуациям и ликвидации последствий стихийных бедствий

    Донецкой_Народной_Республики_Отчет_по_лабораторной_работе_№_2_По_дисциплине_«Информатика»'>Донецкой Народной Республики

    Отчет по лабораторной работе № 2

    По дисциплине «Информатика»

    На тему: «Программирование циклических вычислительных процессов»

    Вариант № 15

    Подготовил студент

    Группы ЗЧС-18в

    Рязанцев М. И.

    Проверил: доцент, канд. техн. наук

    Зензеров В.И.
    Донецк

    2018



    варианта

    Расчетные формулы

    Исходные

    данные

    Выводимые

    значения

    15



    Определить (k) – количество вычисленных

    P=, S=

    t1 t1

    a=2,84

    b=4,67

    2,5



    x, t,

    k,S,P

    Описание алгоритма

    После ввода a, Xn, Xk, для организации цикла по переменной x нужно параметру цикла присвоить начальное значение x=Xn. Для вычисления количества и суммы обнуляем счетчики K и S. Переменной P, которая будет хранить значение произведения, присваиваем значение 1. Организуем цикл с предусловием, критерием выхода из цикла будет достижение параметром цикла X своего конечного значения. На каждом шаге этого цикла текущее значение параметра цикла X выводим на экран монитора.

    Для вычисления значений переменной t проверяем область допустимых значений соответствующей функции. В данной функции присутствует ряд ограничений a+ln(b+x)0 и b+x>0. Если данные условия выполняются, то вычисляем значение переменной t и выводим данное значение на экран монитора.

    Для подсчета значений произведения и суммы требуется проверить условие . Если данное условие выполняется, то накапливаем произведение t, а если условие не выполняется, то накапливаем сумму t. Также нужно определить количество вычисленных t , но для этого никакие условия не требуются, поэтому просто накапливаем количество 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

    авв

    Начало
    Цикл с постусловием


    -

    +









    -

    +

    +

    -

    Вывод x, t





    a+ln(b+x)0

    b+x>0




    Цикл с предусловием


    -

    +









    +



    Вывод x, y



    a+ln(b+x)0

    b+x>0


    -

    -

    +

    Конец

    Вывод

    K, P, S

    t не определено





    K=0, S=0, P=1

    x=Xn

    Ввод a, b, Xn, Xk, X

    авв

    Начало


    Цикл по перечислению


    +

    -









    -

    +



    a+ln(b+x)0

    b+x>0


    Вывод x, t



    t не определенo







    K=0, S=0, P=1

    Ввод a, b, Xn, Xk, X

    авв

    Начало

    Конец

    Вывод

    K, P, S


    написать администратору сайта