Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование_билеты_1курс_2семестр.docx
Скачиваний:
0
Добавлен:
23.09.2019
Размер:
43.4 Кб
Скачать

Программирование.билеты.2 семестр.1 курс.

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

Инициализация (от англ. initialization, инициирование) — создание, активация, подготовка к работе, определение параметров. Приведение программы или устройства в состояние готовности к использованию.

Переменная - это объект, который способен хранить в себе значение определенного типа.

1. Структура магнитного носителя. Понятие сектора, чередования секторов. Для чего нужно чередование секторов. Кластер.

Структура магнитного носителя: Физическая структура, логическая структура. Логическая структура гибких дисков: представляет собой совокупность секторов (емкостью 512 байтов), каждый из которых имеет свой порядковый номер. Сектора нумеруются в линейной последовательности от первого сектора нулевой дорожки до последнего сектора последней дорожки. Формирование физической структуры диска состоит в создании на диске концентрических дорожек, которые в свою очередь, делятся на секторы. У гибкого диска две стороны, на которых создается по 80 дорожек. На каждой дорожке по 18 секторов. Объем каждого сектора 512 байтов.

Следовательно, объем гибкого диска = (2∙80∙18∙512) байт = 1474560 байт = 1140 Кбайт = 1,44 Мбайт. Сектор, чередование секторов: Обычно сектора на дорожке располагаются по возрастанию порядковых номеров. Если программа будет читать несколько секторов с последовательными номерами(она обычно так и делает) на чтение каждого сектора уйдет время будет затрачено время, равное времени оборота диска. Чтобы улучшить временные характеристики можно расположить секторы через 1. Когда секторы располагаются последовательно в порядке возрастания их номеров, фактор чередования секторов равен 1. Когда чередуются через один - фактор чередования равен 2. В таком случае после чтения одного сектора будет достаточно времени для чтения следующего и вся дорожка может быть считана за 2 оборота. Кластер – это несколько следующих друг за другом секторов дискового пространства (по умолчанию объем каждого физического сектора – 512 байт). Размер кластера зависит от общей емкости накопителя на магнитном диске. Если объем информации в файле превышает объем одного кластера, то следующая порция данных располагается на ближайшем свободном кластере, который физически может не быть смежным с первой порцией данных. Таким образом, большой набор данных оказывается разбросанным по разным не обязательно соседним участкам диска.

2. Понятие файловой системы. Кластер. Файла. Фрагментированный файл. Что такое дефрагментация. Как можно уменьшить потери при хранении файлов? Файловая система- это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися на диске, и обеспечить совместное использование файлов несколькими пользователями и процессами. В широком смысле файловая система включает совокупность всех файлов на диске, набор структур данных, используемых для управления файлами, комплекс системных программных средств, реализующих управления файлами. Кластер – это несколько следующих друг за другом секторов дискового пространства (по умолчанию объем каждого физического сектора – 512 байт). Размер кластера зависит от общей емкости накопителя на магнитном диске. Если объем информации в файле превышает объем одного кластера, то следующая порция данных располагается на ближайшем свободном кластере, который физически может не быть смежным с первой порцией данных. Таким образом, большой набор данных оказывается разбросанным по разным не обязательно соседним участкам диска. Минимальной единицей хранения является файл – набор данных, снабженных следующей информацией: имя файла, расширение имени, дата и время создания, длина в байтах, атрибуты, ссылка на начало данных(логическое представление файла). Фрагментированный файл: различные фрагменты одного и того же файла при записи могут оказаться расположенными не последовательно, а в разных областях дискового пространства. В итоге файлы становятся фрагментированными, то есть разбитыми на множество отдельных фрагментов. Дефрагментация - это процесс обновления и оптимизации логической структуры раздела диска с целью обеспечить хранение файлов в непрерывной последовательности кластеров. Дефрагментация представляет собой процесс реорганизации способа хранения файлов, в результате которого отдельные части одного файла, по возможности размещаются последовательно одним блоком. Это приводит к увеличению скорости доступа к файлам (они быстрее загружаются), а значит, к некоторому повышению общего быстродействия компьютера, что при высоком уровне фрагментированности будет довольно заметным. Чем больше размер кластера, тем больше потери, но тем быстрее работает файловая система и занимает меньше места в памяти

Чем меньше размер кластера, тем меньше потери при хранении файлов, то тем медленнее работает файловая система, и тем больше занимает места на диске и в оперативной памяти. Поэтому всегда ищется оптимальный размер кластера. 3. Логическое представление файла. Физическое представление файла. Работа с файлами. Понятие интерфейса. Что такое интерфейс для работы с файлами на уровне языка программирования и на уровне ОС. Возможно ли существование нескольких интерфейсов в одном языке программирования для работы с файлами.Логическое представление файла: файл - это одна из многих структур данных, используемых в программировании. Файл в таком понимании называют логическим файлом, то есть существующим только в нашем логическом представлении при написании программы. В программах логические файлы представляются файловыми переменными определенного типа. Структура логического файла - это способ восприятия файла в программе. Имя файла, состоящее из букв латинского алфавита, цифр и некоторых символов; расширением имени, отделяемое от имени точкой и содержащее обычно 3 символа; дата и время создания файла, длина в байтах, атрибуты файла, ссылка на начало данных- адрес первого кластера, с которого на диске расположена информация содержимого файла.

