Рок C/C++ Вступление. Hello World!

Loading...


бет9/12
Дата20.09.2021
өлшемі498.5 Kb.
түріУрок
1   ...   4   5   6   7   8   9   10   11   12

Урок 6. C/C++ Массивы.


Массив - это набор элементов(данных) одинакового типа, под одним именем, чтобы обратится к элементу массива, нужно задать имя массива и номер элемента. Объявление массива похоже на объявление переменной, отличие лишь в том что нужно добавить количество элементов. Количеством элементов может выступать только целое число или целочисленная константа.
Синтаксис: тип имя_массива[количество элементов];
Например:

const int M=10;


double a[10];
int b[M];

Присвоение:

a[0]=2;
a[4]=8;

Нужно помнить, что нумерация у массивов начинается с 0, следовательно массив из 10 элементов, a[10], будет адресоваться от a[0] до a[9], при обращении к a[10], вероятнее всего произойдет ошибка, либо будут получены неверные данные.


Инициализация:

int a[5] = {1,2,3,4,5};



int b

[5] = {1,2,3};

int d

[] = {1,2,3};

Как вы уже догадались работать с массивами удобнее всего через циклы, т.к. нужно выполнять одно и тоже действие, только с разными ячейками.

Давайте введем вручную 5 значений в массив и потом выведем их на экран используя циклы.

#include


#include
using namespace std;
void main()
{
setlocale (LC_CTYPE,"rus");
int arr

[5];
for (int k=0;k<5;k++)

{
cout<<"Введите элемент №"<
cin>>arr

[k];
}
for (int k=0;k<5;k++)
{
cout<<"Элемент №"<}
}

Компилируем нашу программу нажатием ctrl+F5 или (Dedug -> Start without debugging). И видим результат.



Результат

Введите элемент №0: 1


Введите элемент №1: 2
Введите элемент №2: 3
Введите элемент №3: 4
Введите элемент №4: 5
Элемент №0= 1
Элемент №1= 2
Элемент №2= 3
Элемент №3= 4
Элемент №4= 5
Для продолжения нажмите любую клавишу . . .

Например: Дан массив из N целых чисел. Необходимо подсчитать a1-a2+a3-a4+..-aN



Например:

#include


