Понятие системы счисления Для записи информации о количестве
. Числа записываются с использованием особых знаковых систем, которые называются системами счисления. Алфавит систем счисления состоит из символов, которые называются цифрами. Например, в десятичной системе счисления числа записываются с десяти всем хорошо известных цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Система счисления — это знаковая система, в которой числа записываются по определенным правилам с символов некоторого алфавита, называемых цифрами.Все системы счисления делятся на две большие группы: позиционные и непозиционные системы счисления. В позиционных системах счисления значение цифры зависит от ее положения в числе, а в непозиционных — не зависит.
1. Структура для хранения и обработки данных Объект - Учащийся. Каждый учащийся характеризуется фамилией с инициалами и имеет набор из четырех отметок по результатам сдачи экзаменов - всего 5 параметров. Для простоты считаем, что фамилии с инициалами уникальны. Объекты однородны, т.е. отличаются друг от друга только значениями параметров. Это позволяет объединить их в группу, осуществляя доступ к каждому объекту либо по его порядковому номеру в группе, либо по фамилии. Поставленная задача не требует поиска конкретного учащегося по фамилии, поэтому достаточно предоставлять доступ к каждому учащемуся по порядковому номеру. Объект "Учащийся" может быть представлен в виде записи (структуры) для случая реализации программы на алгоритмическом языке, либо в виде таблицы базы данных для случая реализации в среде СУБД. Не исключена также примитивная реализация в виде двух массивов, в одном из которых указываются фамилии с инициалами, а в другом отметки; связь учащегося с его оценками в этом случае поддерживается за счет использования одинакового номера строк в массиве. Нам также понадобится где-то хранить средний учащегося, для того чтобы сделать необходимую по условию задачи выборку.
Запишем пример реализации для языка Паскаль. а) Три массива. var FIO: array[1..40] of string; { для фамилий и инициалов } ResBall: array[1..40,1..4] of byte; { для оценок } SrBall: array[1..40] of real; { для среднего } В этом случае объект "Учащийся" отображается связкой FIO[i], ResBall[i,j], SrBall[i] где i- номер учащегося, j - номер отметки в наборе отметок. б) Запись type tUch=record FIO: string; ResBall:array[1..4] of byte; SrBall:real end; var Uch:array[1..40] of tUch; В этом случае доступ к объекту "Учащийся" реализуется в виде Uch[i].FIO, Uch[i].ResBall[j], Uch[i].SrBall в) Таблица базы данных с именем Uch FIO символьный(20) Ball1 целый Ball2 целый Ball3 целый Ball4 целый SrBall числовой В этом случае доступ к объекту "Учащийся" реализуется в виде Uch.FIO, Uch.Ball1..Uch.Ball4, Uch.SrBall
2. Алгоритм обработки Запрашиваем N - количество учащихся в группе, и организуем ввод данных по N учащимся. Попутно со вводом для каждого учащегося вычисляем сумму всех четырех его оценок, а также средний , равный найденной сумме, деленной на 4. Сумму отметок по всей группе накапливаем в некоторой переменной S, а средний записываем в структуру хранения. После накопления в S суммы всех оценок находим Sg=S/N - средний по группе. Организуем проход по всех группе и выводим фамилию и средний тех учащихся, у которых средний превышает Sg.
Переводим в десятичную систему оба числа. Нужно над каждым числом отметить разряд справа налево от 0
6543210
1011111
И умножаем 1*2^6+0*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=95
Аналогично со вторым
6543210
1010011
Умножаем 1*2^6+0*2^5+1*2^4+0*2^3+0*2^2+1*2^1+2*1^0=83
95+83=178
Переводим 178 в двоичную систему
178/2=89 - остаток 0
89/2=44 - остаток 1
44/2=22 - остаток 0
22/2=11 - остаток 0
11/2=5 - остаток 1
5/2=2 - остаток 1
2/2=1 - остаток 0
Единичку, что получилась также считаем, ставим ее в начало
ответ 10110010