Адрес: ул. Б. Очаковская 32 Москва Россия
Наши официальные канал и чат в telegram, группа в ВКонтакте

Авторский курс yabasic от @Terrazocultor

История разработки, новости релизов и документация
Аватара пользователя
Anton
Site Admin
Сообщения: 137
Зарегистрирован: Чт фев 08, 2024 7:03 pm
Откуда: Москва

Авторский курс yabasic от @Terrazocultor

Сообщение Anton »

Авторский курс yabasic от @Terrazocultor
Канал YouTube @Terrazocultor
ОСНОВНОЙ КУРС ПРОГРАММИРОВАНИЯ

Глава 1. ВВОДНАЯ ИНФОРМАЦИЯ, ПЕРВЫЕ ШАГИ
  1. Представление курса
  2. Скачивание и установка YaBasic
  3. Интерпретируемые и компилируемые языки
  4. Термины и концепции ИТ, которые полезно знать
  5. Ограничения памяти. Проверяем доступные объемы
  6. Контроверсийные номера строк (уже устарели)
  7. Скорость вычислений. Сколько времени займёт расчёт одного миллиона квадратных корней?
  8. Бонус: Программа игры «Четыре в ряд», против компьютера, создана мной в течение двух месяцев. Содержит более 3000 строк кода.
  9. Видеоматериал
Аватара пользователя
Anton
Site Admin
Сообщения: 137
Зарегистрирован: Чт фев 08, 2024 7:03 pm
Откуда: Москва

Вступительное слово автора курса

Сообщение Anton »

23 февраля 2020 года я провёл опрос среди подписчиков моего канала YouTube (@Terrazocultor), задав вопрос: какой видеоролик вы хотели бы увидеть следующим? Наибольшее число голосов набрал ролик о создании собственного парфюма. Но, учитывая ситуацию с коронавирусом и закрытие большинства магазинов, настало не самое подходящее время снимать подобные материалы. Поэтому я решил обратиться ко второму варианту голосования — курсу по программированию для начинающих на языке BASIC.

Главное преимущество этого курса заключается в том, что для его прохождения не нужны никакие специальные материалы или оборудование — достаточно иметь компьютер и, в крайнем случае, лист бумаги и карандаш.

Хочется подчеркнуть, что хотя курс называется «Введение в программирование», его целью не является обучение исключительно языку BASIC. Скорее, мы сосредоточимся на базовых концепциях и приёмах, применимых почти ко всем языкам программирования.

Некоторые читатели наверняка возразят, мол, зачем учиться на BASIC, если есть гораздо более совершенные и функциональные языки, такие как Java, Python, C и прочие. Да, конечно, они мощнее и популярнее, но зачастую сложнее для восприятия.

Моя позиция предельно ясна: прежде чем углубляться в продвинутые концепции программирования, такие как объектно-ориентированная парадигма (ООП), полиморфизм, наследование, инкапсуляция, рекурсия, протоколы, веб-разметка (HTML), аппаратная архитектура и ассемблер, сначала необходимо усвоить элементарные вещи, такие как:
  • Переменные и их типы;
  • Аккумулятор и счётчик;
  • Циклы и их разновидности (включая вложенные циклы);
  • Управляющие структуры и операторы ветвления;
  • Математические операции (не только арифметические, но и тригонометрические);
  • Операции со строками («стринги»);
  • Таблицы и матрицы;
  • Элементы графического интерфейса (цвета, фигуры, графика);
  • Звуковые эффекты;
  • Взаимодействие с системой;
  • Случайные числа;
  • Составление блок-схем;
  • Огромное количество других важных аспектов, которые значительно облегчают дальнейшее изучение более сложных языков программирования.
Даже несмотря на то, что я лично не стал бы полагаться на BASIC для профессиональной деятельности, считаю, что именно этот язык идеально подходит для первого знакомства с программированием. Причина проста: с BASIC можно сразу начать писать реальные программы, без необходимости разбираться в сложной инфраструктуре или дополнительном оборудовании. Хотя BASIC звучит довольно примитивно, на самом деле это мощный и гибкий инструмент, подходящий для решения широкого спектра задач — будь то бухгалтерская система или техническая задача с множеством расчётов.