#include
#include
#include
using namespace std;
void main()
{
setlocale (LC_CTYPE,"rus");
int a[50], N;
int sum=0;
srand(time(NULL));


cout<<"Введите кол-во элементов: "; 

cin>>N;



for(int k=0; k

{
a[k]=rand()%9+1;


}


for(int k=0;k

{cout<


for(int k=0; k

{


if (k%2==0)

sum+=a[k];


else
sum-=a[k];
}
cout<cout<<"Сумма = "<cout<}

Компилируем нашу программу нажатием ctrl+F5 или (Dedug -> Start without debugging). И видим результат.

Результат

Введите кол-во элементов: 20


6 4 6 1 4 3 4 7 9 7
8 9 5 3 3 3 3 8 5 6
Сумма = 2
Для продолжения нажмите любую клавишу . . .

Например: Дан массив символов, содержащий как большие, так и малые буквы. Переписать массив так, чтобы большие и малые буквы чередовались. (Если каких-то символов больше – то записать их в конец массива)



Например:

#include


#include
#include
#include
using namespace std;

void main()


{
setlocale (LC_CTYPE,"rus");
const int M=9;
char a[M];
char sch[M];
char bch[M];
int cs=0, cb=0, k;
srand(time(NULL));
for(k=0;k{
cout<<"Введите символ: ";
cin>>a[k];
}
cout<<"Начальный массив\n";
for (k=0;k{
cout<}
cout<<"\n";


for(k=0; k

{

if(a



[k]>=97)

{

sch



[cs]=a[k];


cs++;

}
}



for(k=0;k

{
if(a[k]<=90)


{
bch[cb]=a[k];
cb++;
}
}
cout<<"Маленьких букв "<
if(cs

{
for(k=0;k


if(k%2==0&&cs>0)

{


cs--;

a[k]=sch[cs];


}
else
{
cb--;
a[k]=bch[cb];
}
}
else
{
for(k=0;kif(k%2==0&&cb>0)
{
cb--;
a[k]=bch[cb];
}
else
{
cs--;
a[k]=sch[cs];
}
}
cout<<"Результирующий массив \n";
for (k=0;k{
cout<}
cout<<"\n";
}

Компилируем нашу программу нажатием ctrl+F5 или (Dedug -> Start without debugging). И видим результат.

Результат

Введите символ: a


Введите символ: b
Введите символ: c
Введите символ: d
Введите символ: e
Введите символ: f
Введите символ: A
Введите символ: B
Введите символ: C
Начальный массив
a b c d e f A B C
Маленьких букв 6 больших букв 3
Результирующий массив
C f B e A d c b a
Для продолжения нажмите любую клавишу . . .

Многомерные массивы - это массивы в которых используется 2 или более идентификаторов для нумерации элементов, объявляются они точно так же:

const int M=10, N=15;


const int x=100, y=100, z=100;
double a[10][2];
int b[M][N]; 
int koordinat[x][y][z]; 

Рассмотрим работу с многомерными массивами, на примере двухмерного, для этого нам понадобиться вложенный цикл. Например: Дан двумерный массив размером 10х10 элементов. Необходимо подсчитать сумму элементов, находящихся выше главной диагонали и сумму элементов, находящихся ниже главной диагонали массива.



Например:

#include


#include
#include
#include
using namespace std;

void main()


{
setlocale (LC_CTYPE,"rus");

int num[10][10];


int sum=0, bsum=0;
srand(time(NULL));

for(int k=0; k<10; k++)


{
for(int j=0; j<10; j++)
num[k][j]=5;
}
for(int k=0; k<10; k++)
{
{
for(int j=0; j<10; j++)
cout<}
cout<}

for(int k=0;k<10;k++)


{
for(int j=k+1; j<10; j++)
{
sum+=num[k][j];
}
}
cout<<"Сумма над диагональю = "<for(int k=0;k<10;k++)
{
for(int j=0; j{
bsum+=num[k][j];
}
}
cout<<"Cумма под диаганалью = "<}

Компилируем нашу программу нажатием ctrl+F5 или (Dedug -> Start without debugging). И видим результат.

Результат

5 5 5 5 5 5 5 5 5 5


5 5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5 5
Сумма над диагональю = 225
Cумма под диаганалью = 225
Для продолжения нажмите любую клавишу . . .

Задача: 
Дан массив из N вещественных чисел. Необходимо подсчитать a1*a1 + a2*a2 + …aN*aN

Решение:

#include


#include
#include
#include
using namespace std;
void main()
{
setlocale (LC_CTYPE,"rus");
int a[50], N;
int sum=0;
srand(time(NULL));
cout<<"Введите кол-во элементов: ";
cin>>N;
for(int k=0; k{
a[k]=rand()%9+1;
}
for(int k=0;k{cout<for(int k=0; k{
sum+=a[k]*a[k];
}
cout<cout<<"Сумма = "<cout<}

Компилируем нашу программу нажатием ctrl+F5 или (Dedug -> Start without debugging). И видим результат.

Результат

Введите кол-во элементов: 15


4 2 9 1 9 9 7 4 3 5
2 5 3 8 6
Сумма = 501
Для продолжения нажмите любую клавишу . . .

Задача2: 
Дан массив целых чисел. Переписать его так, чтобы элементы со значениями меньшими A (вводит пользователь) находились в начале массива, а большие – в конце.

Решение:

#include


#include
#include
#include
using namespace std;
void main()
{
setlocale (LC_CTYPE,"rus");
int a[5];
int b[5]={0};
int N=5;
int counter=0, m, x=0,k=0,j=4, min;
srand(time(NULL));
for(int m=0; m{
a[m]=rand()%19-10;
}
for(int m=0; m{
cout<}
cout<<"\n";
cout<<"Меньше какого значения перемещать элементы в начало массива?";
cin>>min;
for(int x=0;x{
if(a[x]<=min)
{
b[k]=a[x];
k++;
}
if(a[x]>min)
{
b[j]=a[x];
j--;
}
}

for(int m=0; m
{
a[m]=b[m];
}

cout<<"\n";


for(int m=0; m{
cout<}
cout<<"\n";
}

Компилируем нашу программу нажатием ctrl+F5 или (Dedug -> Start without debugging). И видим результат.

Результат

7 8 -5 3 7


Меньше какого значения перемещать элементы в начало массива?3
-5 3 7 8 7
Для продолжения нажмите любую клавишу . . .

Задача3: 
Дан массив целых чисел. Выяснить упорядочены ли они по возрастанию или нет

Решение:

#include


#include
#include
#include
using namespace std;
void main()
{
setlocale (LC_CTYPE,"rus");
int num[5];
int hold=0, j=1;
srand(time(NULL));

for(int k=0; k<5; k++)


{
cout<<"Введите число: ";
cin>>num[k];
}
for(int k=0;k<5;k++)
{
if(num[k]{
hold++;
}
else
{break;}
j++;
}
if(hold==4)
{
cout<<"Упорядоченны\n";
}
else
cout<<"Не упорядоченны\n";
}

Компилируем нашу программу нажатием ctrl+F5 или (Dedug -> Start without debugging). И видим результат.

Результат

Введите число: 1


Введите число: 2
Введите число: 3
Введите число: 4
Введите число: 5
Упорядоченны
Для продолжения нажмите любую клавишу . . .

Задача4: 
Дан массив целых чисел. Найти номер элемента которому принадлежит заданное пользователем значение.

Решение:

#include


#include
#include
#include
using namespace std;
void main()
{
setlocale (LC_CTYPE,"rus");
int num[5];
int hold=0, j=0;
srand(time(NULL));
for(int k=0; k<5; k++)
{
cout<<"Введите число: ";
cin>>num[k];
}
cout<<"Введитне значение, которе будем искать в массиве\n";
cin>>hold;
for(int k=0;k<5;k++)
{
if(num[k]==hold)
{
cout<<"Элемент № "<j++;
break;
}
}

if(j!=1)
{


cout<<"Нет такого значения в массиве\n";
}
}

Компилируем нашу программу нажатием ctrl+F5 или (Dedug -> Start without debugging). И видим результат.

Результат

Введите число: 12


Введите число: 3
Введите число: 4
Введите число: 5
Введите число: 6
Введитне значение, которе будем искать в массиве
4
Элемент № 3
Для продолжения нажмите любую клавишу . . .

Задача5: 
Дан двумерный массив 10х10. Необходимо заменить на 0 значения всех элементов, которые находятся на главной диагонали и ниже ее.

Решение:

#include


#include
#include
#include
using namespace std;
void main()
{
setlocale (LC_CTYPE,"rus");

int num[10][10];


int sum=0, bsum=0;
srand(time(NULL));

for(int k=0; k<10; k++)


{
for(int j=0; j<10; j++)
{num[k][j]=5;}
}

for(int k=0;k<10;k++)


{
for(int j=0; j{
num[k][j]=0;
}
}

for(int k=0; k<10; k++)


{
for(int j=0; j<10; j++)
{
cout<}
cout<}
}

Компилируем нашу программу нажатием ctrl+F5 или (Dedug -> Start without debugging). И видим результат.

Результат

0 5 5 5 5 5 5 5 5 5


0 0 5 5 5 5 5 5 5 5
0 0 0 5 5 5 5 5 5 5
0 0 0 0 5 5 5 5 5 5
0 0 0 0 0 5 5 5 5 5
0 0 0 0 0 0 5 5 5 5
0 0 0 0 0 0 0 5 5 5
0 0 0 0 0 0 0 0 5 5
0 0 0 0 0 0 0 0 0 5
0 0 0 0 0 0 0 0 0 0
Для продолжения нажмите любую клавишу . . .

Задача6: 
В двумерном массиве размером N*N элементов найти и вывести на экран столбцы, значения элементов в которых упорядочены по возрастанию.

Решение:

#include


#include
#include
#include
using namespace std;

void main()


{
setlocale (LC_CTYPE,"rus");
const int N=3;
int num[N][N];
int hold=1;
srand(time(NULL));

for(int k=0; k
{
for(int j=0; j{
cout<<"Введите элемент № "<cin>>num[k][j];
}
}

for(int j=0;j
{
hold=1;
for(int k=0; k{
if(num[k][j]{
hold++;
}
if(hold==N)
{
for(int k=0; k{
cout<}
cout<}
}
}
}

Компилируем нашу программу нажатием ctrl+F5 или (Dedug -> Start without debugging). И видим результат.

Результат

Введите элемент № 0-0: 1


Введите элемент № 0-1: 3
Введите элемент № 0-2: 5
Введите элемент № 1-0: 2
Введите элемент № 1-1: 3
Введите элемент № 1-2: 1
Введите элемент № 2-0: 5
Введите элемент № 2-1: 2
Введите элемент № 2-2: 3
1 2 5
Для продолжения нажмите любую клавишу . . .

Перейти к




Достарыңызбен бөлісу:
1   ...   4   5   6   7   8   9   10   11   12
Loading...




©melimde.com 2020
әкімшілігінің қараңыз

    Басты бет
Сабақтың тақырыбы
Сабақтың мақсаты
бойынша жиынтық
Сабақ тақырыбы
жиынтық бағалау
ғылым министрлігі
рсетілетін қызмет
Жалпы ережелер
тоқсан бойынша
қызмет стандарты
бекіту туралы
бағалауға арналған
Сабақ жоспары
Әдістемелік кешені
Қазақстан республикасы
тоқсанға арналған
жиынтық бағалаудың
туралы хабарландыру
жиынтық бағалауға
арналған жиынтық
бағалау тапсырмалары
арналған тапсырмалар
білім беретін
республикасы білім
Қазақстан республикасының
бағалаудың тапсырмалары
мерзімді жоспар
Қазақстан тарихы
пәнінен тоқсанға
Жұмыс бағдарламасы
арналған әдістемелік
біліктілік талаптары
әкімінің аппараты
Қазақ әдебиеті
туралы анықтама
Мектепке дейінгі
мамандығына арналған
нтізбелік тақырыптық
қойылатын жалпы
жалпы біліктілік
Конкурс туралы
мемлекеттік әкімшілік
болып табылады
оқыту әдістемесі
жалпы конкурс
Реферат тақырыбы
қатысушыларға қойылатын
Қазақстан облысы
әдістемелік ұсыныстар
әдістемелік кешені
тақырыптық жоспар

Loading...