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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2011, 23:49   #1
0479
Форумчанин
 
Аватар для 0479
 
Регистрация: 27.09.2009
Сообщений: 153
По умолчанию Функция умножения.

Доброй ночи.Помогите пожалуйста подредактировать функцию

Код:
function mnog(s:string ;i:variant):string;
var res:string;
x:variant;d,cifra:variant;j:integer;
begin
for j:=Length(s)-1 downto 0  do
begin
cifra:=StrToInt(Copy(s,j,1))*i+x;
if j<>0 then
begin
d:=cifra mod 10;
x:=cifra / 10;
end
else
begin
d:=cifra;
res:=FloatToStr(d)+res;
end;
end;
mnog:=res;
end;
Назначение её - это перемножение чисел.Работает впринципе верно.Но добавляет в число запятую.То есть 222*2=4,44 а не 444. Возможно я в типах ошибся. Заранее благодарен.
0479 вне форума Ответить с цитированием
Старый 25.02.2011, 23:52   #2
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

А что эта функция должна делать?
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 25.02.2011, 23:58   #3
0479
Форумчанин
 
Аватар для 0479
 
Регистрация: 27.09.2009
Сообщений: 153
По умолчанию

Ну у неё на вход два числа поступают и она их премножает, так как это делалось бы вручную столбиком.
0479 вне форума Ответить с цитированием
Старый 26.02.2011, 00:42   #4
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

У меня получилось так
Код:
function mnog(s:string ;i:variant):string;
var
  m, res, Str, Pl: string;
  Ost, j: Integer;
begin
  Ost := 0;
  for j:=Length(s) downto 1  do
  begin
    Str := s[j];
    Str := IntToStr(StrToInt(Str) * i+Ost);
    Pl := Str[Length(Str)];
    m := Copy(Str,1,Length(Str)-1);
    if m = '' then
      Ost := 0
    else
      Ost := StrToInt(m);
    res := Pl+res;
  end;
  Result := m + res;
end;

Последний раз редактировалось kangreon; 26.02.2011 в 00:46.
kangreon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тест по таблице умножения,решение линейных уравнения,какая-то функция cloudylily Паскаль, Turbo Pascal, PascalABC.NET 5 30.09.2010 16:55
Прегерузка оператора умножения. 123er4 Общие вопросы C/C++ 0 13.06.2010 17:11
Таблица умножения Golovastik Общие вопросы C/C++ 18 25.07.2009 23:46
таблица умножения в файле kate158 Общие вопросы Delphi 4 18.12.2008 12:51
вывод таблицы умножения Soule Паскаль, Turbo Pascal, PascalABC.NET 3 12.10.2007 11:26