Кроме того, я постараюсь привить хорошие привычки программирования, поскольку умение грамотно организовать код важнее, чем конкретный выбор языка. Можно написать хорошее приложение на BASIC и плохое на C. Ни один язык не гарантирует качество вашей работы — всё зависит от вас самих. По мере продвижения курса я буду уделять этому особое внимание, предлагая полезные советы и рекомендации по улучшению стиля программирования.
Аватара пользователя
Anton
Site Admin
Сообщения: 137
Зарегистрирован: Чт фев 08, 2024 7:03 pm
Откуда: Москва

Установка YaBasic

Сообщение Anton »

Одним из первых шагов на нашем курсе будет скачивание и установка программы YaBasic с официального сайта. Сама программа абсолютно безопасна и не содержит вирусов, однако вы можете дополнительно проверить загруженный файл своим антивирусом. Подробная инструкция по скачиванию представлена в видеоролике.

Главная страница YaBasic находится по адресу: Yabasic.de

Здесь слева расположены два раздела:
  • Download — для скачивания самого YaBasic.
  • Support — ведёт на страницу поддержки и документации YaBasic.
После загрузки программы откройте её и следуйте предлагаемым инструкциям. Теперь, чтобы создать новый проект, открывайте обычный текстовый редактор (я использую стандартный Блокнот), сохраняя файл с обязательным расширением `.yab`. Если расширение не указать, файл сохранится как обычный текстовый файл и не сможет быть запущен как программа.

Но если задать правильное расширение `.yab`, программа распознает файл как источник кода YaBasic и сделает его исполнимым. Ниже приведены два примера файлов с одинаковым названием, но разными расширениями:
- Слева: файл с расширением `.txt`
- Справа: правильный файл с расширением `.yab`

Только файлы с расширением `.yab` воспринимаются как программы YaBasic.
yab1.jpg
К сожалению, YaBasic не имеет встроенного редактора или интегрированной среды разработки, что было бы удобно, но и без этого вполне реально заниматься программированием, особенно для небольших проектов.

Основные действия с YaBasic-программой:

1. Создание программы YaBasic:
Создать программу значит составить текстовый файл с любым редактором и сохранить его с расширением `.yab`.

2. Редактирование программы YaBasic:
Щелкнуть правой кнопкой мыши по значку файла, выбрать пункт меню «Открыть с помощью...»

3. Запуск программы YaBasic:
В программировании под словом «выполнить» понимается запуск программы. По-английски это выражение переводится как «run a program» (запустить программу). Просто дважды щелкните по значку нужного файла, чтобы запустить его.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Anton
Site Admin
Сообщения: 137
Зарегистрирован: Чт фев 08, 2024 7:03 pm
Откуда: Москва

Интерпретируемые и компилируемые языки программирования

Сообщение Anton »

Теперь, когда мы установили YaBasic, пришло время разобраться в различиях между интерпретируемыми и компилируемыми языками программирования. Версия Basic, которую мы используем (YaBasic), является интерпретируемой, хотя позже мы посмотрим, можем ли мы применить трюк, позволяющий эмулировать поведение компилятора.

Давайте выясним разницу между интерпретируемыми и компилируемыми языками.

Сначала давайте поймём, что представляют собой низкоуровневые и высокоуровневые языки программирования.

Низкоуровневый язык: Машинные коды (самый первый и самый примитивный уровень):

В информатике программа — это набор инструкций, обрабатываемых компьютером. Эти инструкции выполняются посредством электронных схем, называемых «логическими цепями», работающих по законам булевой алгебры (использующей цифры 0 и 1). Существует два состояния: Истина и Ложь. Значению Истины соответствует напряжение (например, 5 вольт, представляющее цифру «1»). Ложь обозначается напряжением около 0 вольт (представляющим цифру «0»).

