Руденко Н.А., Семенова Н.В. Алгоритмы обработки одномерных массивов на языке С++
Материал из Letopisi.Ru — «Время вернуться домой»
(Различия между версиями)
(→Обработка одномерных массивов на языке С++) |
(→Обработка одномерных массивов на языке С++) |
||
Строка 53: | Строка 53: | ||
{setlocale(LC_ALL, "Russian"); | {setlocale(LC_ALL, "Russian"); | ||
int const n = 20; | int const n = 20; | ||
− | int Mas[n], i; | + | int Mas[n],i; |
− | for (i = 0; i < n / 2; i++) | + | for (i = 0; i < n/2; i++) |
− | { | + | { cout << " Введите " << i << "элемент массива"; |
− | + | cin >> Mas[i]; } | |
− | cin >> Mas[i]; | + | for (i = n/2; i < n; i++) |
− | + | Mas[n] = -10 + rand() % (15 - (-10)+1); | |
− | for (i = n / 2; i < n; i++) | + | for(i=0;i<n;i++) |
− | Mas[ | + | cout<< Mas[i]<<"\n"; |
− | for (i = 0; i<n; i++) | + | |
− | cout << Mas[i] << "\n"; | + | |
int s = 0; | int s = 0; | ||
for (i = 0; i < n; i++) | for (i = 0; i < n; i++) | ||
s = s + Mas[i]; | s = s + Mas[i]; | ||
− | cout << "сумма=" << s << "\n"; | + | cout << "сумма=" << s<<"\n"; |
| вставить изображение блок-схемы | | вставить изображение блок-схемы | ||
− | | | + | |----- |
|Найти сумму значений отрицательных элементов. | |Найти сумму значений отрицательных элементов. | ||
Каждый третий элемент увеличить на 5. | Каждый третий элемент увеличить на 5. | ||
Строка 90: | Строка 88: | ||
cout<<"Mas["<<i<<"]="<<Mas[i]<<"\n"; | cout<<"Mas["<<i<<"]="<<Mas[i]<<"\n"; | ||
| | | | ||
− | [[Файл: | + | [[Файл:ПЛАН.jpg]] |
|----- | |----- | ||
Строка 115: | Строка 113: | ||
| Найти максимальный элемент массива и его порядковый номер. | | Найти максимальный элемент массива и его порядковый номер. | ||
Найти минимальный элемент и его порядковый номер среди положительных элементов. | Найти минимальный элемент и его порядковый номер среди положительных элементов. | ||
− | | | + | | вставить программный код |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
| [[Файл:нимок.PNG]] | | [[Файл:нимок.PNG]] | ||
|----- | |----- | ||
Строка 146: | Строка 124: | ||
i++;} | i++;} | ||
cout << "Сумма четных эл. до первого нулевого: " << S << endl; | cout << "Сумма четных эл. до первого нулевого: " << S << endl; | ||
− | |[[Файл: | + | |[[Файл:нигга1.JPG]] |
|----- | |----- | ||
|Образовать новый массив, элементами которого будут элементы исходного, оканчивающиеся на цифру 5. | |Образовать новый массив, элементами которого будут элементы исходного, оканчивающиеся на цифру 5. | ||
Строка 160: | Строка 138: | ||
for (i = 0; i < j; i++) | for (i = 0; i < j; i++) | ||
cout << Mas1[i] << ' '; | cout << Mas1[i] << ' '; | ||
− | |[[Файл: | + | |[[Файл:1нигга.JPG]] |
|----- | |----- | ||
| Отсортировать первые 15 элементов массива по возрастанию методом пузырька | | Отсортировать первые 15 элементов массива по возрастанию методом пузырька | ||
Строка 218: | Строка 196: | ||
// убираем каждый второй элемент массива | // убираем каждый второй элемент массива | ||
for (int i = 1, j = i; i < n, j <n; ++i, j = j + 2) | for (int i = 1, j = i; i < n, j <n; ++i, j = j + 2) | ||
− | + | mass[i] = mass[j + 1]; | |
− | + | // Вывод массива | |
− | + | cout << "Измененный массив " << "\n"; | |
− | + | for (int i = 0; i <= 4; i++) | |
− | http://upload.akusherstvo.ru/ | + | cout << "mass[" << i << "] = " << mass[i] << "\n"; |
+ | | http://upload.akusherstvo.ru/image986086.jpg | ||
+ | http://upload.akusherstvo.ru/image986087.png | ||
|+ | |+ | ||
|} | |} |
Версия 09:55, 6 апреля 2016
В имени файла надо указать, чья работа!
Файлы удалены - некорректное имя файла!
Статью необходимо переименовать- см. Имя статьи |
Обработка одномерных массивов на языке С++
Условие задачи | Программный код | Блок-схема |
---|---|---|
Задан массив Mas размерности n.
Первая половина массива заполнена с клавиатуры, вторая - случайными числами из диапазона [-10,15]. Вывести элементы массива в строчку. Найти сумму всех элементов массива. |
#include <iostream> #include <conio.h> #include <locale.h> #include <stdlib.h> #include<ctime> #include<math.h> using namespace std; int main() {setlocale(LC_ALL, "Russian"); int const n = 20; int Mas[n],i; for (i = 0; i < n/2; i++) { cout << " Введите " << i << "элемент массива"; cin >> Mas[i]; } for (i = n/2; i < n; i++) Mas[n] = -10 + rand() % (15 - (-10)+1); for(i=0;i<n;i++) cout<< Mas[i]<<"\n"; int s = 0; for (i = 0; i < n; i++) s = s + Mas[i]; cout << "сумма=" << s<<"\n"; |
вставить изображение блок-схемы |
Найти сумму значений отрицательных элементов.
Каждый третий элемент увеличить на 5. |
int S=0; int p=1; for(i=0;i<n;i++) if(Mas[i]<0) S=S+Mas[i]; cout<<"Сумма="<<S<<"\n"; for(i=0;i<n;i++) if(Mas[i]%2==0) { p=p*Mas[i]; } cout<<"Количество="<<p<<"\n"; for(i=0;i<n;i=i+3) Mas[i]=Mas[i]+5; for(i=0;i<n;i++) cout<<"Mas["<<i<<"]="<<Mas[i]<<"\n"; |
|
Найти произведение положительных элементов, стоящих на четных местах. Найти количество элементов, равных нулю. Вывести номера элементов, значения которых больше 10. |
int p = 1,i; for (i = 0; i <= n-1; i=i+2) if (Mas[i] > 0) p = p*Mas[i]; cout « "произведение положительных чисел, стоящих а четных местах=" « p«endl; int k = 0; for (i = 0; i <= n-1; i++) if (Mas[i] == 0) k++; cout « "количество элементов, равных нулю =" « k«endl; for (i = 0; i <= n-1; i++) if (Mas[i] > 10) cout « i « " элемент больше 10"«endl; |
|
Найти максимальный элемент массива и его порядковый номер.
Найти минимальный элемент и его порядковый номер среди положительных элементов. |
вставить программный код | Файл:Нимок.PNG |
Вычислить сумму четных элементов до первого нулевого элемента. |
int i=0, S=0; while(Mas[i]!=0 && i<n) {if(Mas[i]%2==0) S+=Mas[i]; i++;} cout << "Сумма четных эл. до первого нулевого: " << S << endl; |
Файл:Нигга1.JPG |
Образовать новый массив, элементами которого будут элементы исходного, оканчивающиеся на цифру 5. |
int Mas1[n]; int j = 0, i; for(i = 0; i < n; i++) if (Mas[i]%10==5 || Mas[i]%10==-5) {Mas1[j]=Mas[i]; j++;} cout << "\nНовый массив:\n"; i=0; for (i = 0; i < j; i++) cout << Mas1[i] << ' '; |
Файл:1нигга.JPG |
Отсортировать первые 15 элементов массива по возрастанию методом пузырька
Отсортировать все элементы массива по убыванию методом поиска максимального/минимального элемента |
int b=0; for (i=1;i<=n-1;i++) for (j=0;j<=n-1;j++) if (Mas[j]>Mas[j+1]) { Mas[j]=b; Mas[j]=Mas[j+1]; Mas[j+1]=b;}
int b=0; for (i=0;i<=n-1;i++) {min=Mas[i]; nmin=i; for(j=i+1;j<=n-;j++;) if(Mas[j]>min) {min=Mas[j]; nmin=j;} b=Mas[i]; Mas[i]=Mas[nmin]; Mas[nmin]=b; } |
Файл:Неназывайте.JPG |
Найти среднее арифметическое элементов массива, расположенных между максимальным и минимальным элементами
Сжать массив, выбросив из него каждый второй элемент. |
const int n = 10; int Mas[n], tmax, tmin; float sum = 0; // Поиск максимального tmax = 0; for (int i = 1; i<n; i++) if (Mas[i]>Mas[tmax]) tmax = i; cout << "Максимальный элемент " << Mas[tmax] << " с номером " << tmax << endl; //Поиск минимального tmin = 0; for (int i = 1; i<n; i++) if (Mas[i]<Mas[tmin]) tmin = i; cout << "Маинимальный элемент " << Mas[tmin] << " с номером " << tmin << endl; // Обмен значения, если минимальное больше максимального if (tmin>tmax) swap(tmin,tmax); // Среднее значения for (int i = tmin + 1; i<tmax; i++) sum = sum + Mas[i]; cout << "Сумма: " << sum << endl; cout << "Среднее арифметическое: " << sum / (tmax - tmin - 1) << endl; // убираем каждый второй элемент массива for (int i = 1, j = i; i < n, j <n; ++i, j = j + 2) mass[i] = mass[j + 1]; // Вывод массива cout << "Измененный массив " << "\n"; for (int i = 0; i <= 4; i++) cout << "mass[" << i << "] = " << mass[i] << "\n"; |
|