- •Курсовая работа по технологии программирования
- •Постановка задачи
- •1.2 Программа решения задачи 1.1
- •1.3 Результат работы программы
- •1.4 Объяснение результатов
- •1.5 Программа решения задачи 1.2
- •1.6 Результат работы программы
- •Лабораторная работа №2 «Использование основных операторов языка Си»
- •2.1 Постановка задачи
- •2.2 Программа решения задачи
- •2.3 Результат работы программы
- •Лабораторная работа №3 «Вычисление функций с использованием их разложения в степенной ряд»
- •3.1 Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №4 «Работа с одномерными массивами»
- •4.1 Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №5 «Функции и массивы»
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №6 «Строки»
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №7.2 «Функции с переменным числом параметров»
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №8 «Блоковый ввод-вывод»
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №9 «Строковый ввод-вывод»
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •11. Лабораторная работа №10 «Динамические массивы»
- •11. 1 Постановка задачи
- •2 Программа решения задачи
- •11.3 Результат работы программы
- •Лабораторная работа №11 «Информационные динамические структуры»
- •Постановка задачи
- •Программа решения задачи
- •12.3 Результат работы программы
Результат работы программы
Рис 13. Результат работы программы 9
11. Лабораторная работа №10 «Динамические массивы»
11. 1 Постановка задачи
Сформировать двумерный массив. Удалить из него строку и столбец с заданным номером.
2 Программа решения задачи
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#pragma hdrstop
//10. Сформировать двумерный массив. Удалить из него стро-ку и столбец с заданным номером.
#pragma argsused
char bufRus[256];
char* Rus(const char* text)
{
CharToOem(text, bufRus);
return bufRus;
}
void show(int**,int,int); // Функция вывода матрицы
void delstr(int**,int,int,int,int); // Функция для удаления строки
int main(int argc, char* argv[])
{
int strok,stolb,num,num1;
int **matr;
cout<<Rus("Введите размерность массива: ") << endl;
cout<<Rus(" количество строк: ");
cin>>strok;
cout<<Rus(" количество столбцов: ");
cin>>stolb;
matr=new int*[strok];
for(int i=0;i<strok;i++)
{
matr[i]=new int[stolb];
for(int j=0;j<stolb;j++)
matr[i][j]=random(10);
}
show(matr,strok,stolb); //выводим массив
cout<<endl <<Rus("Введите номер строки, которую нужно удалить: ");
cin>>num;
cout<<endl<<Rus("Введите номер столбца, который нужно удалить: ");
cin>>num1;
delstr(matr,num,num1,strok,stolb);
//удаляем дин. массив
for(int i=0;i<strok;i++)
delete matr[i];
delete [] matr;
getch();
return 0;
}
//функция вывода массива на экран
void show(int** matr,int strok,int stolb)
{
for(int i=0;i<strok;i++)
{
for(int k=0;k<stolb;k++)
cout<<matr[i][k]<<" ";
cout<<endl;
}
}
//функция для удаления строки и столбца
void delstr(int** matr,int num,int num1,int strok,int stolb)
{
strok--; //корректируем размер нового массива
int **matr2; //создаем новый промежуточный массив для удаления строки
matr2=new int*[strok];
for(int i=0;i<strok;i++)
{
matr2[i]=new int[stolb];
for(int j=0;j<stolb;j++)
{
if(i<(num-1)) matr2[i][j]=matr[i][j]; //пока не дошли до удаляемой строки - копируем
if (i>=(num-1)) matr2[i][j]=matr[i+1][j]; //пропускаем ненужную строку
}
}
stolb--; //корректируем размер окончательного массива
int **matr3; //создаем новый,окончательный массив
matr3=new int*[strok];
for(int i=0;i<strok;i++)
{
matr3[i]=new int[stolb];
for(int j=0;j<stolb;j++)
{
if (j<(num1-1)) matr3[i][j]=matr2[i][j]; //пока не дошли до нужного столбца - копируем
if (j>=(num1-1)) matr3[i][j]=matr2[i][j+1]; //пропускаем ненужный столбец
}
}
cout<<endl;
show(matr3,strok,stolb); //печатаем массив
}