68977

Одновимірні та багатовимірні масиви

Лекция

Информатика, кибернетика и программирование

Відповідно до синтаксису Сі в мові існують тільки одновимірні масиви, проте елементами одновимірного масиву, у свою чергу, можуть бути масиви. Тому двовимірний масив визначається як масив масивів. Таким чином, в прикладі визначений масив Z з 13 елементів-масивів, кожний з яких...

Украинкский

2014-09-28

30 KB

0 чел.

Лекція № 4

Тема: Одновимірні та багатовимірні масиви

План

  1.  Масиви і змінні з індексами
  2.  Впорядкування одновимірних масивів
  3.  Символьні масиви

Масиви і змінні з індексами.

Математичним поняттям, яке привело до появи в мовах програмування поняття "масив", є матриця і її окремі випадки: вектор-стовбець або вектор-рядок. Елементи матриць в математиці прийнято позначати з використанням індексів. Суттєво, що всі елементи матриць або дійсні, або цілі і т.д. Така "однорідність" елементів властива і масиву, визначення якого описує тип елементів, ім'я масиву і його розмірність, тобто число індексів, необхідне для визначення конкретного елемента. Крім того, у визначенні вказується кількість значень, яка приймаються кожним індексом. Наприклад, int а[10]; визначає масив з 10 елементів а[0], а[1] ..., а[9]. float Z[13][[6]; визначає двовимірний масив, перший індекс якого приймає 13 значень від 0 до 12, другий індекс приймає 6 значень від 0 до 5. Таким чином, елементи двовимірного масиву Z можна перерахувати так:

Z[0][0],   Z[0][l],   Z[0][2],...,Z[12][5]

Відповідно до синтаксису Сі в мові існують тільки одновимірні масиви, проте елементами одновимірного масиву, у свою чергу,

можуть бути масиви. Тому двовимірний масив визначається як масив масивів. Таким чином, в прикладі визначений масив Z з 13 елементів-масивів, кожний з яких, у свою чергу, складається з 6 елементів типу float. Нумерація елементів будь-якого масиву завжди починається з 0, тобто індекс змінюється від 0 до N-1, де N - кількість значень індексу.

Обмежень на розмірність масивів, тобто на число індексів, в мові Сі теоретично немає. Стандарт мови Сі вимагає, щоб транслятор міг обробляти визначення масивів з розмірністю до 31. Проте частіше всього використовуються одновимірні і двовимірні масиви.

Впорядкування в одновимірних масивів

Необхідно, ввівши значення змінної 1 <n<=100 і значення n перших елементів масиву а[0],а[1],...,а[n-1], впорядкувати ці перші елементи масиву за збільшенням їх значень. Текст першого варіанту програми:

/* Впорядкування елементів масиву */

#include <stdio.h>

main( )

