Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <stdlib.h>
- #include <time.h>
- using namespace std;
- int main()
- {
- setlocale(LC_ALL, "Russian");
- int q;
- tryAgain:
- cout << "Хотите ли вы посмотреть обучения или пройти тесты?\nОбучения (1) Тесты (2) Завершить программу (3)\n";
- cin >> q;
- cout << " " << endl;
- if (q == 1)
- {
- int t;
- cout << "Выберите обучение\nИз 10-ой системы в 2-ую (1) Из 2-ой системы в 10-ую (2)" << endl;
- cin >> t;
- cout << " " << endl;
- if (t == 1)
- {
- int v, a, b, n, m;
- cout << "Введите десятичное число" << endl;
- cin >> v;
- cout << "Чтобы перевести число " << v << ", надо делить его на 2, пока не получится 0" << endl;
- b = 0;
- n = 1;
- a = v;
- while (a > 0)
- {
- m = a % 2;
- cout << a << "/2 = " << a / 2 << " (Остаток " << m << ")" << endl;
- a = a / 2;
- b = b + (m * n);
- n = n * 10;
- }
- cout << "Теперь запишем наше число в двоичной системе: запишем остатки в обратном порядке" << endl;
- cout << "Число " << v << " в двоичной системе счисления равно " << b << endl;
- cout << " " << endl;
- }
- else
- {
- int v, a, b, n, m, k = -1;
- cout << "Введите двоичное число" << endl;
- cin >> v;
- cout << "Чтобы перевести число " << v << ", надо представить его в виде суммы произведений цифр числа на основание (2) в степени," << endl;
- cout << "соответствующей месту цифры и найти ее десятичное значение(цифры двоичного числа брать с конца, а степень брать с нуля)\n";
- m = 1;
- a = 0;
- b = v;
- while (b > 0)
- {
- k++;
- n = b % 10;
- cout << n << "*2^" << k;
- b = b / 10;
- a = a + (n * m);
- m = m * 2;
- if (b > 0)
- {
- cout << " + ";
- }
- else
- {
- cout << " ";
- }
- }
- cout << " " << endl;
- cout << "Теперь запишем наше число в десятичной системе: сложим полученное" << endl;
- cout << "Число " << v << " в десятичной системе счисления равно " << a << endl;
- cout << " " << endl;
- }
- goto tryAgain;
- }
- else if (q == 2 )
- {
- cout << "Тест 1: переведите 5 чисел из 10-ой системы счисления в 2-ную. За каждый правильный ответ получаете 1 балл." << endl;
- cout << " " << endl;
- {
- int mark = 0;
- int i = 0;
- while (i < 5)
- {
- srand(time(NULL));
- int A = 1;
- int B = 100;
- int a, b, c, n, m;
- for (int i = 0; i < 100; i++)
- {
- a = A + rand() % ((B + 1) - A);
- }
- cout << "Переведите " << a << endl;
- cin >> c;
- b = 0;
- n = 1;
- while (a > 0)
- {
- m = a % 2;
- a = a / 2;
- b = b + (m * n);
- n = n * 10;
- }
- {
- if (c == b)
- {
- mark++;
- cout << "Верно" << endl;
- }
- else
- {
- cout << "Неверно" << endl;
- }
- }
- i++;
- }
- cout << " " << endl;
- switch (mark)
- {
- case 5: {cout << "Оценка: отлично - 5" << endl; break; }
- case 4: {cout << "Оценка: хорошо - 4" << endl; break; }
- case 3: {cout << "Оценка: удовлетворительно - 3" << endl; break; }
- case 2: {cout << "Оценка: неудовлетворительно - 2" << endl; break; }
- case 1: {cout << "Оценка: неудовлетворительно - 2" << endl; break; }
- case 0: {cout << "Оценка: неудовлетворительно - 2" << endl; break; }
- }
- }
- int p;
- cout << " " << endl;
- cout << "Для прохождения теста 2 введите цифру (1)\n";
- cin >> p;
- cout << " " << endl;
- cout << "Тест 2: переведите 5 чисел из 2-ой системы счисления в 10-ую. За каждый правильный ответ получаете 1 балл." << endl;
- cout << " " << endl;
- {
- int mark = 0;
- int i = 0;
- while (i < 5)
- {
- srand(time(0));
- int A = 1;
- int B = 100;
- int a, b, c, n, m, f;
- for (int i = 0; i < 100; i++)
- {
- f = A + rand() % ((B + 1) - A);
- b = 0;
- n = 1;
- while (f > 0)
- {
- m = f % 2;
- f = f / 2;
- b = b + (m * n);
- n = n * 10;
- }
- }
- cout << "Переведите " << b << endl;
- cin >> c;
- m = 1;
- a = 0;
- while (b > 0)
- {
- n = b % 10;
- b = b / 10;
- a = a + (n * m);
- m = m * 2;
- }
- if (c == a)
- {
- mark++;
- cout << "Верно" << endl;
- }
- else
- {
- cout << "Неверно" << endl;
- }
- i++;
- }
- cout << " " << endl;
- switch (mark)
- {
- case 5: {cout << "Оценка: отлично - 5" << endl; break; }
- case 4: {cout << "Оценка: хорошо - 4" << endl; break; }
- case 3: {cout << "Оценка: удовлетворительно - 3" << endl; break; }
- case 2: {cout << "Оценка: неудовлетворительно - 2" << endl; break; }
- case 1: {cout << "Оценка: неудовлетворительно - 2" << endl; break; }
- case 0: {cout << "Оценка: неудовлетворительно - 2" << endl; break; }
- }
- cout << " " << endl;
- }
- goto tryAgain;
- }
- else
- {
- system("pause");
- return 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement