Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2008, 14:14   #1
svobodys
Пользователь
 
Регистрация: 07.10.2008
Сообщений: 42
По умолчанию Можно ли проще сделать задачу на паскале?

Дано действительное число А. Найти среди чисел 1, 1+1/2, 1+1/2+1/3, ....
первое, большее А.
svobodys вне форума Ответить с цитированием
Старый 02.12.2008, 14:14   #2
svobodys
Пользователь
 
Регистрация: 07.10.2008
Сообщений: 42
По умолчанию

uses crt;

var x:real;
i:integer;
flag:boolean;

function Fun(j:integer):real;
var i:integer;
r:real;
begin
r:=0;
for i:=1 to j do
r:=r+1/i;
Fun:=r;
end;

begin
clrscr;
flag:=false;
writeln('INPUT A');
readln(x);
i:=2;
if x<1 then writeln('1')
else repeat
if x<Fun(i) then begin
writeln(Fun(i));
flag:=true;
end
else inc(i);
until flag;
end.
svobodys вне форума Ответить с цитированием
Старый 02.12.2008, 14:26   #3
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

Можно проще. Через реккурентную формулу. Нужна формула общего члена ряда только
danekne вне форума Ответить с цитированием
Старый 02.12.2008, 14:30   #4
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

Код:
uses crt;

var A:real;
i:integer;

function Fun(j:integer):real;
var i:integer;
r:real;
begin
r:=0;
for i:=1 to j do
r:=r+1/i;
Fun:=r;
end;

begin
clrscr;
Write('A = ');Readln(A);
i := 1;
While (Fun(i)<A) do
 inc(i);
Writeln('i = ',i,'; Fun(',i,') = ',Fun(i):10:5);
Readkey;
end.
Твою функцию я не менял, сменил немного код самой программы.
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 02.12.2008, 14:58   #5
stasig
Пользователь
 
Регистрация: 04.11.2008
Сообщений: 31
По умолчанию

ТАкая же задача не давно попалась, не решил.

Последний раз редактировалось stasig; 02.12.2008 в 15:00.
stasig вне форума Ответить с цитированием
Старый 02.12.2008, 15:05   #6
svobodys
Пользователь
 
Регистрация: 07.10.2008
Сообщений: 42
По умолчанию

Спасиба) а есть еще какой нибудь метод решения, просто интересно.
svobodys вне форума Ответить с цитированием
Старый 02.12.2008, 15:55   #7
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

Код:
uses crt;

var
A:real;
i:integer;
r:real;
function fun(j : integer; a : real):real;
var r : real;i:integer;
begin
 r := 0;
 for i:=1 to j do
  r := r+ 1/i;
 if r < A then r := fun(j+1,a);
fun := r;
end;
begin
clrscr;
Write('A = ');Readln(A);
Writeln('Fun = ',fun(1,a):10:5);
Readkey;
end.
Вот что еще пришло в голову
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 02.12.2008, 18:42   #8
stasig
Пользователь
 
Регистрация: 04.11.2008
Сообщений: 31
По умолчанию

.............=)

Последний раз редактировалось stasig; 02.12.2008 в 19:51.
stasig вне форума Ответить с цитированием
Старый 02.12.2008, 19:53   #9
svobodys
Пользователь
 
Регистрация: 07.10.2008
Сообщений: 42
По умолчанию

Можешь объяснить то что написал, а то я только учусь
svobodys вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли такое сделать. warrior849 Microsoft Office Word 4 28.09.2008 20:50
как можно создать в паскале 32-разрядное приложение Акашаев Нурлан Паскаль, Turbo Pascal, PascalABC.NET 6 09.07.2008 20:47
Можно ли сделать автоматическое напоминание?? Milosh Microsoft Office Excel 9 18.06.2008 07:25
Печать из memo как можно проще NecroSlider Общие вопросы Delphi 2 01.02.2008 22:22