Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП_Лаб_Гриф.doc
Скачиваний:
7
Добавлен:
14.11.2019
Размер:
2.81 Mб
Скачать

9.4 Питання для контролю і самостійної роботи

  1. З якого числа починається індексація масивів у мові С ?

  2. Як розташований у пам'яті одномірний масив?

  3. Які типи мови С можна і не можна використовувати при оголошенні масивів ?

  4. У яких випадках розмірність масиву при оголошенні можна не вказувати?

  5. Який тип має ім'я масиву ?

  6. Як здійснюється ініціалізація елементів масиву ?

  7. Чи можна здійснювати неповну ініціалізацію елементів масиву ?

  8. Як можна виконати ініціалізацію масивів з елементами типу char ?

  9. Скільки елементів масиву типу char буде виділено при ініціалізації для рядка з трьох символів ?

  10. Чи можна використовувати засіб typedef для оголошення типу “масив” ?

  11. Які альтернативні форми запису елементів масиву можна використовувати ? Приведіть приклади.

  12. Які вирази називають індексними і які правила використання індексних виражень ?

  13. Чи існують операції роботи з масивами, як об'єктами?

  14. Які класи пам'яті можна використовувати при оголошенні масивів?

10 Заняття № 10

Формування робочих масивів за допомогою операцій селекції вихідного масиву

(2 години)

Ціль роботи: вивчити і навчитися застосовувати обробку масивів по заданих логічних умовах, формування нових масивів.

10.1 Теоретичні відомості

Дивися теоретичні відомості по попередній роботі.

Приклад

/* ЗАНЯТТЯ N 10

Розробив Петров О.Д.

Оголосити масиви заданої розмірності, виконати їхню

ініціалізацію з застосуванням функції random( ) і явно.

Одержати доступ до елементів масивів з використанням

операторів організації циклу. Переписати позитивні

елементи масивів x[1], x[2], ... , x[N] у масив y[ t ],

а негативні - у масив z[ p ]. Елементи в масивах y[ t ]

і z[ p ] розташовувати підряд, елементи масиву y1[ t ]

розрахувати для позитивних x[і] по формулі

y1[t] = y1[ t ] + 2 * exp( b * y[ t ] - y[ t ] ^ 2), де b = N / 5 */

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

#include <math.h>

# define N 20

main( )

{ clrscr( );

randomize( );

int і, t = 0, p = 0, b = N / 5;

int x[N], y[N], z[N]; //Оголошення одномірного масиву (вектора)

float y1[N] = {2.3, 3.4, 4.0, 5.2, 6.6, 7.9, 8.34, 9.8, 10.4, 11.2,\

10.1, 9.9, 8.7, 7.5}; //Ініціалізація перших 14 елементів, інші - 0

printf("\n Виведення елементів вихідного масиву y1[ ]\n");

for(i = 0; i < N; i ++)

{printf(" y1[%2d] = %4.1f ", i + 1, y1[ i ] );

if ((i + 1) % 5 = = 0) printf("\n");

}

printf("\n Ініціалізація одномірного масиву x[N] \n");

for(і = 0; і < N; і ++)

{ x[ і ] = random(40) - 20;

printf(" x[%2d] = %2d ", i + 1, x[ i ] ); //Виведення елементів

if ((i + 1) % 5 = = 0) printf("\n"); //масиву x[ ]

if (x[ i ] >= 0) //Вибір позитивних значень

{ y[ t ] = x[ i ]; //Розрахунок елементів масиву y1[ ]

y1[ t ] = y1[ t ] + 2 * exp( b * y[ t ] - y[ t ] * y[ t ] );

t ++;

}

else {z[ p ] = x[ i ]; p++;} //Вибір негативних значень

}

printf("\n Виведення елементів масиву y[ ] > 0\n");

i = 0;

while ( i < t )

{ printf(" y[%2d] = %2d ", i + 1, y[ i ] );

if ((i + 1) % 5 = = 0) printf("\n");

i ++;

}

printf("\n");

printf("\n Виведення елементів масиву y1[ ] після розрахунку \n");

i = 0;

do

{ printf(" y1[%2d] = %3.2f ", i + 1, y1[ i ] );

if ((i + 1) % 5 = = 0) printf("\n");

i ++;

} while ( i < t );

printf("\n");

printf("\n Виведення елементів масиву z[ ] < 0\n");

for(i = 0; i < p; i ++)

{ printf(" z[%2d] = %2d ", i + 1, z[ i ] );

if ((i + 1) % 5 = = 0) printf("\n");

}

getch( );

return 1;

}

/* Виведення елементів вихідного масиву y1[ ]

y1[ 1]= 2.3 y1[ 2]= 3.4 y1[ 3]= 4.0 y1[ 4]= 5.2 y1[ 5]= 6.6

y1[ 6]= 7.9 y1[ 7]= 8.3 y1[ 8]= 9.8 y1[ 9]=10.4 y1[10]=11.2

y1[11]=10.1 y1[12]= 9.9 y1[13]= 8.7 y1[14]= 7.5 y1[15]= 0.0

y1[16]= 0.0 y1[17]= 0.0 y1[18]= 0.0 y1[19]= 0.0 y1[20]= 0.0

Ініціалізація одномірного масиву x[N]

x[ 1]= 8 x[ 2]= 10 x[ 3]=- 7 x[ 4]= 13 x[ 5]=- 1

x[ 6]=-14 x[ 7]= 5 x[ 8]= 17 x[ 9]=-14 x[10]=-19

x[11]= 13 x[12]= 8 x[13]=-10 x[14]=-16 x[15]= 5

x[16]= 9 x[17]=-11 x[18]=-12 x[19]=-16 x[20]=- 3

Виведення елементів масиву y[ ]>0

y[1]= 8 y[2]=10 y[3]=13 y[4]= 5 y[5]=17

y[6]=13 y[7]= 8 y[8]= 5 y[9]= 9

Виведення елементів масиву y1[ ] після розрахунку

y1[1]=2.30 y1[2]=3.40 y1[3]=4.00 y1[4]=5.21 y1[5]=6.60

y1[6]=7.90 y1[7]=8.34 y1[8]=9.81 y1[9]=10.40

Виведення елементів масиву z[ ]<0

z[ 1]=- 7 z[ 2]=- 1 z[ 3]=-14 z[ 4]=-14 z[ 5]=-19

z[ 6]=-10 z[ 7]=-16 z[ 8]=-11 z[ 9]=-12 z[10]=-16

z[11]=- 3 */