Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 13.12.2009, 12:31   #1
oxygen2007rus
 
Регистрация: 22.11.2009
Сообщений: 3
Репутация: 10
Восклицание Умножение двух чисел в p-ичной системе счисления - turbo pascal

Нужна помощь. Недавно пришлось вспомнить давно забытый турбо паскаль для института. Сейчас пытаюсь написать программу для умножения двух чисел в p-ичной системе счисления. Перепробовал множество способов, но ничего не получается. Посоветуйте мне что-нибуть. Будет супер если покажете код программы. Заранее спасибо.
oxygen2007rus вне форума   Ответить с цитированием
Старый 13.12.2009, 17:00   #2
eoln
Профессионал
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,706
Репутация: 2215

icq: 421277094
По умолчанию

Преобразуем в систему счисления = 10, умножаем, снова возвращаем в прежнюю систему
Код:

function KToDec(x: string; k: byte): longint;
var
  i: byte;
  y : longint;
begin
  y := 0;
  for i := 1 to length(x) do
    if x[i] < 'A' then
      y := y * k + ord(x[i]) - 48
    else
      y := y * k + ord(x[i]) - 55;
  KToDec := y
end;

function DecToK(x: longint; k: byte): string;
var
  i: byte;
  y: string;
begin
  y := '';
  repeat
    i := x mod k;
    x := x div k;
    if i < 10 then
      y := chr(i + 48) + y
    else
      y := chr(i + 55) + y;
  until x = 0;
  DecToK := y
end;

function ym(x, y: string; k: byte): string;
begin
  ym := DecToK(KToDec(x, k) * KToDec(y, k), k)
end;

var
  a, b: string;
  s: byte;
begin
  write('a = '); readln(a);
  write('b = '); readln(b);
  write('system = '); readln(s);
  write('otvet = ', ym(a, b, s));
  readln
end.

eoln вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа перевода из одной системы счисления в другую - Turbo Pascal 7.0. Prescott Помощь студентам 5 19.03.2010 20:26
Умножение длинных чисел в Pascal SeRhy Помощь студентам 2 05.12.2008 00:50
Деление чисел в двоичной системе счисления Mss_Smith Помощь студентам 9 04.05.2007 17:02


10:24.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru