Внешняя память - часть памяти компьютера, которая используется для долговременного хранения программ и данных.
Этот вид памяти позволяет повторно использовать программы и данные. Благодаря этому текст достаточно набрать один раз, а цифровые фотографии можно рассматривать в течение многих лет.
Устройства внешней памяти часто называют накопителями. К ним относятся, например, накопители на магнитных и оптических дисках, а также современные внешние запоминающие устройства на основе полупроводниковой флэш-памяти.
Внешняя память любого типа состоит из некоторого носителя информации (например, диска или полупроводникового кристалла) и электронной схемы управление (контроллера).
Компьютерный носитель информации - это средство длительного хранения в компьютерном формате. Носитель может быть съемным (как в накопителях на оптических дисках), а может быть помещен внутрь неразборного устройства (жёсткий магнитный диск - "винчестер).
В переносных устройствах внешней памяти, например во внешних жёстких дисках и флэш-накопителях, носитель и схема управления объединены в единый блок. Такие устройства подключаются к компьютеру снаружи через разъем.
Сейчас широко используются оптические диски следующих поколений: DVD (ёмкостью до 17 Гбайт) и Blu-ray-диски (ёмкостью до 500 Гбайт).
class WordConstructor:
def __init__(self, number):
self.number = number
def vocab(self, number, args=None):
if number == 1:
return "Один"
elif number == 0:
return "Ноль"
elif number == 2 and args:
return "Две"
elif number == 2:
return "Два"
elif number == 3:
return "Три"
elif number == 4 and args:
return "Четыр"
elif number == 4:
return "Четыре"
elif number == 5:
return "Пять"
elif number == 6:
return "Шесть"
elif number == 7:
return "Семь"
elif number == 8:
return "Восемь"
elif number == 9:
return "Девять"
elif number == 10:
return "Десять"
elif number == 11:
return "Одиннадцать"
elif number == 12:
return "Двенадцать"
elif number == 'suf.nadcat':
return "надцать"
elif number == 'suf.dcat':
return "дцать"
elif number == "suf.yat":
return "десят"
elif number == "suf.ok":
return "ок"
elif number == 90:
return "Девяносто"
elif number == 100:
return "Сто"
elif number == 'suf.sot':
return "сот"
def get_num_from_number(self, number, pos):
return int(str(number)[pos])
def construct(self):
if self.number < 13:
print(self.vocab(self.number))
elif self.number < 20:
if self.number == 14:
print(self.vocab(int(str(self.number)[1]), args=True) + self.vocab("suf.nadcat"))
else:
print(self.vocab(int(str(self.number)[1]), args=True).replace("ь", "") + self.vocab("suf.nadcat"))
elif self.number < 100:
first = self.get_num_from_number(self.number, 0)
second = self.get_num_from_number(self.number, 1)
if second == 0:
if first == 4:
print("Сор" + self.vocab("suf.ok"))
elif first < 5:
print(self.vocab(first, args=True) + self.vocab("suf.dcat"))
elif first < 9:
print(self.vocab(first) + self.vocab("suf.yat"))
elif first == 9:
print(self.vocab(self.number))
else:
print(self.vocab(first, args=True) + self.vocab("suf.dcat"))
else:
if first == 4:
print("Сор" + self.vocab("suf.ok") + " " + self.vocab(second).lower())
elif first < 5:
print(self.vocab(first, args=True) + self.vocab("suf.dcat") + " " + self.vocab(second).lower())
elif first < 9:
print(self.vocab(first) + self.vocab("suf.yat") + " " + self.vocab(second).lower())
elif first == 9:
print(self.vocab(self.number - second) + " " + self.vocab(second).lower())
else:
print(self.vocab(first, args=True) + self.vocab("suf.dcat") + " " + self.vocab(second).lower())
elif self.number < 1000:
zero = self.get_num_from_number(self.number, 0)
first = self.get_num_from_number(self.number, 1)
second = self.get_num_from_number(self.number, 2)
if second == 0 and first == 0:
if zero == 4:
print(self.vocab(zero) + self.vocab(100).lower())
elif zero == 2:
print("Двести")
elif zero == 3:
print(self.vocab(zero) + self.vocab(100).lower().replace("о", "а"))
elif zero == 1:
print(self.vocab(100))
elif zero <= 9:
print(self.vocab(zero) + self.vocab('suf.sot').lower())
for i in range(0, 1000):
a = WordConstructor(i)
a.construct()
Код очень нетривиален и не оптимизорован. Работает с 0-100 числами и может еще 200, 300...
Дальше с >100 писать мне очень лень, уж простите.
var
a:array [1..12] of integer;
i:integer;
begin
randomize;
for i:=1 to 12 do a[i]:=random(11)-5;
for i:=1 to 12 do writeln(a[i]);
readln;
end.