Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Пример программирования вложенных циклов

Читайте также:
  1. CИТУАЦИОННЫЕ ЗАДАЧИ С ПРИМЕРАМИ РЕШЕНИЯ
  2. CИТУАЦИОННЫЕ ЗАДАЧИ С ПРИМЕРАМИ РЕШЕНИЯ
  3. CИТУАЦИОННЫЕ ЗАДАЧИ С ПРИМЕРАМИ РЕШЕНИЯ
  4. CИТУАЦИОННЫЕ ЗАДАЧИ С ПРИМЕРАМИ РЕШЕНИЯ
  5. III. Примеры физиологического строения животных
  6. VI. ПРИМЕРНАЯ МЕТОДИКА ОБУЧЕНИЯ УПРАЖНЕНИЯМ КУРСА СТРЕЛЬБ
  7. А этот пример можно использовать учителям для переориентации поведения детей в школе. В него тоже вошли все Пять последовательных шагов.

Задача.Составить блок-схему алгоритма и программу расчета на Object Pascal следующих значений:

 

Входные данные: -1 £ A £ 8; DA = 3; -1 £ B£ 2; DB = 0,5.

Выходные данные: A, B, X, Y.

 

Проанализируем вычисляемые значения. Каждая из переменных А и В изменяется в своих пределах со свом шагом. Поэтому организуем два независимых цикла – по А и по В соответственно. Один из них, например, цикл по А сделаем внешним, а другой, цикл по В – внутренним.

Значение Х определено для тех пар А и В, которые удовлетворяют соотношению А+В+1>0. Если это условие не выполняется, то Х и Y не определены. Во внутреннем цикле проверяем это условие. Если оно не выполняется, то выводим соответствующее сообщение, прерываем текущий шаг внутреннего цикла и переходим к следующему шагу, изменив предварительно значение В на DB. В программе на Паскале прерывание текущего шага цикла и переход к следующему выполняет процедура continue. В блок-схеме также обращаемся к этой процедуре. Если значение Х определено и Х³5, то проверяем знаменатель на ноль. Если В=0, то выводим сообщение о неопределенности Y и переходим к следующему шагу цикла по В – аналогично тому, как только что было описано.

Блок-схема алгоритма показана на рисунке 9.1.

 

 

 

 


Процедура обработки щелчка на кнопке «Вычисление» (кн. Button_calc)

procedure TForm1.Button_CalcClick(Sender: TObject);

var A,An,Ak,hA,B,Bn,Bk,hB,X,Y:real;

begin

// Ввод исходных данных

An: = StrToFloat(Edit_An.Text);

Ak: = StrToFloat(Edit_Ak.Text);

hA: = StrToFloat(Edit_hA.Text);

Bn: = StrToFloat(Edit_Bn.Text);

Bk: = StrToFloat(Edit_Bk.Text);

hB: = StrToFloat(Edit_hB.Text);

A: = An;

while (A< = Ak)do // начало цикла по А

begin

B: = Bn;

while (B< = Bk) do // начало цикла по В

begin

if (A+B+1< = 1E-10) then //проверка условия A+B+1=0

begin

Memo1.lines.Add('A = '+FormatFloat('##0.0',A)+

' B = '+FormatFloat('##0.0',B)+

' X не опред.'+

' Y не опред.');

B: = B+hB;

CONTINUE

end;

X: = 40*LN(A+B+1);

if (X> = 5) then

if (abs(B)< 1E-10) then // проверка В=0

begin

Memo1.lines.Add('A = '+FormatFloat('##0.0',A)+

' B = '+FormatFloat('##0.0',B)+

' X = '+FormatFloat('##0.0',X)+

' Y не опред.');

B: = B+hB;

CONTINUE

end

else Y: = (X-5)/B+sqrt(A*A+X*X)

else Y: = (X-A)/sqrt(X*X+1);

Memo1.lines.Add('A = '+FormatFloat('##0.0',A)+

' B = '+FormatFloat('##0.0',B)+

' X = '+FormatFloat('##0.0',X)+

' Y = '+FormatFloat('##0.0',Y));

B: = B+hB;

end; // конец цикла по B

A: = A+hA;

end; // конец цикла по A

end;

 


Дата добавления: 2015-07-08; просмотров: 270 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
ТЕМА 5. Сложные циклы| А) пиелонефритов хронических

mybiblioteka.su - 2015-2018 год. (0.006 сек.)