Форум «Всё о Паскале» _ Задачи _ Цикл с пост условием
Автор: aRmAnI 6.03.2011 1:06
Найти сумму n членов последовательности 1,1+1/2+1/3,... первое, большее А и его номер... Никак не получается сделать((( надо выполнить в Turbo Pascal
И ещё, Определить минимальный член последовательности, заданный формулой Yn=Xn*sqr(2)-7Xn-1
Автор: Lapp 6.03.2011 17:22
Цитата(aRmAnI @ 5.03.2011 21:06)
Найти сумму n членов последовательности 1,1+1/2+1/3,... первое, большее А и его номер... Никак не получается сделать((( надо выполнить в Turbo Pascal
И ещё, Определить минимальный член последовательности, заданный формулой Yn=Xn*sqr(2)-7Xn-1
Напиши условие поточнее - будут ответы. Сумму какой последовательности? 1/n?
А во втором вопросе Xn - это та же самая последовательность 1/n?
Пойми, что ясность вопроса нужна ТЕБЕ, а не нам..
Автор: aRmAnI 6.03.2011 22:11
Найти сумму n членов последовательности 1,1/2,1/3,... первое, большее А и его номер... Именно такое условие и было,
Program fordenis; uses crt; var n,b:integer; a,s:real; begin clrscr; n:=1; s:=0; writeln('Введите b,a'); Read(b,a); Repeat S:=S+1/n; writeln (s); n:=n+1; if s>=a then break; until(n>b); Readkey; end.
1 часть задачи кой как выполнена, осталось ещё вывести 1 число большее А, как мне обхясняли надо ещё 1 цикл тут сделать....
а 2 задача, я даже не представляю как её сделать - она идёт отдельно от первой
Автор: Lapp 7.03.2011 12:11
Цитата(aRmAnI @ 6.03.2011 18:11)
осталось ещё вывести 1 число большее А, как мне обхясняли надо ещё 1 цикл тут сделать....
Можно и еще один цикл, если хочешь. Только тогда второй цикл будет с предусловием. Типа вот так:
Program fordenis; var n,b:integer; a,s:real; begin n:=1; s:=0; writeln('Введите b,a'); Readln(b,a); Repeat S:=S+1/n; n:=n+1; until (n>b) or (s>=a); if s>=a then writeln('первая сумма, большая ',a,' равна ',s); while n<=b do begin S:=S+1/n; n:=n+1; end; writeln('сумма ',b,' членов ряда 1/n равна ',s); ReadLn; end.
И вообще, в этой задаче цикл с постусловием не совсем правильно применять, поскольку может же (в принципе) быть запрос на сумму 0 членов ряда.
Цитата
а 2 задача, я даже не представляю как её сделать - она идёт отдельно от первой
Если она отдельно, то в другой теме, плз (правила раздела Задачи, п.6 - вверху этой страницы).
Автор: aRmAnI 7.03.2011 15:24
Вы не совсем правильно сделали)) после s:=s+1/n; writeln(s); надо поставить, чтобы он выводил суммы, а не считал сумму всего ряда, а первую сумму большую А он не выводит) и её надо выводить последней, вводим 10 5, и должно получится что 1 сумма =1, вторая = 1,5, третья = 1,83, четвёртая = 2,08, пятая = 2,28..... А вот шестой он должен вывести сумму которая превзойдёт А
Добавлено через 4 мин. Есть с тобой какая то прямая связь? аська? скайп?
Автор: Lapp 7.03.2011 17:00
Цитата(aRmAnI @ 7.03.2011 11:24)
Вы не совсем правильно сделали))
Да?.. Гм. Вот твое первое условие:
Цитата
Найти сумму n членов последовательности 1,1+1/2+1/3,... первое, большее А и его номер...
Потом я попросил уточнить. Вот второй вариант:
Цитата
Найти сумму n членов последовательности 1,1/2,1/3,... первое, большее А и его номер...
Теперь скажи - есть хоть в одном из них упоминание о том, что нужно выводить промежуточные суммы в процессе подсчета, а также где именно должна быть выведена первая сумма, превышающая А? И ты говоришь, что я сделал неправильно?.. Я, конечно, понимаю, что ты, наверное, пошутил (судя по двум скбочкам в конце предложения), но - извини, я предпочитаю смешные шутки..
Цитата
после s:=s+1/n; writeln(s); надо поставить, чтобы он выводил суммы, а не считал сумму всего ряда, а первую сумму большую А он не выводит) и её надо выводить последней, вводим 10 5, и должно получится что 1 сумма =1, вторая = 1,5, третья = 1,83, четвёртая = 2,08, пятая = 2,28..... А вот шестой он должен вывести сумму которая превзойдёт А
Спасибо, конечно, за разъяснение. Но, боюсь, оно запоздало.. Я не твой подчиненный, а ты не мой начальник. Если бы в твоем мессадже было хоть одно "спасибо" - может, я бы и переделал. А так - ciao, bombino, sorry..
Но у тебя достаточно в принципе уже, чтоб доделать .