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

Iі спосіб. Ініціалізація масиву відбувається так:

int child[3];

child[0] = 2;

child[1] = 12;

child[2] = 1;

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

Часто буває так, що точний розмір масиву невідомий та може змінюватися при кожному запуску програми. Найбільш вигідне рішення такої задачі – це масив з найбільшою кількістю індексів, які можуть знадобитися в програмі. У такому випадку програма можу використати весь масив або лише ту його частину, яка потрібна!

В наступній програмі ілюструється приклад часткового заповнення масиву. За кількістю заповнених елементів масиву слідкує змінна number_user, елементи зберігаються в масиві score, з нумерацією від 0 до (number_user – 1).

Listing 2

//Програма зчитує значення (менше 100) і визначає їх суму.

#include <iostream>

#include <conio.h> // Для функции getch()

using namespace std;

int main()

{

setlocale(LC_ALL, "rus"); // Вивід тексту на російській мові

const int number_score = 100;

int i(0), score [number_score], sum(0), number_user(0), next(0), index(0);

cout<<”Введіть значення не більше”<< number_score

<<”цілих чисел, кінець списку позначте від’ємним числом:”<<endl;

cin>>next;

while((next>=0) && (index< number_score))

{

score [index]=next;

index++;

cin>>next;

}

number_user = index;

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

{

sum=sum+score[i];

}

cout<<”Сума всіх значень дорівнює ”<<sum<<endl;

getch(); // затримка екрана до натискання будь-якої клавіши

return 0;

}

Пошук даних в масиві виконується за допомогою методу послідовного пошуку (програма просто порівнює елемент з елементами масиву і виводить висновок). Для пошуку в масиві використовується порівняння елементів масиву з числом. Якщо елемент порівняння в масиві відсутній, то функція виводить значення -1.

Змінна target – це елемент для пошуку в масиві

// Програма для пошуку в масиві числа

#include <iostream>

#include <conio.h>

using namespace std;

int main()

{

setlocale(LC_ALL, "rus");

int i(0), score[i], target(0), k(0), elem(-1);

cout<<" Введіть 5 значень "<<endl;

cin>>score[0]>>score[1]>>score[2]>>score[3]>>score[4];

cout<<endl;

cout<<"Введіть число для пошуку в масиві "<<endl;

cin>>target;

cout<<endl;

cout<<"Ви ввели "<<target<< " число"<<endl;

i=0;

while(i < 5)

{

if(target == score[i])

{

elem=i;

}

i++;

}

if(elem==-1)

{

cout<<target<<"Число не знайдено! ";

}

if(elem>-1)

{

cout<<" Число "<<target<< " знаходиться під елементом масиву " <<elem<<endl;

}

getch();

return 0;

}

Розглянемо задачу по сортуванню списку значень, наприклад для розташування елементів масиву за зростанням або спаданням (можна за алфавітом, якщо це символи).

#include <iostream>

#include <conio.h>

void fill_array(int a[], int size, int& number_user);

void sort(int a[], int number_user);

void values(int& v1,int& v2);

void index_small(const int a[],int start_index, int number_user);

int main()

{

using namespace std;

setlocale(LC_ALL, "rus");

int sample_array[10], number_user;

fill_array(sample_array, 10, number_user);

sort(sample_array,number_user);

cout<<"Sortirovanie Chasla: "<<endl;

for(int index=0; index<number_user; index++)

cout<<sample_array[index]<<" ";

cout<<endl;

getch();

return 0;

}

void fill_array(int a[], int size, int& number_user)

{

using namespace std;

cout<<"Vvedite nt bolee "<<size<<" polojitelnih celih chisel"<<endl;

cout<<"Konec spiska oboznachte otricatelnim chislom"<<endl;

int next, index=0;

cin>>next;

while((next>=0)&&(index < size))

{

a[index]=next;

index++;

cin>>next;

}

number_user=index;

}

void sort(int a[], int number_user)

{

int index_of_next_small;

for(int index=0;index<(number_user-1);index++)

index_of_next_small=index_small(a,index,number_user);

values(a[index],a[index_of_next_small]);

}

}

void values(int& v1,int& v2)//

{

int temp;

temp=v1;

v1=v2;

v2=temp;

}

void index_small(const int a[],int start_index, int number_user)

{

int min = a[start_index], index_of_min=start_index;

for(index=start_index+1;index<number_user;index++)

if(a[index]<min)

{

min=a[index];

index_of_min=index;

}

return index_of_min;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]