Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Dadyd
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 2
1

Операции сложения, вычитания, умножения и деления в троичной СС

30.12.2013, 16:08. Просмотров 1040. Ответов 4
Метки нет (Все метки)

Операции сложения, вычитания, умножения и деления в троичной СС. (тип данных массив, числа натуральные)
У кого-нибудь может есть код? Можно в другой СС.
Заранее спасибо.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2013, 16:08
Ответы с готовыми решениями:

Используя только операции сложения и вычитания, найдите частное от деления нацело N на K, а также остаток
Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найдите...

Для заданных двух чисел произвести операции деления, сложения, умножения, вычитание
Для заданных двух чисел произвести операции деления, сложения, умножения, вычитание

Придумайте выражение, которое с mod, div, сложения, вычитания и умножения
Придумайте выражение, которое с помощью mod, div, сложения, вычитания и умножения:переводит число...

Написать процедуру для сложения, умножения квадратных матриц N*N, и умножения матрицы на вектор
Написать процедуру для сложения, умножения квадратных матриц N*N, и умножения матрицы на вектор

Разработать программу сложения и вычитания двух матриц
Даны натуральные числа n, m и две матрицы разрядности nхm целочисленных элементов, где n,m≤10....

4
Cyborg Drone
Модератор
5909 / 3502 / 2567
Регистрация: 17.08.2012
Сообщений: 11,230
30.12.2013, 16:49 2
??? Dadyd, а возможно ли в рамках этой задачи операции производить в какой-то удобной системе счисления (например, 10), а ввод-вывод сделать троичным? Или же строго: число - это массив, каждый элемент которого - троичная цифра и, может быть, знаки '+', '-', ','?
0
Dadyd
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 2
31.12.2013, 23:58  [ТС] 3
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
??? Dadyd, а возможно ли в рамках этой задачи операции производить в какой-то удобной системе счисления (например, 10), а ввод-вывод сделать троичным? Или же строго: число - это массив, каждый элемент которого - троичная цифра и, может быть, знаки '+', '-', ','?
Можно сделать в удобной СС, то есть в 10
0
Cyborg Drone
Модератор
5909 / 3502 / 2567
Регистрация: 17.08.2012
Сообщений: 11,230
07.01.2014, 22:32 4
Программа производит операции с целыми (а не только натуральными) числами в троичной системе счисления, пока не надоест. Балуйтесь.
Кликните здесь для просмотра всего текста
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
program ternary;
 
var s: string;
    x, y, z: longint;
    opcode, xs, ys, zs: char;
 
procedure entr(var p: longint; var r: char; t: byte);
var i: integer;
    pass: boolean;
begin
  repeat
    pass := true;
    write('Operand #', t, ' = ');
    readln(s);
    if (s = '') or (s = '+') or (s = '-') then s := '+0';
    r := '+';
    if s[1] in ['-', '+'] then
      begin
        r := s[1];
        delete(s, 1, 1)
      end;
    for i := 2 to length(s) do if s[i - 1] = '0' then delete(s, 1, 1);
    if s > '2222222222222222222' then
      begin
        writeln('Number too large, reenter.');
        pass := false;
        continue
      end;
    p := 0;
    for i := 1 to length(s) do
      if s[i] in ['0'..'2']
        then p := p * 3 + byte(s[i]) - byte('0')
        else begin
          writeln('It''s no ternary number, reenter.');
          pass := false;
          continue
        end;
      if r = '-' then p := 0 - p;
  until pass;
end;
begin
  repeat
    entr(x, xs, 1);
    repeat
      write('Operation:   ');
      readln(opcode);
      if not(opcode in ['*', '+', '-', '/']) then writeln('Invalid opcode, reenter.')
    until opcode in ['*', '+', '-', '/'];
    entr(y, ys, 2);
    case opcode of
      '*': z := x * y;
      '/': z := x div y;
      '+': z := x + y;
      '-': z := x - y
    end;
    if z >= 0
      then zs := '+'
      else begin
        zs := '-';
        z := abs(z)
      end;
    s := '';
    if z = 0
      then s := '0'
      else while z > 0 do begin
          s := char(byte('0') + (z mod 3)) + s;
          z := z div 3
      end;
    write('    Result = ');
    if zs = '-' then write(zs);
    writeln(s);
    write(' Continue?   ');
    readln(s);
    if (s = 'n') or (s = 'N')then break
  until false;
end.
0
Cyborg Drone
Модератор
5909 / 3502 / 2567
Регистрация: 17.08.2012
Сообщений: 11,230
09.01.2014, 23:07 5
Про деление на 0 позабыл. Концовка вот так будет.
Кликните здесь для просмотра всего текста
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
    entr(y, ys, 2);
    zs := '+';
    case opcode of
      '*': z := x * y;
      '/': if y <> 0 then z := x div y else zs := 'e';
      '+': z := x + y;
      '-': z := x - y
    end;
    if zs = 'e'
      then writeln('Error: zero divide')
      else begin
        if z >= 0
          then zs := '+'
          else begin
            zs := '-';
            z := abs(z)
          end;
        s := '';
        if z = 0
          then s := '0'
          else while z > 0 do begin
            s := char(byte('0') + (z mod 3)) + s;
            z := z div 3
          end;
        write('    Result = ');
        if zs = '-' then write(zs);
        writeln(s)
      end;
    write(' Continue?   ');
    readln(s);
    if (s = 'n') or (s = 'N')then break
  until false;
end.
0
09.01.2014, 23:07
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2014, 23:07

выполнение сложения и вычитания в обратном коде в любой системе счисления
Помогите пожалуйста написать программу!!! ОЧЕНЬ НАДО!!! Добавлено через 53 секунды ОЧЕНЬ...

Используя операции деления нацело и взятия остатка от деления, найти количество и сумму цифр числа
Можете решить вот эти задачи.. Заранее спасибо!!:friends: 1) Дано целое число N(&gt;0). Используя...

Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления
Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru