Лабораторна робота
Тема:
Одновимірні масиви
Мета роботи: вивчення засобiв мови Сi для обробки масивiв да-
них, оволодiння прийомами складання алгоритмiв i
програм з застосуванням масивiв.
Завдання:дано одновимірний масив В, який складається з 12 елементів. Сформувати вектор С, що повинен складатися з елементів вектора В, які знаходяться перед максимальним елементом. Вивести на друк вектори В і С.
Короткі теоретичні відомості:
Мова Сi передбачаї використання тiльки одновимiрних масивiв
даних. Ознакою масиву пiд час його оголошення ї квадратнi дужки,
якi ставляться пiсля iдентифiкатора масиву, в дужках вказуїться
кiлькiсть елементiв масиву. Мiнiмальне значення iндекса (порядко-
вого номера) елемента масиву завжди дорiвнюї нулю. Пiд час оголо-
шення масив може бути iнiцiалiзований. Мова Сi дозволяї обробляти
багатовимiрнi масиви, тодi вони розглядаються як масиви масивiв.
Приклади оголошення масивiв:
char h[]="Система", t[25], s[9]="Комп'ютер";
float a[20], b[5][3], c[2][3]={{2,3,7},{6,,12}};
Тут для масиву h буде зарезервовано в пам'ятi мiсце для зберi-
гання 8 букв, причому h[0]='C', h[1]='и', h[2]='c',..., h[6]='a'
та h[7]='\0', в цьому випадку компiлятор добавить до масиву нуль.
40
Масиви t i s займуть, вiдповiдно, 25 i 9 комiрок пам'ятi типу
char. Так само, як i масив c, вектор s буде iнiцiалiзований, про-
те вiн не буде доповнений нульовим елементом. Для масиву a буде
видiлено 20, масиву b - 15, масиву c - 6 комiрок пам'ятi типу
float, причому пiд час оголошення вiдбудеться iнiцiалiзацiя маси-
ву c п'ятьма елементами, тобто c[0][0]=2, c[0][1]=3, c[0][2]=7,
c[1][0]=6 та c[1][2]=12.
Звернення до елемента масиву в програмi вiдбуваїться шляхом
вказування iдентифiкатора масиву, пiсля якого в квадратних дужках
задаються значення всiх його iндексiв за допомогою констант або
виразiв цiлого типу.
Iдентифiкатор масиву сприймаїться компiлятором як адреса його
першого елемента, тому фрагменти float *p, a[7]; p=&a[0]; або
float *p, a[7]; p=a; виконаються однаково.
Ідентифікація змінних:
Змінна | a | Порядковий номер елемента | Макси-
мальний
елемент | Номер
макси-
мального
елемента
Ідентифікатор | a | і | m | k
Програма:
#define NUM 12
main()
{
int i,k;
float a[NUM]={45.3, 12, 1.45, 34.4, -0.2, 0.455, 89.456,
-56, 2, 4.6, -7, 5.5}, m;
clrscr();
printf("\nВектор B:\n");
for(i=0;i<NUM;i++) printf("a[%i]=%.3f\n",i,a[i]);
printf("\nВектор C:\n");
m=a[0];
for(i=0;i<NUM;i++)
{
if(m<a[i])
{
m=a[i];
k=i;
}
}
for(i=0;i<k;i++) printf("a[%i]=%.3f\n",i,a[i]);
getch();
}
Результати:
Вектор В:
a[0]=45.300
a[1]= 12.000
a[2]= 1.450
a[3]= 34.400
a[4]= -0.200
a[5]= 0.455
a[6]= 89.456
a[7]= -56.000
a[8]= 2.000
a[9]= 4.600
a[10]= -7.00
a[11]= 5.500 | Вектор C:
a[0]= 45.300
a[1]= 12.000
a[2]= 1.450
a[3]=34.400
a[4]=-0.200
a[5]=0.455
Висновок: Я вивчив засоби мови Сi для обробки масивiв да-
них, оволодiв прийомами складання алгоритмiв i
програм з застосуванням масивiв.