Vvmebel.com

Новости с мира ПК
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Массивы в языках программирования

Массив (программирование)

Индексный массив (в некоторых языках программирования также таблица, ряд) — именованный набор однотипных переменных, расположенных в памяти непосредственно друг за другом (в отличие от списка), доступ к которым осуществляется по индексу.

Индекс массива — целое число, либо значение типа, приводимого к целому, указывающее на конкретный элемент массива.

В ряде скриптовых языков, например PHP, ассоциативные массивы, в которых переменные не обязаны быть однотипными, и доступ к ним не обязательно осуществляется по индексу.

Содержание

Общее описание

Массив — Упорядоченный набор данных, для хранения данных одного типа, идентифицируемых с помощью одного или нескольких индексов. В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа.

Количество используемых индексов массива может быть различным. Массивы с одним индексом называют одномерными, с двумя — двумерными и т. д. Одномерный массив нестрого соответствует вектору в математике, двумерный — матрице. Чаще всего применяются массивы с одним или двумя индексами, реже — с тремя, ещё большее количество индексов встречается крайне редко.

Пример статического массива на Паскале

Пример статического массива на Си

Поддержка индексных массивов (свой синтаксис объявления, функции для работы с элементами и т. д.) есть в большинстве высокоуровневых языков программирования. Максимально допустимая размерность массива, типы и диапазоны значений индексов, ограничения на типы элементов определяются языком программирования и/или конкретным транслятором.

В языках программирования, допускающих объявления программистом собственных типов, как правило, существует возможность создания типа «массив». В определении такого типа может указываться размер, тип элемента, диапазон значений и типы индексов. В дальнейшем возможно определение переменных созданного типа. Все такие переменные-массивы имеют одну структуру. Некоторые языки поддерживают для переменных-массивов операции присваивания (когда одной операцией всем элементам массива присваиваются значения соответствующих элементов другого массива).

Объявление типа «массив» в Паскале

Специфические типы массивов

Динамические массивы

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

Пример динамического массива на Delphi

Пример динамического массива на Си

Гетерогенные массивы

Гетерогенным называется массив, в разные элементы которого могут быть непосредственно записаны значения, относящиеся к различным типам данных. Массив, хранящий указатели на значения различных типов, не является гетерогенным, так как собственно хранящиеся в массиве данные относятся к единственному типу — типу «указатель». Гетерогенные массивы удобны как универсальная структура для хранения наборов данных произвольных типов. Отсутствие их поддержки в языке программирования приводит к необходимости реализации более сложных схем хранения данных. С другой стороны, реализация гетерогенности требует усложнения механизма поддержки массивов в трансляторе языка.

Массивы массивов

Многомерные массивы, как правило реализованные как одномерные массивы, каждый элемент которых, является ссылкой на другой одномерный массив.

Реализация

Стандартным способом реализации статических массивов с одним типом элементов является следующий:

  1. Под массив выделяется непрерывный блок памяти объёмом S*m1*m2*m3…mn, где S — размер одного элемента, а m1…mn — размеры диапазонов индексов (то есть количество значений, которые может принимать соответствующий индекс).
  2. При обращении к элементу массива A[i1, i2, i3, … in] адрес соответствующего элемента вычисляется как B+S*(i1p*m1+i2p*m2+…+i(n-1)p*mn-1+inp), где B — база (адрес начала блока памяти массива), ikp-значение k-го индекса, приведённое к целому с нулевым начальным смещением.

Таким образом, адрес элемента с заданным набором индексов вычисляется, так что время доступа ко всем элементам массива одинаково.

Первый элемент массива, в зависимости от языка программирования, может иметь различный индекс. Различают три основных разновидности массивов: с отсчетом от нуля (zero-based), с отсчетом от единицы (one-based), и с отсчетом от специфического значения заданного программистом (n-based). Отсчет индекса элемента массивов с нуля более характерен для низкоуровневых ЯП, однако этот метод был популяризирован в языках более высокого уровня языком программирорования С.

Более сложные типы массивов — динамические и гетерогенные — реализуются сложнее.

Достоинства

  • легкость вычисления адреса элемента по его индексу (поскольку элементы массива располагаются один за другим)
  • одинаковое время доступа ко всем элементам
  • малый размер элементов: они состоят только из информационного поля

