|
В грядущем столетии лучшие учителя будут именно дистанционные, то есть имеющие
возможность и умеющие взаимодействовать со всем миром с помощью электронных
телекоммуникаций
А.В.Хуторской, доктор педагогических наук |
|
|
|
|
![]() |
|
![]() |
(автор Климант Юрий Викторович.) 1. Цель урока. Цель урока: научиться выполнять инициализацию массивов в Си. 2. Что мы должны понимать под инициализацией массивов в Си. Инициализация массивов - это умение присваивать элементам массива некоторые начальные значения. В Си для этих целей предусмотрены некоторые специальные возможности. Самый простой спосб инициализации состоит в том, что при объвлении массива в фигурных скобках указывается список конкретных значений элементов массива. Их, то есть конкретные значения элементов массива, называют инициализаторами. Например: Одномерный массив семи вещественных чисел - инициализаторов: 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, обозначенный как float bonn[i] (где i=0, ..., 6), можно инициализировать так: float bonn[7]={1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7}; Это же самое можно записать, используя обычные операторы присвоения: bonn[0]=1.1; bonn[1]=2.2; bonn[2]=3.3; bonn[3]=4.4; bonn[4]=5.5; bonn[5]=6.6; bonn[7]=7.7. Этими спобобами Вы можете задавать начальные значения элементам массива, иначе говоря, так можно вводить массив в память компьютера в Си. Двумерный массив целочисленных элементов - инициализаторов: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, обозначенный как int s[i][j] (где i=0, 2, ..., 3; j=0, 2, ..., 4), можно инициализировать как: int s[4][5]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}. По аналогии с первым случаем это соответствует набору следующих операторов присвоения: int s[0][0]=1; int s[0][1]=2; int s[0][2]=3; int s[0][3]=4; int s[0][4]=5; int s[1][0]=6; int s[1][1]=7; int s[1][2]=8; int s[1][3]=9; int s[1][4]=10; int s[2][0]=11; int s[2][1]=12; int s[2][2]=13; int s[2][3]=14; int s[2][4]=15; int s[3][0]=16; int s[3][1]=17; int s[3][2]=18; int s[3][3]=19; int s[3][4]=20; Вообще многомерные массивы, в том числе и двумерные, можно инициализировать как массив массивов. Например, две следующие инициализации равны между собой: int s[3][5]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; и int s[3][5]={{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}}; Во втором случае авторы ввели дополнительные фигурные скобки для записи элементов каждой строки двумерного массива. Если при этом количество элементов в строке не совпадает с числом столбцов в массиве, то соответствующие пропущенные элементы строки считаются неопределенными, так как они не определены. Рассмотрим в качестве примера следующие две инициализации массивов: int s[3][5]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} и int s{{1, 2, 3}, {4, 5, 6, 7, 8}, {9, 10, 11}} Указанные инициализации массивов не идентичны, то есть они не равны. Соответствующие им массивы, как видно из нижеследующей таблицы, будут заполнены следующим образом:
В пустых клеточках значения не определены. Символьные массивы могут инициализироваться как обычный массив Например: char srt[15]={'B', 'o', 'r', 'l', 'a', 'n', 'd', ' ', 'C', '+', '+'} или могут вводиться как строка символов char str[15]='Borland C++' Отличие этих способов состоит в том, что во втором способе будет добавлен еще и нулевой байт. К тому же второй способ по количеству используемых символов значительно короче. Допускается так же объявление и инициализация массивов без явного указания размера массива. Например, обычно Вы должны знать количество символов в строке или указать заведомо большой размер массива char str[80]='Уроки программирования на Си'. При инициализации массива без указания его размера Вы делаете это так: char str[ ]='Уроки программирования на Си'. Компилятор Си сам определит необходимое количество элементов массива, включая и нулевой байт. Можно определять таким способом массивы любого типа, в том числе и многомерные массивы. Например: int mass[]={1, 2, 3, 4, 5}; При объявлении массивов с неизвестным количеством элементов можно не указывать размер только в самых левых квадратных скобках: int arr[][3]={1, 2, 3, 5, 6, 7, 8, 9, 0}; 3. Задача. В заключение рассмотрим задачу сортировки массива. Возьмем простейший массив, состоящий из целых чисел: 1, 23, 4, 7, 8, 0, 1, 9, 4, 7. Передусмотрим в программе:
В результате сортировки исходного неупорядоченного массива получен отсортированный по возрастанию числовой массив: 0, 1, 1, 4, 4, 7, 7, 8, 9, 23.
На этом урок закончен.
Климант Юрий Викторович,,
учитель информатики Муниципальной Краснодарской средней школы 35. Страничка подготовлена, проверена и отредактирована 22 июля 2006 года. Главный администратор сайта: Климант Юрий Викторович.
|
|||||||||||||||||||||||||||||||||||||||||||||||||