Лекция 6 1. Обработка массивов. Объявление одномерного массива Синтаксис: [ ] Пример: int a[10]; Определяет массив a размера 10, т. е. блок из 10 последо-

Презентация:



Advertisements
Похожие презентации
Лекция 5 Циклы. Цикл while while ( ) Пример: while (i > 0) { i--; printf("%d\n", i); } Выражение Инструкция Да Нет.
Advertisements

Массивы и строки Лекция 5. Одномерные массивы. Объявление. Общая форма объявления: тип имя_переменной[размер]; Пример: double balance[100]; balance[3]
Лекция 9 Функции. Массивы-параметры функции Передача массива в функцию Пример: void array_enter(int a[], int size) { int i; for (i = 0; i < size; i++)
Основы информатики Лекция. Массивы. Указатели. Заикин Олег Сергеевич
Основы информатики Массивы. Указатели. Заикин Олег Сергеевич
Массивы МОУ СОШ 14 Корниенко В.Н.. Определение МАССИВА Массив – это упорядоченный набор однотипных переменных, имеющий имя. Переменные в массиве называются.
Массивы Материалы к урокам по программированию. МАССИВ это УПОРЯДОЧЕННАЯ последовательность данных ОДНОГО ТИПА. Массивы относятся к структурированным.
Обработка линейных массивов. МассивМассив – совокупность однотипных данных, хранящихся в последовательных ячейках памяти и имеющих общее имя. элементами.
УКАЗАТЕЛИ. Переменная - это именованная область памяти с заданным типом. [=значение]; int a; //Переменная типа integer с именем a int b=2;// Переменная.
Лекция 3 по дисциплине «Программные средства математических расчетов» тема: «Операторы циклов и работа с массивами в С++» гр. 8Е31 Мамонова Татьяна Егоровна.
Выражения языка Си(ч.2). Операции Лекция 3. Основные классы операций арифметические логические поразрядные операции сравнения.
Двумерные динамические массивы. Двумерный массив - это одномерный массив, элементами которого являются одномерные массивы. Другими словами, это набор.
ФГОБУ ВПО "СибГУТИ" Кафедра вычислительных систем УКАЗАТЕЛИ Преподаватель: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич © Кафедра вычислительных систем.
Двумерные числовые массивы Урок 2. План урока 1.Инициализация элементов массива. 2.Обработка элементов двумерного массива.
Массивы Описание массива. Виды и назначение массивов. Заполнение и вывод элементов массива.
Указатели Динамические структуры данных. 2 Статические данные переменная (массив) имеет имя, по которому к ней можно обращаться размер заранее известен.
Автор: учитель информатики МКОУ Плесской средней общеобразовательной школы Юдин Андрей Борисович Часть 1.
Есть ли в решении этой задачи действия, которые необходимо выполнить несколько раз? Сколько раз надо их выполнить? С помощью какой команды мы организуем.
МАССИВЫ 4 Определение 4 Описание 4 Обращение к элементам массива 4 Связь массивов с указателями 4 Примеры программ.
Двумерные массивы. В математике часто используют многомерные массивы, т.е. массивы массивов. Особенно широкое распространение получили двумерные массивы.
Транксрипт:

Лекция 6 1. Обработка массивов

Объявление одномерного массива Синтаксис: [ ] Пример: int a[10]; Определяет массив a размера 10, т. е. блок из 10 последо- вательных объектов типа int с именами a[0], a[1],..., a[9]. a: a[0] a[1] … a[9]

Сортировка массива Сортировка методом поиска наименьшего элемента int a[] = {4, 0, 1, 17, 78, 34, 2, 24, 11, 8}; int i,j, tmp;... for (i = 0; i < 9; i++) { for (j = i + 1; j < 10; j++) { if (a[j] < a[i]) { tmp = a[i]; a[i] = a[j]; a[j] = tmp; } …

Сортировка массива Сортировка пузырьковым методом int a[10];... int i, swap, temp; do { swap = 0; for (i = 0; i < 9; i++) if (a[i] > a[i + 1]) { tmp = a[i]; a[i] = a[j]; a[j] = tmp; swap = 1; } } while (swap == 1)

Многомерные массивы Объявление двумерного массива: int a[2][5]; Расположение массива в памяти a[0][0] a[0][4] a[1][4] a[1][0] a[0][0] a[0][4]a[1][0] a[1][4]

Многомерные массивы Индексирование многомерных массивов: Правильно: a[i][j] Неправильно: a[i,j] Инициализация массива a[ ][ ]={ {…}, {…}, …, {…}}; NNN M

Двумерные массивы (матрицы) char days[2][12] = { {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} } int year, month;... int leap = year % 4 == 0; printf("Дней в месяце: %d", days[leap][month - 1]);

Операции с массивами Заполнение матрицы случайными числами int a[3][5]; /* матрица 3 на 5 */... int i,j; for (i = 0; i < 3; i++) { for (j = 0; j < 5; j++) { a[i][j] = rand() % 100; } i j

Операции с массивами Задача: посчитать сумму под главной диагональю (включая саму диагональ) int a[5][5]; /* матрица 5 на 5 */... int i,j, sum = 0; for (i = 0; i < 5; i++) { for (j = 0; j

Указатели

Указатель – это переменная, в которой хранится адрес ячейки памяти (т.е. который указывает на ячейку памяти). ………xpx

Указатели Унарная операция & выдает адрес объекта. Пример: p = &x; pi = &a[4]; Оператор & применяется только к объектам, расположенным в памяти: к переменным и элементам массивов.

Указатели Унарный оператор * есть оператор косвенного доступа. Примененный к указателю он выдает объект, на который данный указатель указывает. Пример: *p = a; b = *p;

Объявление указателей Синтакис: * ; Пример: int *p1; /* указатель на int */ int *p2 = &a; int *p4 = NULL; int *a[10]; /* массив из 10 указателей */ int **p; /* указатель на указатель на int */

Использование указателей Пример 1 int i; int *pi = &i; *pi = *pi + 10; /* увеличивает *pi на 10 */ *pi += 1; /* увеличивает *pi на 1 */ ++*pi; /* увеличивает *pi на 1 */ (*pi)++; /* увеличивает *pi на 1 */ *pi++; /* !!! Увеличивает значение указателя! */ int *p2; p2 = pi; /* теперь p2 и pi указывают на один и тот же объект */

Указатели и массивы int a[10]; a: a[0] a[1] … a[9] int *pa; pa = &a[0]; /* pa указывает на 0-й эл-м массива */ x = *pa; /* копирует значение a[0] в x */ Если pa указывает на некоторый эл-т массива, то pa+1 указывает на следующий и т.д.

Массивы и указатели Значение переменной или выражения типа массив есть адрес нулевого элемента массива. int a[10]; int *pa; pa = &a[0] равносильно pa = a a[i] равносильно *(pa + i) &a[i] равносильно a + i pa[i] равносильно *(pa + i)

Различие между массивом и указателем Указатель - это переменная. Но имя массива не является переменной. int a[10]; int* pa; pa = a; /* верно */ pa++; /* верно */ a = pa; /* ОШИБКА */ a++; /* ОШИБКА */

Массивы. Границы массива Внимание! Язык «Си» не проверят «выход» за границы массива! Пример 1: int a[10]; int y = 123; for (i = 0; i < 20; i++) a[i] = 0; Пример 2: int a[10]; int *pa = &a[5]; for (i = 0; i < 10; i++) pa[i] = 0; Пример 3: int a[10]; int *pa = &a[5]; for (i = -5; i < 5; i++) pa[i] = 0;

Строки

Строка – это массив символов, заканчивающийся нулевым символом "Я строка" = printf("здравствуй, мир\n"); Объявление строковых переменных: char mystr[ ] = "Моя строка"; /* массив */ char *pstr = "Моя строка"; /* указатель */ char *str2 = pstr; /* Строка не копируется! */ Я с т р о к а \0

Строки Вычисление длины строки char mystr[] = "Это строка"; char* s = mystr; int n; for (n =0; *s != '\0'; n++) s++; printf("Длина строки: %d", n);