Интерфейс (англ. interface) — техническое средство взаимодействия 2-х разнородных устройств, что в случае с жёсткими дисками является совокупностью линий связи, сигналов, посылаемых по этим линиям, технических средств, поддерживающих эти линии (контроллеры интерфейсов), и правил (протокола) обмена. Современные серийно выпускаемые внутренние жёсткие диски могут использовать интерфейсы ATA (он же IDE и PATA), SATA, eSATA, SCSI, SAS, FireWire, SDIO иFibre Channel.
Ёмкость (англ. capacity) — количество данных, которые могут храниться накопителем. С момента создания первых жёстких дисков в результате непрерывного совершенствования технологии записи данных их максимально возможная ёмкость непрерывно увеличивается. Ёмкость современных жёстких дисков (с форм-фактором 3,5 дюйма) на сентябрь 2011 года достигает 4000 Гб (4 терабайт) и близится к 5 Тб.[8] В отличие от принятой в информатике системы приставок, обозначающих кратную 1024 величину (см.: двоичные приставки), производителями при обозначении ёмкости жёстких дисков используются величины, кратные 1000. Так, ёмкость жёсткого диска, маркированного как «200 ГБ», составляет 186,2 ГиБ.[9][10]
Физический размер (форм-фактор; англ. dimension) — почти все накопители 2001—2008 годов для персональных компьютеров и серверов имеют ширину либо 3,5, либо 2,5 дюйма — под размер стандартных креплений для них соответственно в настольных компьютерах и ноутбуках. Также получили распространение форматы 1,8, 1,3, 1 и 0,85 дюйма. Прекращено производство накопителей в форм-факторах 8 и 5,25 дюймов.
Время произвольного доступа (англ. random access time) — среднее время, за которое винчестер выполняет операцию позиционирования головки чтения/записи на произвольный участок магнитного диска. Диапазон этого параметра — от 2,5 до 16 мс. Как правило, минимальным временем обладают диски для серверов (например, у Hitachi Ultrastar 15K147 — это 3,7 мс[11]), самым большим из актуальных — диски для портативных устройств (Seagate Momentus 5400.3 — 12,5 мс[12]). Для сравнения, у SSD-накопителей этот параметр меньше 1 мс.
Скорость вращения шпинделя (англ. spindle speed) — количество оборотов шпинделя в минуту. От этого параметра в значительной степени зависят время доступа и средняя скорость передачи данных. В настоящее время выпускаются винчестеры со следующими стандартными скоростями вращения: 4200, 5400 и 7200 (ноутбуки); 5400, 5700, 5900, 7200 и 10 000 (персональные компьютеры); 10 000 и 15 000 об/мин (серверы и высокопроизводительные рабочие станции). Увеличению скорости вращения шпинделя в винчестерах для ноутбуков препятствует гироскопический эффект, влияние которого пренебрежимо мало в неподвижных компьютерах.
Надёжность (англ. reliability) — определяется как среднее время наработки на отказ (MTBF). Также подавляющее большинство современных дисков поддерживают технологию S.M.A.R.T.
Количество операций ввода-вывода в секунду (англ. IOPS) — у современных дисков это около 50 оп./с при произвольном доступе к накопителю и около 100 оп./сек при последовательном доступе.
Потребление энергии — важный фактор для мобильных устройств.
Сопротивляемость ударам (англ. G-shock rating) — сопротивляемость накопителя резким скачкам давления или ударам, измеряется в единицах допустимой перегрузки во включённом и выключенном состоянии.
Скорость передачи данных (англ. Transfer Rate) при последовательном доступе:
внутренняя зона диска: от 44,2 до 74,5 Мб/с;[когда?]внешняя зона диска: от 60,0 до 111,4 Мб/с.[когда?]Объём буфера — буфером называется промежуточная память, предназначенная для сглаживания различий скорости чтения/записи и передачи по интерфейсу. В современных дисках он обычно варьируется от 8 до 128 Мб.
from random import randint
def task_26():
"""
26. дано число, введенное с клавиатуры.
определите сумму квадратов нечетных цифр в числе.
"""
def square():
number = int(input("number: "))
s = 0
for x in str(number):
if int(x) % 2 ! = 0:
s += int(x) ** 2
print("cума квадратов нечетных цифр в числе = {}".format(s))
square()
def task_27():
"""
27. найдите сумму чисел, вводимых с клавиатуры.
количество вводимых чисел заранее неизвестно.
окончание ввода, например, слово «стоп».
"""
def number_sum():
numbers_sum = 0
while true:
number = input("number: ")
if number == 'стоп' or number == 'стоп':
break
else:
numbers_sum += int(number)
print('suma {}'.format(numbers_sum))
number_sum()
def task_28():
"""
28. задана строка из стихотворения:
«мой дядя самых честных правил, когда не в шутку занемог,
он уважать себя заставил и лучше выдумать не мог»
удалите из строки все слова, начинающиеся на букву «м».
результат вывести на экран в виде строки.
подсказка: вспомните про модификацию списков.
"""
def word_deleted(line):
line_split = line.split()
for i in range(len(line_split) - 1): # 0,19
if line_split[i][0] == "м" or line_split[i][0] == "м":
del line_split[i]
return line_split
lines = "мой дядя самых честных правил, когда не в шутку занемог, " \
"он уважать себя заставил и лучше выдумать не мог"
print(word_deleted(lines))
def task_32():
"""
32. создайте матрицу (список из вложенных списков)
размера n x n (фиксируются в программе), заполненную случайными
целыми числами.
"""
def new_matrix(n):
matrix = [[randint(0, 100) for x in range(n)] for i in range(n)]
for x in matrix:
print(x)
new_matrix(10)
def task_45():
"""
45. напишите функцию, которая возвращает разность между наибольшим и
наименьшим значениями из списка целых случайных чисел.
"""
def difference():
number_random = [randint(0, 100) for i in range(50)]
print('разность между наибольшим и наименьшим значениями = {}'.format(
(max(number_random) - min(number_random))
))
difference()
def task_46():
"""
46. напишите программу, которая для целочисленного списка из 1000 случайных
элементов определяет, сколько отрицательных элементов располагается
между его максимальным и минимальным элементами.
"""
def num_random_count():
random_numbers = [randint(-500, 500) for i in range(1000)]
index_max = random_numbers.index(max(random_numbers))
index_min = random_numbers.index(min(random_numbers))
count = 0
list_range = random_numbers[index_min: index_max + 1]
for x in list_range:
if int(x) < 0:
count += 1
print("отрицательных элементов между максимальным и "
"минимальным элементами = {}".format(count))
num_random_count()
def task_50():
"""
50. дан список целых чисел. определить количество четных элементов и
количество элементов, оканчивающихся на цифру 5.
"""
def func(n):
test_list = [randint(0, 500) for i in range(n)]
count_num = 0
count_five = 0
for x in test_list:
if x % 2 == 0:
count_num += 1
if x % 10 == 5:
count_five += 1
print("количество четных элементов {}".format(count_num))
print("количество элементов, оканчивающихся на цифру 5. {}".format(
count_five))
func(50)
def task_51():
"""
51. задан список из целых чисел. определить процентное содержание
элементов, превышающих среднеарифметическое всех элементов списка
"""
def func(n):
test_list = [randint(0, 100) for i in range(n)]
average = sum(test_list) / len(test_list)
count = 0
for x in test_list:
if x > average:
count += 1
print("процентное содержание элементов, превышающих"
" среднеарифметическое всех элементов списка = {} %".format(
round((count / average) * 100,
func(100)
if __name__ == "__main__":
task_26()
task_27()
task_28()
task_32()
task_45()
task_46()
task_50()
task_51()
begin
if (((k mod 2=0) and (l mod 2<>0)) or ((l mod 2=0) and (k mod 2<>0)))=(((m mod 2=0) and (n mod 2<>0)) or ((n mod 2=0) and (m mod 2<>0))) then first:=true else first:=false;
end;
2)function second(k,l,m,n:integer):boolean;
begin
if (k=m) or (l=n) or (((k+1)=m) and ((l+1)=n)) or (((k+2)=m) and ((l+2)=n)) or (((k+3)=m) and ((l+3)=n)) or (((k+4)=m) and ((l+4)=n)) or (((k+5)=m) and ((l+5)=n)) or (((k+6)=m) and ((l+6)=n)) or (((k-1)=m) and ((l-1)=n)) or (((k-2)=m) and ((l-2)=n)) or (((k-3)=m) and ((l-3)=n)) or (((k-4)=m) and ((l-4)=n)) or (((k-5)=m) and ((l-5)=n)) or (((k-6)=m) and ((l-6)=n)) or (((m+1)=k) and ((n+1)=l)) or (((m+2)=k) and ((n+2)=l)) or (((m+3)=k) and ((n+3)=l)) or (((m+4)=k) and ((n+4)=l)) or (((m+5)=k) and ((n+5)=l)) or (((m+6)=k) and ((n+6)=l)) or (((m-1)=k) and ((n-1)=l)) or (((m-2)=k) and ((n-2)=l)) or (((m-3)=k) and ((n-3)=l)) or (((m-4)=k) and ((n-4)=l)) or (((m-5)=k) and ((n-5)=l)) or (((m-6)=k) and ((n-6)=l)) or (((k-1)=m) and ((l+1)=n)) or (((k-2)=m) and ((l+2)=n)) or (((k-3)=m) and ((l+3)=n)) or (((k-4)=m) and ((l+4)=n)) or (((k-5)=m) and ((l+5)=n)) or (((k-6)=m) and ((l+6)=n)) or (((k-1)=m) and ((l+1)=n)) or (((k-2)=m) and ((l+2)=n)) or (((k-3)=m) and ((l+3)=n)) or (((k-4)=m) and ((l+4)=n)) or (((k-5)=m) and ((l+5)=n)) or (((k-6)=m) and ((l+6)=n)) or (((m-1)=k) and ((n+1)=l)) or (((m-2)=k) and ((n+2)=l)) or (((m-3)=k) and ((n+3)=l)) or (((m-4)=k) and ((n+4)=l)) or (((m-5)=k) and ((n+5)=l)) or (((m-6)=k) and ((n+6)=l)) or (((m-1)=k) and ((n+1)=l)) or (((m-2)=k) and ((n+2)=l)) or (((m-3)=k) and ((n+3)=l)) or (((m-4)=k) and ((n+4)=l)) or (((m-5)=k) and ((n+5)=l)) or (((m-6)=k) and ((n+6)=l)) then second:=true else second:=false;
end;