Недостатки

  • для статического массива — отсутствие динамики, невозможность удаления или добавления элемента без сдвига других
  • для динамического и/или гетерогенного массива — более низкое (по сравнению с обычным статическим) быстродействие и дополнительные накладные расходы на поддержку динамических свойств и/или гетерогенности.
  • при работе с массивом в стиле C (с указателями) и при отсутствии дополнительных средств контроля — угроза выхода за границы массива и повреждения данных

См. также

Ссылки

Wikimedia Foundation . 2010 .

Смотреть что такое «Массив (программирование)» в других словарях:

Массив — У этого термина существуют и другие значения, см. Массив (значения). Эту страницу предлагается переименовать в Массив (информатика). Пояснение причин и обсуждение на странице Википедия:К переименованию/4 ноября 2012. Возможно, её … Википедия

Класс (программирование) — У этого термина существуют и другие значения, см. Класс. Класс в программировании набор методов и функций. Другие абстрактные типы данных метаклассы, интерфейсы, структуры, перечисления характеризуются какими то своими, другими… … Википедия

Коллекция (программирование) — У этого термина существуют и другие значения, см. Коллекция. Для улучшения этой статьи желательно?: Найти и оформить в виде сносок ссылки на авторитетные исто … Википедия

Интерфейс (объектно-ориентированное программирование) — У этого термина существуют и другие значения, см. Интерфейс (значения). Интерфейс (от лат. inter «между», и face «поверхность») семантическая и синтаксическая конструкция в коде программы, используемая для специфицирования… … Википедия

Полиморфизм (программирование) — У этого термина существуют и другие значения, см. Полиморфизм. Эта статья или раздел нуждается в переработке. Пожалуйста, улучшите статью … Википедия

Функциональное программирование — Парадигмы программирования Агентно ориентированная Компонентно ориентированная Конкатенативная Декларативная (контрастирует с Императивной) Ограничениями Функциональная Потоком данных Таблично ориентированная (электронные таблицы) Реактивная … Википедия

Автоматное программирование — Автоматное программирование это парадигма программирования, при использовании которой программа или её фрагмент осмысливается как модель какого либо формального автомата. В зависимости от конкретной задачи в автоматном программировании… … Википедия

Объект (программирование) — У этого термина существуют и другие значения, см. Объект (значения). Объект в программировании некоторая сущность в виртуальном пространстве, обладающая определённым состоянием и поведением, имеющая заданные значения свойств (атрибутов) и… … Википедия