Логические цепи решают многие проблемы, выполняя простейшие операции, такие как перенос данных, арифметические действия, сравнения, прыжки к другой позиции в памяти и более сложные инструкции. Используя множество таких простых инструкций, можно составлять сложные программы.

Такой вид языка называют «машинным кодом», и это самый низкий уровень программирования. Термином «низкий» подчеркивается тот факт, что машина непосредственно понимает только бинарные значения (нули и единицы).

Однако для человеческого мозга такой подход крайне неудобен: запросто ошибиться, поставив лишний ноль или единицу, и тогда программа перестанет функционировать должным образом. Раньше для написания короткого фрагмента кода требовались глубокие познания математики и электроники. Более того, каждая модель компьютера имела собственный уникальный машинный код, сильно отличающийся от других моделей.

Пример небольшого участка машинного кода выглядит примерно так (это не реальный фрагмент):
ИнструкцияПараметр №1Параметр №2
1000100111101010
111100110010000100001111
000111001001110001010100
1010110010001100

Первая колонка («Инструкция») определяет команду, которую должна выполнить машина. Например, первая команда (11101010) может означать сдвиг цифр параметра №1 влево, заполнив пустое пространство справа нулём (что эквивалентно умножению на два в двоичном исчислении). Результат помещался в особую область памяти, называемую регистрами. Необходимо учитывать множество деталей при составлении подобного кода.

Хотя сама машина прекрасно понимает такие инструкции, человек испытывает значительные трудности в понимании и написании подобного кода. Даже если специалист, писавший код, знает точно, что делает программа, посторонний человек, пытающийся разобраться в чужом проекте, столкнётся с огромными трудностями.

Ассемблер (низкий уровень, но чуть выше машинного):

Вскоре стало ясно, что машинный код существенно ограничивал развитие программирования. Между машиной и человеком возникла проблема взаимопонимания, которую требовалось решить. Так появился язык ASSEMBLER (ассемблер), служащий промежуточником между человеком и машиной. Он остался абстрактным и не особо удобным, но значительно упрощал дело. Вместо длинных последовательностей единиц и нулей теперь использовались мнемонические символы, соответствующие обычным словам, например, команда «суммировать» стала записываться как ADD, а операция перемещения данных называлась MOV.

Вот пример небольшого участка ассемблерного кода:

Код: Выделить всё

MOV AX, 31h
ADD AX, 16h
INT 2Eh
Здесь три инструкции:
  • MOV копирует значение 31h (шестнадцатеричное число) в регистр AX.
  • ADD добавляет к содержимому регистра AX значение 16h.
  • INT вызывает специальную заранее прописанную процедуру в микропроцессоре (например, перехват нажатия клавиши, завершение программы, ошибка деления на ноль и т.д.)
Числа теперь отображались в шестнадцатеричной системе (основание 16), что удобнее, чем бинарная запись, хотя тоже сложно воспринимать визуально. Например, число 255 в двоичной системе записывалось как 11111111, а в шестнадцатеричной — просто как FF.

Высокоуровневые языки (Basic, Fortran, C, Java, Python, Cobol, Perl, Ada, Pascal, Delphi и др.):

Высокоуровневые языки широко распространены среди программистов и пользователей. Название «высокий уровень» может вводить в заблуждение, так как эти языки вовсе не являются чрезмерно сложными. Их главная особенность — лёгкость восприятия людьми.

Почему их называют «высокими»?Потому что они написаны человеческим языком. Человек способен понять хорошо составленную программу на таком языке, даже если совсем незнаком с программированием, особенно если он владеет английским языком (языком, на котором чаще всего создаются такие языки программирования).

Например, читая программу на одном из высокоуровневых языков, можно легко понять её общую идею. Однако возникает новая сложность: машина не способна понять инструкции на таком языке. Любая простая команда, такая как вывод символа "A" в позицию экрана (30, 20) на языке Basic:

Код: Выделить всё

