Создать объект, который обрабатывает переменную целого типа максимальной длины
Скачать 122.34 Kb.
|
Постановка задачи Создать объект, который обрабатывает переменную целого типа максимальной длины. У объекта есть закрытое свойство n целого типа максимальной длины. Объект обладает следующей функциональностью: - задает значение свойства n; - вычисляет количество цифр значения свойства n; - возвращает количество цифр значения свойства n. Написать программу, которая: 1. Создает объект. 2. Вводит значение переменной целого типа. 3. Определяет значение свойства n по значению переменной целого типа. 4. Вычисляет количество цифр свойства n. 5. Выводит значение свойства n. 6. Выводит количество цифр значения свойства n. Описание входных данных Первая строка: Целое число в десятичном формате. Описание выходных данных Первая строка: n = «значение свойства n» Вторая строка: N = «количество цифр свойства n» Метод решения 3 6 Используем потоки ввода и вывода cin и cout. Объявление класса Long Описание класса Long Свойства Имеется n типа long long, которая хранит значение целого типа максимальной длины и целое a, которое хранит количество цифр значения свойства n Методы 1. Init задает значение свойства n 2. Counter вычисляет количество цифр значения свойства n 3. Returner возвращает количество цифр значения свойства n Описание алгоритма Класс объекта: Long Модификатор доступа: public Метод: Counter Функционал: Вычисление количества цифр переменной n Параметры: нет Возвращаемое значение: нет № Предикат Действия № перехода Комментарий 1 Вычисляет количество цифр n ∅ Функция: main Функционал: Основная программа 4 Параметры: нет Возвращаемое значение: int, код возврата № Предикат Действия № перехода Комментарий 1 Создание объекта класса Long целое n максимальной длины ввод n вывод "n = " и n 2 2 передача параметров объекту класса Long через метод Init 3 3 вычисляем количество цифр значения свойства n через метод Counter 4 4 вывод "N = " и возвращает значения количества цифр через метод Returner ∅ Блок-схема алгоритма 5 Код программы 6 Файл Long.cpp #include "Long.h" void Long::Init(long long n) { this->n = n; a = 0; } void Long::Counter() { a = 0; long long buf = n; if(buf!=0) { while(buf!=0) { buf/=10; a++; } } else { a++; } } int Long::Returner() { return a; } Файл Long.h #ifndef LONG_H #define LONG_H #pragma once #include using namespace std; class Long { private: long long n; int a; public: void Init(long long n); void Counter(); int Returner(); }; #endif 7 Файл main.cpp #include #include #include #include "Long.h" using namespace std; int main() { Long l; long long n; cin>>n; cout<<"n = "< l.Counter(); cout<<"N = "<< l.Returner();; return(0); } Тестирование Входные данные Ожидаемые выходные данные Фактические выходные данные 22222 n = 22222 N = 5 n = 22222 N = 5 4444 n = 4444 N = 4 n = 4444 N = 4 2424242 n = 2424242 N = 7 n = 2424242 N = 7 8 9 |