{

int n,і,j;

double а[100],b;

while(1)

{                                         

printf("\n Введіть кількість елементів n=");

scanf("%d",&n);

if (n > 1 && n <= 100) break;

printf{"Помилка! Необхідно 1<n<=100!");

}

printf("\n Введіть значення елементів " масиву:\n");

for(j=0; j<n; j++)

{

printf("а[%d]=", j+1);

scanf("%lf",&a[j]);

}

for(i=0;   i<n-l;   i++)

for(j=i+l;   j<n;   j++)

if(а[i]>a[j])

{

b=a[i];

а[i]=a[j];

а[j]=b;

}

printf("\n Впорядкований масив: \n");

for(j=0; j<n; j++)

printf("а[%d]=%f\n",j +1,a[j]);

}

При заповненні масиву і при друку результатів його впорядкування індексація елементів виконана від 1 до n, як це звичайно прийнято в математиці. В програмі на Сі це відповідає зміні індексу від 0 до (n-1). В програмі реалізований алгоритм прямого впорядкування  кожний елемент а[i], починаючи з а[0] і кінчаючи а[n-2], порівнюється зі всіма подальшими, і на місце а[i] вибирається мінімальний. Таким чином, а[0] приймає мінімальне значення, а[1] - мінімальне з тих, що залишилися і т.д. Недолік цього алгоритму полягає в тому, що в ньому фіксоване число порівнянь, не залежне від початкового розташування значень елементів. Навіть для вже впорядкованого масиву доведеться виконати ту ж саму кількість ітерацій (n-1)*n/2, оскільки умови закінчення циклів не пов'язані з властивостями, тобто з розміщенням елементів масиву.


 

А также другие работы, которые могут Вас заинтересовать

43509. СОЗДАНИЕ МАРКШЕЙДЕРСКОГО–ГЕОДЕЗИЧЕСКОГО ОБОСНОВАНИЯ И ПРОИЗВОДСТВА ТОПОГРАФИЧЕСКОЙ СЪЕМКИ В МАСШТАБЕ 1:2000 ГОРНОДОБЫВАЮЩЕГО ПРЕДПРИЯТИЯ 39.5 KB
  Высоты пунктов съемочного обоснования определить методом технического или спутникового нивелирования. ИСХОДНЫЕ ДАННЫЕ: Топографическая карта растр масштаба 1:100 000 с нанесенными на ней: территория горнодобывающего предприятия; пункты исходного геодезического обоснования ГГС: полигонометрия или триангуляция 4 класса точности с отметками определенными из нивелирования III класса все доступные на исходной топографической карте. Проект опорного планововысотного обоснования.
43510. Финансирование энергосберегающих проектов предприятий электроэнергетики за счёт собственных средств 313 KB
  Ухта мощностью 150 Гкал ч объект: Ухтинские тепловые сети; 2 Реконструкция теплоснабжения поселка Бельгоп г.Ухта объект: Ухтинские тепловые сети; 3 Оснащение дутьевых вентиляторов котлоагрегатов частотными приводами объект: Сосногорская ТЭЦ; 4 Внедрение системы непрерывной очистки трубокконденсаторов шарикоочистка с эластичными шариками объект: Сосногорская ТЭЦ; 5 Оснащение насосного оборудования центральных тепловых пунктов частотными приводами объект: Сосногорская ТЭЦ; 6 Подача тепла на теплофикационную установку...
43511. Внутренний аудит процесса «Управление записями в отделе сервисного обслуживания» на ЗАО «Компания Новгородский Завод ГАРО» 882 KB
  Основным процессом поставщиком для данного процесса является «Оформление и предоставление актов работ», в ходе которого инженеры, совместно с потребителями продукции ГАРО, составляют акты о проведенных работах, а секретарь ОС ведет реестр актов работ и является ответственным за хранение записей и предоставление их для дальнейшего использования.
43512. Анализ технико-экономического показателей работы промышленного предприятия 755.5 KB
  Одним из важнейших разделов анализа работы предприятия является анализ трудовых ресурсов. Его цель - в выявлении резервов роста производительности труда, улучшении нормирования, организации и условий труда, снижении себестоимости продукции, то есть важнейших технико-экономических показателей.
43513. РАСПРОСТРАНЕНИЕ РАДИОВОЛН И АНТЕННО-ФИДЕРНЫЕ УСТРОЙСТВА 264.5 KB
  Технические требования на проектируемую антенну номер канала дБ коэффициент усиления бортовой передающей антенны дБВт уровень мощности на входе малошумящего приемного устройства м протяженность радиолинии ИСЗ Земля модуль характеризующий потери в атмосфере Земли. С тех пор двойные зеркальные телескопы носят название телескопов Кассегрена и это название было распространено на антенны с аналогичным принципом конструкции зеркал. Антенны Кассегрена в настоящее время являются широко...
43514. Разрабоика схемы тахометра 154.5 KB
  Параметры счетчика: Счетчик считает обороты в течении 10 секунд и поэтому необходимо делить входной сигнал на 10 чтобы соблюсти соответствие с оборотами в минуту. Алгоритм работы тахометра На вход устройства подается сигнал tkt; Счетчику D присваивается значение Dtkt; Если счетчик D досчитал до 10 тогда переход к п.4; Счетчику Ct присваивается значение Hrz1 ; Если счетчик Ct досчитал до 10то переход к п. Формируется сигнал записи Cwr ; По сигналу Cwr происходит запись результата в регистр W; Сигналом...
43515. Будова та основні характеристики мікропроцесора Intel Core i5-661 888.5 KB
  Опис процесора Intel Core i5661 рисунок. Intel Core i5661 Процесор Intel Core i5651 заснований на 32нм ядрі Clrkdle. І в цьому лежить його головна технологічна відмінність від процесорів Intel Core i57xx. Так Intel Core i5650 – це двоядерний процесор на відміну від чотирьохядерних Intel Core i57xx що мають вдвічі більший обєм кешпамяті 8 МБ проти 4 МБ.
43516. СОЦІАЛЬНА СТРАТИФІКАЦІЯ СУЧАСНОГО СУСПІЛЬСТВА 197 KB
  Поняття соціальної стратифікації суспільства. Типи стратифікованого суспільства . Соціальна стратифікація сучасного суспільства .