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


 

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

19451. Условия действительности сделок 25.5 KB
  Условия действительности сделок. Сделка считается действительной при соблюдении 4х условий. 1.Содержание сделки должно быть законным. Другими словами сделка должна соответствовать существующему правопорядку не противоречила бы закону и подзаконным актам. 2. Сделка д...
19452. Недействительность сделки 23 KB
  Недействительность сделки. Сделка недействительна в силу признания ее таковой судом оспоримая сделка либо независимо от такого признания ничтожная сделка но только при наличии законных на то оснований. При недействительности сделки каждая из сторон обязана воз
19453. ПРЕДСТАВИТЕЛЬСТВО: ПОНЯТИЕ И ВИДЫ. ДОВЕРЕННОСТЬ 27.5 KB
  ПРЕДСТАВИТЕЛЬСТВО: ПОНЯТИЕ И ВИДЫ. ДОВЕРЕННОСТЬ Представительство – совершение сделок представителем от имени представляемого лица и в его интересах в силу имеющихся полномочий основанных на доверенности указании закона либо акте уполномоченного на то государственн
19454. СРОКИ: ПОНЯТИЕ, ИСЧИСЛЕНИЕ И ВИДЫ 29 KB
  СРОКИ: ПОНЯТИЕ ИСЧИСЛЕНИЕ И ВИДЫ Срок – момент или период времени в который должны реализовываться права и выполняться возложенные обязанности с которым гражданское законодательство связывает определенные правовые последствия. Сроки по своей природе относятся к той...
19455. ПРАВО ОБЩЕЙ СОБСТВЕННОСТИ: ПОНЯТИЕ И ВИДЫ 27.5 KB
  ПРАВО ОБЩЕЙ СОБСТВЕННОСТИ: ПОНЯТИЕ И ВИДЫ В случаях когда имущество принадлежит на праве собственности не одному а двум и более лицам можно говорить об общей собственности.Общая собственность может возникать по различным основаниям: совместная покупка состояние в бра...
19456. Договор купли-продажи 23.5 KB
  Договор куплипродажи. Договор куплипродажи это соглашение по которому одна сторона продавец обязуется передать вещь товар в собственность другой стороне покупателю а покупатель обязуется принять этот товар и уплатить за него определенную денежную сумму цену ...
19457. Договор найма жилого помещения 24 KB
  Договор найма жилого помещения. Договор найма жилого помещения это соглашение сторон по которому одна сторона собственник жилого помещения или управомоченное им лицо наймодатель обязуется предоставить другой стороне нанимателю жилое помещение за плату во владе...
19458. Понятие договора хранения 24 KB
  Понятие договора хранения Договор хранения это соглашение сторон по которому одна сторона хранитель обязуется хранить вещь переданную ей другой стороной поклажедателем и возвратить эту вещь в сохранности. Договор хранения может быть как реальным так и консенсу...
19459. Символьные вычисления 37.15 KB
  В ходе лабораторной работы я научился выполнять символьные вычисления, такие как нахождение производной различных порядков, поиск пределов функций, нахождение определенных и неопределенных интегралов и т.д.