- •Основные сведения
- •Ввод и вывод данных через потоки
- •Описание функций математического модуля math
- •Модуль random
- •Лабораторная работа №1 Выполнение программы простой структуры. Вычисление выражений с использованием стандартных функций
- •Варианты
- •Лабораторная работа №2
- •Варианты
- •Лабораторная работа №3
- •Лабораторная работа №4 Работа с одномерными массивами
- •Сортировка массивов
- •Сортировка методом пузырьков (метод простого обмена)
- •Сортировка методом вставок
- •Сортировка методом простого выбора
- •Постановка задачи
- •Варианты
- •Лабораторная работа №5
- •Постановка задачи
- •Варианты
- •Методические указания
- •Лабораторная работа №6 Динамические массивы
- •Постановка задачи
- •Варианты
- •Лабораторная работа №7
- •Постановка задачи
- •Варианты
- •Лабораторная работа №8 Хранение данных на внешних носителях
- •Определение конца файла
- •Закрытие файла, если он больше не нужен
- •Ввод/вывод данных с помощью функций унаследованных от с
- •Постановка задачи
Постановка задачи
Сформировать динамический одномерный массив, заполнить его случайными числами и вывести на печать.
Выполнить указанное в варианте задание и вывести полученный массив на печать.
Сформировать динамический двумерный массив, заполнить его случайными числами и вывести на печать.
Выполнить указанное в варианте задание и вывести полученный массив на печать.
Для выделения памяти, заполнения массивов, удаления и добавления элементов (строк, столбцов) написать отдельные функции. В функции main() должны быть размещены только описания переменных и обращения к соответствующим функциям
Варианты
№ варианта |
Одномерный массив |
Двумерный массив |
1 |
Удалить первый четный элемент |
Добавить строку с заданным номером |
2 |
Удалить первый отрицательный элемент |
Добавить столбец с заданным номером |
3 |
Удалить элемент с заданным ключом (значением) |
Добавить строку в конец матрицы |
4 |
Удалить элемент равный среднему арифметическому элементов массива |
Добавить столбец в конец матрицы |
5 |
Удалить элемент с заданным номером |
Добавить строку в начало матрицы |
6 |
Удалить N элементов, начиная с номера K |
Добавить столбец в начало матрицы |
7 |
Удалить все четные элементы |
Добавить К строк в конец матрицы |
8 |
Удалить все элементы с четными индексами |
Добавить К столбцов в конец матрицы |
9 |
Удалить все нечетные элементы |
Добавить К строк в начало матрицы |
10 |
Удалить все элементы с нечетными индексами |
Добавить К столбцов в начало матрицы |
11 |
Добавить элемент в начало массива |
Удалить строку с номером К |
12 |
Добавить элемент в конец массива |
Удалить столбец с номером К |
13 |
Добавить К элементов в начало массива |
Удалить строки, начиная со строки К1 и до строки К2 |
14 |
Добавить К элементов в конец массива |
Удалить столбцы, начиная со столбца К1 и до столбца К2 |
15 |
Добавить К элементов, начиная с номера N |
Удалить все четные строки |
16 |
Добавить после каждого отрицательного элемента его модуль |
Удалить все четные столбцы |
17 |
Добавить после каждого четного элемента элемент со значением 0 |
Удалить все строки, в которых есть хотя бы один нулевой элемент |
18 |
Добавить по К элементов в начало и в конец массива |
Удалить все столбцы, в которых есть хотя бы один нулевой элемент |
19 |
Добавить элемент с номером К |
Удалить строку, в которой находится наибольший элемент матрицы |
20 |
Удалить элемент с заданным номером |
Добавить строки после каждой четной строки матрицы |
Пример формирования динамического массива и заполнения его с клавиатуры через функцию arr
#include<iostream.h>
#include<conio.h>
void arr(int **a,int n, int m) //функция-подпрограмма заполнения массива
{
int i,j;
for (i=0;i<n;i++)
{cout<<"Input elements of "<<i+1<<" string:"<<'\t';
for (j=0;j<m;j++)
{ cin>>a[i][j];
}
}
}
int main()
{
int i,j,m,n;
cout<< "Введите размерность двумерного массива: "<<"\n";
cout << "Количество строк n= ";
cin >>n;
cout << " Количество столбцов m = ";
cin>>m;
int **a;
a = new int* [n]; //выделение памяти под строки
for(int i=0;i<n;i++) a[i] = new int[m]; //выделение памяти под столбцы
arr(a,n,m); //вызов функции заполнения массива
for (i=0;i<n;i++){
for(j=0;j<m;j++) cout<<a[i][j]<<'\t'; //вывод массива
cout<<'\n';}
getch();
}
Пример удаления столбца с номерок k из динамического массива
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
int main ()
{
int **a;
int **matr,**b;
int n,i,m,j,k;
cout << "Введите количество строк/n: " ; cin >> n;
cout<<"Введите количество столбцов/n:"; cin>>m;
matr=new int*[n];
for(int i=0;i<n;i++){matr[i]=new int [m];}
srand(time(NULL));
for (i=0; i<n; i++)
{for (j=0;j<m;j++)
{ matr[i][j]=rand()%50;
cout<<matr[i][j]<<"\t";}
cout<<endl;}
cout<<"Введите номер столбца"; cin>>k;
b=new int*[n]; //Выделяется память под новый массив,
for(int i=0;i<n;i++){b[i]=new int(m-1);} //в котором кол-во столбцов на 1 меньше
for (j=0;j<k;j++) //Запись эл-в из старого массива в новый
for (i=0;i<n;i++) //Кроме k-го столбца
{b[i][j]=matr[i][j];}
for (j=k;j<(m-1);j++)
{for (i=0;i<n;i++)
b[i][j]=matr[i][j+1];
}
cout<<"New array\n";
for (i=0;i<n;i++)
{for (j=0;j<m-1;j++)
cout<<b[i][j]<<'\t';
cout<<'\n';}
getch ();
}