У вас вопросы?
У нас ответы:) SamZan.net

ЛАБОРАТОРНАЯ РАБОТА 2 Статические и динамические массивы

Работа добавлена на сайт samzan.net: 2016-03-30

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 8.3.2025

Министерство образования Республики Беларусь

УО “Барановичский государственный университет”

Инженерный факультет

Кафедра информационный систем и технологий (ИСТ)

Объектно-ориентированное программирование

Вариант №3

Группа Ист-21

Ф.И.О. студента     Ревинский В.О

Ф.И.О. преподавателя      Рогозик А.С.

Подпись преподавателя _______________

Барановичи, 2014

ЛАБОРАТОРНАЯ РАБОТА №2

Статические и динамические массивы. Указатели. Ссылки. Модульное ПРОГРаммирование.

Задание1

1) Сформировать массив из n элементов с помощью датчика случайных чисел (n задается пользователем с клавиатуры).

2) Распечатать полученный массив.

3) Выполнить удаление указанных элементов из массива.

4) Вывести полученный результат.

5) Выполнить добавление указанных элементов в массив.

6) Вывести полученный результат.

7) Выполнить перестановку элементов в массиве.

8) Вывести полученный результат.

9) Выполнить поиск указанных в массиве элементов и подсчитать количество сравнений, необходимых для поиска нужного элемента.

10) Вывести полученный результат.

11) Выполнить сортировку массива указанным методом.

12) Вывести полученный результат.

13) Выполнить поиск указанных элементов в отсортированном массиве и подсчитать количество сравнений, необходимых для поиска нужного элемента.

14) Вывести полученный результат.

Код:

#include "stdafx.h"

#include<iostream>

using namespace std;

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

{   locale::global(locale("rus"));

int a,b,c,x;

int *ptr=NULL;

int z[100];

while(true){

cout<<"1)Создание массива и просмотр"<<endl;

cout<<"2)Удаление максимального"<<endl;

cout<<"3)Добавить К элементов в начало"<<endl;

cout<<"4)Перевернуть массив"<<endl;

cout<<"5)Найти первый четный "<<endl;

cout<<"6)Сортировка "<<endl;

cout<<"7)Выход "<<endl;

cout<<"выберите действие ";

cin>>x;

if(x==1){

system("cls");

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

cin>>a;

ptr=new int[a];

for(int i=0;i<a;i++){     //заполнение случайными числами

ptr[i]=rand()%100-50;

z[i]=ptr[i];

cout<<ptr[i]<<" ";

}

cout<<endl;}

if(x==2){system("cls");

b=ptr[0];

for(int i=0;i<a;i++){    //поиск максимального

if(b<ptr[i]){ b=ptr[i]; c=i; }

}

cout<<b<<" -максимальный элемент"<<endl;

int *q=NULL;

int y=0;

q=new int[a];

for(int i=0;i<a;i++){          //удаление максимального елемента

if(c!=i){q[y]=ptr[i]; y++;}

}

delete [] ptr;        //удаление старого массива

ptr=new int[a-1];

for(int i=0;i<a-1;i++){

ptr[i]=q[i];                         // вывод редактированного массива

cout<<ptr[i]<<" ";

}

cout<<endl;

a=a-1;

delete []q;

}

//-------------------------------------------------

if(x==3){

system("cls");

int t,t1,e;

int *q1=NULL;

cout<<"Кол-во добовляемых эле-тов ";

cin>>t;

a=t+a;

q1=new int[a];

for(int i=0;i<t;i++){

cout<<"Введите добовляемый елемент ";

cin>>q1[i];

}e=0;

for(int i=t;i<a;i++){

q1[i]=ptr[e];e++;

}

delete []ptr;

ptr=new int[a];

for(int i=0;i<a;i++){

ptr[i]=q1[i];

cout<<ptr[i]<<" ";

}

delete []q1;

cout<<endl;

}

//--------------------------------------

if(x==4){

system("cls");

int n;

int *q2=NULL;

q2=new int[a];

n=a-1;

for(int i=0;i<a;i++){

q2[i]=ptr[n];n--;

}

for(int i=0;i<a;i++){

ptr[i]=q2[i];

cout<<ptr[i]<<" ";

}cout<<endl;

delete []q2;

}

if(x==5){system("cls");

for(int i=0;i<a;i++){

if(ptr[i]%2==0){cout<<ptr[i]<<"--Первый четный!"<<endl;break;}

}

}

if(x==6){

int count,key;

for (int i=0;i<a-1;i++)

{

for (int j=0; j<a-(i+1); j++)

{

key=j+1;

count=ptr[key];

if (ptr[j]>ptr[key])

{

ptr[key]=ptr[j];

ptr[j]=count;}}}

for(int i=0;i<a;i++){cout<<ptr[i]<<" ";}cout<<endl;

}

if(x==7){break;}

}

system("pause");

return 0;}

