Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
3 / 1 / 2
Регистрация: 24.12.2014
Сообщений: 78

Годовой баланс

20.12.2022, 15:35. Показов 615. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В конторе «Рога и Копыта» подходит время подведения годового баланса. В бухгалтерию поступили сведения о том, что, согласно документам, суммарный расход составил а рублей, a суммарный приход – b рублей. Поскольку с реальным положением дел эти цифры все равно не имеют ничего общего, бухгалтер решил реализовать следующую свою идею. Как известно, при наборе чисел на компьютере люди часто вводят цифры в неправильном порядке. Поэтому бухгалтер хочет найти такой способ переставить цифры в числах a и b, чтобы в результате разность a-b (и, соответственно, количество денег, которые он положит к себе в карман), была максимальна, а в случае можно будет сослаться на ошибку секретаря. При этом нельзя забывать о знаке чисел и о том, что ноль не может быть первой цифрой числа, отличного от ноля. Напишите программу, которая поможет бухгалтеру.

Написал код
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
procedure max(var n:integer);
var s:string; i,j:integer;
  begin
    s:=inttostr(n);
    for i:=1 to length(s)-1 do
      for j:=i+1 to length(s) do 
        if  (s[i]<s[j]) and(s[i]<>'-') then swap(s[i],s[j]);
      n:=strtoint(s);
  end;
 
procedure min(var n:integer);
var s:string; i,j,p,t:integer;
  begin
    s:=inttostr(n);
    for i:=1 to length(s)-1 do
      for j:=i+1 to length(s) do 
        if  (s[i]>s[j])and(s[i]<>'-') then swap(s[i],s[j]);
      
      for i:=1 to length(s) do
        if (s[i]>'0') and (s[i]<>'-') then begin t:=i; break; end;
      if (s[1]='0') and (length(s)>1) and (n>0) then swap(s[1],s[t]) else
      if (n<0) and (s[2]='0') and (length(s)>1) then swap(s[2],s[t]);
      n:=strtoint(s);
  end;
 
 
var a,b,t:integer; 
begin
read(a,b); 
  if (a>0) and (b>=0) then begin max(a); min(b); end else
    if(a<0) and (b<=0) then begin min(a); max(b); end else
      if (a>=0) and (b<0) then begin max(a); max(b); end else 
        if (a<=0) and (b>0) then begin min(a); min(b); end;
      t:=a-b;
      print(t);
      end.
Сам проверял все в норме, на асмп выводит Wrong answer 1
Подскажите пожалуйста в чем может проблема?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.12.2022, 15:35
Ответы с готовыми решениями:

Работа с записями. Номер отдела с наиболее высокой средней годовой зарплатой
Массив содержит сведения о занимаемой должности и о зарплате каждого сотрудника некоторого отдела за каждый месяц в течении года. Каждая...

Проверить баланс скобок в выражении
Проверить баланс скобок в арифметическом выражении по следующему алгоритму:сравнивать по очереди каждый символ с&quot;(&quot; и...

Проверить, имеется ли в заданном тексте баланс открывающихся и закрывающихся скобок
Проверить, имеется ли в заданном тексте баланс открывающихся и закрывающихся скобок, имея в виду, что балансом, например будет комбинация...

3
Модератор
10445 / 5737 / 3406
Регистрация: 17.08.2012
Сообщений: 17,450
21.12.2022, 02:20
То ксть, самый первый ответ уже не верный. Может быть, потому, что бухгалтеру нужны два числа (что логично), а не их разность? Что об этом говорится в условии задачи?

И что-то у Вас программа не для Pascal ABC.NET.

Мой вариант для любого паскаля, для сдачи роботу на проверочный сайт:
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
procedure rebuild(var n: integer; s, h: integer);
var
  i: integer;
  d: array[-9..9] of integer;
begin
  if abs(n) > 11 then
    begin
      for i := -9 to 9 do d[i] := 0;
      repeat
        inc(d[n mod 10]);
        n := n div 10
      until n = 0;
      while d[s] = 0 do inc(s, h);
      if s = 0 then
        begin
          i := s;
          repeat inc(i, h) until d[i] > 0;
          n := i;
          dec(d[i])
        end;
      repeat
        for i := 1 to d[s] do n := n * 10 + s;
        inc(s, h)
      until abs(s) > 9
    end
end;
 
var
  a, b: integer;
begin
  readln(a, b);
  rebuild(a, 9, -1);
  rebuild(b, -9, 1);
  writeln(a, ' ', b)
end.
0
3 / 1 / 2
Регистрация: 24.12.2014
Сообщений: 78
21.12.2022, 06:36  [ТС]
Спасибо учту. Только и ваша программа не проходит Wrong answer 1
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
21.12.2022, 08:39
Это потому что
1) в задани не указано, что выводить, да-да, в оригинале был и формат output.txt, и примеры вывода,
2) вывод не соответствует тому, что ожидает робот (сравнивая в хрустальном шаре тот вывод, что должен быть, вижу, что он совсем не тот, что есть).
А поскольку у вас все недостающие данные в наличии, поправить не составит труда.

Без внятного ТЗ результат ХЗ. (q)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.12.2022, 08:39
Помогаю со студенческими работами здесь

Определить, был ли выполнен годовой план
Известен месячный план выпуска некоторой продукции и объемы выпущенной продукции заводом за год (помесячно). Определить, был ли выполнен...

Составить массив записей, с полями Ф. И. О. , семейное положение, средний годовой доход
Составить массив записей, предусмотрев поля: Ф.И.О., семейное положение (для семейных должно быть поле &quot;дети&quot;), средний...

Верно ли, что годовой доход первого человека больше некоторого заданного числа?
В двумерном массиве хранится информация о зарплате 18 человек за каждый месяц года (первого человека - в первой строке,второго- во второй и...

Верно ли, что годовой доход первого человека больше некоторого заданного числа?
2. В двухмерном массиве хранится информация о зарплате 18 человек за каждый месяц года (первого человека — в первой строке, второго — во...

Верно ли, что годовой доход первого человека больше некоторого заданого числа?
В двумерном массиве хранится информация о зарплате 18 человек за каждый месяц года (первого человека - в первой строке,второго- во второй и...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru