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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2009, 17:50   #21
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

halk
ничем не могу помочь, так как то решение, что я предложил, как раз и делает то, что требует преподаватель!!!
цитирую из своего решения:
Цитата:
нужно типа в последовательности фиббоначи у каждого числа определять сколька в нем цифр например
это делает функция
function LenOfInteger(M : Longint) : integer;
определяет длину очередного члена последовательности.

Цитата:
потом их складывать
это сложение производится в переменной CurLen:
Код:
CurLen := CurLen+LenOfInteger(iTemp);
Цитата:
пока сумма количества цифр не станет равна вводимому нами n
Код:
        while (CurLen+LenOfInteger(iTemp)) < n do
Цитата:
а потом уже с помощью mod и div найти нную цифру
вот функция и находит (только не N-ю, а K-ю цифру числа )!
function OneDigitFromInt(M : Longint; K : integer) : integer;

мой вам совет - разберите моё решение (ну можно функции прямо в теле программы расписать, чтобы функций не было в программе) и смело сдавайте это решение вашему преподу!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.10.2009, 18:22   #22
halk
Пользователь
 
Регистрация: 07.10.2009
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
halk
ничем не могу помочь, так как то решение, что я предложил, как раз и делает то, что требует преподаватель!!!


мой вам совет - разберите моё решение (ну можно функции прямо в теле программы расписать, чтобы функций не было в программе) и смело сдавайте это решение вашему преподу!

а как их расписать эти функциию именно они и смутили в вашем решениию так как мы пока функциями еще не пользовались..... но спасибо за расшифровку так стало более понятней вот если бы вы показали еще как каждая функция расписывается тогда бы я уже разобрался...... спасибо большущеею вот тока покажите как расписываются через простые операторы такие штукенции:
halk вне форума Ответить с цитированием
Старый 09.10.2009, 18:23   #23
halk
Пользователь
 
Регистрация: 07.10.2009
Сообщений: 21
По умолчанию

function OneDigitFromInt(M : Longint; K : integer)
CurLen := CurLen+LenOfInteger(iTemp);
halk вне форума Ответить с цитированием
Старый 09.10.2009, 18:30   #24
halk
Пользователь
 
Регистрация: 07.10.2009
Сообщений: 21
По умолчанию

[QUOTE=Serge_Bliznykov;359893]ребят, ну что ж Вы издеваетесь, нужна n-я цифра последовательности, а не значение n-го члена последовательности!!!

CurLen := 2;
iPrev := 1;
iCur := 1;
iTemp := iPrev+iCur; и можно ли заменить iPrev ;
iCur ;iTemp буквами a,b,c. а вы можете прислать вариант где функции расписаны?
И еще один вопрос: в этой проге тчно нет структур. массивов и строковых переменных?

потому что в условии сказано:Во всех задачах используется целочисленная переменная N, значение которой не превосходит по модулю 2 млрд (если не указано иное). Нельзя использовать строковые переменные, массивы или другие структуры.
halk вне форума Ответить с цитированием
Старый 09.10.2009, 18:34   #25
XeN0N
Форумчанин
 
Аватар для XeN0N
 
Регистрация: 18.01.2009
Сообщений: 118
По умолчанию

ты издеваешься или правда такой?
XeN0N вне форума Ответить с цитированием
Старый 09.10.2009, 18:43   #26
halk
Пользователь
 
Регистрация: 07.10.2009
Сообщений: 21
По умолчанию

правда . это моя третья работа на паскале.... я виноват что мне вариант такой попался. другим попались задания с обменом цифр на макс и миним. а мне такое...( доведите пожалуйста прогу Serge_Bliznykov до того чтоб там были буковки и чтоб не было
function LenOfInteger ; function OneDigitFromInt(M : Longint; K : integer) и других не понятных штук..... и я отвалю от вас. тока доведите прогу ..... ну вот как эти функции расписть????????как они расписываются?????????????????????? ??
halk вне форума Ответить с цитированием
Старый 09.10.2009, 18:50   #27
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
и я отвалю от вас
дык сидите тут в одинокого и приставайте сами к себе!
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 10.10.2009, 08:46   #28
halk
Пользователь
 
Регистрация: 07.10.2009
Сообщений: 21
По умолчанию

ну хоть поясните как заменить и что обозначают function LenOfInteger ; function OneDigitFromInt(M : Longint; K : integer)
halk вне форума Ответить с цитированием
Старый 10.10.2009, 15:30   #29
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вот, перенёс процедуры в тело программы. так пойдёт? всё понятно?
Код:
{
  Дано натуральное n. 
    Напечатать n-ю цифру последовательности 
    1123581321:, в которой выписаны подряд все числа Фибоначчи.
}

var i, k, n, CurLen : integer;
  Dlina : integer;
  OdnaCifra : integer;
  A, B, C : Longint;

begin
  WriteLn('Введите n');
  ReadLn(n);
  if n<=0 then
    WriteLn('Не может быть такой цифры в последовательности!')
  else
    begin
      if (n<3) then WriteLn(n:1,'-я цифра в последовательности = 1')
      else 
      begin
        CurLen := 2;
        A := 1;
        B  := 1;
        C := A + B;

        {посчитаем длину очередного члена последовательности}
        Dlina := 1;
        while C >= 10  do begin
          Dlina := Dlina + 1;
          C := C div 10;
        end;
        {т.к. в процессе вычисления мы делили число на 10,
          оно утратило своё значение, поэтому его надо ещё раз 
          вычислить}
        C := A + B; 
        
        while (CurLen + Dlina) < n do
        begin
        
          CurLen := CurLen + Dlina;
          A := B;
          B := C;
          C := A + B;
          {посчитаем длину очередного члена последовательности}
          Dlina := 1;
          while C >= 10  do begin
            Dlina := Dlina + 1;
            C := C div 10;
          end;
          {т.к. в процессе вычисления мы делили число на 10,
            оно утратило своё значение, поэтому его надо ещё раз 
            вычислить}
          C := A + B; 

        end;

        k := Dlina - (n-CurLen) + 1;
        while k>1 do begin
          C := C div 10;
          k := k - 1;
        end;
        OdnaCifra := C mod 10;
        
        WriteLn(n:1,'-я цифра в последовательности = ', OdnaCifra);
        Readln;
        
      end;
    end;
end.
только мне кажется, что Вам это не поможет.
Ибо Вы не понимаете (и, имхо, даже не пытаетесь понять), что делает предложенный Вам вариант (алгоритм).
Если бы Вы пытались это сделать, тогда бы у Вас возникли конкретные вопросы по программе...
Как Вы сдавать собираетесь, не понимаю...

в любом случае - желаю удачи.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.10.2009, 21:44   #30
halk
Пользователь
 
Регистрация: 07.10.2009
Сообщений: 21
По умолчанию

спасибо огромнейшее !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!
halk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти кол-во целых чисел в первой последовательности и кол-во нечетных во второй. DjDeniels-61 Помощь студентам 7 28.06.2009 13:04
Найти последнюю цифру от числа в Паскале Карабин Помощь студентам 100 17.05.2009 17:34
Определить k-ую цифру последовательности Фибоначчи и последовательности натуральных чисел. Med Помощь студентам 1 20.03.2009 11:40
Помогите найти алгебрасическую сумму!на паскале vdv08 Помощь студентам 4 07.11.2008 00:19
Помогите найти ошибку в паскале. Рената Паскаль, Turbo Pascal, PascalABC.NET 14 26.05.2007 12:12