
- •Билет №1
- •Билет №8
- •Билет №10
- •Билет №7
- •1. Внешняя память компьютера. Различные типы носителей информации (информационная емкость, быстродействие и т.Д.).
- •Билет №9
- •Непозиционные системы
- •Позиционная система:
- •1. Измерение информации: содержательный и алфавитный подходы. Единицы измерения информации.
- •Единицы количества информации
- •Например, слово «мама» кодируется 32-разрядным двоичным числом:
- •Физическая и логическая структура магнитных дисков
- •Структура программы, или главный порядок
- •Идентификаторы, или имена
- •Стандартные типы данных
- •Переменные, или реализация типов
- •Нестандартные типы или типы, определяемые программистом
- •Операторы
- •Выполнение простых операторов или как это работает
- •Процедуры и функции, или как структурировать программы
- •Первая программа, или с чего начинают все всегда и везде
Физическая и логическая структура магнитных дисков
Магнитные диски являются элементами устройств чтения-записи информации – дисководов. Сам магнитный диск – это пластиковый (для гибких дисков) или алюминиевый либо керамический (для жестких дисков) круг с магниточувствительным покрытием. В случае жесткого диска таких кругов может быть несколько, и все они в центре посажены на один стержень. Для гибкого диска такой круг один, при помещении в дисковод он фиксируется в центре. Во время работы диск раскручивается. Схема дисковода показана на рисунке:
Головки чтения-записи могут синхронно перемещаться в горизонтальном и вертикальном направлении (это показано стрелками), что позволяет им приблизиться к любой точке поверхности диска. Каждая точка поверхности рассматривается как отдельный бит внешней памяти.
Так же как и основная память, поверхность диска (или дисков) имеет структуру. Элементы физической структуры следующие:
дорожка – концентрическая окружность, по которой движутся головки чтения-записи при размещении или поиске данных. Дорожки нумеруются, начиная с нуля. Нулевой номер имеет самая внешняя дорожка на диске;
секторы – блоки, в которых размещаются данные на дорожке при записи. Нумеруются, начиная с единицы. Помимо пользовательской информации (самих данных), сектора содержат служебную информацию, например, собственный номер. Сектора являются минимальными адресуемыми элементами данных для диска;
стороны диска. Нумеруются, начиная с нуля. Для винчестера, расположенного вертикально, нулевой номер имеет самая верхняя сторона, для гибкого диска нулевой номер у «лицевой» стороны дискеты;
цилиндр – совокупность дорожек с одинаковыми номерами на разных сторонах диска. Номера цилиндров совпадают с номерами дорожек;
кластер – совокупность секторов, имеющих смежные номера. Может состоять из одного сектора (для дискет) или нескольких (для винчестера). Является минимальным адресуемым элементом данных для операционной системы. Кластеры используются операционной системой для добавления данных к файлу: добавление очередной «порции» данных к файлу выполняется в объеме кластера независимо от того, что реальный объем добавляемых меньше объема кластера. Это приводит к нерациональному расходованию внешней памяти. Поэтому не рекомендуется хранить на диске большое количество маленьких файлов: они имеют много пустых «хвостов».
Разбивка непрерывного пространства поверхности диска на указанные элементы (можно эту процедуру назвать дискретизацией) выполняется при его форматировании. При этом также формируется маркер начала и конца дорожки, места расположения секторов, в сектора записывается служебная информация.
Дискретное пространство диска имеет, в свою очередь, следующую структуру (она описана в порядке возрастания номеров сторон, дорожек и секторов):
Таблица разделов PT (Partition Table). Состоит из четырех элементов, описывающих разделы диска, причем операционные системы используют только первые два элемента. Описание раздела диска содержит данные о первых и последних головках чтения-записи, дорожках, секторах раздела, общем количестве секторов в разделе, типе файловой системы и признак того, что раздел является загрузочным;
Главная загрузочная запись MBR (Master Boot Record). Содержит код процессора, необходимый для дальнейшей загрузки операционной системы;
Загрузочная запись операционной системы BR (Boot Record). Содержит следующую информацию: программу загрузки операционной системы,размер кластера, количество копий FAT, количество файлов в корневом каталоге Root, размер FAT и некоторую другую информацию;
Таблица размещения файлов FAT (File Allocation Table) и ее копии. Содержит полную карту принадлежности кластеров файлам и используется операционными системами для хранения сведений о размещении файлов на диске и о «плохих» (bad) кластерах. В силу важности FAT она дублируется несколько раз;
Корневой каталог Root. Это таблица, в которой каждая запись соответствует файлу или подкаталогу, подчиненному корневому каталогу диска, и имеет структуру:
Имя файла или подкаталога;
Тип файла;
Атрибуты, в которых определяются следующие параметры файла или подкаталога: предназначенность только для чтения,скрытость, системность, маркер принадлежности данной записи метке тома, признак принадлежности данной записи подкаталогу, а не файлу, архивность;
Время создания;
Дата создания;
Номер начального кластера файла или подкаталога;
Размер файла.
Следует подчеркнуть, что записи для файлов и подкаталогов идентичны за исключением двух характеристик: в поле атрибутов выставлен признак подкаталога и в поле размеров выставлен ноль.
Область размещения файлов FA (File Area). Содержит файлы и подкаталоги, которые описаны в Root. Следует иметь в виду, что при размещении файлов на диске операционная система выбирает для этого первые попавшие свободные кластеры. Поэтому в результате файл физически "разорван" на множество "кусков", что увеличивает время его сборки впоследствии. Такое явление называется фрагментацией файла. Для устранения фрагментации выполняют дефрагментацию файла, когда он по возможности "собирается" в единое целое, что позволяет оптимизировать работу с внешней памятью.
Взаимосвязь областей Root, FAT, FA при поиске файла или каталога по его имени, указанному, например, в команде MS DOS, показана ниже.
Пусть файл с именем ABC.TXT расположен в области FA в тех кластерах, которые выделены серым цветом (их номера показаны ниже):
|
|
|
|
|
|
|
|
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
Остальные кластеры свободны. Тогда в FAT в записях с номерами 10 – 17 появятся данные, показанные в таблице:
№ записей FAT |
Содержимое записи FAT |
10 |
12 |
11 |
|
12 |
15 |
13 |
|
14 |
|
15 |
17 |
16 |
|
17 |
EOF |
Билет № 18
Каждая такая строка называется ячейкой памяти.
Ячейка – это часть памяти компьютера, вмещающая в себя информацию, доступную для обработки отдельной командой процессора.
Содержимое ячейки памяти называется машинным словом.
Ячейка памяти состоит из некоторого числа однородных элементов. Каждый элемент способен находиться в одном из двух состояний и служит для изображения одного из разрядов числа. Именно поэтому каждый элемент ячейки называют разрядом.
Нумерацию разрядов в ячейке принято вести справа налево, самый правый разряд имеет порядковый номер 0. Это младший разряд ячейки памяти, старший разряд имеет порядковый номер (n-1) в n-разрядной ячейке памяти.
Содержимым любого разряда может быть либо 0, либо 1.
Использование двоичной системы счисления в качестве внутренней системы представления информации вызвано конструктивными особенностями элементов вычислительных машин.
Основная причина – простота и надежность двухпозиционных элементов в плане их технической реализации. Наиболее надежным и дешевым является устройство, каждый разряд которого может принимать два состояния: намагничено — не намагничено, высокое напряжение — низкое напряжение и т. д.
Машинное слово для конкретной ЭВМ – это всегда фиксированное число разрядов. Данное число является одной из важнейших характеристик любой ЭВМ и называетсяразрядностью машины.
Например, самые современные персональные компьютеры являются 64-разрядным, то есть машинное слово и соответственно, ячейка памяти, состоит из 64 разрядов или битов.
Бит — минимальная единица измерения информации.
Каждый бит может принимать значение 0 или 1.
Битом также называют разряд ячейки памяти ЭВМ.
Стандартный размер наименьшей ячейки памяти равен восьми битам, то есть восьми двоичным разрядам. Совокупность из 8 битов является основной единицей представления данных – байт.
Байт (от английского byte – слог) – часть машинного слова, состоящая из 8 бит, обрабатываемая в ЭВМ как одно целое. На экране – ячейка памяти, состоящая из 8 разрядов – это байт. Младший разряд имеет порядковый номер 0, старший разряд – порядковый номер 7.
В байтовом алфавите байт является минимальной единицей информации, обрабатываемой в ЭВМ. Для записи чисел также используют 32-разрядный формат (машинное слово), 16-разрядный формат (полуслово) и 64-разрядный формат (двойное слово). Обратите внимание на нумерацию разрядов в ячейках памяти для представленных форматов данных.
Для измерения объема хранимой информации используются более крупные единицы объема памяти:
1 Килобайт (Кбайт) = 1024 байт = 210 байт;
1 Мегабайт (Мбайт) = 1024 Кбайт = 220 байт;
1 Гигабайт (Гбайт) = 1024 Мбайт = 230 байт;
1 Терабайт (Тбайт) = 1024 Гбайт = 240 байт;
1 Петабайт (Пбайт) = 1024 Тбайт = 250 байт.
Число 1024 как множитель при переходе к более высшей единице измерения информации имеет своим происхождением двоичную систему счисления (1024 — это десятая степень двойки).
Компьютерное представление целых чисел.
Целые числа – это простейшие числовые типы данных, с которыми оперирует компьютер. Для представления целых чисел используются специально для них предназначенные типы данных.
Специальные типы для целых чисел вводятся для:
эффективного расходования памяти;
повышения быстродействия;
введения операции деления нацело с остатком вместо приводящего к потере точности обычного деления вещественных чисел.
В подавляющем большинстве задач, решаемых с помощью ЭВМ, многие действия сводятся к операциям над целыми числами. Сюда относятся задачи экономического характера, при решении которых данными служат количества акций, сотрудников, деталей, транспортных средств и т.д. Целые числа используются для обозначения даты и времени, и для нумерации различных объектов: элементов массивов, записей в базах данных, машинных адресов и т.д.
Для компьютерного представления целых чисел обычно используется несколько различных типов данных, отличающихся друг от друга количеством разрядов. Чаще всего используется восьми-, шестнадцати– и тридцатидвухразрядное представление чисел (один, два или четыре байта соответственно).
Для целых чисел существуют два представления: беззнаковое (только для неотрицательных целых чисел) и со знаком. Очевидно, что отрицательные числа можно представлять только в знаковом виде.
Различие в представлении целых чисел со знаком и без знака вызвано тем, что в ячейках одного и того же размера в беззнаковом типе можно представить больше различных положительных чисел, чем в знаковом.
Например, в байте (8 разрядов) можно представить беззнаковые числа от 0 до 255.
Максимальное число, записанное в восьми разрядах ячейки соответствует восьми единицам и равно:
111111112 = 1*27 + 1*26 + 1*25 + 1*24 + 1*23 + 1*22 + 1*21 + 1*20 = 255.
Таким образом, для беззнаковых типов нижняя граница диапазона значений всегда равна 0, а верхнюю границу диапазона допустимых значений можно подсчитать, зная количество разрядов, занимаемых элементами данного типа.
Верхняя граница диапазона допустимых значений для беззнаковых типов рассчитывается по формуле 2k – 1, где k – количество разрядов в ячейке
Знаковые положительные числа в байте можно представить только от 0 до 127.
Старший (левый) разряд отводится под знак числа, остальные
7 разрядов под само число. Максимальное число в знаковом представлении соответствует семи единицам и равно:
11111112 = 1*26 + 1*25 + 1*24 + 1*23 + 1*2 + 1*21 + 1*20 = 127.
Поэтому, если известно, что некоторая числовая величина является неотрицательной, то лучше рассматривать ее как беззнаковую.
Диапазон допустимых значений для знаковых типов рассчитывается по формулам:
Нижняя граница допустимых значений: 2k-1;
Верхняя граница допустимых значений: 2k-1 – 1, где k – количество разрядов в ячейке.
Рассмотрим алгоритм представления в компьютере целых положительных чисел.
Пример: Требуется получить внутреннее 8-разрядное представление десятичного числа 54.
1. Для этого целое положительное число переводится в двоичную систему счисления.
2. Полученное двоичное число записывается в 8 разрядах так, что в младшем разряде ячейки находится младший разряд числа.
3. Двоичное число дополняется, если это необходимо, слева нулями до соответствующего числа разрядов (8-ми, 16-ти, 32-х и более);
Мы рассмотрели компьютерное представление целых положительных чисел.
Следующий вопрос: как представляются в компьютере целые отрицательные числа.
В ЭВМ в целях упрощения выполнения арифметических операций применяютспециальные коды для представления чисел. Использование кодов позволяет свести операцию вычитания чисел к операции поразрядного сложения кодов этих чисел.
Применяются прямой, обратный и дополнительный коды чисел.
К кодам выдвигаются следующие требования:
1) Разряды числа в коде жестко связаны с определенной разрядной сеткой.
2) Для записи кода знака в разрядной сетке отводится фиксированный, строго определенный разряд.
Например, если за основу представления кода взят один байт, то для представления числа будет отведено 7 разрядов, а для записи кода знака один разряд. Знаковым разрядом является старший разряд в разрядной сетке.
Прямой код
Прямой код двоичного числа совпадает по изображению с записью самого числа. Значение знакового разряда для положительных чисел равно 0, а для отрицательных чисел 1.
Пример. В случае, когда для записи кода выделен один байт, для числа +1101 прямой код 0,0001101, для числа -1101 прямой код 1,0001101.
Обратный код
Обратный код для положительного числа совпадает с прямым кодом.
Для отрицательного числа все цифры числа заменяются на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица.
Пример.
Для числа +1101 прямой код 0,0001101; обратный код 0,0001101.
Для числа -1101 прямой код 1,0001101; обратный код 1,1110010.
Дополнительный код
Дополнительный код положительного числа совпадает с прямым кодом.
Для отрицательного числа дополнительный код образуется путем получения обратного кода и добавлением к младшему разряду единицы.
Пример.
Для числа +1101 Для числа -1101
прямой код 0,0001101; 1,0001101;
обратный код 0,0001101; 1,1110010.
дополнительный код: 0, 0001101 1,1110011
Итак, все целые отрицательные числа в компьютере представляются дополнительным кодом.
Презентация еще есть
Билет № 20
зык программирования
Pascal (назван в честь Блеза Паскаля) — это чисто процедурный язык программирования, часто использующийся для обучения структурному программированию.
Pascal был разработан Никлаусом Виртом в 1970; вопреки расхожему мнению, он не был исключительно учебным языком, а предназначался для практического применения.
Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Pascal был одним из первых таких языков. По мнению Н. Вирта, язык должен был способствовать дисциплинированию программирования, поэтому, наряду со строгой типизацией, в Pascal сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис интуитивно понятен даже при первом знакомстве с языком. Это упрощает написание компиляторов языка.
Кроме того, язык предоставлял ряд встроенных структур данных: записи, массивы, файлы, множества и указатели.
Тем не менее, первоначально язык обладал множеством недостатков: невозможность передачи функциям массивов переменной длины, отсутствие нормальных средств работы с динамической памятью, ограниченная библиотека ввода-вывода, отсутствие средств для подключения функций написанных на других языках, отсутствие средств раздельной компиляции и т. п.
Синтаксис языка,
или внешнее устройство
Комментарии,
или то, что многие игнорируют
Совершенно необходимой частью каждой программы (за исключением элементарных и плохо написанных) являются комментарии. Pascal поддерживает два способа выделения комментариев:
(* Комментарий,выделенный первым способом *) {Комментарий, выделенный вторым способом}
причем первый способ имеет более высокий приоритет (а значит может использоваться для "закомментаривания" участков текста, уже содержащих коментарии, выделенные вторым способом.
Кстати совет: любому программисту следует приобрести привычку постоянно комментировать свои программы - для последующего изучения и обеспечения возможности передачи другим программистам. (Наиболее эффективный способ оценить ценность любого совета - не следовать ему. Только делать это надо последовательно и систематически, а не так, что иногда следуешь, а иногда - нет.)