1. Создайте новый текстовый документ. Представьте в нём следующую информацию в табличной форме В 5 «Б» классе 25 учеников написали диктант по русскому языку. Из них: 8 учеников написали на оценку «5»; 10 – на «4»; 5 – на «3», а остальные 2 ученика – на «2».
2. Ниже таблицы создайте маркированный список, в котором будет отображена информация об учениках и их оценках. Маркер выберите самостоятельно. Цвет текста задайте розовый, размер шрифта – 12 пт, начертание – полужирное.
3. Сохраните созданный документ под именем «КР_Задание2_Ваша фамилия». (формат pdf недопустим для отправки).
#include <iostream>
#include <iomanip>
int main()
{
using namespace std;
//исходная последовательность
const int N = 8;
double Arr[N] = { 14.2, -3.4, 7.8, -3.1, 8.2, 98.22, -7, 12 };
//вывод на экран исходной последовательности
for (int i = 0; i < N; ++i)
cout << Arr[i] << " ";
cout << endl;
//подсчитаем количества отрицательных и неотрицательных элементов
int kpos = 0;
int kneg = 0;
for (int i = 0; i < N; ++i)
if (Arr[i] < 0)
++kneg;
else
++kpos;
//создадим массивы отрицательных и неотрицательных элементов
double * ArrNeg = new double[kneg];
double * ArrPos = new double[kpos];
int kn = 0, kp = 0;
for (int i = 0; i < N; i++)
if (Arr[i] < 0)
ArrNeg[kn++] = Arr[i];
else
ArrPos[kp++] = Arr[i];
cout << "Enter a, b, c or d: ";
char ch;
cin >> ch;
if (ch == 'a' || ch == 'b' || ch == 'c' || ch == 'd')
{
switch (ch)
{
//пункт а)
case 'a':
for (int i = 0; i < kneg; ++i)
Arr[i] = ArrNeg[i];
for (int i = 0; i < kpos; ++i)
Arr[i + kneg] = ArrPos[i];
break;
//пункт б)
case 'b':
for (int i = 0; i < kneg; ++i)
Arr[i] = ArrNeg[--kn];
for (int i = 0; i < kpos; ++i)
Arr[i + kneg] = ArrPos[i];
break;
//пункт в)
case 'c':
for (int i = 0; i < kneg; ++i)
Arr[i] = ArrNeg[i];
for (int i = 0; i < kpos; ++i)
Arr[i + kneg] = ArrPos[--kp];
break;
//пункт г)
case 'd':
for (int i = 0; i < kneg; ++i)
Arr[i] = ArrNeg[--kn];
for (int i = 0; i < kpos; ++i)
Arr[i + kneg] = ArrPos[--kp];
break;
}
}
else
cout << "You entered wrong symbol\n";
for (int i = 0; i < N; ++i)
cout << Arr[i] << " ";
cout << endl;
delete[] ArrNeg;
delete[] ArrPos;
return 0;
}
Объяснение:
сть несколько перевода чисел из любой системы счисления в десятичную. Один их них основан на алгоритме для вычисления значения многочлена в некоторой точке х, который носит название вычислительной схемы Горнера.
Для перевода целых чисел из десятичной системы счисления в систему счисления с основанием р:
Последовательно делить заданное число и получаемые целые части на новое основание счисления (р) до тех пор, пока целая часть не станет ровна нулю.
Полученные остатки от деления, представленные цифрами из нового счисления, записать в виде числа, начиная с последней целой части.
Пример 1. Перевести число 61 из десятичной системы счисления в двоичную:
(В дальнейшем будет использоваться краткая запись задания: 6110 = Х2)
61 = 30 • 2 + 1;
30 = 15 • 2 + 0;
15 = 7 • 2 + 1;
7 = 3 • 2 + 1;
3 = 1 • 2 + 1;
1 = 0 • 2 + 1.
ответ: 6110 = 1111012.
(Можно заметить, что рассмотренный «Пример 1» является противоположным «Примеру 1» рассмотренному в предыдущей теме. Таким образом, всегда можно делать проверку результата при переводе чисел из любой системы счисления в десятичную, и наоборот).
Пример 2. 27110 = Х8:
271 = 33 • 8 + 7;
33 = 4 • 8 + 1;
4 = 0 • 8 +4.
ответ: 27110 = 4178.
Пример 3. 1140610 = Х16:
11406 = 712 • 16 + 14;
712 = 44 • 16 + 8;
44 = 2 • 16 +12;
2 = 0 • 16 +2.
Учитывая, что в шестнадцатеричной системе счисления числу 14 соответствует цифра Е, а числу 12 цифра С, запишем ответ:
ответ: 1140610 = 2С8Е16.
(Будет не правильно записать ответ: 1140610 = 21281416)