PRINT AT(30,20) "A"
— это далеко не одна простая команда для компьютера. Машина понимает только последовательность нулей и единиц, и эта одна строчка превращается в десятки или сотни низших инструкций, таких как рисование пикселей на экране.

Поэтому необходима ТРАНСЛЯЦИЯ из высокоуровневого языка (человеческого языка) в машинный код (понятный машине).

Именно тут становится очевидной разница между интерпретируемыми и компилируемыми языками.

Интерпретируемые языки:

Трансляция «человек → машина» выполняется всякий раз при выполнении программы, инструкция за инструкцией, в режиме реального времени. Результаты трансляции действуют только временно и исчезают после завершения работы программы. Подобно человеческой речи, интерпретация происходит мгновенно, без сохранения результата на бумаге.

Примером интерпретируемого языка является YaBasic, который мы используем. Расширение файлов для таких программ — .Yab, а иногда используется расширение .Bas.

Преимущества интерпретируемых языков:
  • Проще в использовании.Недостатки:
  • Медленная работа, так как каждый раз при запуске программы требуется заново переводить каждую инструкцию, что замедляет исполнение.
  • Требуют больше памяти, так как необходим дополнительный модуль-интерпретатор.
Компилируемые языки:

Трансляция осуществляется ДО запуска программы в отдельном процессе, называемом компиляцией. Используется специальная программа-компилятор, соответствующая конкретному языку и его версии. Процесс компиляции производится единожды, пока не произойдут изменения в исходном коде программы, и тогда компиляцию придётся повторить снова.

Исходник программы остаётся неизменным и называется «исходным кодом» или «source code». Перевод исходного кода в машинный язык компилятором называется «объектным кодом» или «binary executable».

Исполняемые программы обычно имеют расширение .EXE, означающее, что файл готов к выполнению.

Примеры расширения файлов для исходников:
  • Basic: .Yab, .Bas (есть версии Basic, поддерживающие компиляцию)
  • Pascal: .Pas
  • C: .C
  • Cobol: .Cob
Преимущества компилируемых языков:
  • Исполняемая программа компактна и независима.
  • Работает быстрее, так как не требует постоянной трансляции.
Недостатки:
  • Необходимость предварительной компиляции, что увеличивает время подготовки программы к исполнению.
Преимущества и недостатки интерпретируемых и компилируемых языков:

Интерпретируемые языки:
+ Преимущества:
  • Легче в разработке и тестировании.
− Недостатки:
  • Замедляют выполнение программы, так как каждая инструкция транслируется заново при каждом запуске.
  • Занимают больше памяти, поскольку одновременно требуется хранить интерпретатор.
Компилируемые языки:
+ Преимущества:
  • Быстрая работа программы, так как трансляция была выполнена заранее.
  • Нет нужды повторно транслировать программу при каждом запуске.
− Недостатки:
  • Длительность начальной стадии компиляции программы, особенно крупных проектов.
  • Необходимость повторной компиляции при внесении изменений в исходный код.
Недостатки компилируемых языков

Они немного сложнее в использовании по сравнению с интерпретируемыми языками. Сегодня это не столь актуально, так как современные компьютеры работают очень быстро. Однако раньше ситуация выглядела иначе: на компиляцию средней по размеру программы могло уйти полчаса... и ещё оставалось надеяться, что процесс завершится успешно, ведь ошибки были весьма частыми. В случае возникновения ошибки приходилось проделывать следующий цикл:
  • Найти причину ошибки.
  • Устранить ошибку.
  • Повторно запустить компиляцию, тратя ещё половину часа...
Есть одно исключение, которое хочется упомянуть отдельно: компилируемый язык Pascal в версии Turbo Pascal 4.0 от компании Borland. Прошло уже 30 лет с момента его появления. Turbo Pascal работал настолько быстро, что мог компилировать целых 40 тысяч строк кода всего за десять секунд, создавая впечатление работы с интерпретатором. Это происходило на старых компьютерах с процессорами Intel 286 или 386 конца прошлого века. Современные компьютеры могли бы справиться с той же задачей в считанные секунды, компилируя сотни тысяч строк кода за то же время. Именно Turbo Pascal подарил незабываемые моменты продуктивной работы!

