Задача 2. Известны результаты экзаменов по N предметам. Определить студента, который имел наилучшие результаты. (алгоритм и программа на языке паскаль)
Для начала давайте определим сколько памяти требуется для хранения одного символа. Для этого вспомним главную формулу информатики
Здесь i — количество бит на 1 символ, а N — количество различных символов. По условию задачи у нас всего 26 символов, значит подставим вместо N число 26 и получим
Теперь нужно понять чему равно i. Если i = 4, то 2 4 = 16. Т. е. 4 бита на 1 символ позволит закодировать 16 символов, а у нас их 26. Маловато будет.
Если i=5, то 2 5 = 32. На наши 26 символов этого хватит. Значит на 1 символ у нас будет приходится 5 бит информации.
Так как в пароле у нас 7 символов, то на 1 пароль потребуется 7*5 =35 бит памяти. В байтах это будет 35/8 = 4,375. Округлим в большую сторону (так как по условию «для
каждого пользователя в системе хранятся дополнительные сведения, для чего выделено целое число байт») и получим, что на хранение пароля пользователя требуется 5 байт памяти.
Так как на 30 пользователей отводится 600 байт памяти, то на одного пользователя требуется 600/30 = 20 байт памяти. Из них 5 байт отводится для пароля. Следовательно для дополнительных сведений остается 20 — 5 = 15 байт.
ЯП: С++
#include <iostream>
int main() {
const int N = 5;
int arr[N][N] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}; // создаем и заполняем двумерный массив 5x5
for (int i = 0; i < N; i++) // выводим на экран 2-мерный массив;
{
for (int j = 0; j < N; j++)
{
std::cout << arr[i][j] << "\t";
}
std::cout << std::endl;
}
std::cout << "Result #1: ";
for (int i = 0; i < N; i++) // вывод в консоль главной диагонали
{
std::cout << arr[i][i] << "\t";
}
std::cout << "\nResult #2: ";
for (int i = 0; i < N; i++) // вывод в консоль побочной диагонали
{
std::cout << arr[i][N - 1 - i] << "\t";
}
return 0;
}
Объяснение:
Для начала давайте определим сколько памяти требуется для хранения одного символа. Для этого вспомним главную формулу информатики
Здесь i — количество бит на 1 символ, а N — количество различных символов. По условию задачи у нас всего 26 символов, значит подставим вместо N число 26 и получим
Теперь нужно понять чему равно i. Если i = 4, то 2 4 = 16. Т. е. 4 бита на 1 символ позволит закодировать 16 символов, а у нас их 26. Маловато будет.
Если i=5, то 2 5 = 32. На наши 26 символов этого хватит. Значит на 1 символ у нас будет приходится 5 бит информации.
Так как в пароле у нас 7 символов, то на 1 пароль потребуется 7*5 =35 бит памяти. В байтах это будет 35/8 = 4,375. Округлим в большую сторону (так как по условию «для
каждого пользователя в системе хранятся дополнительные сведения, для чего выделено целое число байт») и получим, что на хранение пароля пользователя требуется 5 байт памяти.
Так как на 30 пользователей отводится 600 байт памяти, то на одного пользователя требуется 600/30 = 20 байт памяти. Из них 5 байт отводится для пароля. Следовательно для дополнительных сведений остается 20 — 5 = 15 байт.