- •1. Массивы в языке Си: объявление, начальная инициализация, доступ к элементам массива. Индексное выражение.
- •2. Особенности организации одномерных и многомерных массивов в языке Си. Понятие приведенного индекса массива.
- •3. Определение алгоритма и его свойства
- •5. Какие спецификации форматов ввода-вывода данных имеют функции scanf() и printf()? Каким образом организовывать ввод данных для поддержки программной обработка неправильно введенных данных?
- •1.Алгоритм "Сортировка выбором".
- •2.Алгоритм "Сортировка пузырьком".
- •3.Алгоритм "Шейкерная сортировка"
1. Массивы в языке Си: объявление, начальная инициализация, доступ к элементам массива. Индексное выражение.
Объявление массива
Массив - именованная группа данных одного типа, собранных под одним именем
[М_К_П](модификатор класса памяти) <тип><список_массивов>
<тип> имя [P1][P2]...[Pn]
int arr[10] - массив целых чисел размером в 10 элементов.
int arr [i][j] /* [строка][столбец] */
Инициализация
<тип>имя [Размер] = {список_инициализаторов}
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; - одномерный
int [2][3] = {{1,2,3},{4,5,6}} - двухмерный
Доступ к элементу массива
Доступ к элементу массива осуществляется с помощью имени массива и индекса
Имя [номер_элемента] - одномерный
Имя [P1][P2]...[Pn] - многомерный
а[0]=1
Индексное выражение
Индексное выражение arr[5] ссылается на шестой элемент массива, т.к. нумерация элементов идет с нуля.
Если необходимо обратиться к 10 элементу, надо написать аrr[9] или аrr+9.
2. Особенности организации одномерных и многомерных массивов в языке Си. Понятие приведенного индекса массива.
В языке СИ определены только одномерные массивы, но поскольку элементом массива может быть массив, можно определить и многомерные массивы. Они формализуются списком константных-выражений следующих за идентификатором массива, причем каждое константное-выражение заключается в свои квадратные скобки.
Элементы многомерного массива располагаются в последовательных ячейках оперативной памяти по возрастанию адресов.
Массив int a[2][3] будет расположен в памяти следующим образом:
Понятие приведенного индекса массива
Индексные выражения для ссылки на элементы одномерного массива вычисляются путем сложения целой величины со значениями указателя с последующим применением к результату операции разадресации (*)
3. Определение алгоритма и его свойства
Алгоритм - однозначно определенная последовательность действий, четко определяющая порядок обработки входного потока данных и получение результата за конечное число шагов.
Свойства:
1) массовость - применим для класса подобных задач, причем для всех допустимых значений;
2) дискретность - процесс получения результата разделяется на элементарные операции из ограниченного набора;
3) результативность - получение результата за конечное время;
4) определенность - ориентирован на определенного исполнителя, который должен однозначно понимать все инструкции, входящие в алгоритм
4. Организация адресного пространства приложения. Влияние области видимости переменной на выбор сегмента для ее размещения в программе. Влияние области локализации программной переменной на присваиваемое ей значение по умолчанию.
Объекты, объявленные глобально, имеют закреплённую за ними область оперативной памяти, в
которой хранится их значение в течение всего времени выполнения программы.
Объекты, объявленные локально, имеют закреплённую за ними область оперативной памяти, в
которой хранится их значение, в течение времени выполнения блока, в котором они объявлены.
Это объекты, объявленные внутри блоков. При входе в блок под эти объекты выделяется память,
при выходе из блока память освобождается. При повторном входе в блок память под объект
выделяется снова, но это может быть совершенно иная область памяти.
Область видимости (действия) объекта – это область программы, в которой объект является
доступным для использования.
Глобальную для файла область действия имеют объекты, объявленные на внешнем уровне в
данном файле, так как к ним можно обратиться из любой области файла за исключением блоков, в которых эти объекты локально переобъявлены.
Локальную область действия имеют объекты, объявленные внутри какого-нибудь блока, их область действия – от точки объявления до конца блока. Если имя локального объекта совпадает с именем глобального объекта, то внутри локального блока глобальный объект становится недоступным.
Влияние области локализации программной переменной на присваиваемое ей значение по
умолчанию.
Если переменная глобальная, то она автоматически инициализируется нулем, в локальную же
может записаться абсолютно любое значение