Примечание: Эти воспоминания относятся к временам, когда технология находилась на совершенно другом уровне. Благодаря быстрому развитию процессоров и совершенствованию компиляторов сегодня большинство проблем, связанных с долгой компиляцией, устранены.
Аватара пользователя
Anton
Site Admin
Сообщения: 137
Зарегистрирован: Чт фев 08, 2024 7:03 pm
Откуда: Москва

Ключевые информационные термины и концепции, которые важно знать

Сообщение Anton »

Информационная наука, как любая дисциплина, содержит большое количество специальных терминов и понятий, без четкого осознания которых трудно понять некоторые аспекты данной сферы. Например, ранее мы выяснили, что для полного понимания разницы между интерпретируемыми и компилируемыми языками необходимо предварительно ознакомиться с понятием «низких» и «высоких» уровней языков программирования. Давайте рассмотрим наиболее важные термины и концепции:
  • Информатика происходит от слияния двух слов: Información (информация) и Automática (автоматизированная обработка). Часто упускаемый из виду аспект информатики заключается в том, что всякая информационная система, от самой маленькой до огромной, должна обеспечивать своевременную подачу нужной информации в правильном объеме и форме. Задача программиста — привести программное обеспечение в соответствие с реальной ситуацией, а не наоборот.
  • Аппаратное обеспечение — это физическая составляющая компьютера, состоящая из корпуса, плат, внешних проводов и соединений. Аппаратные элементы составляют физическую инфраструктуру любого компьютера.
  • Программное обеспечение — это совокупность идей и инструкций, представленных в виде приложений и системных программ. Оно отвечает за управление аппаратурой и выполнение различных функций. По сути, программа — это идея, воплощённая в цифровой среде.
  • Компьютер — это электронное устройство, предназначенное для выполнения определенных инструкций, собранных в программе. Дополнительно компьютер оснащён различными внешними устройствами — принтеры, мониторы, клавиатуры, микрофоны, динамики и прочее.
  • CPU (Central Processing Unit / Центральное процессорное устройство) Центральное процессорное устройство — ключевая компонента компьютера, ответственная за обработку информации и управление исполнением программ. Центральный процессор состоит из трёх основных частей:
    1. Control Unit — управляющая единица, осуществляющая контроль исполнения программы.
    2. Арифметико-логическое устройство — выполняющее математические и логические операции.
    3. Память — область, в которой хранятся данные, используемые управляющей и арифметической частями.
    4. Шины — электрические линии связи, соединяющие контролирующую и арифметическую части с памятью.
yab2.jpg
Основные компоненты персональных компьютеров

Персональные компьютеры традиционно выпускаются в трех основных формах:
  • башня — вертикальная конфигурация, корпус размещается вертикально обычно на полу.
  • настольный — горизонтально расположенный корпус, располагаемый на столе.
  • портативный — ноутбуки и лэптопы, предназначенные для мобильного использования.
Независимо от формы, стандартные компоненты включают в себя:
  • Корпус — защитный кожух, содержащий внутренние компоненты.
  • Источник питания и вентиляторы — обеспечивает электропитание комплектующих и охлаждение системы.
  • Устройства хранения данных — жесткие диски (HDD), твердотельные накопители (SSD), оптические приводы (CD/DVD-дисководы), порты USB и флоппи-дисководы (ныне редко используются).
  • Графическая карта — повышает способность компьютера обрабатывать графику и выводить изображения высокой детализации.
yab3.jpg
Внутреннее устройство системного блока компьютера

На фотографии выше показана стандартная конструкция системного блока (корпус типа «Tower»), демонстрирующая расположение основных элементов:
  • Верхний левый угол: Материнская плата. Над материнской платой установлен синий вентилятор охлаждения, прикрывающий центральный процессор (CPU).
  • Нижний левый угол: Блок питания, обеспечивающий питание всех компонентов компьютера.
  • Правый верхний угол: Корпус для размещения дисководов и привода чтения-записи DVD-дисков.
  • Правый нижний угол: Панель для разъемов передней панели, индикаторов и портов USB.
