С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
damir2407
0 / 0 / 0
Регистрация: 01.10.2015
Сообщений: 30
1

Написать программу, которая выполняет сравнение многоразрядных десятичных ЦЕЛЫХ чисел

21.04.2017, 14:00. Просмотров 898. Ответов 18
Метки нет (Все метки)

Написать программу, которая выполняет сравнение многоразрядных десятичных ЦЕЛЫХ чисел. То-есть вывести > если первое число больше второго; вывести < если второе число больше первого; вывести = если числа равны.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2017, 14:00
Ответы с готовыми решениями:

Дан двумерный массив целых чисел. Написать программу, которая:
Дан двумерный массив целых чисел. Написать программу, которая: для каждого...

Написать программу, которая вычисляет произведение первых n целых положительных чисел
Написать программу, которая вычисляет произведение первых n целых положительных...

Написать программу,которая выводит на экран квадраты всех целых чисел от 7 до 20
Написать программу,которая выводит на экран квадраты всех целых чисел от 7 до...

Написать программу, которая находит сумму элементов последовательности из 5 целых чисел
Написать программу, которая находит сумму элементов последовательности из 5...

Написать программу, которая формирует таблицу квадратов и кубов целых чисел от 1 до 10
Написать программу, которая формирует таблицу (матрицу 2x10) квадратов и кубов...

18
Hitoku
Модератор
1705 / 1304 / 1400
Регистрация: 28.10.2016
Сообщений: 4,240
Завершенные тесты: 4
21.04.2017, 14:40 2
Pascal
1
2
3
4
5
6
7
var a,b:integer;
begin
  repeat
    (a,b) := (ReadlnInteger('Первое число:'),ReadlnInteger('Второе число:'));
  until (a > 9) and (b > 9);
  writeln(a > b ? '>' : a < b ? '<' : '=');
end.
0
damir2407
0 / 0 / 0
Регистрация: 01.10.2015
Сообщений: 30
21.04.2017, 15:11  [ТС] 3
Я же написал, сравнение многоразрядных чисел!
0
Zwelenewskiy
119 / 119 / 105
Регистрация: 09.01.2017
Сообщений: 1,256
Завершенные тесты: 1
21.04.2017, 15:31 4
damir2407, тип на longint невозможно сменить?)

Добавлено через 2 минуты
Хотя,если честно, и с ним не работает...
0
Joy
Эксперт Pascal/Delphi
2175 / 1202 / 1438
Регистрация: 29.08.2014
Сообщений: 4,389
21.04.2017, 15:46 5
damir2407, BigInteger использовать можно?
0
damir2407
0 / 0 / 0
Регистрация: 01.10.2015
Сообщений: 30
21.04.2017, 16:10  [ТС] 6
Нет, мы не используем
0
Zwelenewskiy
119 / 119 / 105
Регистрация: 09.01.2017
Сообщений: 1,256
Завершенные тесты: 1
21.04.2017, 17:37 7
Joy, а как прочитать biginteger?

Добавлено через 1 час 8 минут
Hitoku, можете пояснить свою программу: строки 5 и 6?)
0
Hitoku
Модератор
1705 / 1304 / 1400
Регистрация: 28.10.2016
Сообщений: 4,240
Завершенные тесты: 4
21.04.2017, 19:07 8
Zwelenewskiy, BigInteger можно прочитать так
Pascal
1
var n:=BigInteger.Parse(ReadlnString);
Добавлено через 1 минуту
repeat until думаю можно убрать в принципе, а в 6-й вывод в зависимости от условия
0
Puporev
Модератор
55507 / 42595 / 29444
Регистрация: 18.05.2008
Сообщений: 100,754
21.04.2017, 19:09 9
Да задача на сравнение строк цифр и не писалась специально для .net.
0
Zwelenewskiy
119 / 119 / 105
Регистрация: 09.01.2017
Сообщений: 1,256
Завершенные тесты: 1
21.04.2017, 19:31 10
Не пойму: почему программа работает при больших числах и не работает при малых (При вводе 123 и 321 пишет,что числа равны)

Кликните здесь для просмотра всего текста
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
var
  a1, b1: array of char;
  a, b: string;
  i, j: integer;
 
begin
  {---------------------------------Чтение чисел-------------------------------}
  writeln('Введите первое число без пробелов: ');  
  readln(a);
  writeln('Введите второе число без пробелов: ');  
  readln(b); 
  
  SetLength(a1, Length(a));
  SetLength(b1, Length(b));
  
  j := 1;
  for i := 0 to Length(a) - 1 do// перевод в массив первого числа
  begin
    a1[i] := a[j];
    inc(j);
  end;
  
  j := 1;
  for i := 0 to Length(b) - 1 do// перевод в массив второго числа
  begin
    b1[i] := b[j];
    inc(j);
  end;
  
  {----------------------------------------------------------------------------}
  {------------------------------Сравнение чисел-------------------------------}
  if Length(a) > Length(b) 
    then writeln('Первое больше');
  if Length(a) < Length(b) 
    then writeln('Второе больше');
  
  var n: integer := 0;
  var k: integer := 0;
  var g: integer := 0;
  if Length(a) = Length(b)//если числа равны
  then begin
    for i := 0 to Length(a) - 1 do
    begin
      for j := 0 to Length(b) - 1 do
        if StrToInt(a1[i]) > StrToInt(b1[i])        
          then inc(k)
          else
        if StrToInt(a1[i]) < StrToInt(b1[i])  
          then inc(n)
        else inc(g);
    end;
    
  end;
  if g = Length(a)
    then writeln('Равны')
  else
  if k > n
    then writeln('Первое больше')
    else
  if k < n  
    then writeln('Второе больше'); 
  {----------------------------------------------------------------------------}
  
