Консультация № 161197
23.02.2009, 15:52
0.00 руб.
0 8 1
Здравствуйте! Помогите пожалуйста.
Задача на встроеннные циклы.

Расчитать все возможные значения k=(4*x-(y-2))/3, если х изменяется на заданном интервале с заданным шагом, у принадлежит известное любое количество значений.

Обсуждение

давно
Старший Модератор
31795
6196
23.02.2009, 16:21
общий
Kuvart2009:

Вы уже задавали подобную задачу и не дождавшись ответа на неё(после уточнения) задаете повторный вопрос - нарушая тем самым правила портала:
Цитата: Правила портала
Задавать повторный вопрос идентичного содержания в одну и ту же рассылку разрешается только после истечения 5-дневного срока жизни первого вопроса. При невыполнении этого правила, повторный вопрос будет удаляться модераторами без возвращения на баланс участника средств, списанных за его подачу.
Задавать вопросы идентичного содержания в разные рассылки, если вопросы соответствуют тематике этих рассылок, разрешается в любое время, в т.ч. одновременно.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Профессор
401888
1232
23.02.2009, 16:24
общий
Вы интересный человек. Вместо того, чтобы в предыдущем вопросе объяснить, что такое
у принадлежит известное любое количество значений.

создаете новый вопрос. Это же все равно непонятно. Если задача на вложенные(так правильно) циклы, то Y тоже должен изменяться в каких-то пределах с заданным шагом, либо от какого-то известного значения с известным шагом, или по известной формуле N раз.
Неизвестный
23.02.2009, 16:38
общий
Согласен, что правильнее вложенные циклы. Однако у меня в методичке для заочников написано встроенные (бог с ним с терминологией). Я не пойму где все-таки противоречие.
Преподаватели значит безграмотно делают методички. Как все-таки выйти из положения?
давно
Профессор
401888
1232
23.02.2009, 16:52
общий
Да дело не в терминологии, с ней мы разберемся, непонятно, что нужно делать. Если Вы не сможете нам объяснить, то никто Вам и не решит.
давно
Старший Модератор
31795
6196
23.02.2009, 16:55
общий
Kuvart2009:

Преподаватели значит безграмотно делают методички


Из опыта:
Иногда встречаются два совершенно одинаковых вопроса, заданные разными пользователями и после проверки администрацией на клонов. Оказывается, что они живут в разных городах. А методички у них одинаковые.

Т.е. преподаватели, были на одних курсах и методички были у них одинаковые, а свою выдумать фантазии нет.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
23.02.2009, 16:57
общий
Я думаю, что у принадлежит известное любое количество значений - это массив У в котором строго определены нужные значения у.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Неизвестный
23.02.2009, 17:36
общий
Я полностью с Вами согласен. А каково все-таки решение? Хоть что-то, а я попробую уточнить потом у преподавателя.
давно
Профессор
401888
1232
24.02.2009, 10:39
общий
это ответ
Здравствуйте, Kuvart2009!
Вот решение с подачи Зенченко Константина Николаевича.
Код программы с пояснениями в приложении.

Приложение:
uses crt;
const nmax=50;{максимальное количество значений У}
var y:array[1..nmax]of real;{массив значений У}
x,xn,xk,dx,k:real;
n,i,s:integer;
begin
clrscr;
repeat {вводим количество значений с проверкой}
write('Kolichestvo znachenij Y n=');
readln(n);
until (n>0)and(n<=nmax);
writeln('Vvedite ',n,' znachenij Y:');
for i:=1 to n do
begin
write('y[',i,']=');{вводим сами значения}
readln(y[i]);
end;
clrscr;{очистим экран после ввода}
writeln(n,' znachenij Y:');{выведем количество и сами значения У}
for i:=1 to n do
write(y[i]:5:2);
writeln;
repeat {введем начало интервала и конец}
write('Nachalo intervala xn=');
readln(xn);
write('Konec intervala xk=');
readln(xk);
until xk>xn;{если конец больше начала, ввод правильный}
repeat
write('Shag vychislenij dx=');
readln(dx);
until(dx>0)and(dx<xk-xn);{шаг должен быть больше 0 и меньше длины интервала, лучше кратный длине, наприме при длине интервала 4, шаг 1, или 0,5 или 0,2}
s:=0;{счетчик строк}
for i:=1 to n do {перебираем все значения У}
begin
x:=xn;{сначала х=начальному}
while x<=xk do{пока х меньше конца}
begin
k:=(4*x-(y[i]-2))/3;{вычисляем значение К}
writeln(i:2,' y=',y[i]:0:2,' x=',x:0:2,' k=',k:0:2);{выводим в строку все данные}
x:=x+dx;{увеличиваем Х}
s:=s+1;{считаем строки}
if s mod 20=0 then readln;{после каждых 20 строк задержка, это когда строк много, чтоб все просмотреть, а не только последние}
end;
end;
readln
end.

Форма ответа