С левой стороны корпуса (которая фактически является задней стороной компьютера и не видна на фото) расположено множество разъёмов для подключения внешних устройств: монитор, интернет-кабель, принтер, дополнительные порты USB, аудиосистема и другие соединения.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Anton
Site Admin
Сообщения: 137
Зарегистрирован: Чт фев 08, 2024 7:03 pm
Откуда: Москва

Система счисления и представление чисел

Сообщение Anton »

Десятичная система (Base 10)

Мы привыкли считать в десятеричной системе, которая известна как десятичная. В ней используются десять символов (цифр) от 0 до 9. Когда достигаем максимального значения одной позиции (9), следующая цифра выражается добавлением новой цифры слева, превращая 9 в 0 и прибавляя 1 слева, получается 10.

От 9 к 10:
9→9
10→10

Двоичная система (Base 2)

Подобно предыдущему примеру, но с двумя символами: 0 и 1. Здесь, чтобы представить число 2, возвращаем последнюю цифру к 0 и добавляем новую цифру слева:

От 1 к 2:
1→1
10→2

Шестнадцатеричная система (Base 16)

Ещё одним распространенным в информатике методом является шестнадцатеричная система (hexadecimal). В ней используется 16 символов: цифры от 0 до 9 и буквы от A до F, обозначающие числа от 10 до 15 соответственно. Таким образом, вместо числа 12 записывают букву "C", а число 15 представляется символом "F":

Переход от 15 к 16:
15​→0F​
16​→10

Соответствие чисел в системах счисления

Рассмотрим таблицу соответствия чисел от 0 до 15 в десятичном, двоичном и шестнадцатеричном форматах:
DecimalBinarioHexadecimal
000000
100011
200102
300113
401004
501015
601106
701117
810008
910019
101010A
111011B
121100C
131101D
141110E
151111F
Перевод двоичных чисел в десятичные

Чтобы перевести двоичное число в десятичное, начинаем с крайней правой цифры (единиц), суммируя значения позиций, помноженных на степень двойки (2(позиция−1)). Например, для числа 101101:

1×2⁰+1×2²+1×2³+1×2⁵=1+4+8+32=45

Получившееся число 45 — это десятичное представление двоичного числа 101101.

Важно помнить, что:
  • Десятичная система — наша повседневная система счисления.
  • Двоичная система — основа для работы компьютеров, поскольку электроника понимает только два состояния: включено (1) и выключено (0).
  • Шестнадцатеричная система — удобное средство для сокращения длинного двоичного представления, широко применяемое в программировании.
Все эти знания пригодятся в дальнейшем, особенно при работе с числами и битовыми операциями в программировании.
Аватара пользователя
Anton
Site Admin
Сообщения: 137
Зарегистрирован: Чт фев 08, 2024 7:03 pm
Откуда: Москва

Типы памяти и её классификация

Сообщение Anton »

Память — это устройство, предназначенное для хранения информации. Все программы и данные, которыми манипулируют приложения, сохраняются в памяти. Без неё невозможно функционирование современной компьютерной техники. Существуют различные виды памяти, классифицируемые по различным признакам.

По физическому носителю:
  • Картонные перфорированные карты и перфорированная лента. Многие из читателей, вероятно, никогда не видели подобное средство хранения данных, однако в ранних этапах развития информатики активно использовали карточки и ленты из картона, на которых отверстия соответствовали определенным данным. Наличие отверстия символизировало «1», отсутствие — «0». Такой способ хранения был медленным по сегодняшним меркам, но считался быстрым по сравнению с ручным ведением записей в докомпьютерную эпоху.
Другая вариация — перфорированная лента, непрерывная полоса, на которой данные хранились последовательно. Ширина полосы могла варьироваться, существовала перфорация по пять или восемь отверстий на столбец.
yab4.jpg
yab5.jpg
Магнитные носители информации

