Как изменить число в программе

Учитель задал нам задачу: на вход пятизначное число. Затем у этого пятизначного числа берутся первые два и последние два числа, затем меняются местами. Например: Input: 24158, Output: 58124. Если два передних и задних числа, а также число посередине будут занимать по одной переменной, всего будет 4 переменных. А у нас задание: сократить число переменных до 2-х! Т.е.

1-я переменная — само число, 2-я переменная — все действия внутри числа.

Program Z_1; var x, a, b, c: LongInt; begin Randomize; x := random(89999) + 10000; writeln(‘Число: ‘, x); a := x div 1000; b := x mod 100; c := x div 100 mod 10; writeln(‘Результат: ‘, b,c,a); end.

Должно получиться:

Program Z_1; var x, a: LongInt; begin Randomize; x := random(89999) + 10000; writeln(‘Число: ‘, x); a := . ; writeln(‘Результат: ‘, a); end.

Подскажите, как можно сократить число переменных до требуемого?

Отслеживать

13.6k 12 12 золотых знаков 43 43 серебряных знака 72 72 бронзовых знака

Источник: ru.stackoverflow.com

18 Функции Excel ПОДСТАВИТЬ и ЗАМЕНИТЬ

Как изменить положительные числа на отрицательные в Microsoft Excel

Как изменить положительные числа на отрицательные в Microsoft Excel

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

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

Способ 1: Формула + вспомогательный столбец

Этот метод хорош тем, что не требует ручной манипуляции со специальными вставками, о которых пойдет речь в следующем варианте. Однако придется использовать формулу, чтобы достичь желаемого результата. Дело в том, что если просто умножить ячейки на -1, а затем перенести их, в пустых клетках появится 0.

Читайте также:
Не работает программа для принтера

Умножение на -1 для изменения знаков чисел в Microsoft Excel

Если же пустых клеток у вас нет, просто умножьте значение на -1 во вспомогательным столбце, растяните формулу, а затем перенесите ее так, как это будет показано в конце следующей инструкции.

Что касается создания функции, то в этом случае идеальным вариантом будет ЕСЛИ, чтобы исключить пустые ячейки. Давайте более детально разберемся с ее созданием и настройкой вспомогательного столбца.

  1. Напротив текущей таблицы в пустой клетке введите =ЕСЛИ(), объявив тем самым интересующую нас функцию. Начало записи формулы для изменения знаков чисел в Microsoft Excel
  2. Затем впишите условие A1<>»». Это означает, что действие нужно выполнить, когда в ячейке нет пустоты. Вторая часть формулы для изменения знаков чисел в Microsoft Excel
  3. После этого введите само действие, то есть умножьте ячейку на -1, записав это как A1*-1;. После единицы обязательно поставьте точку с запятой. Ввод значения для формулы для изменения знаков чисел в Microsoft Excel
  4. Если же условие не удовлетворяется, то есть ячейка пустая, ее нужно оставить пустой. Укажите это в формуле как «». Завершение записи функции для изменения знаков чисел в Microsoft Excel
  5. Нажмите Enter и ознакомьтесь с результатом. Вы видите, что получили значение без минуса или с ним, в зависимости от изначального числа. Результат записи функции для изменения знаков чисел в Microsoft Excel
  6. Растяните функцию на необходимое число клеток в сторону и вниз, чтобы покрыть все ячейки таблицы, после чего скопируйте ее, нажав сочетание клавиш Ctrl + C. Растягивание функции для изменения знаков чисел в Microsoft Excel
  7. Щелкните правой кнопкой мыши по первому значению изначальной таблицы и из контекстного меню выберите параметр вставки «Значение». Иконку вы видите на следующем скриншоте. Специальная вставка функции для изменения знаков чисел в Microsoft Excel
  8. Как видно, вставка прошла успешно – теперь вспомогательный столбец можно удалить, что никак не повлияет на отображение оригинальных чисел. Успешная вставка функции для изменения знаков чисел в Microsoft Excel

Внимательно ознакомьтесь со скриншотами, и у вас все получится! Если хотите, просто вставьте готовую формулу, заменив номер ячейки на свой. Выглядит она так: =ЕСЛИ(A1<>»»;A1*-1;»»).

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей

Способ 2: Умножение на значение

Исправление чисел, превратившихся в даты

Испорченные данные

