Скриншоты примеров работы во вложениях к ответу.
Код:
using System;
using System.Collections.Generic;
namespace PrintNumbersNaturaly
{
class Program
{
static string GetShardName(int n, string hundreds, string dozens, string units)
{
var d = new Dictionary<int, List<string>>
{
{1, new List<string>{"", "", ""}},
{2, new List<string>{"Тысяча ", "Тысячи ", "Тысяч "}},
{3, new List<string>{"Миллион ", "Миллиона ", "Миллионов "}},
{4, new List<string>{"Миллиард ", "Миллиарда ", "Миллиардов "}},
};
if (dozens != "1")
{
switch (units)
{
case "1":
return d[n][0];
case "2":
case "3":
case "4":
return d[n][1];
default:
return d[n][2];
}
}
return d[n][2];
}
static string GetHundredsName(string number)
{
var d = new Dictionary<string, string>
{
{"1", "Сто "}, {"2", "Двести "}, {"3", "Триста "}, {"4", "Четыреста "}, {"5", "Пятьсот "},
{"6", "Шестьсот "}, {"7", "Семьсот "}, {"8", "Восемьсот "}, {"9", "Девятьсот "}, {"0", ""}
};
return d[number];
}
static string GetDozensName(string number)
{
var d = new Dictionary<string, string>
{
{"1", "Десять "}, {"2", "Двадцать "}, {"3", "Тридцать "}, {"4", "Сорок "}, {"5", "Пятьдесят "},
{"6", "Шестьдесят "}, {"7", "Семьдесят "}, {"8", "Восемьдесят "}, {"9", "Девяносто "}, {"0", ""}
};
return d[number];
}
static string GetUnitsName(string number)
{
var d = new Dictionary<string, string>
{
{"1", "Один "}, {"2", "Два "}, {"3", "Три "}, {"4", "Четыре "}, {"5", "Пять "},
{"6", "Шесть "}, {"7", "Семь "}, {"8", "Восемь "}, {"9", "Девять "}, {"0", ""}
};
return d[number];
}
static string GetExceptionsName(string number)
{
var d = new Dictionary<string, string>
{
{"11", "Одиннадцать "}, {"12", "Двенадцать "}, {"13", "Тринадцать "}, {"14", "Четырнадцать "},
{"15", "Пятьнадцать "}, {"16", "Шестнадцать "}, {"17", "Семнадцать "}, {"18", "Восемнадцать "},
{"19", "Девятнадцать "}
};
return d.ContainsKey(number) ? d[number] : string.Empty;
}
static string GetNumberName(string number)
{
var n = (int) Math.Ceiling(number.Length / 3.0);
var k = 3 - (number.Length - 1) % 3 - 1;
number = new string('0', k) + number;
var name = "";
for (var i = n; i > 0; --i)
{
var hundreds = number[i * 3 - 3].ToString();
var dozens = number[i * 3 - 2].ToString();
var units = number[i * 3 - 1].ToString();
var shard = GetHundredsName(hundreds);
var exceptionsName = GetExceptionsName(dozens + units);
if (exceptionsName != string.Empty)
{
shard += exceptionsName;
}
else
{
var dozensName = GetDozensName(dozens);
var unitsName = GetUnitsName(units);
shard += dozensName + unitsName;
}
name = shard + GetShardName(n - i + 1, hundreds, dozens, units) + name;
}
return name;
}
static string GetNumberName(int number)
{
return GetNumberName(number.ToString());
}
static void Main(string[] args)
{
var number = Console.ReadLine();
Console.WriteLine(GetNumberName(number));
}
}
}
1 поколение ЭВМ: ЭВМ, сконструированные в 1946 - 1955 гг.
1. Элементная база: электронно-вакуумные лампы.
2. Соединение элементов: навесной монтаж проводами.
3. Габариты: ЭВМ выполнена в виде громадных шкафов.
Эти компьютеры были огромными, неудобными и слишком дорогими машинами, которые могли приобрести крупные корпорации и правительства.
Лампы потребляли большое количество электроэнергии и выделяли много тепла.
4. Быстродействие: 10−20 тыс. операций в секунду.
5. Эксплуатация: сложная из-за частого выхода из строя электронно-вакуумных ламп.
6. Программирование: машинные коды. При этом надо знать все команды машины, двоичное представление, архитектуру ЭВМ. В основном были заняты математики-программисты. Обслуживание ЭВМ требовало от персонала высокого профессионализма.
7. Оперативная память: до 2 Кбайт.
8. Данные вводились и выводились с перфокарт, перфолент.
II поколение ЭВМ: ЭВМ, сконструированные в 1955 - 1965 гг.
В 1948 году Джон Бардин, Уильям Шокли, Уолтер Браттейн изобрели транзистор, за изобретение транзистора они получили Нобелевскую премию в 1956 г.
1 транзистор заменял 40 электронных ламп, был намного дешевле и надёжнее.
В 1958 году создана машина М-20, выполнявшая 20 тыс. операций в секунду — самая мощная ЭВМ 50−х годов в Европе.
1. Элементная база: полупроводниковые элементы (транзисторы, диоды).
2. Соединение элементов: печатные платы и навесной монтаж.
3. Габариты: ЭВМ выполнена в виде однотипных стоек, чуть выше человеческого роста, но для размещения требовался специальный машинный зал.
4. Быстродействие: 100−500 тыс. операций в секунду.
5. Эксплуатация: вычислительные центры со специальным штатом обслуживающего персонала, появилась новая специальность — оператор ЭВМ.
6. Программирование: на алгоритмических языках, появление первых операционных систем.
7. Оперативная память: 2−32 Кбайт.
8. Введён принцип разделения времени — совмещение во времени работы разных устройств.
9. Недостаток: несовместимость программного обеспечения.
Уже начиная со второго поколения, машины стали делиться на большие, средние и малые по признакам размеров, стоимости, вычислительных возможностей.
Так, небольшие отечественные машины второго поколения («Наири», «Раздан», «Мир» и др.) были в конце 60 -х годов вполне доступны каждому вузу, в то время как упомянутая выше БЭСМ-6 имела профессиональные показатели (и стоимость) на 2−3 порядка выше.
III поколение ЭВМ: ЭВМ, сконструированные в 1965 - 1975 гг.
В 1958 году Джек Килби и Роберт Нойс, независимо друг от друга, изобретают интегральную схему (ИС).
В 1961 году в продажу поступила первая, выполненная на пластине кремния, интегральная схема.
В 1965 году начат выпуск семейства машин третьего поколения IBM-360 (США). Модели имели единую систему команд и отличались друг от друга объёмом оперативной памяти и производительностью.
ibm.PNG
В 1967 году начат выпуск БЭСМ - 6 ( 1 млн. операций в 1 с) и «Эльбрус» ( 10 млн. операций в 1 с).
В 1968 году сотрудник Стэндфордского исследовательского центра Дуглас Энгельбарт продемонстрировал работу первой мыши.
mish.PNG
В 1969 году фирма IBM разделила понятия аппаратных средств (hardware) и программные средства (software). Фирма начала продавать программное обеспечение отдельно от железа, положив начало индустрии программного обеспечения.
29 октября 1969 года проходит проверка работы самой первой глобальной военной компьютерной сети ARPANet, связывающей исследовательские лаборатории на территории США.