Магнитные методы хранения данных известны давно и применяются для записи различной информации, включая звук и видео (хотя они изначально аналогового характера). В цифровых устройствах данные сохраняются путем регистрации двух состояний магнетизма, соответствующих цифровому "0" и "1".

Одна из первых разновидностей магнитной памяти представляла собой **матрицы ферритовых сердечников**. Такие устройства представляли собой массив маленьких колец (ферритовых тороидов), сквозь каждое из которых проходили три электрических провода. Через эти проводники производилось чтение и запись информации. Каждый ферритовый сердечник представлял собой отдельную ячейку памяти, и изменение направления тока позволяло сохранять состояние "0" или "1".
yab6.jpg
Другие типы магнитных носителей

Другой формой магнитного носителя была магнитная лента, которую активно использовали, например, в компьютерах Amstrad в 80-х годах. Позже появились профессиональные магнитные ленты большего размера и большей емкости.

Более поздней технологией стали гибкие магнитные диски (floppy disks), известные также как дискеты. Они были популярны вплоть до середины 2000-х годов. Гибкие диски вставлялись в специальный слот компьютера и позволяли переносить небольшие объёмы данных между системами. Ёмкости дискет варьировались от нескольких десятков килобайт до пары мегабайт (обычно встречались ёмкости 180 KB, 360 KB, 720 KB и 1.44 MB). Со временем популярность дискет снизилась, и современные компьютеры уже не оснащены соответствующими приводами для их считывания.

Дальнейшим развитием стали жёсткие диски (hard drives), которые устанавливаются внутрь компьютера либо подключаются снаружи. Первоначально они имели меньшую емкость, измерявшуюся в мегабайтах, но впоследствии объём увеличился многократно. Изначально существовали ограничения на максимальный размер жестких дисков (до 30 MB), и для увеличения ёмкости приходилось разбивать диск на виртуальные разделы (partition). Постепенно разработчики преодолели эти ограничения, и емкость возросла экспоненциально.

Сегодня современные жесткие диски измеряются в терабайтах (терабайт равен приблизительно миллиону мегабайт или тысяче гигабайт). Например, жесткий диск объемом 15 TB эквивалентен вместимости порядка 500 тысяч старых 30-мегабайтных дисков эпохи 80-х.

Отдельно стоит отметить особый класс жестких дисков — SSD (Solid State Drives), твёрдотельные накопители. Эти устройства обладают высоким быстродействием, отсутствием механических движущихся частей, повышенной устойчивостью к повреждениям и низким уровнем шума. Стоимость SSD снижается, а их ёмкость достигает десятков гигабайт и даже терабайтов.
yab7.jpg
yab8.jpg
Описание видов памяти и накопителей

1. Твердотельные накопители (SSD):

Существуют два вида SSD: внутренние и внешние.
  • Внутренние SSD: Монтируются внутри компьютера и выглядят как обычные платы с микросхемами. Используются преимущественно как замена традиционным механическим жестким дискам для повышения производительности системы.
  • Внешние SSD: Имеют внешний корпус и предназначены для подключения к компьютеру через интерфейс USB или Thunderbolt. Применяются для переноса больших объемов данных, резервного копирования и быстрой передачи информации.
SSD характеризуются высокой скоростью доступа к данным, отсутствием подвижных механических частей, надежностью и бесшумностью работы.

2. Оптические накопители (оптические диски):

Оптические носители информации представлены форматами CD, DVD и Blu-ray. Данные на них записываются лазерным лучом и воспроизводятся аналогичным образом. Информация хранится на поверхности диска в виде физических меток (ямок и площадок).

Технические спецификации различаются между CD и DVD:
  • CD-Rom (Compact Disc): Емкость около 700 МБ.
  • DVD-Rom (Digital Versatile Disc): Обычно вмещает до 4,5 ГБ данных.
