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

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

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

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

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

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

от 25%

Подписываем

договор

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

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

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

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

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

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

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

Вариант №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. Квалификация простого убийства
2. 03.1984 г. Гражданство- Российская Федерация
3. Лабораторная работа 5 Базы данных Количество часов 20 в т
4. тематизация сведений о распределении источников выбросов на территории количестве составе и параметрах вы
5. Содержит антитела к одному из серотипов вируса парагриппа
6. СЛУЖБА АДМИНИСТРАЦИИ СМОЛЕНСКОЙ ОБЛАСТИ http---dminsmolensk
7. Управление мобилизационной подготовкой и мобилизацией здравоохранения РФ Построение системы мобилиза
8. Тема 14 Організація праці на постах регулювання кутів напряму коліс та регулювання гальм
9. ПРОИСХОЖДЕНИЕ ГОСУДАРСТВА И ПРАВА
10. то в глубине души прозвонил хрустальный колокольчик
11. Тема-Класифікація товарів
12. Профилактика стоматологических заболеваний и гигиена полости рта СТАНДАРТНЫЙ МЕТОД ЧИСТКИ ЗУБОВ
13. по теме- Способы изображения земной поверхности I
14. ЮЖНОУРАЛЬСКИЙ ИНСТИТУТ УПРАВЛЕНИЯ И ЭКОНОМИКИ стр
15. Тема- Денежная система- эволюция типы ее современные особенности.html
16. етнос Розкрийте зміст понять
17. тематических наук заведующий кафедрой Прикладной математики Уральского государственного экономическог
18. Неопределенные местоимения английского языка
19. на тему БЕРЕЗНЕВІ СТАТТІ учня IV курса групи А ліцею 32 Родіонова Дмитра 19
20. Поширеність, розвиток та шкодочинність темно-бурої плямистості ярого ячменю в умовах ТОВ «Агрофірма Зарожне» Чугуївського району Харківської області