В грядущем столетии лучшие учителя будут именно дистанционные, то есть имеющие возможность и умеющие взаимодействовать со всем миром с помощью электронных телекоммуникаций
А.В.Хуторской, доктор педагогических наук
Сайт - победитель конкурса самодеятельных методических сайтов учителей России
Сайт входит в Союз образовательных сайтов России
Награды сайта. Письма. Отзывы.
РЕЙТИНГ сайтов компьютерной тематики
50000 ссылок на сайт и 21999 посетителей в день!
Союз образовательных сайтов Россия без наркотиков!
Дистанционное обучение начинающих программистов
МОУ СОШ № 35 г. Краснодара Дистанционное обучение начинающих программистов МОУ СОШ № 35 г. Краснодара
Первый Всероссийский конкурс дизайна
Первый Общероссийский конкурс дизайна
Первый Общероссийский конкурс дизайна Можно голосовать за сайт только один раз в сутки!

    Если вам приятен сайт и понравились его дизайн и содержание, и Вы готовы отдать за него свой голос на 1-ом Всероссийском конкурсе дизайна в Удмуртии, то сделайте это по указанной выше ссылке.

Смотрите здесь результаты голосования!
| Назад | | Содержание | | Дальше |


Уроки программирования на Си.


Урок 54: Инициализация массивов в Си. Задача сортировки массивов.
(автор Климант Юрий Викторович.)


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}}

    Указанные инициализации массивов не идентичны, то есть они не равны. Соответствующие им массивы, как видно из нижеследующей таблицы, будут заполнены следующим образом:

В первом случае
1 2 3 4 5
6 7 8 9 10
11
Во втором случае
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.
    Передусмотрим в программе:
  1. ввод массива в память ЭВМ,
  2. сортировку массива и
  3. вывод отсортированного массива на экран дисплея.
    Программа сортировки массива приведена ниже на рисунке:



    В результате сортировки исходного неупорядоченного массива получен отсортированный по возрастанию числовой массив: 0, 1, 1, 4, 4, 7, 7, 8, 9, 23.



    На этом урок закончен.
Климант Юрий Викторович,,
учитель информатики Муниципальной Краснодарской средней школы 35.

Страничка подготовлена, проверена и отредактирована 22 июля 2006 года.
Главный администратор сайта: Климант Юрий Викторович.

| Назад | | Содержание | | Дальше |


Content.Mail.Ru Смотрите: Специально для Вас Рейтинг сайтов компьютерной тематики
Знакомтесь: Как получить 50000 ссылок на Ваш сайт и 21999 посетителей в день!