ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #10  
Старый 03.01.2010, 16:50
DJeFRY_RASH
Новичок
Регистрация: 07.04.2009
Сообщений: 19
Провел на форуме:
35427

Репутация: 3
Отправить сообщение для DJeFRY_RASH с помощью ICQ
По умолчанию

Ребята не могли бы вы помочь с прогой, вся прога написана, всё сделано правильно, работает, но заминка в том, что уравнение для расчёта неправильное !
Код:
program xyz;

uses
  SysUtils,
  Windows;

label
  EnterN;

var
  N, i, z   : Integer;
  ans      : Char;



//------------------------------------------------------------------------------
function Ru(str: String): String;         // Функция перевода получаемой строки из ANSI-кодировки в OEM-кодировку DOS.
begin                                     // Начало функции.
  Result := '';                           // Обнуляем результат.
  if Length(str) > 0 then                 // Если получена непустая строка, то
  begin                                   // выполняем код:
    SetLength(Result, Length(str));       // Устанавливаем размер для строки результата.
    CharToOem(PChar(str), PChar(Result)); // Конвертируем строку в OEM-формат (модуль 'Windows.pas').
  end;                                    // Результирующая строка уже в новой кодировке.
end;                                      // Конец функции.



//------------------------------------------------------------------------------
begin
  WriteLn(Ru('Программа для вычисления факториала нечётных чисел:'));         // Вывод информации на экран о назначении программы.
  WriteLn('');
  WriteLn('   N!!! = 1 x 3 x 5 ... x N   ');
  WriteLn('');
  WriteLn(Ru('Выполнил ...'));              // Вывод информации на экран об авторе программы.
  WriteLn('');
  Writeln('...');
  EnterN:                                                                     // Возврат в это место при ошибке или при повторном вводе данных.
    WriteLn('');                                                              // ...
    Write(Ru('Введите нечётное число N, где N > 1 : '));                                     // ...
    ReadLn(N);                                                                // Ввод числа Х.
    if (N <= 1) or (N mod 2=0) then                                                          // Если Х меньше или равен 1, то
    begin                                                                     // выполнить код:
      WriteLn(Ru('Произошла ошибка при вводе, попробуйте ещё раз.'));         // - вывести сообщение об ошибке;
      GoTo EnterN;                                                            // - вернуться к началу;
    end;                                                                      // ...
  WriteLn('');                                                                // ...
  z := 1;                                                                     // Обнуляем переменную результата.
  for i := 1 to N do z := z*(i*2-1);                                          // Увеличиваем переменную результата N раз.
  WriteLn(Ru('Полученный результат: '+IntToStr(z)));                          // Отправить Х на обработку в функцию 'Formula()' и вывести результат.
  WriteLn('');                                                                // ...
  Write(Ru('Вы хотите продолжить работу с программой? (Y/N) : '));            // Предложить продолжить работу с программой.
  ReadLn(ans);                                                                // Получить согласие.
  if (ans='Y') or (ans='y') or (ans=Ru('Н')) or (ans=Ru('н')) then GoTo EnterN; // Если согласие получено - возврат к началу.
end.
Когда запускаешь прогу, просит ввести N, если вводим 5, то получаем такой факториал 1х3х5х7х9, а нужно чтобы 5 была последней цифрой в этом подсчёте, то есть 1х3х5.
Перепробовал многие варианты, не выходит. кто может разобраться, помогите !
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сюда выкладываем все проги для фрикринга мобильников, которых знаем! nigger Сотовый фрикинг 5 11.04.2009 11:15
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