Раздел: Задачи / Простейшие /
Как заменить цифру в числе
Основы программирования Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее... |
Условие задачи 2.25
Задача 2.25
Дано натуральное число X. Заменить в нём все цифры 3 на цифру 5. Вывести на экран изменённое число или сообщение НЕТ, если изменений не было.
Если вы подзабыли, что такое натуральное число, то читайте здесь.
Похожую задачу мы решали здесь. Точнее, она была не очень похожа - там надо было определить, оканчивается ли число на 3. Можно пойти по тому же пути, чтобы проверить все цифры в числе. Но это будет не очень понятно и удобно.
Поэтому сегодня мы пойдём другим путём - преобразуем число в строку, а затем будем в цикле перебирать все символы в строке, заменяя 3 на 5. После можно преобразовать строку обратно в число (впрочем, это делать необязательно, так как нам не нужно выполнять никаких действий с числом, кроме вывода на экран, а на экран можно вывести и строку).
Для преобразования числа в строку в Паскале надо подключить модуль SysUtils, а в С++ - файл <sstream>.
ВАЖНО!
Чтобы не усложнять код, в программе не выполняются проверки ввода. Если будет введено слишком большое число, то преобразование его в строку будет невозможно и программа завершится аварийно.
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.
#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
Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее... |
Помощь в технических вопросах
Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее... |