Similar presentations:
С++ тіліндегі массивтермен жұмыс
1.
Алгоритмдеу жәнепрограммалау негіздері
пәнінің мақсаты
• Әртүрлі алгоритмдерді үйрену
• C++ бағдарламалау тілін үйрену
2.
С++ тіліндегі массивтермен жұмысБірөлшемді массив – бұл C++ тіліндегі деректер құрылымы,
жадыда тізбекті орналасқан бір типтегі элементтер жиынын
сақтауға мүмкіндік береді. Массив элеметтеріне қатынау индекс
бойынша жүргізіледі, 0 басталады.
Бірөлшемді массивті жариялау C++ тілінде келесідегідей
орындалады:
мұндағы:
•тип_элементов – массивтегі сақталатын деректердің типі;
•имя_массива – массив идентификаторы;
•размер_массива – массивтегі элементтер саны.
3.
С++ тіліндегі массивтермен жұмысБүтін сан массивтерін жариялау мысалы:
Бұл мысалда біз numbers массивін 5 өлшемінде int типінде
жариялаймыз.
4.
С++ тіліндегі массивтермен жұмысМассив элементтеріне мән меншіктеу үшін біз for цикл операторын
қолдана аламыз:
Бұл мысалды массив элементтеріне 1 ден 5 ке дейінгі мәндерді
меншіктейміз.
Массив элементтеріне қатынау орнату үшін [] квадратты жақша
қолданып онда элемент индексін беріп кетеміз
5.
С++ тіліндегі массивтермен жұмысБұл мысалда массивтің үшінші элементінің мәнін аламыз, ал оның
индексі 2ші болып беріледі (себебі индекстер 0 басталады).
6.
С++ тіліндегі массивтермен жұмысБіз сонымен қатар массивті оны жариялау кезінде инициализациялап
кете аламыз:
Бұл мысалда біз numbers массивін оның 1 ден 5 ке дейінгі міндерімен
бірге инициализациялаймыз. Көңіл аударыңыз, біз мұнды массив
размерін көрсетпедік – оны компилятор өзі фигуралы жақшаның
ішіндегі элементтердің саны негізінде анықтайды.
7.
Мысал 1: n нақты сандардан тұратын бірөлшмді массивтетақ индекстегі элементтердің қосындысын табыңыз
#include <iostream>
using namespace std;
int main() {
setlocale(LC_ALL, "rus");
const int n = 10;
double array[n] = { 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0 };
double sum = 0.0;
for (int i = 1; i < n; i += 2) {
sum += array[i];
}
cout << "Так индекстеги элементтер суммасы: " << sum << endl;
return 0;
}
8.
Мысал 1: n нақты сандардан тұратын бірөлшмді массивте тақ индекстегіэлементтердің қосындысын табыңыз
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
setlocale(LC_ALL, "rus");
int i;
double n=10;
double a[10], sum = 0;
for (i = 0; i < n; i ++)
{
a[i] = (double)(rand() % 100 - 50);
cout << " " << a[i];
if(i%2==1)
sum += a[i];
}
cout << "\n\n Сумма =" << sum << endl;
return 0;
}
9.
Мысал 2. Бірінші және соңғы теріс элементтер арасында орналасқан массив элементтерініңкөбейтіндісін , арифметикалық ортасын табу:
#include <iostream>
#include<cstdlib>
//#define n 10;
using namespace std;
int main() {
setlocale(LC_ALL, "rus");
const int n = 10;
int i, k, l;
double p = 1, s_average = 0;
double a[10] = { 15.9, 1.5, -6.9, 8.1, 7.4, -0.05, -3.7, -4.09, 10.01, 11.5 };
for (i = 0; i <= n - 1; i++) {
if (a[i] < 0) {
k = i;
break;}}
for (i = n - 1; i >= 0; i--) {
if (a[i] < 0) {
l = i;
break;}}
for (i = k + 1; i < l; i++) {
cout << a[i] << "\t";
p *= a[i];
s_average += a[i];}
cout << "\n биринши терис саннын индекси: " << k << endl;
cout << "\n сонгы терис саннын индекси: " << l << endl;
cout << "\n кобейтинди: " << p << endl;
cout << "\n арифметикалык ортасы: " << s_average / (l - k - 1) << endl;
return 0;
}
10.
Мысал 3. Программада екі өлшемді массив кездейсоқ сандар арқылы құралады; жұп және тақ сандарқанша екені анықталады
#include <iostream>
#include<cstdlib>
using namespace std;
int a[5][7];
int even_number = 0, odd_number = 0;
int main(){
setlocale(LC_ALL, "rus");
int i, j;
for (i = 0; i < 5; i++)
for (j = 0;j < 7;j++)
a[i][j] = rand() % 100 - 70;
for (i = 0; i < 5; i++) {
for (j = 0;j < 7;j++)
cout << "\t" << a[i][j];
cout << "\n\n";}
for(i=0;i<5;i++)
for (j = 0;j < 7;j++)
if (a[i][j] % 2) ++even_number;
else ++odd_number;
cout << "\n жуп сандар саны: " << even_number << endl;
cout << "\n так сандар саны: " << odd_number << endl;
cout << "\n элементтер саны: " << even_number+odd_number << endl;
return 0;}
11.
Мысал 4. Квадратты матрицаберілген.
Анықтау керек:
әрбір баған бойынша
минимал элементтерді;
бас диагоналдың
жоғары
жағында
орналасқан элементтердің
қосындысын.
12.
#include <iostream>#include<cstdlib>
using namespace std;
int main() {
setlocale(LC_ALL, "rus");
int i, j, n = 4;
int a[4][5], min[4], s = 0, min_col;
cout << "Матрица элементтери:" << endl;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
a[i][j] = (int)rand() % 100 - 50;
for (int i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
cout << "\t" << a[i][j];
cout << "\n\n";
}
13.
//1)for (j = 0; j < n; j++)
{
min_col = a[0][j];
for (i = 1; i < n; i++)
{
if (a[i][j] < min_col) min_col = a[i][j];
}
min[j] = min_col;
}
cout << "\n1)бир баганнын мин элементи: " << endl;
for (j = 0; j < n; j++) cout << "\t\tmin[" << j << "]=" << min[j] << "\n\n";
//2)
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if (i < j) {
s += a[i][j];
}
}
}
cout << "\n2) Бас диагоналдагы элементтер косындысы" << endl;
cout << "\t\ts=" << s << endl;
return 0;
}
14.
С++ тіліндегі массивтермен жұмысты сұрыптау арқылы жүргізуМассивтерді сұрыптаудың алгоритмдері көп деп есептеледі, соның ішінде біз:
1.Сортировка пузырьком (Bubble Sort) Көпіршікті сұрыптау: Бұл сұрыптау
алгоритмі массив бойынша бірнеше рет жүріп өтеді, әр өту сайын көрші
элементтерді салыстырады әрі олардың орнын ауыстырады, егер олардың реті
дұрыс болмаса.
2.Сортировка вставками (Insertion Sort) Қойып сұрыптау: Бұл алгоритм массив
бойынша өтеді әрі басынан бастап әрбір элементті сұрыпталған тізбекке
орналастырады.
3.Сортировка выбором (Selection Sort) Таңдап сұраптау: Бұл алгоритм массивтегі
ең кіші элементті табады әрі оны массивтің бірінші эелементімен ауыстырады.
Одан кейін одан кейінгі кіші элементті табады оны екінші элементпен
ауыстырады, және солай жалғаса береді.
4.Сортировка слиянием (Merge Sort) Біріктіріп сұрыптау: Бұл алгоритм массивті
екіге бөледі де әр бөлікті жеке сұрыптайды, одан кейін сұрыпталған массивтерді
бірге біріктіреді.
15.
Тапсырма1. Бірөлшемді массив элементтерінің қосындысын табыңыз?
2. Екіөлшемді массив элементтерінің қосындысын табыңыз?
3. Бірөлшемді массив элементтерін сұрыптаңыз?
4. Массивтегі берілген мәнді табу программасын жазыңыз?
5. Бірөлшемді массивті екінші бір массивке көшіру программасын
жазыңыз?
6. Жоғарыда келтірілген 2 мысалды кездейсоқ таңдауға ал 3 және 4
мысалдардағы массив элеметтерін инициализациялап табуға
ауыстырыңыз
7. Сұрыптау әдістеріне мысалдар қарастырыңыз.
16.
Бақылау сұрақтары:1. Бірөлшемді және екіөлшемді массив?
2. Бірөлшемді және екіөлшемді массивті жариялау, мысалмен C++?
3. Бірөлшемді және екіөлшемді массивті кездейсоқ сандармен
толтыру мысалы?
4. Индекс бойынша бірөлшемді массив элементтеріне қытанауды
қалай алуға болады?
5. Массив элементтеріне қатынау мен индекске қатынау немен
ерекшеленеді масылмен келтіріңіз?
6. Сұрыптау дегеніміз не, түрлерін атап мысалмен келтіріңіз