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

Материал из Letopisi.Ru — «Время вернуться домой»
Перейти к: навигация, поиск


В имени файла надо указать, чья работа!

Файлы удалены - некорректное имя файла!




Статью необходимо переименовать- см. Имя статьи









Обработка одномерных массивов на языке С++



Условие задачи Программный код Блок-схема
Задан массив 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";
Файл:Крякря.jpg
Найти сумму значений отрицательных элементов.

Каждый третий элемент увеличить на 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=2;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
Найти максимальный элемент массива и его порядковый номер.

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

Min=Mas[0];
nMin=0;
Max=Mas[0];
nMax=0;
for(int i=0; i<=n-1; i++)
   if(Mas[i]>=Max)
{
Max=Mas[i];
nMax=i;
}
   for(int i=0; i<=n-1; i++)
   if(Mas[i]>0)
      if(Mas[i]<=Min)
{
Min=Mas[i];
nMin=i;
}
cout<<" Минимальный элемент среди положительных  = "<<Min;
cout<<".Его порядковый номер "<<nMin+1<<"\n";
cout<<" Максимальный  элемент = "<<Max<<".Его порядковый номер "<<nMax+1<<"\n";
Файл:Снимок.JPG
Вычислить сумму четных элементов до первого нулевого элемента.
int i=0, S=0;
while(Mas[i]!=0 && i<n)
{if(Mas[i]%2==0)		
  S+=Mas[i];	
 i++;}
cout << "Сумма четных эл. до первого нулевого: " << S << endl;
БлокСхема1Группы5.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] << ' ';
Блок-схема2Группы5.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-1;j++;)
       if(Mas[j]>min)
       {min=Mas[j];
        nmin=j;}
b=Mas[i];
Mas[i]=Mas[nmin];
Mas[nmin]=b;
}
Blokovayshemamozno.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";
image986168.jpg
image986169.jpg
Персональные инструменты
Инструменты