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

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

Основы программирования 2.0 Основы программирования
Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее...

Условие задачи 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;
}

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


Как стать программистом 2.0 Как стать программистом 2.0

Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее...
Помощь в технических вопросах Помощь в технических вопросах

Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

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