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, оскільки умови закінчення циклів не пов'язані з властивостями, тобто з розміщенням елементів масиву.


 

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

197. Определение договорной цены и расчет эффективности строительства 620.5 KB
  Расчет сметной стоимости строящегося здания по заданному аналогу. Сводная ведомость стоимости работ выполненных по объекту. Определение сметной стоимости на благоустройство территории (дороги и тротуары).
198. Створення сайту 422.52 KB
  Парні теги, позначають початок і кінець дії команди. Тег, що закриває область дії, має косу риску. Головні параметри тега body, основний текст, до якого застосовуються теги форматування. Написання заголовку сторінки.
199. Разработка конструкции транзисторного радиопередатчика, размещенного в кабине планера 9.15 MB
  Передающий тракт систем радиосвязи, расчет режимов транзистора мощного усилителя. Расчет режима мощного усилителя СВЧ и некоторое значение тока возбуждения. Расчет режима транзистора по схеме ОЭ без учета индуктивности выводов.
200. Разработка базы данных с помощью Microsoft Excel и Microsoft Access 466 KB
  Разработка логической модели базы данных средствами Microsoft Excel. Создание базы данных Microsoft Access, а также SQL-запросов и макросов. Создание таблиц и построение схемы данных, создание форм ввода-вывода информации.
201. Расчет плиты с круглыми пустотами 305.5 KB
  Нормативные и расчетные характеристики тяжелого бетона класса В25. Предварительное напряжение при благоприятном влиянии с учетом натяжения арматуры. Расчет прочности плиты по сечению, нормальному к продольной оси.
202. Исследование многопозиционной фазовой модуляции 306.5 KB
  Освоение основных принципов моделирования в среде MATLAB, знакомство с многопозиционными методами модуляции. Приобретение навыков по исследованию характеристик модулированного сигнала M-PSK.
203. Разработка практичного программного обеспечения для хранения данных компании в С# 522.5 KB
  Среда разработки поддерживает различные языки программировании в том числе С# и позволяет легко реализовать дизайн создаваемого приложения. Обзор основных функций программы Enterprise Management. Возможности настраиваемого интерфейса программного обеспечения.
204. Комплекс водоочистных сооружений для промышленного предприятия с технологической потребностью в воде 466 KB
  Общие сведения о системе водоснабжения и водоотведения промышленного предприятия. Балансовая схема водоснабжения и водоотведения промышленного предприятия. Разработка технологической схемы и расчет сооружений станции водоподготовки технической воды.
205. Конструирование гендерной нормы в современном российском обществе 670.5 KB
  Понятие нормы и патологии в контексте властных практик современного общества. Социологическое объяснение гендерной и сексуальной идентичности. Отношение общества и отдельных социальных групп к гомосексуальности и гомосексуалистам.