При импорте в Excel данных из внешних программ, иногда возникает весьма неприятная проблема — дробные числа превращаются в даты:
Так обычно происходит, если региональные настройки внешней программы не совпадают с региональными настройками Windows и Excel. Например, вы загружаете данные с американского сайта или европейской учётной системы (где между целой и дробной частью — точка), а в Excel у вас российские настройки (где между целой и дробной частью — запятая, а точка используется как разделитель в дате).
При импорте Excel, как положено, пытается распознать тип входных данных и следует простой логике — если что-то содержит точку (т.е. российский разделитель дат) и похоже на дату — оно будет конвертировано в дату. Всё, что на дату не похоже — останется текстом. Давайте рассмотрим все возможные сценарии на примере испорченных данных на картинке выше:

  • В ячейке A1 исходное число 153.4182 осталось текстом, т.к. на дату совсем не похоже (не бывает 153-го месяца)
  • В ячейке A2 число 5.1067 тоже осталось текстом, т.к. в Excel не может быть даты мая 1067 года — самая ранняя дата, с которой может работать Excel — 1 января 1900 г.
  • А вот в ячейке А3 изначально было число 5.1987, которое на дату как раз очень похоже, поэтому Excel превратил его в 1 мая 1987, услужливо добавив единичку в качестве дня:
Читайте также:
Как сделать программу по умолчанию

Неправильная дата

Еще одна неправильная дата

Вот такие варианты. И если текстовые числа ещё можно вылечить банальной заменой точки на запятую, то с числами превратившимися в даты такой номер уже не пройдет. А попытка поменять их формат на числовой выведет нам уже не исходные значения, а внутренние коды дат Excel — количество дней от 01.01.1900 до текущей даты:

Неправильное число после изменения формата

Лечится вся эта история тремя принципиально разными способами.

Способ 1. Заранее в настройках

Если данные ещё не загружены, то можно заранее установить точку в качестве разделителя целой и дробной части через Файл — Параметры — Дополнительно (File — Options — Advanced) :

Настройка разделителей в окне параметров Excel

Снимаем флажок Использовать системные разделители (Use system separators) и вводим точку в поле Разделитель целой и дробной части (Decimal separator) .

После этого можно смело импортировать данные — проблем не будет.

Способ 2. Формулой

Если данные уже загружены, то для получения исходных чисел из поврежденной дата-тексто-числовой каши можно использовать простую формулу:

Формула исправления чисел из дат

=—ЕСЛИ( ЯЧЕЙКА(«формат»;A1)=»G» ; ПОДСТАВИТЬ(A1;».»;»,») ; ТЕКСТ(A1;»М,ГГГГ») )

В английской версии это будет:

=—IF (CELL («format «;A1)=»G»; SUBSTITUTE (A1;».»;»,»); TEXT (A1;»M ,YYYY «))

Логика здесь простая:

  • Функция ЯЧЕЙКА (CELL) определяет числовой формат исходной ячейки и выдаёт в качестве результата «G» для текста/чисел или «D3» для дат.
  • Если в исходной ячейке текст, то выполняем замену точки на запятую с помощью функции ПОДСТАВИТЬ (SUBSTITUTE) .
  • Если в исходной ячейке дата, то выводим её в формате «номер месяца — запятая — номер года» с помощью функции ТЕКСТ (TEXT) .
  • Чтобы преобразовать получившееся текстовое значение в полноценное число — выполняем бессмысленную математическую операцию — добавляем два знака минус перед формулой, имитируя двойное умножение на -1.

Способ 3. Макросом

Если подобную процедуру лечения испорченных чисел приходится выполнять часто, то имеет смысл автоматизировать процесс макросом. Для этого жмём сочетание клавиш Alt + F11 или кнопку Visual Basic на вкладке Разработчик (Developer) , вставляем в нашу книгу новый пустой модуль через меню Insert — Module и копируем туда такой код:

Читайте также:
Как освободить com порт занятый программой

Sub Fix_Numbers_From_Dates() Dim num As Double, cell As Range For Each cell In Selection If Not IsEmpty(cell) Then If cell.NumberFormat = «General» Then num = CDbl(Replace(cell, «.», «,»)) Else num = CDbl(Format(cell, «m,yyyy»)) End If cell.Clear cell.Value = num End If Next cell End Sub

Останется выделить проблемные ячейки и запустить созданный макрос сочетанием клавиш Alt + F8 или через команду Макросы на вкладке Разработчик (Developer — Macros) . Все испорченные числа будут немедленно исправлены.

Ссылки по теме

  • Как Excel на самом деле работает с датами и временем
  • Замена текста функцией ПОДСТАВИТЬ
  • Функция ВПР и числа-как-текст

Источник: www.planetaexcel.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru