Согласие на обработку персональных данных.

18.07.2018
Новая задача: Как определить простое число.

07.07.2018
Новые видео и статья Что такое тэги HTML.

01.07.2018
Новый выпуск журнала Автоматизация и программирование.

25.06.2018
Новые видео и статья Шаблон проекта программы.

17.06.2018
Новая статья Преобразование десятичного числа в шестнадцатеричное.



Раздел: Задачи / Простейшие /

Как заменить цифру в числе

Условие задачи 2.25

Задача 2.25
Дано натуральное число X. Заменить в нём все цифры 3 на цифру 5. Вывести на экран изменённое число или сообщение НЕТ, если изменений не было.

Если вы подзабыли, что такое натуральное число, то читайте здесь.

Похожую задачу мы решали здесь. Точнее, она была не очень похожа - там надо было определить, оканчивается ли число на 3. Можно пойти по тому же пути, чтобы проверить все цифры в числе. Но это будет не очень понятно и удобно.

Поэтому сегодня мы пойдём другим путём - преобразуем число в строку, а затем будем в цикле перебирать все символы в строке, заменяя 3 на 5. После можно преобразовать строку обратно в число (впрочем, это делать необязательно, так как нам не нужно выполнять никаких действий с числом, кроме вывода на экран, а на экран можно вывести и строку).

Для преобразования числа в строку в Паскале надо подключить модуль SysUtils, а в С++ - файл <sstream>.

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

Решение задачи 2.25 на Паскале
 
program mytask;

uses SysUtils;    //!!! Подключить этот модуль

//****************************************************************
// КОНСТАНТЫ
//****************************************************************
const
  OLD_NUM = '3';  //Цифра, которую надо заменить
  NEW_NUM = '5';  //Цифра, которой надо заменить цифру OLD_NUM

//****************************************************************
// ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ
//****************************************************************
var
  Change  : boolean = FALSE;
  i       : WORD;
  Num     : DWORD;
  str     : string;
  SNum    : string = '';

//****************************************************************
// ОСНОВНАЯ ПРОГРАММА
//****************************************************************
begin
  Write('Number = '); ReadLn(Num);
  str := IntToStr(Num);
  for i := 1 to Length(str) do
    if str[i] = OLD_NUM then
      begin
        SNum := SNum + NEW_NUM;
        Change := TRUE;
      end
    else
      SNum := SNum + str[i];

  if Change then
    WriteLn('New Number = ', SNum)
  else
    WriteLn('The number has not changed');

  WriteLn('The end. Press ENTER...');
  ReadLn;
end.
Решение задачи 2.25 на С++
#include <cstdlib>
#include <iostream>
#include <sstream>         //Подключить этот файл

using namespace std;

//****************************************************************
// КОНСТАНТЫ
//****************************************************************
const char OLD_NUM = '3';  //Цифра, которую надо заменить
const char NEW_NUM = '5';  //Цифра, которой надо заменить цифру OLD_NUM 

//****************************************************************
// ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ
//****************************************************************
bool Change = false;
unsigned short int i;
unsigned int Num;
ostringstream Str;
ostringstream SNum; 
string sss;  

//****************************************************************
// ОСНОВНАЯ ПРОГРАММА
//****************************************************************
int main(int argc, char *argv[])
{
  Str.clear();
  SNum.clear();
  cout << "Number = "; cin >> Num; cout << endl;
  Str << Num;
  sss = Str.str();
  
  i = 0;
  while (i < sss.length())
  {
    if (sss[i] == OLD_NUM)
    {
      SNum << NEW_NUM;
      Change = true;
    }
    else SNum << sss[i];    
    i++;
  }
  if (Change)
    cout << "New Number = " << SNum.str() << endl;
  else
    cout << "The number has not changed" << endl;
  
  system("PAUSE");
  return EXIT_SUCCESS;
}

Как заменить цифру в числе


Основы C++ Основы C++

C++ - это один из самых популярных языков программирования. Не важно, на каком языке программируете лично вы. Но, если вы хотя бы в общих чертах не знаете С++, то это большой пробел в вашем образовании, который надо восполнить как можно быстрее... Подробнее...
Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика