Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика звіт.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
840 Кб
Скачать
☆

Лабораторна робота №11

Тема: одновимірні та багатовимірні масиви, робота з текстовими рядками

Мета роботи: навчитися складати програми обробки лінійних та двовимірних масивів, реалізовувати найпростіші операції з текстовими рядками.

Завдання: оформити кожен пункт завдання вибраного варіанту у вигляді функції. Всі необхідні дані для функцій передаються їм в якості параметрів. Використання глобальних змінних у функціях не допускається.

Хід виконання роботи

  1. Динамічно створив одновимірний масив, що складається з N цілих елементів.

  2. Обчислив мінімальний за модулем елемент масиву.

  3. Обчислив суму модулів елементів масиву, розташованих після першого елемента рівного нулю.

  4. Перетворив масив таким чином, щоб в перій його половинірозташовувались елменти, що стоять на парних позиціях, а в друзій половині – елементи, що стоять в непарних позиціях.

  5. Кожну окрему задачу оформив за допомогою власних функцій.

  6. Прокомпілював програму, виправив помилки.

  1. Запустив програму на виконання.

  1. Лістинг програми:

#include <iostream.h>

#include <math.h>

#include <conio.h>

#include <stdlib.h>

//------------------------------------------------

void peretvoren(int *m1, int N)

{

int x, i=0;

int *m2=new int[N];

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

{if (abs(m1[x])%2==0) {m2[i]=m1[x];i++;}}

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

{if (abs(m1[x])%2==1) {m2[i]=m1[x];i++;}}

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

{m1[x]=m2[x];}

delete m2;

}

//--------------------------------------

void vyvid(int *m1, int N)

{

cout<<"\nMasyv chysel\n\n";

for (int x=0; x<N; x++)

cout<<m1[x]<<"\t";

}

//--------------------------------------

int min_(int *n, int k){

int z;

int minimum=n[0];

for (z=0; z<k; z++){

if (minimum>abs(n[z])) minimum=abs(n[z]);}

return (minimum);}

//--------------------------------------

int sumf(int *n, int k)

{

int x;

int suma=0;

for (x=0; x<k; x++)

{if (n[x]==0)

for(;x<k;x++){suma+=abs(n[x]);}

}

return (suma);}

//--------------------------------------

int main(){

clrscr();

int *m1=new int[100], x, N, z, min, ok;

cout<<"\nVvedit kilkist elementiv N\t";

cin>>N;

for (x=0; x<N; x++){

cout<<"\nVvodymo element\t\n";

cin>>m1[x];

}

vyvid(m1,N);

min=min_(m1,N);

cout<<"\nMinimum by fabs = "<<min<<"\n\n";

ok=sumf(m1,N);

if (ok>0) cout<<"\nSuma moduliv elementiv masuvy, roztashovanyh \npislya pershogo elementa rivnogo nulu = "<<ok<<"\n\n";

else cout<<"\nNema nulia\n\n";

peretvoren(m1,N);

vyvid(m1,N);

delete m1;

system("PAUSE");

return EXIT_SUCCESS;

}

//--------------------------------------

Висновок:

Навчився створювати та оброблювати одновимірні масиви за допомогою динамічного виділення памяті.