Руденко Н.А., Семенова Н.В. Алгоритмы обработки одномерных массивов на языке С++

Материал из 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 << "элемент массива";
  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[i] = -10 + rand() % (15 - (-10) + 1);
+
   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";
 
|
 
|
[[Файл:Документ2.jpg]]
+
[[Файл:ПЛАН.jpg]]
  
 
|-----
 
|-----
Строка 115: Строка 113:
 
| Найти максимальный элемент массива и его порядковый номер.
 
| Найти максимальный элемент массива и его порядковый номер.
 
Найти минимальный элемент и его порядковый номер среди положительных элементов.
 
Найти минимальный элемент и его порядковый номер среди положительных элементов.
|
+
| вставить программный код
Min=Mas[0];
+
nMin=0;
+
Max=Mas[0];
+
nMax=0;
+
for(int i=0; i<=19; i++)
+
    if(Mas[i]>=Max)
+
{
+
Max=Mas[i];
+
nMax=i;
+
}
+
    for(int i=0; i<=19; i++)
+
    if(Mas[i]>0)
+
      if(Mas[i]<=Min)
+
{
+
Min=Mas[i];
+
nMin=i;
+
}
+
cout<<" Минимальный элемент среди положительных  = "<<Min<<".Его порядковый номер "<<nMin+1<<"\n";
+
cout<<" Максимальный  элемент = "<<Max<<".Его порядковый номер "<<nMax+1<<"\n";
+
|
+
 
| [[Файл:нимок.PNG]]
 
| [[Файл:нимок.PNG]]
 
|-----
 
|-----
Строка 146: Строка 124:
 
   i++;}
 
   i++;}
 
  cout << "Сумма четных эл. до первого нулевого: " << S << endl;
 
  cout << "Сумма четных эл. до первого нулевого: " << S << endl;
|[[Файл:НИГГА.JPG]]  
+
|[[Файл:нигга1.JPG]]  
 
|-----
 
|-----
 
|Образовать новый массив, элементами которого будут элементы исходного, оканчивающиеся на цифру 5.
 
|Образовать новый массив, элементами которого будут элементы исходного, оканчивающиеся на цифру 5.
Строка 160: Строка 138:
 
  for (i = 0; i < j; i++)
 
  for (i = 0; i < j; i++)
 
   cout << Mas1[i] << ' ';
 
   cout << Mas1[i] << ' ';
|[[Файл:НИГГА.JPG]]
+
|[[Файл: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)
         Mas[i] = Mas[j + 1];
+
         mass[i] = mass[j + 1];
 
+
// Вывод массива
|
+
    cout << "Измененный массив " << "\n";
http://upload.akusherstvo.ru/image986115.jpg
+
    for (int i = 0; i <= 4; i++)
  http://upload.akusherstvo.ru/image986116.jpg
+
        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";

Файл:ПЛАН.jpg

Найти произведение положительных элементов, стоящих на четных местах. Найти количество элементов, равных нулю. Вывести номера элементов, значения которых больше 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;
oGd7jtjrkGY.jpg
Найти максимальный элемент массива и его порядковый номер.

Найти минимальный элемент и его порядковый номер среди положительных элементов.

вставить программный код Файл:Нимок.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";
image986086.jpg
image986087.png
Персональные инструменты
Инструменты