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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2011, 22:20   #1
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
Вопрос Создать массивом перемножение числе в Паскале

Добрый вечер. Вот такое задание.
С клавиатуры ввести два любых числа до 15 цифр и отпечать перемножение чисел c использованием массива

примерный код есть,его надо только изменить на данное условие
Код:
program массив;
uses crt;
procedure умножение(n:byte; a,b:mt1; var c:mt2);
var i,j:byte;
     s:integer;
     sk_sist:integer;   {sk_sist- это числовая система}
begin
clrscr;
  sk_sist:=2;
  s:=0;
  for j:=0 to 2*n-1 do
     begin
       for i:=0 to n-1 do
        if (0<=j-i) and (j-i<=n-1)
            then s:=s+a[i]*b[j-i];
        [j]:=s mod sk_sist
    end
end;
код может быть не доделан и некомпилироваться,но я переписала с конспекта то,что написал для нас студентов препод.

ПС:Очень нужно до 24:00 по московскому времени.
Заранее спасибо тем,кто поможет)))

Последний раз редактировалось Novenkaja; 05.04.2011 в 22:25.
Novenkaja вне форума Ответить с цитированием
Старый 05.04.2011, 22:31   #2
3BEPOBOY
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 82
По умолчанию

уточните что это значит
Цитата:
отпечать перемножение чисел c использованием массива
ваш код если честно не понял что делает
3BEPOBOY вне форума Ответить с цитированием
Старый 05.04.2011, 22:34   #3
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

так переводится с латышского то словочто в задании
как я понимаю-отпечать-это значит реализовать

если минутку подождёте,я сфотографирую как выглядит этот код в конспекте,там ещё и рисунок есть,может попроще станет
для начала его нужно ещё дописать,т.к. нет тут не type mas=array... и не компилируется
Novenkaja вне форума Ответить с цитированием
Старый 05.04.2011, 22:38   #4
3BEPOBOY
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 82
По умолчанию

"отпечать" то бог с ним. Мне бы знать зачем массив. Я сути задания не понял.
3BEPOBOY вне форума Ответить с цитированием
Старый 05.04.2011, 22:41   #5
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
зачем массив Я сути задания не понял
это длинная арифметика) просто 30 значащих цифр не влезут в стандартные типы паскаля вроде как) для этого и юзают длинную арифметику)
Код:
const base=2;
      maxn=30;
type Tlong=record
 n:longint;
 a:array[1..maxn]of longint;
end;
var x,y,z:Tlong;
m:Integer;


procedure multLong(var c:Tlong; a,b:Tlong);
 var i,j:longint;
 begin
  fillchar(c,sizeof(c),0);
  c.n:=a.n+b.n+2;
  for i:=1 to a.n do
  for j:=1 to b.n do
   inc(c.a[i+j-1],a.a[i]*b.a[j]);
  for i:=1 to c.n-1 do
   if(c.a[i]>9)then begin
    inc(c.a[i+1],c.a[i] div 10);
    c.a[i]:=c.a[i] mod 10;
   end;
  while(c.n>1)and(c.a[c.n]=0)do dec(c.n);
 end;
begin
Writeln('input length 1 number');
read(x.n);
Writeln('input digits 1 number');
for m:=1 to x.n do read (x.a[m]);
Writeln('input length 2 number');
read(y.n);
Writeln('input digits 2 number');
for m:=1 to y.n do read (y.a[m]);
multlong(z,x,y);
for m:=1 to z.n do write(z.a[m]);
Readln;
readln;
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 05.04.2011 в 23:19.
Mad_Cat вне форума Ответить с цитированием
Старый 05.04.2011, 22:44   #6
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию



можно на ты?

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

у меня иное задание

мзначально прогрумма мне выдаёт уже ошибку и говорит,что identifier not found mt1,mt2.
я уже добавила строки
program
uses crt
const n=15 15 я так понимаю из-за того,что по заданию сказано до 15 чисел
type mas=array [1..n] of integer
Novenkaja вне форума Ответить с цитированием
Старый 05.04.2011, 22:46   #7
3BEPOBOY
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 82
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
это длинная арифметика) просто 30 значащих цифр не влезут в стандартные типы паскаля вроде как) для этого и юзают длинную арифметику)
точно, припоминаю) В школе классе в 9-10 что-то подобное на мигающем турбопаскале делали. У integer тысяч 50 вроде всего в каждую сторону.

А как делать? дробить на классы, перемножать, а потом ответ через string склеивать?
3BEPOBOY вне форума Ответить с цитированием
Старый 05.04.2011, 22:49   #8
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

не знаю,я написала всё что есть-формулировку задания,часть кода,которую надо доизменить и саму картинку,где на рисунке есть пример,что должно быть и как работает
Novenkaja вне форума Ответить с цитированием
Старый 05.04.2011, 22:50   #9
3BEPOBOY
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 82
По умолчанию

Novenkaja
можно на ТЫ)
ох... тут двоичная система смотрю...
Код:
identifier not found mt1,mt2
конечно, никто не знает что это такое)))

Я так понимаю тебе нужно перевести эти числа в двоичную систему, перемножить и обратно?

из десятиричной в двоичную так:
Код:
x = int(input("Введите натуральное число: "))
n = ""
 
while x > 0:
    y = str(x % 2)
    n = y + n
    x = int(x / 2)
 
print (n)

Последний раз редактировалось 3BEPOBOY; 05.04.2011 в 22:54.
3BEPOBOY вне форума Ответить с цитированием
Старый 05.04.2011, 22:55   #10
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

Цитата:
Сообщение от 3BEPOBOY Посмотреть сообщение
Novenkaja
можно на ТЫ)
ох... тут двоичная система смотрю...
Код:
identifier not found mt1,mt2
конечно, никто не знает что это такое)))

Я так понимаю тебе нужно перевести эти числа в двоичную систему, перемножить и обратно?
спасибо,тогда на ты)

да, я тоже заметила,что двоичная система

незнаю,я как поняла,надо чтобы ран выдавал перемножение числе именно тем способом,что на файле,который я приложила

учитывая ещё то условие,что с клавиатуры вводить 2 любых числа до 15 цифр
Novenkaja вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа в паскале связанная с массивом denis2010 Помощь студентам 3 01.02.2010 16:51
программа в паскале связанная с массивом denis2010 Помощь студентам 1 26.01.2010 22:32
2 задачи с массивом на паскале Карабин Помощь студентам 9 02.04.2009 18:24