Очередь (программирование) — У этого термина существуют и другие значения, см. Очередь. Очередь структура данных с дисциплиной доступа к элементам «первый пришёл первый вышел» (FIFO, First In First Out). Добавление элемента (принято обозначать словом… … Википедия

Ссылка (программирование) — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете … Википедия

Читать еще:  Объектно ориентированное программирование это

Что такое массивы в программировании и зачем они нужны?

Сегодня мы поговорим об одном из основополагающих понятий в программировании — о массиве.

Что мы подразумеваем под этим термином? Под ним мы понимаем переменную, представляющую собой сумму слагаемых, принадлежащих к одному типу. Если вы захотите применять массивы, то вам нужно будет заранее составить описание конкретного типа и указать доступ к каждому компоненту.

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

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

Всего массивы бывают двух видов — одномерные (линейные) и двухмерные

Если обращаясь к компонентам массива, выбудете использовать только его номер, то такой совокупности дается название одномерного. Еще одно его название – линейный. Визуально его можно представить как таблицу, где всего одна строка без различных делений и ячеек. Размер всего массива определяют по количеству индексов его компонентов.

Соответственно – двухмерный отличается тем, что у него два индекса, вместо одного.

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

Как заполнить данные правильно?

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

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

Что можно делать с компонентами массива?

Выстроить по убыванию или возрастанию (рассортировать);

Найти их значения;

Посчитать сколько компонентов подпадают под выставленные вами параметры.

При создании двух одинаковых совокупностей данных, есть возможность объединить их под именем одного их них.

Для начала работы с массивом, нужно его объявить. Как это сделать?

Для объявления массива и создания конкретной ячейки, предназначенной для последующего сохранения элементов, от вас потребуется задать размерность и придумать название. Выбираем «Массив» в качестве ключевого слова.

Допустим, C 77 подразумевает, что массив одномерен и состоит из 77 компонентов.

A 7,4 является двухмерным и визуализирован в табличной форме, насчитывающей 7 строчек, в каждой из которых по 5 ячеек.

Существуют ли какие-то ограничения при использовании одномерного массива? Да, мы можем создать и применять только 1000 компонентов. Примерно так же нас ограничивает и двухмерный массив — таблица будет представлена максимум 1000 столбиков с 1000 ячеек.v

Как правильно работать с массивами и что они могут нам дать?

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

Для создания двухмерного от вас потребуется обозначить два индекса. Как только вы даете конкретный индекс – компоненты можно называть индексированными переменными.

Какие бывают виды компонентов, индексов и имен?

Как создать имя для массива? Для этой цели можно применить произвольный идентификатор. У нас есть условия, что название нужно начинать с T. Именно так можно будет отличать каждый конкретный идентификатор от всех прочих.

Дальнейшую часть названия составляют, беря за основу переменные, хранящиеся в самом массиве.

Какие типы компонентов вы можете встретить? Для того, чтобы создать индекс, берите целые числа, а в качестве типа будет выступать весь числовой диапазон, между первым и последним компонентами массива.

Приведем простой пример: тип 1…777 будет значить, что созданный нами массив насчитывает 777 компонентов, где каждый из которых равен какому-либо числу от 1 до 777.

Надеемся, что мы смогли раскрыть вам основные термины и процессы при работе с массивами в программировании.

Если вы хотели бы научиться программированию, записывайтесь на наш курс по программированию. А может вы совершенно не хотите обучаться сами, но вам нужен качественный сайт – обсудим подробности.

Урок 20. Описание массива

Урок из серии: «Язык программирования Паскаль»

В предыдущем уроке мы ввели понятие структурированных данных.

Изучение данных структурированного типа начнем с регулярного типа данных — массивов.

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

Массив — структурированный тип данных, состоящий из фиксированного числа однотипных элементов, объединённых одним именем, где каждый элемент имеет свой номер (индекс).

Когда возникает необходимость использовать массивы?

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

Мы будем вынуждены ввести 30 имен переменных, что, естественно, очень неудобно. Как быть?

В этом случае лучше организовать массив. Имя у всех элементов будет общее. Чтобы получить доступ к элементу, достаточно будет указать имя массива и его порядковый номер.

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

Определим еще несколько понятий, связанных с массивами.

Элемент массива — отдельная переменная, входящая в массив.

Размерность массива — количество индексов, по которым определяется положение элемента в массиве.

Индексы элемента массива — совокупность номеров, определяющих его местоположение в массиве.

Чтобы лучше понять, что такое размерность массива, сравним их с таблицами.

Одномерный массив сравним с таблицей, состоящей из одной строки. Для определения положения элемента в строке достаточно знать порядковый номер ячейки, в которой находится элемент. Поэтому в одномерном массиве один индекс — порядковый номер элемента.

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

И так, потребность использовать массив возникает всякий раз, когда при решении задачи приходится иметь дело с большим, но конечным количеством однотипных данных, которые необходимо хранить в памяти.

Переходим к изучению массивов.

Описание массива

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

При описании массива используется зарезервированное слово array (массив), указываются диапазон изменения для индексов и тип компонентов массива.

Способ 1. Описание массива с определением типа.

Понятие массивов в программировании на C

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

Встраиваемые системы часто имеют дело с данными, которые принадлежат скорее к группе однотипных данных, а не к совокупности независимых переменных. Одним из примеров, который легко приходит на ум, является последовательность значений, которая соответствует оцифрованной версии аналогового сигнала. Другие примеры включают в себя байты, которые будут сериализованы и отправлены на LCD дисплей, длинный ряд измерений, которые должны быть проанализированы или переданы на другое устройство для обработки, и небольшая группа символов ASCII, которые составляют сообщение UART.

Читать еще:  Объектно ориентированное программирование определение

В некоторых случаях было бы возможно, хотя и неудобно, хранить эти данные в отдельных переменных – например, ADC_value1 , ADC_value2 , ADC_value3 и так далее. Однако часто использование отдельных переменных было бы совершенно непрактичным. К счастью, язык C предоставляет простой и очень эффективный способ работы с большими (или маленькими) группами переменных. Возможность, о которой я здесь говорю, называется массивом.

Что такое массив?

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

Рисунок 1 – Для массивов требуется указать тип данных, идентификатор и количество элементов

Вот несколько важных моментов, которые нужно понять о массивах:

  • Все элементы в массиве должны иметь одинаковый тип данных. Например, вы не можете иметь массив, который состоит из переменных char и int .
  • Объем памяти, необходимый для массива, не обязательно совпадает с количеством элементов. Если ваш массив имеет тип данных char и длину 20, он будет использовать 20 байт памяти. Однако если он состоит из 20 элементов с типом long , компилятор должен зарезервировать 80 байтов памяти. Большой массив может занимать значительную часть оперативной памяти микроконтроллера, поэтому убедитесь, что вы не используете излишне большой тип данных. Если все числа в массиве будут меньше или равны 255, объявите массив как unsigned char , а не int .
  • Компилятор будет хранить элементы массива в смежных местах памяти; у вас не будет такой ситуации, когда несколько элементов массива расположены в одном разделе вашей памяти, а затем остальные элементы массива – в совершенно другом разделе. Это означает, что вы можете легко проверить содержимое массива, используя возможности проверки памяти вашего интерфейса отладки (хотя сначала вы должны найти начальный адрес массива).

Как использовать массив

Массив объявлен так:

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

В следующем фрагменте кода используется цикл for для заполнения массива числовыми значениями, начинающимися с нуля и заканчивающимися на 99.

Нулевой элемент

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

Рисунок 2 – Первый элемент массива всегда является нулевым

Вам нужно проникнуться этим, если вы привыкли к другим языкам программирования, которые используют для первого элемента значение индекса, равное единице, или вы просто находите очень нелогичным, что доступ к «первому» элементу массива осуществляется с помощью числа ноль. Эту важную деталь вы можете запомнить, называя первый элемент нулевым элементом.

Соглашение об индексации в C на самом деле очень логично, если вы понимаете связь между массивами и аппаратным обеспечением. Идентификатор массива соответствует местоположению в памяти, а именно, начальному адресу массива. Индекс является смещением; он сообщает компилятору, к какой ячейке памяти обращаться со ссылкой на начальный адрес. Область памяти, соответствующая начальному адресу не пуста; она содержит данные, соответствующие первому элементу в массиве. Таким образом, индекс для первого элемента равен нулю, поскольку смещения нет – данные для этого элемента хранятся по начальному адресу.

Последний элемент

Еще один подводный камень, напрямую связанный с проблемой нулевого/первого элемента, заключается в том, что последний элемент массива соответствует индексу, равному размеру массива минус один.

Если вы используете размер массива в качестве индекса, вы получите доступ к памяти, которая не включена в массив. Это может быть что угодно – неиспользуемая память, начало другого массива, часть совершенной не связанной переменной. Это серьезная ошибка, которая может привести к сбою кода чрезвычайно проблемными способами. Будьте особенно осторожны с циклами, в которых индекс массива увеличивается с каждой итерацией. Цикл должен быть спроектирован таким образом, чтобы итерации прекращались до того, как индекс достигнет числа, равного размеру массива.

Инициализация массива

Массивам, как и отдельным переменным, могут быть заданы начальные значения. Последовательность значений заключается в фигурные скобки, а отдельные значения разделяются запятыми. Например:

Ранее я упоминал, что в объявление массива мы обычно включаем количество элементов. Я сказал «обычно», потому что, если вы включаете последовательность начальных значений, то можете позволить компилятору самому определить необходимую длину.

Это удобно, когда вы используете массив для хранения довольно длинной последовательности символов ASCII, возможно, для целей отладки или для связи через последовательный порт.

Обратите внимание, что символы заключены в двойные кавычки, и фигурные скобки не нужны.

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

Рисунок 3 – Представление содержимого памяти, созданного объявлением массива, показанным в приведенном выше фрагменте кода

Заключение

Я думаю, данная статья дает вам достаточно информации, чтобы начать работу с массивами в программах на языке C, но, безусловно, можно рассказать кое-что еще. Обязательно посмотрите следующую статью, которая будет про указатели в языке C. Эта тема интересна сама по себе, но это также хороший способ укрепить ваше понимание массивов.

Массивы в языке программирования Си
учебно-методический материал на тему

Конспекты занятий по теме «Массивы» для студентов 2 курса специальности 09.02.03 «Программирование в компьютерных системах» разработаны в соответствии с программой дисциплины «Основы программирования».

Занятие 1. Одномерные массивы. Действия над массивами

Занятие 2. Алгоритмы сортировки массивов

Занятие 3. Двумерные массивы

Занятие 4. Массивы символов. Функции для работы со строками

Скачать:

Предварительный просмотр:

по изучению темы «Массивы в языке программирования Си»

По дисциплине: «Основы программирования»

Для специальности: 09.02.03 «Программирование в компьютерных системах»

Конспекты занятий по теме «Массивы» для студентов 2 курса специальности 09.02.03 «Программирование в компьютерных системах» разработаны в соответствии с программой дисциплины «Основы программирования».

Тема: Одномерные массивы. Действия над массивами

  • формирование знаний учащихся по теме “Массивы”;
  • выработка первичных навыков решения задач с применением одномерных массивов;
  • формирование понятия массива, знаний характеристик массивов и их элементов;
  • овладение умениями и навыками осуществлять ввод и вывод значений элементов одномерного массива;
  • развитие структурного мышления учащихся;
  • развитие учебно-познавательную деятельность учащихся на основе самостоятельного анализа фактов, предлагаемых учителем;
  • развитие способностей к формализации;
  • формирование умения применять на практике полученные знания;
  • воспитание сотрудничества.

Тип занятия : изучение нового материала

Читать еще:  Основные свойства объектно ориентированного программирования

Сообщение темы и целей урока.

  1. Изучение нового материала

В программах очень часто приходится обрабатывать большие объёмы однотипных данных. Применять обычные переменные для этого очень неудобно: представьте себе 1000 переменных с разными именами и одинакового типа, которые нельзя обработать в цикле. Эту проблему позволяет решить использование массивов.

Массив – совокупность переменных (элементов) одинакового типа и с общим названием. Доступ к элементам массива осуществляется простым указанием номера элемента – индекса.

Массивы могут быть одномерные и многомерные. Сегодня мы рассмотрим одномерные массивы.

Одномерный массив – массив, в котором элементы расположены последовательно друг за другом и имеют один индекс.

Примеры: 1,6; 5; -6,02; 8,78; -10,1 – массив из 5 вещественных чисел

a; b; c; d; f; g – массив из 6 символов

Каждый массив обозначается именем:

Каждый элемент массива обозначается именем массива и индексом. Индекс определяет положение элемента массива относительно его начала, его порядковый номер. Чтобы обратиться к элементу массива, надо написать имя массива и затем в квадратных скобках номер нужного элемента. Важно запомнить одно важное правило: элементы массивов в языке Си нумеруются с нуля. Таким образом, если в массиве 10 элементов, он содержит элементы: A[0], A[1], A[2], . A[9]

В данном случае:

A – имя переменной – элемента массива.

i – номер элемента в массиве – индекс.

Значение элемента А[2] – 9, значение элемента А[5] – 0.

Примеры обращения к массиву A:

x = (A[3] + 5)*A[1]; // прочитать значения A[3] и A[1]

A[0] = x + 6; // записать новое значение в A[0]

printf(“%dn”,A[0]);//вывод значения A[0]

scanf(“%d”, &A[0]);// ввод значения А[0]

Пусть дан массив D:

  • Из скольких элементов состоит этот массив?
  • Определите значение элементов:

Объявление одномерного массива

Примеры объявления массивов:

int a[10]; // Целочисленный массив a, размер – 10 элементов

double vect[20]; // Массив вещественных чисел vect,

//в нём 20 элементов

При объявлении массива можно сразу заполнить его начальными значениями, перечисляя их внутри фигурных скобок:

Если в списке в фигурных скобках записано меньше чисел, чем элементов в массиве, то оставшиеся заполняются нулями. Если чисел больше, чем надо, транслятор сообщает об ошибке. Например:

int A[4] = < 2 >; // при этом последние три элементы равны 0

Для повышения универсальности программы размер массива лучше определять в директиве препроцессора #define, например:

означает заменить во всем тексте программы слово N на число 10 . В этом случае для переделки программы для массива другого размера надо только поменять число в строке #define.

В современных программах на языке Си++ рекомендуется использовать константы вместо директивы #define, например:

Примеры объявления массива:

Способы заполнения массивов

Первый способ заполнения одномерного массива – это заполнение с клавиатуры.

Второй способ заполнения одномерного массива – это заполнение с помощью генератора случайных чисел. Этот способ удобен, когда в массиве много элементов, а их точные значения не слишком важны.

Рассмотрим несколько задач:

Задача 1 . Ввод с клавиатуры. Ввести с клавиатуры массив из 10 элементов, и вывести полученный массив на экран.

Анализ задачи : К сожалению, невозможно просто сказать компьютеру: «введи массив A». Мы должны каждый элемент прочитать отдельно. Чтобы ввести массив в память, надо каждый его элемент обработать отдельно (например, вызвав для него функцию ввода scanf). Для ввода массива будем использовать цикл for.

Вводить можно столько элементов массива, сколько ячеек памяти выделено. Помните, что элементы массива нумеруются с нуля, поэтому если массив имеет всего 10 элементов, то последний элемент имеет номер 9. Если пытаться записывать в 10-ый элемент, произойдет выход за границы массива и программа скорее всего будет работать неверно. При вводе массива желательно выдать на экран общую подсказку для ввода всего массива и подсказки для каждого элемента.

Вывод массива на экран выполняется также в цикле for. Элементы выводятся по одному. Если в конце строки-формата в операторе printf поставить пробел, то элементы массива будут напечатаны в строчку, а если символ “n” – то в столбик.

int i, A[N];// Массив А типа int, размер — 10 элементов

printf(“Введите массив An”);

for ( i = 0; i «, i );// функция printf выводит «подсказку»

scanf («%d», &A[i]);// scanf запрашивает значение элемента массива с

// Вывести массив на экран

randomize();// функция инициализации датчика случайных чисел

// Заполнить массив случайными числами

// Заполнить массив случайными числами

int i, max, index;

// Заполнить массив случайными числами

for ( i = 0; i ( ) = .

  • С помощью какого оператора осуществляется ввод и вывод одномерного массива? Ответ: С помощью оператора цикла .
  • . Какой оператор является телом цикла при вводе массива? Ответ: Оператор INPUT.
  • Какой оператор является телом цикла при выводе массива? Ответ: Оператор PRINT.
  • Выставление оценок учащимся.

    Тема : Алгоритмы сортировки одномерных массивов

    Цель: развитие навыка решения задач на обработку и сортировку одномерных массивов.

    • повторение алгоритмов ввода и вывода элементов одномерного массива;
    • формирование у учащихся навыков составления алгоритмов сортировки массива методом прямого выбора и методом пузырька.
    • развитие алгоритмического мышления;
    • развитие интереса к программированию;
    • развитие внимательности и самостоятельности при решении задач на компьютере.
    • воспитание сотрудничества;
    • воспитание собранности, ответственного отношения к своему труду;
    • формирование умения применять на практике полученные знания.

    Тип урока : комбинированный.

    Постановка темы и целей занятия

    1. Актуализация пройденного материала

    Ответ: Массив – совокупность данных одного типа и с общим названием.

    1. Что такое индекс элемента массива?

    Ответ: Индекс определяет положение элемента массива относительно его начала, его порядковый номер.

    1. Какой ряд данных можно назвать массивом?
    1. а, 4, б, 5, с, 6
    2. 2.3, 5.7, 10.89
    3. 3, 6, 3, 2, massiv
    1. Найдите правильное описанием массива:
    1. int A[N];
    2. int A[10];
    3. define N 30
    1. Какое условие будет использовано для подсчета четных элементов массива а?
    1. if (a[i]/2) k++;
    2. if (i%2==0) k++;
    3. if (a[i]%2==0) k++;
    1. Изучение нового материала

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

    Под сортировкой массива подразумевается процесс перестановки элементов с целью упорядочивания их в соответствии с каким-либо критерием.

    Существует достаточно много методов (алгоритмов) сортировки массивов. Мы рассмотрим два из них: метод прямого выбора и метод обмена (метод “пузырька”)

    Сортировка массива по возрастанию методом пузырька. В этом методе сначала поднимается «наверх» (к началу массива) самый «легкий» элемент (минимальный), затем следующий и т.д. Делается это так. Сравниваем последний элемент с предпоследним. Если они стоят неправильно, то меняем их местами. Далее так же рассматриваем следующую пару элементов и т.д. Когда мы обработали пару A[0]-A[1], минимальный элемент стоит на месте A[0] . Это значит, что на следующих этапах его можно не рассматривать. Например пусть задан неупорядоченный массив В = (4,5,2,1,3), тогда шаги сортировки будут выглядеть следующим образом:

    При следующем проходе наша задача — поставить на место элемент A[1] . Делаем это так же, но уже не рассматриваем A[0] , который стоит на своем месте. Сделав N-1 проходов, мы установим на место элементы A[0]-A[N-2] . Это значит, что последний элемент уже тоже стоит на своем месте.

    Ссылка на основную публикацию
    Adblock
    detector