МАССИВЫ 4 Определение 4 Описание 4 Обращение к элементам массива 4 Связь массивов с указателями 4 Примеры программ.

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



Advertisements
Похожие презентации
АЛГОРИТМЫ НА МАТРИЦАХ. МАССИВЫ В ПРОГРАММЕ ОПИСАНИЕ ОБРАЩЕНИЕ К ЭЛЕМЕНТУ МАССИВА тип имя[размер_1]…[размер_N] СИ имя[индекс_1]…[индекс_N] СИ индекс_i.
Advertisements

УКАЗАТЕЛИ. Переменная - это именованная область памяти с заданным типом. [=значение]; int a; //Переменная типа integer с именем a int b=2;// Переменная.
Основы информатики Массивы. Указатели. Заикин Олег Сергеевич
Основные понятия программирования. АЛГОРИТМЫ + ДАННЫЕ = ПРОГРАММЫ Н. Вирт.
Основы информатики Лекция. Массивы. Указатели. Заикин Олег Сергеевич
ФГОБУ ВПО "СибГУТИ" Кафедра вычислительных систем УКАЗАТЕЛИ Преподаватель: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич © Кафедра вычислительных систем.
«Обработка массивов данных» Delphi. Тема 4:4: «Обработка массивов данных» План темы: l1l1. Понятие массива данных. l2l2. Описание массива в программе.
Двумерные динамические массивы. Двумерный массив - это одномерный массив, элементами которого являются одномерные массивы. Другими словами, это набор.
Массивы данных Подготовила: Камышная И.Н.. Массивы данных Массив – это упорядоченная по возрастанию индексов (номеров) совокупность данных одного типа,
Массивы и строки Лекция 5. Одномерные массивы. Объявление. Общая форма объявления: тип имя_переменной[размер]; Пример: double balance[100]; balance[3]
Двумерные числовые массивы Урок 2. План урока 1.Инициализация элементов массива. 2.Обработка элементов двумерного массива.
Элементы языка СИ Средства для написания простейших программ.
Функции Функция – именованная последовательность описаний и операторов, выполняющая некоторое действие. Может иметь параметры и возвращать значение. Функция.
Месяц T [ 1:12 ]T [1]T [2]T [3]T [4]T [5]T [6]T [7]T [8]T [9]T [10]T [11]T [12] Температура Линейная.
©Павловская Т.А. Язык С++ Курс «С++. Программирование на языке высокого уровня» Павловская Т.А.
МАССИВЫ Структурные типы данных В тех случаях, когда какой-либо объект описывается рядом однотипных значений (например, ежедневное количество осадков на.
Лекция 3 по дисциплине «Программные средства математических расчетов» тема: «Операторы циклов и работа с массивами в С++» гр. 8Е31 Мамонова Татьяна Егоровна.
Лабораторная работа 4. Подпрограммы. Задание на лабораторную работу Написать программу, реализующую хранение информации, указанной в вариантах индивидуальных.
ПРОГРАММИРОВАНИЕ МАССИВОВ Язык программирования Паскаль ЕАДК, преподаватель Неверова И.Ю.
Транксрипт:

МАССИВЫ 4 Определение 4 Описание 4 Обращение к элементам массива 4 Связь массивов с указателями 4 Примеры программ

КЛАССИФИКАЦИЯ ДАННЫХ ПО СТРУКТУРЕ ДАННЫЕ КОНСТАНТЫ (защита от записи) ПЕРЕМЕННЫЕ ДАННЫЕ ПРОСТЫЕСЛОЖНЫЕ МАССИВСТРУКТУРА... 1 ячейка несколько ячеек

ОПРЕДЕЛЕНИЕ Массив - это сложное данное, состоящее из конечного числа упорядоченных компонент, имеющих одно имя, одинаковый тип и расположенных в последовательных ячейках памяти компьютера. Упорядоченность компонент массива: компоненты пронумерованы. Доступ к элементу массива - по его номерам (индексам). Размерность массива - количество индексов у его элементов. Размер - количество значений каждого индекса.

МАССИВЫ В ПРОГРАММЕ ОПИСАНИЕ ОБРАЩЕНИЕ К ЭЛЕМЕНТУ МАССИВА тип имя[размер_1]…[размер_N] СИ имя[индекс_1]…[индекс_N] СИ индекс_i - целое выражение, индекс_i = 0,1,…,N-1 В Си элементы массивов нумеруются, начиная с нуля. размеры - только константы

МАССИВЫ В СИ-ПРОГРАММЕ Примеры. float a[20]; а[0], a[2],...,a[19]. int b[3][5]; b[0][0] b[0][1]... b[0][4] b[1][0] b[1][1]... b[1][4] b[2][0] b[2][1]... b[2][4] В памяти компьютера элементы массива расположены по строкам (чаще меняется последний индекс) Первый индекс - номер строки, второй - столбца

Примеры программ с массивами Дан массив а из n элементов, n 20. Вычислить сумму положительных и количество неположительных элементов массива. Состав данных

s=s+a[i] начало Ввод n,a[i],i=0,…n s=0; k=0 i=0 да a[i]>0 данет k=k+1 i

Инициализация массивов при описании в Си Инициализация - задание начальных значений. Одномерные массивы сhar a[6]={'A', 'B', 'C', 'D'}; сhar a[ ]={'A', 'B', 'C', 'D'}; 0312 ABCD Размер массива определяется количеством инициализирующих значений ABCD н/о если a - локальная переменная

Локальные и глобальные данные ДАННЫЕ ЛОКАЛЬНЫЕ: описаны в функции (в том числе в main); по умолчанию не инициализируются. ГЛОБАЛЬНЫЕ: описаны вне функций; при описании обнуляются.

Инициализация массивов при описании в Си Двумерные массивы Присваивание перечисленных значений происходит по строкам (в соответствии с расположением массивов в памяти компьютера ). int m[2][3]={0,1,2,5,6,7}; int m[ ][3]={0,1,2,5,6,7}; int m[ ][3]={{0},{1,2}}; 0 н/о 12

Инициализация массивов при описании в Си Вывод: при объявлении массива количество его элементов должно быть задано или явным указанием константы в квадратных скобках или количеством значений при инициализации. Исключение: массивы-аргументы функций.

Указатели в Си Указатель - это ячейка памяти (данное), которая содержит адрес другой ячейки памяти (другого данного). Основные операции для работы с указателями: * - взятие содержимого по адресу (*i - содержимое ячейки с адресом i) & - взятие адреса (&a - адрес переменной а). Описание имеет вид: тип *имя_указателя; При описании указателя задается тип значения, на которое он указывает. Примеры описаний: int *i, j, *pointj; int v1, *pointv1=&v1, *p=(int*)200;

Указатели в Си УКАЗАТЕЛИ ПЕРЕМЕННЫЕКОНСТАНТЫ: адреса переменных; имена массивов; явные константы (например, (int*)200); константа NULL (нулевой или несуществующий адрес).

Указатели в Си ВНИМАНИЕ! нельзя брать содержимое от константы без приведения типа; запись *200 является некорректной в отличие от *(int*)200; нельзя брать адрес константы (например, некорректна запись &200), в Си адрес константы считается недоступным; нельзя определять адрес выражения.

Указатели в Си Размер памяти, отводимой под указатель, зависит: от разрядности адресной шины; от модели памяти.

Указатели в Си Операции над указателями: * сравнения (, >=, ==, !=) - с указателями такого же типа или с NULL; присваивания - значений указателей того же типа или NULL; арифметические операции сложения, вычитания (с константой) инкремента и декремента

Указатели в Си Результат арифметической операции над указателями зависит не только от значения операндов, но и от типа, с которым связан указатель. р=р+k, р увеличивается на k*sizeof (тип) Пример. int *p; long int pp;…//MS DOS p++;/*p увеличилось на 2*/ pp++;/*pp увеличилось на 4*/

Связь массивов с указателями в Си Одномерные массивы Имя одномерного массива является указателем- константой, равной адресу начала массива, т. е. адресу элемента с индексом 0 (первого элемента). int a[10]; &a[0] эквивалентно a, a[0] эквивалентно *a, &a[i] эквивалентно a+i (i=0,1,...9), a[i] эквивалентно *(a+i). a[0]a[9]...a

Связь массивов с указателями в Си Двумерные массивы Имя двумерного массива является указателем- константой на начало (элемент с индексом 0) массива указателей-констант, i-й элемент этого массива - указатель -константа на начало (элемент с индексом 0) i-й строки двумерного массива. Пример: int b[5][8];

Двумерные массивы b[i][j] *(b[i]+j) *(*(b+i)+j); &b[i][j] b[i]+j *(b+i)+j Для любого из трех обозначений элемента двумерного массива программа в кодах получается практически одинаковой по производительности, хотя при использовании арифметики указателей вместо квадратных скобок несколько более короткой. Хороший стиль программирования предполагает употребление в пределах одной программы одного (из трех) обозначений. Связь массивов с указателями в Си

Примеры программ с массивами Дан массив а из n элементов, n 20.Найти максимальное значение элементов массива. Состав данных

Блок-схема алгоритма #include void main() {float a[20],max; int i,n; coutn; cout