Физическое представления файла имеет дело с тем, как и где данные физически размещаются и хранятся на дисках, магнитных лентах и других носителях. Интерфейс- разновидность интерфейсов, в котором одна сторона представлена человеком (пользователем), другая — машиной/устройством. Представляет собой совокупность средств и методов, при помощи которых пользователь взаимодействует с различными, чаще всего сложными, машинами, устройствами и аппаратурой. Программист знает только набор функций для работы с файлами на языке программирования, программисту нет необходимости знать интерфейс работы с файлами для каждой ос. Написанная программа переносима с одной ос на другую, практически без изменения кода программы с условием перекомпиляции. Может существовать несколько интерфейсов для работы с файлами на языке программирования. 4. Логическое и физическое представление файла. Понятие интерфейса. Интерфейсы работы с файлами в СИ. Описание stdio.h. Какие бывают фалы по содержимому в stdio.h. Логическое представление имеет дело с тем, как пользователи организуют, просматривают, понимают данные и их отношения. Физическое представление имеет дело с тем, как и где данные физически размещаются и хранятся на дисках, магнитных лентах и других носителях. Отделение способа использования данных от того, как они хранятся и выбираются означает, что пользователи могут менять свое логическое представление, не делая изменений в физическом представлении. Интерфейс- совокупность средств и правил обеспечивающих взаимодействие устройств вычислительной системы и программ, а также взаимодействие их с человеком.

Интерфейсы работы с файлами в СИ. Описание stdio.h . Стандартный ввод/вывод, заголовочный файл стандартной библиотеки языка Си, содержащий определения макросов, константы и объявления функций и типов, используемых для различных операций стандартного ввода и вывода. Какие бывают файлы по содержимому в stdio.h. Текстовые и бинарные. Текстовые.

5. Работа с текстовыми файлами в stdio.h. Как создать новый пустой текстовый файл (пример). Как проверить корректность открытия или создания файла.Работа с текстовыми файлами в stdio.h. Для работы с файлами в языке С++ имеется набор функций, определенных в библиотеке stdio.h. Перед началом работы с файлом его следует открыть, что достигается с помощью функции fopen(), имеющий следующий синтаксис -FILE *fopen( const char *filename, const char *mode ); Здесь filename – строка, содержащая путь и имя файла; mode – строка, определяющая режим открытия файла: на чтение или на запись; FILE – специальный тип данных для работы с файлами. Данная функция возвращает значение NULL, если файл не был успешно открыт, иначе – другое значение. Рассмотрим последовательность действий по созданию простого текстового файла на языке C++ и записи в него текстовой информации. Как создать новый пустой текстовый файл (пример). Как проверить корректность открытия или создания файла.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19. Сравнение Автоматической и динамической переменных.

Автоматические переменные.По умолчанию переменные, описанные внутри функции, являются автоматическими. Можно, однако, это подчеркнуть явно с помощью ключевого слова auto:

main( )

{autointkat;}

Так поступают, если хотят, например, показать, что определение переменной не нужно искать вне функции. Автоматические переменные имеют локальную область действия. Только функция, в которой переменная определена, знает ее. Другие функции могут использовать переменные с тем же самым именем, но это будут независимые переменные, находящиеся в разных ячейках памяти. Автоматическая переменная начинает существовать при вызове функции, содержащей ее. Когда функция завершает свою работу и возвращает управление туда, откуда ее вызвали, автоматическая переменная исчезает. Область действия автоматической переменной ограничена блоком, т.е. { }, в котором переменная описана.

Все переменные, которые вы объявляли до сих пор, объявлялись внутри блока — то есть, внутри пары фигурных скобок. Такие переменные называются автоматическими, и о них говорят, что у них локальная область видимости, или область видимости блока. Автоматическая переменная "видима", начиная с точки, в которой она объявлена, и до конца блока, содержащего ее объявление. Пространство, которое занимает автоматическая переменная, выделяется автоматически в области памяти, называемой стеком, которая специально предназначена для этой цели. По умолчанию размер стека составляет 1 Мбайт, чего достаточно для большинства случаев, хотя если его не хватает, вы можете увеличить размер стека, установив опцию проекта /STACK в необходимое значение по своему выбору.

Динамические переменные.программа не может превысить лимит памяти, запланированный при трансляции. В противном случае ей потребуется дополнительная память, выделяемая во время выполнения программы. С этой целью на уровне библиотек в Си создан механизм порождения и уничтожения переменных самой работающей программой. Такие переменные называются динамическими, а область памяти, в которой они создаются – динамической памятью

основные свойства динамических переменных:

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

количество и размерность динамических переменных (массивов) может меняться в процессе работы программы. Это определяется числом вызовов соответствующих функций их параметрами;

динамическая переменная не имеет имени, доступ к ней возможен только через указатель;

функция создания динамической переменной ищет в «куче» свободную память необходимого размера и возвращает указатель на нее (адрес);

функция уничтожения динамической переменной получает указатель на уничтожаемую переменную.

Наиболее важным свойством динамической переменной является ее «безымянность» и доступность по указателю. Таким образом, динамическая переменная не может быть доступна «сама по себе», а только опосредованно через другие переменные или обычные именованные указатели. Работа с динамическими переменными и системой ДРП имеет ряд особенностей и сложностей. Они усугубляются еще и тем, что в Си в соответствии с требованиями эффективности программного кода, функции библиотеки минимально защищены от ошибок программирования: если динамическая переменная создана, а указатель на нее «потерян» программой, то такая переменная -существует, но недоступна для использования. Тем не менее, занимаемая ею память остается за программой; ошибки в процессе создания, уничтожения и работы с динамическими переменными приводят к непредсказуемым последствиям в работе программ