end.
0
Puporev
Модератор
55507 / 42595 / 29444
Регистрация: 18.05.2008
Сообщений: 100,754
21.04.2017, 19:43 11
Что-то наворотили.
if length(a)>lebgth(b) then a>b
else if ngth(a)<lebgth(b) then a<b
else if a>b then a>b else a<b else a=b;

Добавлено через 5 минут
Pascal
1
2
3
4
5
6
7
8
9
10
11
var a,b:string;
begin
writeln('a');
readln(a);
writeln('b');
readln(b);
if length(a)>length(b) then write('a>b')
else if length(a)<length(b) then write('a<b')
else
if a>b then write('a>b') else if a<b then write('a<b') else write('a=b');
end.
0
Zwelenewskiy
119 / 119 / 105
Регистрация: 09.01.2017
Сообщений: 1,256
Завершенные тесты: 1
21.04.2017, 19:49 12
Puporev, так если ввести те же 123 и 321 выдаст,что равны

Добавлено через 1 минуту
Оу, не обновил страницу)
0
Puporev
Модератор
55507 / 42595 / 29444
Регистрация: 18.05.2008
Сообщений: 100,754
21.04.2017, 19:51 13
С бугра конечно виднее, но у меня так.
0
Миниатюры
Написать программу, которая выполняет сравнение многоразрядных десятичных ЦЕЛЫХ чисел  
Zwelenewskiy
119 / 119 / 105
Регистрация: 09.01.2017
Сообщений: 1,256
Завершенные тесты: 1
21.04.2017, 19:51 14
То есть строки можно напрямую сравнивать??
0
Puporev
Модератор
55507 / 42595 / 29444
Регистрация: 18.05.2008
Сообщений: 100,754
21.04.2017, 19:53 15
Да, но только не числа разной длины, ибо строка '9'>'123456'.
1
damir2407
0 / 0 / 0
Регистрация: 01.10.2015
Сообщений: 30
22.04.2017, 18:00  [ТС] 16
Ребята, мне нужно сравнивать огроменные ЦЕЛЫЕ числа. Целые-и положительные и отрицательные, поймите
0
Zwelenewskiy
119 / 119 / 105
Регистрация: 09.01.2017
Сообщений: 1,256
Завершенные тесты: 1
22.04.2017, 18:15 17
Лучший ответ Сообщение было отмечено damir2407 как решение

Решение

damir2407, можешь ввести хоть 100 цифр - будет работать
Кликните здесь для просмотра всего текста
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var a,b:string;
begin
writeln('a');
readln(a);
writeln('b');
readln(b);
if (length(a)>length(b)) and (a[1] = '-') then write('a<b')
else
if (length(a)<length(b)) and (b[1] = '-') then write('a>b')
else
if length(a)>length(b) then write('a>b')
else 
if length(a)<length(b) then write('a<b')
else
if (length(a) = length(b)) and ((a[1] = '-')) and ((b[1] = '-')) and (a>b) then write('a<b')
else
if (length(a) = length(b)) and ((b[1] = '-')) and ((a[1] = '-')) and (a<b) then write('a>b')
else
if a>b then write('a>b') else if a<b then write('a<b') else write('a=b');
end.


Добавлено через 36 секунд
Строка может вместить сколь угодно большие числа
1
Puporev
Модератор
55507 / 42595 / 29444
Регистрация: 18.05.2008
Сообщений: 100,754
22.04.2017, 18:22 18
Если очень не нравятся строки, ищи длинную арифметику с массивами , там приводится функция сравнения длинных чисел.
Когда-то давно писал, сейчас у меня этого нет, писать снова неинтересно и лень.
0
damir2407
0 / 0 / 0
Регистрация: 01.10.2015
Сообщений: 30
23.04.2017, 12:11  [ТС] 19
Чувак, ты просто красавчик, спасибо тебе огромное, и всем кто старался!
0
23.04.2017, 12:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2017, 12:11

Написать программу, которая вычисляет произведение первых n целых положительных нечетных чисел
Написать программу, которая вычисляет произведение первых n целых положительных...

Написать программу,которая будет находить: cумму,разность и произведение двух целых чисел
Написать программу,которая будет находить: cумму,разность и произведение двух...

Написать программу, которая выводит таблицу квадратов первых десяти целых положительных нечетных чисел
Написать программу, которая выводит таблицу квадратов первых десяти целых...


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

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

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