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


 

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

76908. Тройничный нерв. V пара черепных нервов, ее ветви, топография и области иннервации 185.93 KB
  V пара тройничные нервы правый и левый смешанные: чувствительные двигательные вегетативные. Нервы развиваются вместе с производными первой висцеральной дуги челюстями и жевательными мышцами кожей лица слизистой полости носа и рта. Ствол тройничного нерва возникает при объединении чувствительного и двигательного корешков на выходе из мозга.
76909. Лицевой нерв, его топография, ветви и области иннервации 181.44 KB
  VII пара включает два нерва лицевой и промежуточный смешанные нервы двигательные парасимпатические и чувствительные. Промежуточный нерв нередко обозначают как XIII пару и тогда в VII паре остается только лицевой – двигательный нерв. Нерв выходит из мозга в поперечной борозде между мостом и продолговатым мозгом латерально от оливы направляясь по задней черепной яме к внутреннему слуховому проходу куда вступает вместе с VIII парой.
76910. Преддверно-улитковый нерв. VIII пара черепных нервов и топография ее ядер. Проводящие пути органов слуха и равновесия 183.89 KB
  Преддверная и улитковая части VIII пары объединяются во внутреннем слуховом проходе и направляются через заднюю черепную яму к мозговому стволу к его поперечной борозде между мостом и продолговатым мозгом где латеральнее лицевого и промежуточного нервов входят во внутрь моста и заканчиваются синапсами на ядрах вестибулярного поля моста. Вестибулярное поле находится в латеральных углах ромбовидной ямки на него проецируются два улитковых и четыре вестибулярных ядра залегающих в вентролатеральных отделах моста. Улитковые ядра: переднее и...
76911. Языкоглоточный нерв. IX пара черепных нервов, их ядра, топография и области иннервации 180.17 KB
  IX пара языкоглоточные нервы смешанные развиваются из заднего мозгового пузыря. Корешки нерва 45 выходят позади оливы продолговатого мозга и сливаются в короткий ствол. Чувствительные узлы нерва: верхний в яремном отверстии нижний в области каменистой ямки височной кости содержат псевдоуниполярные нейроны центральные отростки которых формируют чувствительный корешок нерва.
76912. Блуждающий нерв, его ядра, их топография; ветви и области иннервации 181.14 KB
  Краниальная часть нерва отдает ветви: менингиальную веточку для твердой мозговой оболочки в задней черепной яме; ушную ветвь которая через сосцевидный каналец и барабаннососцевидную щель подходит к коже наружного слухового прохода и ушной раковине. Ветви шейной части: глоточные к глоточному сплетению и через него к слизистой мышцамконстрикторам глотки мышцам мягкого неба кроме напряжителя из тройничного нерва шейные верхние сердечные ветви к сердечным сплетениям гортанные верхние нервы к перстнещитовидной мышце наружная...
76913. Прибавочный и подъязычный нервы 181.56 KB
  Обе пары XI XII по выходе из черепа идут между внутренней яремной веной и внутренней сонной артерией и ложатся под заднее брюшко двубрюшной мышцы. Из черепа ствол нерва выходит через яремное отверстие вместе с IX X парами и внутренней яремной веной занимая при этом латеральное положение. Внутренняя веточка для соединения с блуждающим нервом; наружная ветвь – для трапециевидной и грудиноключичнососцевидной мышц; Наружная ветвь проходит между внутренней яремной веной и внутренней сонной артерией а затем уходит под заднее брюшко...
76914. Вегетативная, автономная нервная система. Вегетативная часть нервной системы, ее деление и характеристика отделов 185.72 KB
  В надсегментарных вегетативных центрах которые располагаются в коре полушарий базальных ядрах мозжечке различают: центры чувствительные по восприятию внутренней рецепции; центры двигательные по координации гладкомышечных и сердечных сокращений в органах и сосудах. Подкорковые вегетативные центры Полосатое тело центры терморегуляции слюно и слезоотделения образования слизи. Ретикулярная формация ствола мозга – зрачковый рефлекс центры дыхания сердечный сосудистый глотания и рвоты и другие регуляции обмена веществ и...
76915. Парасимпатическая часть ВНС 187.66 KB
  Краниальная часть парасимпатических ядер включает мезэнцефалические добавочное и срединное ядра глазодвигательного нерва которые лежат в сером веществе дна водопровода на уровне верхних холмиков. Центральные нейроны ядер направляют свои преганглионарные отростки в составе глазодвигательного нерва к ресничному узлу где они переключаются на периферические 2ые нейроны. Дорсальное ядро блуждающего нерва направляет преганглионарные волокна в интрамуральные органные парасимпатические узлы органов иннервируемых Х парой где они прерываются....
76916. Шейный симпатикус. Шейный отдел симпатического ствола: топография, узлы, ветви, области, иннервируемые ими 183.18 KB
  Серые соединительные ветви выходят из шейных узлов в шейные спинномозговые нервы а с ними в нервы шейного и плечевого сплетений. Шейный верхний узел имеет веретенообразную форму в длину достигает 2 см в толщину 05 см лежит на длинной мышце головы впереди поперечных отростков IIго и IIIго шейных позвонков но позади внутренней сонной артерии и блуждающего нерва. Из него начинаются следующие симпатические нервы.