Атомная энергетика. Ядерные реакторы АЭС. Атомный флот. Ядерное оружие |
|||
| РБМК-1000 | |||
| Гражданский суда | |||
| Авиация | |||
Высшая математика |
|||
| Задачи | |||
| Практикум | |||
| Карта сайта | |||
Необходимость во внешних устройствах хранения данных возникает в двух случаях:
В настоящее время для внешнего хранения данных используют несколько типов устройств, использующих магнитные или магнитооптические носители.
Стримеры. Стримеры — это накопители на магнитной ленте. Их отличает сравнительно низкая цена. К недостаткам стримеров относят малую производительность (она связана прежде всего с тем, что магнитная лента — это устройство последовательного доступа) и недостаточную надежность (кроме электромагнитных наводок, ленты стримеров испытывают повышенные механические нагрузки и могут физически выходить из строя).
Емкость магнитных кассет (картриджей) для стримеров составляет до нескольких сот Мбайт. Дальнейшее повышение емкости за счет повышения плотности записи снижает надежность хранения, а повышение емкости за счет увеличения длины ленты сдерживается низким временем доступа к данным.
ZIP-накопители. ZIP-накопители выпускаются компанией Iomega, специализирующейся на создании внешних устройств для хранения данных. Устройство работает с дисковыми носителями, по размеру незначительно превышающими стандартные гибкие диски и имеющими емкость 100/250 Мбайт. ZIP-накопители выпускаются во внутреннем и внешнем исполнении. В первом случае их подключают к контроллеру жестких дисков материнской платы, а во втором — к стандартному параллельному порту, что негативно сказывается на скорости обмена данными.
Накопители HiFD. Основным недостатком ZIP-накопителей является отсутствие их совместимости со стандартными гибкими дисками 3,5 дюйма. Такой совместимостью обладают устройства HiFD компании Sony. Они позволяют использовать как специальные носители емкостью 200 Мбайт, так и обычные гибкие диски. В настоящее время распространение этих устройств сдерживается повышенной ценой.
Накопители JAZ. Этот тип накопителей, как и ZIP-накопители, выпускается компанией Iomega. По своим характеристикам JAZ-носитель приближается к жестким дискам, но в отличие от них является сменным. В зависимости от модели накопителя на одном диске можно разместить 1 или 2 Гбайт данных.
Магнитооптические устройства. Эти устройства получили широкое распространение в компьютерных системах высокого уровня благодаря своей универсальности. С их помощью решаются задачи резервного копирования, обмена данными и их накопления. Однако достаточно высокая стоимость приводов и носителей не позволяет отнести их к устройствам массового спроса.
В этом секторе параллельно развиваются 5,25- и 3,5-дюймовые накопители, носители для которых отличаются в основном форм-фактором и емкостью. Последнее поколение носителей формата 5,25" достигает емкости 5,2 Гбайт. Стандартная емкость для носителей 3,5" — 640 Мбайт.
В формате 3,5" недавно была разработана новая технология GIGAMO, обеспечивающая емкость носителей в 1,3 Гбайт, полностью совместимая сверху вниз с предыдущими стандартами. В перспективе ожидается появление накопителей и дисков форм-фактора 5,25", поддерживающих технологию NFR (Near Field Recording), которая обеспечит емкость дисков до 20 Гбайт, а позднее и до 40 Гбайт.
Основы безошибочного программирования
Основной недостаток традиционной практики составления программ для ЭВМ заключается в том, что при таком подходе никто не может гарантировать отсутствие в них ошибок. Особенностью традиционной практики является поиск ошибок в программах при их отладке на ЭВМ.
Однако, так как число ошибок в программах заранее неизвестно, то неизвестна заранее и продолжительность отладки программ на ЭВМ. Более того даже после «завершения» отладки никто не может гарантировать отсутствие ошибок. Естественно, что использование таких программ, приводит к возникновению отказов, сбоев и получению неверных результатов.
Структурный подход снижает количество ошибок в алгоритмах и программах. Однако и при этом подходе число ошибок также заранее неизвестно. Хотя структурная форма записи и упрощает поиск и исправление ошибок в текстах программ, гарантии отсутствия ошибок структурный подход не дает.
Однозначные суждения об отсутствии или наличии ошибок в алгоритмах и программах возможны только при наличии описаний конечных результатов их выполнения. Такие описания принято называть спецификациями.
Спецификации программ - это точные, математически строгие описания результатов выполнения алгоритмов и программ. Только при наличии спецификаций возможно создание алгоритмов и программ, в которых можно гарантировать отсутствие ошибок.
Более того, при систематическом использовании спецификаций возможен не только анализ правильности алгоритмов и программ, но и становится возможным составление программ с одновременным доказательством правильности.
Безошибочное программирование - это составление алгоритмов и программ с гарантиями отсутствия в них ошибок. А составление алгоритмов и программ с одновременным доказательством правильности называется доказательным программированием. И в том и другом подходе необходимо составление спецификаций.
Для составления программ на любом языке программирования весьма полезно предварительное составление реализуемых в них алгоритмов. Эти описания алгоритмов вместе со спецификациями позволяют в полной мере оценить правильность составленных программ. Пример составления алгоритмов с использованием в качестве иллюстрации спецификаций сценария диалога с ЭВМ:
Сценарий «Галерея картинок»
Список картинок:
1. треугольник
2. прямоугольник
3. кольцо
номер = ? <N>
![]() |
![]() |
n =1 n = 2 n = 3
![]() |
![]() |
![]() |
В соответствии с этими четырьмя картинками построим три вспомогательных алгоритма рисования отдельных картинок из «Галереи» и общий алгоритм выбора картинок в соответствии с принятым сценарием:
алг «Галерея картинок»
нач алг «рисуиок_треугольника»
вывод («Список картинок:») нач
вывод («1. треугольник») линия(150,50)-(100,100)
вывод («2. прямоугольник») линия(150,50)-(200,100)
вывод («3. кольцо») линия(100,100)-(200,100)
запрос («номер=», п) кон
графический_экран
если п = 1 то алг «рисунок_прямоугольника»
рисунок_треугольника нач
инес п = 2 то рамка(50,50)-(150,100)
рисунок_прямоугольника кон
инес п = 3 то
рисунок_кольиа алг «рисунок_кольца»
иначе нач
вывод («нет такого рисунка») окружность( 100,100),20
все окружность(100,100),50
кон кон
Правильность каждого из вспомогательных алгоритмов и подпрограмм определяется сравнением с соответствующими фрагментами сценария, а правильность всего алгоритма и соответствующей программы - со сценарием в целом.
Данный подход к составлению алгоритмов и программ с использованием спецификаций - позволяет реализовать основную идею безошибочного программирования - создание алгоритмов и программ, правильных по построению. Такой подход может применяться к составлению алгоритмов и программ для любых современных языков программирования - Паскаль, Си, Ада, Модула, Бейсик и т. д.
Приведем примеры составления сложных алгоритмов и программ с циклами с использованием спецификаций. Первый пример - построение алгоритма и программы изображения на экране картинки «Звездное небо» из n случайных точек:

В приводимом ниже алгоритме для формирования и вывода последовательности случайных точек на экране используется цикл со счетчиком и датчик случайных чисел для генерации координат «звезд».
Алгоритм Программа
алг «звездное небо» ' звездное небо
нач сls
запрос(«звезд=», п) input «звезд=», n
графический_экран screen 2,0
от k = 1 до п цикл for k = 1 to n
x: = случайное [0:200] х = rnd*200
у: = случайное [0:200] у = rnd*200
точка (х,у) pset (x,y),3
кцикл next k
кон end
| Основные понятия об информации и информатике |