Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
visual с++.doc
Скачиваний:
30
Добавлен:
18.08.2019
Размер:
10.99 Mб
Скачать

1. Индивидуальное задание №1:

1.1. Постановка задачи:

Составить программу с использованием динамических массивов для решения задачи.

Задача: составить программу, выдающую индексы заданного элемента или сообщающую, что такого элемента в массиве нет.

1.2. UML-диаграмма:

1.3. Листинг программы:

// Лабораторная работа №5

// Индивидуальное задание №1

#include "stdafx.h"

#include <iostream>

#include "conio.h"

#include "math.h"

#include "windows.h"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

setlocale( LC_ALL, "Russian" );

const int N = 1000;

int n, i, a;

float *C = new float[N];

bool flag = false;

cout<<"Лабораторная работа № 5\n";

cout<<"\nГорошко А.А., БАС-051\n";

cout<<"\nВариант № 6\n";

cout<<"\n\nИндивидуальное задание № 1:\n";

cout<<"\nСоставить программу с использованием динамических\n";

cout<<"\nмассивов для решения задачи.\n";

cout<<"\n\nЗадача: составить программу, выдающую индексы заданного элемента\n";

cout<<"\nили сообщающую, что такого элемента в массиве нет.\n";

cout<<"\n\nРабота программы:\n";

A:

cout<<"\nВведите количество элементов: ";

cin >> n;

if(n <= 0 || n > N)

{

cout<<"\nНеверный размер массива!"<< "\n";

goto A;

}

cout<<"\nВведите элементы массива: \n\n";

for(i = 0; i < n; i++) cin >> C[i];

if(false)

{

B:

cout<<"\nТакого элемента в массиве нет!"<< "\n";

}

cout<<"\nВведите элемент массива, индексы которого хотите узнать: ";

cin >> a;

for(i = 0; i < n; i++)

{

if (C[i] == a)

{

cout<<"\nИндекс заданного элемента: ";

cout << "[" << i << "]" << "\n";

flag = true;

}

else if((i+1) == n && flag == false)

goto B;

}

delete[] C;

getch();

return 0;

}

1.4. Результаты работы программы:

2. Индивидуальное задание №2:

2.1. Постановка задачи:

Составить программу с использованием динамических массивов для решения задачи на переупорядочивание элементов массива. В качестве алгоритма сортировки использовать метод быстрой сортировки массива. В одномерном массиве, состоящем из n вещественных элементов, вычислить:

  1. максимальный по модулю элемент массива;

  2. сумму элементов массива, расположенных между первым и вторым положительными элементами.

Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных.

2.2. UML-диаграмма:

2.3. Листинг программы:

#include "stdafx.h"

#include <iostream>

#include <conio.h>

#include <tchar.h>

using namespace std;

int sortirovka(float array[],int numberel)

{

int j=0;

float sum=0;

cout<<endl;

/********Алгоритм быстрой сортировки*******/

float middle,temp;

int *stackl=new int [numberel], *stackr=new int [numberel];

int sp,i,left,right;

sp=1;

stackl[1]=0; stackr[1]=numberel-1;

while(sp>0)

{

left=stackl[sp];

right=stackr[sp];

sp--;

while(left<right)

{

i=left;j=right;

middle=array[(left+right)/2];

while(i<j)

{

while(array[i]<middle) i++;

while(middle<array[j]) j--;

if (i<=j)

{

temp=array[i];

array[i]=array[j];

array[j]=temp;

i++;j--;

}

}

if (i<right)

{

sp++;

stackl[sp]=i;

stackr[sp]=right;

}

right=j;

}

}

cout <<"Результат быстрой сортировки: "<<endl;

for(i=0;i<numberel;i++) cout << array[i]<<" ";

cout<<endl;

delete [] stackl;

delete [] stackr;

/*******Сумма первых неотрицательных чисел******/

sum=0;

for(int i=0;i<numberel;++i)

{

if (array[i]>0)

{

while (array[i]>0 && i<numberel)

{

sum+=array[i];

++i;

}

break;

}

}

cout<<"Сумма первых неотрицательных чисел = "<<sum<<endl;

j=0;

cout<<endl;

for(int i=0;i<numberel;++i)

if (array[i]!=0) {array[j]=array[i]; ++j;}

for(int i=j;i<numberel;++i)

array[i]=0;

/*********Массив с нулями в конце************/

cout<<"Массив с нулями в конце: "<<endl;

cout<<endl;

for(int i=0;i<numberel;++i)

{

cout<<array[i]<<"\t";

}

cout<<endl;

delete [] array;

return 0;

}

int _tmain(int argc, _TCHAR* argv[])

{

int metod=0;

int n=13,max,j=0;

cout<<"Способ заполнения массива: "<<endl;

cout<<"\t1-Вручную\n";

cout<<"\t2-Случайное заполнение\n";

cin>>metod;

if (metod==1)

{

cout<<"Введите число элементов ";

cin>>n;

float *m=new float [n],sum;

cout<<endl;

for(int i=0;i<n;++i)

{

++j;

cout<<"Введите "<<j<<" элемент массива: ";

cin>>m[i];

}

sortirovka(m,n);

}

if (metod==2)

{

cout<<"генерация массива"<<endl;

float *l=new float [n];

for(j=0;j<n;++j)

l[j]=rand() %13;

cout<<"Полученный массив"<<endl;

for(j=0;j<n;++j)

cout<<l[j]<<"\t";

cout<<endl;

sortirovka(l,n);

}

return 0;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]