Далекие предки C# появились еще в 60-х годах. Все началось с появления языка B, который в 1969 году был создан коллективом разработчиков из Технологического института Массачусетса (MIT). Главным автором B является Кен Томпсон. Тогда команда работала над операционной системой UNIX. Уже существовавший язык PL/I, применявшийся в то время для мэйнфреймов производства компании IBM, был достаточно громоздким и меньше подходил для поставленной задачи. Поэтому ученые решили создать новый язык, который и получил название B. Он является типичным представителем ранних императивных языков программирования.
После B, как это ни странно, последовал С, который был изобретен в 1972 году. Основой для нового языка послужил сам B.
Создателями C были Кен Томпсон и Денис Ритчи, которые работали в исследовательской лаборатории компании AT&T (AT&T Bell Telephone Laboratories). В 1971 году Ритчи начал создавать расширенную версию B. Сначала он назвал её NB (New B), но когда язык стал сильно отличаться от B, название сменили на C. B расширился за счет явного использования типов, структур и ряда новых операций.
По поводу возникновения языка Си Питер Мойлан в своей книге «The case against C» писал: «Нужен был язык обойти некоторые жесткие правила, встроенные в большинство языков высокого уровня и обеспечивающие их надежность. Нужен был такой язык, который позволил бы делать то, что до него можно было реализовать только на ассемблере или на уровне машинного кода».
В 1984 году Бьярне Страуструп (Bell Labs) выступил с проектом языка С++. Когда Страуструп занимался исследованиями в фирме, ему потребовалось написать несколько имитационных программ для моделирования распределенных вычислений. SIMULA-67 — объектно-ориентированный язык – мог бы стать идеальным инструментом для решения подобных задач, если бы не его сравнительно низкая скорость выполнения программ.
Если вам приходится выбирать между написанием «хорошего» и «быстрого» кода, значит, здесь что-то не так. Потому что «хороший» код должен быть «быстрым», – объясняет Страуструп свою позицию в интервью.
Так был создан язык программирования С++, первоначально получивший название «Си с классами» (С with classes). Название «С++» придумал Рик Мэсчитти. "++" — это оператор инкремента в С, который как бы намекает на то, что язык С++, нечто больше, чем просто С.
Ткацкие переплетения — различные взаимных переплетений нитей основы и утка́, использующиеся в ткацком производстве при изготовлении тканей на ткацких станках.
Вид переплетения — одна из важнейших характеристик строения ткани, определяющая её внешний вид, физические, механические, технологические и другие свойства.
Перекрытие (nF) — место, в котором пересекаются нити основы и утка.
осно́вное перекрытие nFО — место на лицевой стороне ткани, в котором нить основы располагается над нитью утка.
уто́чное перекрытие (nFУ) — место на лицевой стороне ткани, в котором нить утка располагается над нитью основы.
Ткацкие переплетения графически принято обозначать схемой, состоящей из клеток двух цветов, расположенных рядом друг с другом в определённом порядке. Основные нити располагаются в вертикальных рядах клеток, уточные — в горизонтальных. Тёмные клетки означают основные перекрытия, светлые — уточные.
Счёт нитей основы идёт слева направо, нитей утка — снизу вверх.
Раппо́рт переплетения (R) — число перекрытий по направлению нитей основы и утка, после которых чередование перекрытий повторяется.
раппорт переплетения по основе (RО) — число нитей основы, после которых чередование перекрытий в направлении утка повторяется.
раппорт переплетения по утку (RУ) — число нитей утка, после которых чередование перекрытий в направлении основы повторяется.
Сдвиг (S) — число, означающее на сколько нитей удалено одиночное перекрытие от аналогичного предыдущего перекрытия.
вертикальный сдвиг (SО) — количество нитей утка между двумя одиночными осно́вными перекрытиями.
горизонтальный сдвиг (SУ) — количество нитей основы между двумя одиночными уточными перекрытиями.
378-130=148мин
8м15см=8*100+15=815см
а 5дм9см = 5*10+9=59см
815-59=756см