Другие языки программирования и технологии

Нужна помощь по С (плюс плюс)

Вот такое дурацкое задание задали "Объяснить, что означает каждая строка в этой программе".
А сама прога выполняет вот такое действие: Считывает натуральное число n (n<10000), определяет и выводит, сколько цифр в числе, определяет и выводит первую и предпоследнюю цифру числа.
Прога написана с использованием классов.
Текст программы:
#include
#include
#include
using namespace std;
bool checkErrors()
{
if( cin.fail() )
{
cin.clear();
while(cin.get()!='\n');
return true;
}
return false;
}
class Number{
private:
int N;
public:

Number(int n)
{
this->N = n;
}
int findCountDigits()
{
int n = this->N;
int cnt = 0;
do
{
n = (n - n%10)/10;
cnt++;
}
while(n > 0);
return cnt;
}
int findFirstDigit()
{
int n = this->N;
while(n >= 10)
{
n = (n - n%10)/10;
}
return n;
}
int findPreLastDigit()
{
int n = this->N;
if(n > 10)
return (n%100 - n%10)/10;
else
return -1;
}
};

int main()
{
setlocale( LC_ALL, "rus");
int N;
while(true)
{
cout << "Введите натуральное число: " << endl;
cin >> N;
if( checkErrors() )
{
cout<<"Ошибка ввода! \n";
continue;
}
if(N < 0 || N > 10000)
{
cout<<"число должно быть в диапазоне от 0 до 10000!\n";
continue;
}
break;
}
cout << "Число: " << N << endl;
Number* Value = new Number(N);
cout << "Количество цифр в числе: " << Value->findCountDigits() << endl;
cout << "Первая цифра числа: " << Value->findFirstDigit() <findPreLastDigit();
if( preLast>=0 )
cout << "Предпоследняя цифра числа: " << Value->findPreLastDigit()<<endl;
else
cout << "Число состоит только из 1 цифры" <<endl;
system("pause");
return 0;
}
В программировании нифига не понимаю (и понимать не собираюсь-ни в универе, ни в жизни не пригодится). Помощь нужна срочно, т. к. дали срок на один день. Если на завтра объяснение сделаю, то зачет будет, и можно забыть о программировании навечно и Вам (тем, кто помог) буду очень благодарен!
#include // например тут библиотека ввода/вывода где расположены функции (классы) для того, что бы выводить информацию на консоль, например, или вводить какие-то данные с неё
#include
#include тут ещё какие-то две библиотеки подключаются

Тут подключаются всякие библиотеки, в которых записаны разные функции и классы, которые можно использовать.
==============================
using namespace std; // подключаем пространство имён
=====================================
bool checkErrors() // по названию функции можно судить, что она ищет ошибки и если находит, то возвращает false, а если не находит, то возвращает true
{
if( cin.fail() )
{
cin.clear();
while(cin.get()!='\n');
return true; // возвращает true, значит ошибок нет ИЛИ НАОБОРОТ ОНИ ЕСТЬ!!!
}
return false; // функция возвращает false
}
return false; // функция возвращает false
}

Этот кусок когда хрень какая-то, с которой я не познакомился ещё.
==========================================

class Number{ // класс называется Number
private: // к private переменным доступ имеют только внутри класса
int N; // объявляется переменная N
public: // к public переменных можно получить доступ из любого участка кода

Number(int n) // Это конструктор, т. е. функция, которая нужна для инициализации переменных
{
this->N = n; // присваиваем переменной N значение переменной n
}
int findCountDigits() // метод (функция в классе), который, судя по названию, считает количество цифр в числе
{
int n = this->N; // инициализация переменной n, в которое помещается значение N
int cnt = 0; // обнуление переменной cnt
do // тут цикл начинается
{
n = (n - n%10)/10; // знак % (проценты) означет взять остаток от деления на цело
cnt++; // увеличение переменной cnt на единицу, т. е. подсчёт количества цифр
}
while(n > 0); // тут цикл заканчивается. Он будет продолжаться, пока соблюдается условие, что n больше нуля. И этот цикл выполниться хотя бы один раз.
return cnt;
}
int findFirstDigit() // в этой функции находят первую цифру в числе
{
int n = this->N;
while(n >= 10) // этот цикл будет продолжаться, пока значение в переменной n будет больше или равно десяти
{
n = (n - n%10)/10;
}
return n; // возвращает переменную n
}
int findPreLastDigit() // в этой функции, судя по названию, ищут предпоследнюю цифру числа
{
int n = this->N;
if(n > 10)
return (n%100 - n%10)/10;
else
return -1; // возвращают -1, если число меньше десяти
}
};

Вот этот большой кусок кода это класс. Т. е. тут переменные и функции соединены в один флакон для удобства обращения с ними.
========================================

int main() // начало основной программы
{
setlocale( LC_ALL, "rus"); // эта штука нужна, что бы в консоли появлялись символы кириллицы, вместо крокозябр
int N; // объявляем переменную N
while(true) // начало цикла, который будет повторяться постоянно, пока его не остановят
{
cout << "Введите натуральное число: " << endl; //
cin >> N; // ввод значения
if( checkErrors() ) // если найдена ошибка
{
cout<<"Ошибка ввода! \n"; // вывод сообщения об ошибки
continue; // возврат к началу цикла
}
if(N < 0 || N > 10000) // если число меньше нуля или больше 10 тыщ
{
cout<<"число должно быть в диапазоне от 0 до 10000!\n"; // выводится это сообщение
continue; // цикл продолжается сначала
}
break; // ОСТАНОВКА ЦИКЛА
}
cout << "Число: " << N << endl;
Number* Value = new Number(N);
cout << "Количество цифр в числе: " << Value->findCountDigits() << endl;
cout << "Первая цифра числа: " << Value->findFirstDigit() =0 )
cout << "Предпоследняя цифра числа: " << Value->findPreLastDigit()<<endl;
else
cout << "Число состоит только из 1 цифры" <<endl;
system("pause");
return 0;
}

Основной кусок программы
Эдуард Зяблицев
Эдуард Зяблицев
83 061
Лучший ответ
Эдуард Зяблицев cout << "Число: " << N << endl; // вывод числа
Number* Value = new Number(N); // объявление указателя на объект класса Number и выделение для него памяти
cout << "Количество цифр в числе: " << Value->findCountDigits() << endl; // вывод сообщения и вызов метода (функции класса) по подсчёту цифр
cout << "Первая цифра числа: " << Value->findFirstDigit() =0 ) // если последняя цифра больше или равна нулю, то
cout << "Предпоследняя цифра числа: " << Value->findPreLastDigit()<<endl; // то выводиться вот это сообщение и вызывается ещё вот этот метод
else // в противном случае (иначе)
cout << "Число состоит только из 1 цифры" <<endl; // выводиться это сообщение
system("pause");
return 0;
Эдуард Зяблицев system("pause"); // задержка экрана
return 0; // окончание главной функции
}
Рафаил Саркисянц Спасибо тебе большое!!!! Ты меня спас! ;)