Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab1-13.doc
Скачиваний:
19
Добавлен:
12.05.2015
Размер:
174.08 Кб
Скачать

- 10-

Информатика

Лабораторная работа 1-13

Лабораторная работа № 1-13

Работа с массивами в С. Форматный ввод в C

1. Цель работы

Целью работы является разработка, отладка и выполнение программы на языке Cс использованием массивов и функции форматного вводаscanf().

2. Состав рабочего места

2. Состав рабочего места

2.1. Оборудование: IBM-совместимый персональный компьютер (ПК).

2.2. Программное обеспечение: операционная системаWindows, интегрированная оболочкаBorlandC++.

3. Краткие теоретические сведения

3.1. Операция sizeof

Операция sizeofвозвращает размер ее операнда в байтах. Эта унарная операция имеет следующий синтаксис:

sizeofоперанд

Операндом может быть как имя переменной, так и имя типа. Если в качестве операнда задано имя типа, оно должно быть заключено в скобки.

3.2. Указатели

Память компьютера представляет собой (в упрощенном виде) массив последовательно пронумерованных и адресованных ячеек, содержащих машинные команды и данные, с которыми можно работать по отдельности или связными кусками. Один байт может хранить значения типа char, два байта –типа shortилиint, четыре байта – типаlongилиfloat, восемь байт – типаdoubleи десять байт – типаlong double.

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

тип *описатель;

где

  • тип– это тип объекта, на который может указывать данная переменная.

  • описатель – это идентификатор указателя, который может быть простой переменной, массивом, функцией или указателем. Описатель может также содержать перед идентификатором квалификаторыconstилиvolatile.

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

Для инициализации указателей можно использовать константу с именем NULL, определенную в файлеstdio.hстандартной библиотеки. Эта константа определяет нулевое значение указателя, при котором он не ссылается ни на один программный объект.

3.3. Массивы

Группу переменных в программе, имеющих один и тот же тип и квалификаторы, можно представить в виде одной переменной – массива. Отдельные переменные в массиве называютсяэлементами. Каждый элемент массива имеет свой номер (индекс), по которому можно обратиться к значению элемента. Индекс должен быть числом или арифметическим выражением целого типа. Число индексов, определяющих элемент массива, называетсяразмерностьюмассива, а количество элементов в массиве –размером массива.

Массив в Cопределяется следующим образом:

тип описатель[конст-выраж-1] [конст-выраж-2]...[конст-выраж-n];

где

  • тип– один из базовых типов, перечислимый тип (enum), структура (struct) или объединение (union).

  • описатель– это идентификатор массива, который может быть простой переменной, либо описанием переменной перечислимого типа, структуры, объединения, функции или указателя.

  • конст-выраж-1,конст-выраж-2,конст-выраж-n – количество элементов для i-го измерения массива.

Количество пар квадратных скобок равно размерности массива.

Компилятор Cвыделяет для массивов место в памяти в соответствии с количеством элементов массива и длиной элемента массива. Значения элементов в момент выделения памяти не определены (точнее элементы массива получают те значения, которые остались в этих байтах оперативной памяти после выполнения предыдущих программ).

Количество памяти, выделенное под массив, можно определить с помощью операции sizeof.Количество элементов в массиве можно определить с помощью следующего выражения:

sizeof имя-массива / sizeof (тип-массива)

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

Компилятор Cвыдает сообщение об ошибке, если количество значений элементов в списке инициализации превышает объявленную размерность массива.

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

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

Размер массива можно также опустить либо когда массив объявляется как формальный параметр функции, либо данное объявление является ссылкой на объявление массива в другом месте программы. Однако для многомерного размера может быть опущена только первая размерность.

Индексация элементов массива в Cначинается с нуля и, таким образом, последний элемент массива имеет индекс, на 1 меньший, чем число элементов массива по данному индексу.

При обращении к элементу массива указывается имя массива и индекс или индексы элемента. Каждыйиндекс заключается в квадратные скобки.

Переменная типа массив участвует в выражениях как константа-указательна значение заданногоименем-типатипа.

Символьные строки представляются в C с помощью массивов типа char.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]