Среди версий DVD выделяют:
  • DVD+R/W: Возможность многократной перезаписи данных.
  • DVD-R/W: Однократная запись или однократная перезапись.
  • DVD+/-RW: Универсальные варианты с поддержкой обеих технологий.
Оптические диски остаются популярными благодаря доступности и надежности. Однако их пропускная способность заметно ниже, чем у современных флеш-накопителей и SSD. Сейчас оптические приводы постепенно уступают место новым технологиям, но многие персональные компьютеры продолжают комплектоваться оптическим приводом.

Надежность и долговечность:

Оптические диски сохраняют стабильность и надежность при условии бережного обращения: избегать царапин, ударов, воздействия высоких температур и влажности. Хранящиеся на них данные способны оставаться целыми десятилетиями при соблюдении правил эксплуатации.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Anton
Site Admin
Сообщения: 137
Зарегистрирован: Чт фев 08, 2024 7:03 pm
Откуда: Москва

Типы памяти и её классификация (продолжение)

Сообщение Anton »

Типы полупроводниковой памяти

Полупроводниковая память подразделяется на два основных типа:
  1. RAM (Random Access Memory) — оперативная память произвольного доступаRAM позволяет получать доступ к любой ячейке памяти напрямую и немедленно. Это электронные модули с интегральными схемами, содержащие миллионы микроскопических транзисторов, каждый из которых может находиться в состоянии "открыт" (кондукция) или "закрыт" (изоляция), представляющих логические "0" и "1". Именно оперативная память составляет основную рабочую память компьютера, куда загружаются активные программы и данные для немедленного использования центральным процессором. Важно отметить, что RAM — это энергозависимая память, то есть при отключении питания информация теряется. Зато это самая быстрая разновидность памяти. Есть два основных подвида RAM:
    • DRAM (Dynamic RAM): основывается на конденсаторах, удерживающих заряд. Заряд постепенно исчезает, поэтому периодически необходимо обновлять (refresh) состояние ячейки.
    • SRAM (Static RAM): основана на статическом хранении данных в транзисторных элементах, не требующих обновления заряда. Это более быстрый и надежный тип памяти, но он дороже и менее энергоэкономичен.
    Объем оперативной памяти современных компьютеров измеряется в гигабайтах (ГБ), а в прошлом нормальным считалось наличие всего 1 МБ или даже меньше (64 КБ), из которых реально использовалось всего несколько десятков килобайт.
  2. Flash-памятьДругим типом полупроводниковой памяти является flash-память, обладающая свойством энергонезависимости, то есть сохранение данных даже при отсутствии питания. Её применяют в "флешках" (USB-накопителях), SD-картах и твердотельных накопителях (SSD).Главное достоинство flash-памяти — высокая плотность хранения данных (гигабайты и даже терабайты в крошечных размерах), надёжность, устойчивость к физическим повреждениям и бесшумность работы. Минус — относительно низкая скорость доступа по сравнению с оперативной памятью.
Энергозависимые и энергонезависимые виды памяти

Энергозависимыми называются те виды памяти, которые теряют информацию при потере электрического питания.
yab9.jpg
Сюда входят:
  • RAM (все её типы, включая DRAM и SRAM): основная рабочая память компьютера, которая очищается при выключении.
Энергонезависимой памятью считается та, которая сохраняет данные при отключении электричества. Примеры:
  • Механические и магнитные носители (жесткие диски, магнитные ленты).
  • Оптические носители (CD, DVD).
  • Flash-память (USB-флешки, SSD-накопители).
yab10.jpg
Типы памяти по назначению

Разделение памяти также связано с её назначением:
  • RAM (Random Access Memory): случайный доступ, быстрое чтение и запись, энергозависимость. Это основная оперативная память компьютера, необходимая для текущих рабочих процессов.
  • ROM (Read Only Memory): память только для чтения. Пользователь не может изменять её содержимое. Чаще всего ROM представляет собой микросхемы, прошитые производителем. Примером является BIOS компьютера, хранящий первичные инструкции для инициализации оборудования при включении.
У вас нет необходимых прав для просмотра вложений в этом сообщении.