Задание 2

1. Сформировать динамический одномерный массив, заполнить его случайными числами и вывести на печать.

2. Выполнить указанное в варианте задание и вывести полученный массив на печать.

3. Сформировать динамический двумерный массив, заполнить его случайными числами и вывести на печать.

4. Выполнить указанное в варианте задание и вывести полученный массив на печать.

Код:

#include "stdafx.h"

#include <iostream>

using namespace std;

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

{

setlocale (LC_ALL, "RUS");

 int i,e, j, N,q, M,n;

 int *c=NULL,*x=NULL;

 double *a,*b,*d;

//ввод размеров матрицы

cout<<"vvedite razmer odnomernogo massiva";

cin>>n;

c=new int[n];

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

c[i]=rand()%100-50;

cout<<c[i]<<" ";

}

cout<<endl;

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

 if(c[i]%2==0){q=i;break;}

}

x=new int[n-1];

e=0;

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

 if(q!=i){x[e]=c[i];e++;}

}

for(int i=0;i<n-1;i++){

cout<<x[i]<<" ";

}

delete []c;

delete []x;

cout<<endl;

cout<<"vvedite razmer matricy ";

cout<<"N = "; cin>>N;

cout<<"M = "; cin>>M;

//выделение памяти для матриц

a=new double[N*M];

b=new double[N*M];

//ввод матрицы А

cout<<"введите матрицу А"<<endl;

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

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

{

*(a+i*M+j)=rand()%100-50;

}

for (i=0; i<N; cout<<endl, i++)

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

cout<<*(a+i*M+j)<<"\t";

int s;

cout<<"Vvedite nomer stroki dla dobavlenia ";

cin>>s;

N=N+s;

d=new double[N*M];

for (i=0; i<N-s; i++)

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

{

*(d+i*M+j)=*(a+i*M+j);

}

for (i=N-s; i<N; i++)

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

{

*(d+i*M+j)=rand()%100-50;

}

for (i=0; i<N; cout<<endl, i++)

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

cout<<*(d+i*M+j)<<"\t";

//освобождение памяти

delete []a;

delete []b;

delete []d;

system("pause");

 return 0;

}

Вывод: Я получил практические навыки при работе со статическими и динамическими массивами, указателями, ссылками и функциями на языке программирования Visual C++.




1. А D2 Эpгoкальциферол Е Токоферол К Филлохинон
2. І Гісторыя Беларусі і сусветная цывілізацыя - А
3. Охрана труда и защита окружающей среды
4. Я буду тебя защищать Новенький Дорогие ученики у меня для вас еще о
5. Working memoryоперативная память utomtic processionавтоматическая обработка Effortful memoryпамять требующая выполнения з
6. Work very much My nme is I~m eleven-twelve
7. ЛАБОРАТОРНАЯ РАБОТА 6 ИЗУЧЕНИЕ ОСНОВНЫХ ХАРАКТЕРИСТИК ВАКУУМНОГО ФОТОЭЛЕМЕНТА Цель работы- изучит
8. Что за праздник готовится тут Видно почетные гости придут Может придут генералы ~ Нет Может приду
9. был себе Стив.Жил он в стране под названием Minecrft
10. консультативных услуг медицинским работникам и гражданам это фармацевтическая помощь Изыскание наиб