|
Вопрос # 3 441/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Очень срочно нужно решить данную задачу с помощью всех трех видов циклов – while, do, for
Заранее спасибо!
П.С. Задача на Pascal
 |
Вопрос задал: Nepwk (статус: Посетитель)
Вопрос отправлен: 24 ноября 2009, 10:51
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Паровоз
Здравствуйте, Яньков Артём Сергеевич!
В Delphi цикл for vможет быть только с целочисленным параметром и с шагом 1. Поэтому нужно пересчитать переменные:
var
i,cnt:Integer;
F:Real;
begin
cnt:=Round(Int((F2-F1)/h));
Memo1.Clear;
for i:=0 to cnt do
begin
F:=F1+i*h;
if (F > 0.03*S) then N:=F*(D-R)+R*S
else N:=F*D+R*S;
Memo1.Lines.Add('N('+IntToStr(i)+')='+FloatToStr(N));
end;
end;
 |
Ответ отправил: Паровоз (статус: 10-ый класс)
Время отправки: 27 ноября 2009, 15:32
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 25 ноября 2009, 19:16; участников в обсуждении: 2.
|
IlluminatI (статус: 2-ой класс), 24 ноября 2009, 21:02 [#1]:
Первым делом считываем все значения с клавиатуры
var F1, F2, S, R, D, h, N: real;
x: byte;
i, z: integer;
begin
z:=0;
writeln('F1, F2 = ?');
readln(F1, F2);
writeln('S, R, D - ?');
readln(S, R, D);
writeln('Step H - ?');
readln(h);
....
Тогда, цикл while..do будет иметь такую реализацию:
while F1(меньше равно)F2 do
begin
inc(z);
F1:=F1+H;
if (F1 (больше) 0.03 * S) then
begin
N:=F1*D - F1*R + R*S;
writeln('N[',z,'] = ', N:0:2);
end else
if (F1 (меньше равно) 0.03 * S) then
begin
N:=F1*D + R*S;
writeln('N[',z,'] = ', N:0:2);
end;
end;
Цикл Repeat..until:
repeat
if F1 (больше) F2 then exit;
F1:=F1+H;
Inc(z);
if (F1 (больше) 0.03 * S) then
begin
N:=F1*D - F1*R + R*S;
writeln('N[',z,'] = ', N:0:2);
end else
if (F1 (меньше равно) 0.03 * S) then
begin
N:=F1*D + R*S;
writeln('N[',z,'] = ', N:0:2);
end;
until F1 (больше) F2;
Насчет цикла for..to..do, я еще подумаю
|
|
Nepwk (статус: Посетитель), 25 ноября 2009, 19:16 [#2]:
Огромное спасибо IlluminatI, Вы просто меня спасли
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|