Жесткий диск делится на дорожки - концентрические окружности, покрывающие поверхность диска Каждая дорожка делится на секторы, размер сектора - 512 байт Затем сектора объединяются в кластеры, кластер содержит 2^N секторов. Кластер является наименьшей единицей адресации к данным. Это делается для ускорения работы файловой системы. То есть файловая система обращается не к сектору (который является минимальной физической единицей хранения данных), а к кластеру, в который объединено несколько секторов (который является минимальной единицей адресации к данным, т.е файловая система не может обращаться напрямую к сектору). Например, в файловой системе FAT есть так называемая таблица размещения файлов, в которую записываются данные о каждом кластере. Т.к она обращается к кластерам, в которые объединены сектора, то эта таблица содержит меньше элементов, что существенно увеличивает быстродействие Размер кластера можно задать при форматировании диска. Чем длиннее кластер (чем больше секторов в себе содержит), тем меньше таблица размещения файлов и бОльшая скорость, но есть и обратная сторона - нерациональное использование памяти, потому что любой файл, насколько маленький он бы не был занимает весь кластер и некоторые сектора в нем могут оказаться просто пустыми. Даже если файл большой и занимает несколько секторов, то последний кусочек с бОльшей долей вероятности займет не полностью последний кластер. Если же указать более маленький размер кластера, то уменьшится быстродействие (т.к увеличится количество кластеров), но память будет расходоваться меньше и будет образовываться меньше пустот.
Стоит упомянуть, что объем хранящихся файлов напрямую влияет на расход памяти. Много мелких файлов как правило сильнее "забивают" память, нежели мало больших. Они могут иметь одинаковый размер в сумме, но при записи на диск мелкие файлы израсходуют больше места, так как каждый файл будет занимать весь кластер, но не все сектора.
И интереса ради стоит упомянуть, что в связи с неэффективностью файловой системы (например, при слишком большом размере кластера) потери могут составлять среднем от 25% до 40% от полной емкости жесткого диска
P.S В общем, интересно учиться на кибернетике в ВУЗе)) Столько нового узнаешь. Главное понять, что к чему, а там уже перескажешь как-нибудь
Из условия нам известно, что ввод завершается числом ноль. Информация о количестве чисел требуется только если их запоминать в массиве, но у нас однопроходный алгоритм, массив не нужен, поэтому про "1000 чисел" благополучно забываем. Числа целые, и по модулю не превышают 30 000, следовательно им надо отводить двухбайтный тип integer, в в котором диапазон представления чисел [-32 768 ; 32 767]. "Нечетные числа, кратные трем" - это такие, у которых остаток от деления на два ненулевой, а остаток от деления на три нулевой. Поскольку числа целые, то и деление, конечно же, целочисленное. Длина последовательности n - это просто счетчик количества прохождений цикла за вычетом единицы, потому что последний проход по циклу будет при вводе нуля, а его учитывать не надо. В другом счетчике k мы накапливаем количество чисел, для которых выполнилось рассмотренное выше условие "нечетные числа, кратные трем".
var n,k,m: integer; begin Writeln('Вводите целые числа, для окончания введите 0'); n:=0; k:=0; repeat Read(m); Inc(n); if (m mod 2 <> 0) and (m mod 3 = 0) then Inc(k) until m=0; Writeln('Введено чисел- ',n-1); Writeln('Нечетных, кратных трем- ',k) end.
Тестовое решение: Вводите целые числа, для окончания введите 0 -5 12 8 27 -18 14 -33 7 0 Введено чисел- 8 Нечетных, кратных трем- 2
Каждая дорожка делится на секторы, размер сектора - 512 байт
Затем сектора объединяются в кластеры, кластер содержит 2^N секторов. Кластер является наименьшей единицей адресации к данным. Это делается для ускорения работы файловой системы. То есть файловая система обращается не к сектору (который является минимальной физической единицей хранения данных), а к кластеру, в который объединено несколько секторов (который является минимальной единицей адресации к данным, т.е файловая система не может обращаться напрямую к сектору).
Например, в файловой системе FAT есть так называемая таблица размещения файлов, в которую записываются данные о каждом кластере. Т.к она обращается к кластерам, в которые объединены сектора, то эта таблица содержит меньше элементов, что существенно увеличивает быстродействие
Размер кластера можно задать при форматировании диска. Чем длиннее кластер (чем больше секторов в себе содержит), тем меньше таблица размещения файлов и бОльшая скорость, но есть и обратная сторона - нерациональное использование памяти, потому что любой файл, насколько маленький он бы не был занимает весь кластер и некоторые сектора в нем могут оказаться просто пустыми. Даже если файл большой и занимает несколько секторов, то последний кусочек с бОльшей долей вероятности займет не полностью последний кластер.
Если же указать более маленький размер кластера, то уменьшится быстродействие (т.к увеличится количество кластеров), но память будет расходоваться меньше и будет образовываться меньше пустот.
Стоит упомянуть, что объем хранящихся файлов напрямую влияет на расход памяти. Много мелких файлов как правило сильнее "забивают" память, нежели мало больших. Они могут иметь одинаковый размер в сумме, но при записи на диск мелкие файлы израсходуют больше места, так как каждый файл будет занимать весь кластер, но не все сектора.
И интереса ради стоит упомянуть, что в связи с неэффективностью файловой системы (например, при слишком большом размере кластера) потери могут составлять среднем от 25% до 40% от полной емкости жесткого диска
P.S В общем, интересно учиться на кибернетике в ВУЗе)) Столько нового узнаешь. Главное понять, что к чему, а там уже перескажешь как-нибудь
"Нечетные числа, кратные трем" - это такие, у которых остаток от деления на два ненулевой, а остаток от деления на три нулевой. Поскольку числа целые, то и деление, конечно же, целочисленное.
Длина последовательности n - это просто счетчик количества прохождений цикла за вычетом единицы, потому что последний проход по циклу будет при вводе нуля, а его учитывать не надо. В другом счетчике k мы накапливаем количество чисел, для которых выполнилось рассмотренное выше условие "нечетные числа, кратные трем".
var
n,k,m: integer;
begin
Writeln('Вводите целые числа, для окончания введите 0');
n:=0; k:=0;
repeat
Read(m); Inc(n);
if (m mod 2 <> 0) and (m mod 3 = 0) then Inc(k)
until m=0;
Writeln('Введено чисел- ',n-1);
Writeln('Нечетных, кратных трем- ',k)
end.
Тестовое решение:
Вводите целые числа, для окончания введите 0
-5
12
8
27
-18
14
-33
7
0
Введено чисел- 8
Нечетных, кратных трем- 2