Помощь - Поиск - Пользователи - Календарь
Полная версия: циклический алгоритм в паскале > Информатика / Программирование
Образовательный студенческий форум > Другие дисциплины > Информатика / Программирование
иван 23
дано: E(эпсилон)=115В, r=29,7 Ом. формула P=R*SQR(E/R+r) при R=10,20,30,40,50,100,150,200,250,300


надо с while и repeat, в этом и возникли затруднения
граф Монте-Кристо
Что конкретно не получается? Программа не запускается, или Вы не можете составить алгоритм?
иван 23
вот мои наработки:
const
E=115;
r=29.7;
var
RR,i:integer;
P:real;
begin
for i:=1 to 10 do
begin
if i<6 then RR:=i*10 else RR:=(i-5)*50+50;
P:=RR*SQR(E/RR+r);
write(P:10:2);
end;
readln;
end.
но поскольку это цикл с пост и предусловием, надо ведь while и repeat, вот я и не знаю куда их поставить и как записать

вот мои наработки:
const
E=115;
r=29.7;
var
RR,i:integer;
P:real;
begin
for i:=1 to 10 do
begin
if i<6 then RR:=i*10 else RR:=(i-5)*50+50;
P:=RR*SQR(E/RR+r);
write(P:10:2);
end;
readln;
end.
но поскольку это цикл с пост и предусловием, надо ведь while и repeat, вот я и не знаю куда их поставить и как записать
Julia
Цикл с предусловием используется, когда известно условие продолжения цикла. Пока при некоторых значениях входящих в условие перменных условие остается истинным, выполняется тело цикла. Как только условие стоновится ложным, работа оператора цикла прекращается.
Вам необходимо составить условие, при котором все описанные вами действия будут выполняться. Можно задействовать имеющуюся переменную i, добавить в программу всего 2 строчки и одну изменить. Не забывайте, что внутри цикла обязательно должен быть хотя бы один оператор, влияющий на условие продолжения цикла.
иван 23
вы бы могли помочь добавить эти строчки и изменить одну, нужно эту задачу решить именно через while, untill и repeat. а как это сделать я не понял
Julia
Вот ваше тело цикла:
begin
if i<6 then RR:=i*10 else RR:=(i-5)*50+50;
P:=RR*SQR(E/RR+r);
write(P:10:2);
end;
Выбор оператора цикла на него существенно не влияет.
На какую переменную, входящую в тело цикла, и какие ограничения можно наложить так, чтобы она удовлетворяла условиям задачи?
иван 23
на R можно наложить кажется. по-моему первый цикл должен R<RR как то, а второй R>RR.
Julia
R у вас константа 29,7. Для того чтобы на входе в цикл проверить условие R<RR необходимо будет задать начальное значение переменной RR. Даже если вы возьмете значение заведомо большее 29,7, то уже при следующем проходе RR=10 окажется меньше 29,7, т.е.условие R<RR окажется ложным и цикл прекратит свою работу.
Попробуйте наложить ограничения на переменную i.
иван 23
покажите пожалуйста, ниче не получается у меня((
Julia
мда...условие-то элементарное i<=10
иван 23
Юленька, а как в общем виде программа выглядеть будет тогда?) blush.gif
Julia
const
E=115;
r=29.7;
var
RR,i:integer;
P:real;
begin
i:=1;
while i<=10 do
begin
if i<6 then RR:=i*10 else RR:=(i-5)*50+50;
P:=RR*SQR(E/RR+r);
write(P:10:2);
inc(i)
end;
readln;
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.