Инструменты пользователя

Инструменты сайта


reshenie_zadachi_5

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

reshenie_zadachi_5 [2010/10/08 15:36] (текущий)
Строка 1: Строка 1:
 +**Задача**. ​ Написать программу,​ которая осуществляет добавление строки или столбца в любое место двумерной матрицы по выбору пользователя.
  
 +<​file>​
 +/* 
 + * File:   ​hw_lessons15_1.cpp
 + * Author: darkfire
 + *
 + * Created on October 6, 2010, 9:33 PM
 + */
 +
 +#include <​stdlib.h>​
 +#include <​iostream>​
 +
 +/* Написать программу,​ которая осуществляет добавление
 +строки или столбца в любое место двумерной матрицы
 +по выбору пользователя.
 +*/
 +
 +/*
 + ​вывести все в отдельные функции
 + */
 +using namespace std;
 +
 +int main(int argc, char** argv) {
 +  int i, i2, j, j2;
 +        bool strnew;
 +
 + // Переменные для описания характеристик массивов.
 + int m1 = 5, m2 = 6;
 +
 + int **pArr = new int*[m1];
 + for (i = 0; i < m1; i++)
 + pArr[i] = new int[m2];
 +
 +         //​заполнение нулями и показ на экран
 + for (i = 0; i < m1; i++)
 +         {
 +             for (j = 0; j < m2; j++)
 +             {
 +              pArr[i][j]=5;​
 +              cout<<​pArr[i][j]<<"​\t";​
 +             }
 +             ​cout<<"​\n";​
 +
 +         }
 +         //​пользовательский ввод
 +         int rc, pos;
 +         ​cout<<"​Enter 0 -row or 1 -column:";​
 + cin>>​rc;​
 + cout<<"​Enter position:";​
 + cin>>​pos;​
 +         //​функция добавления столбца
 +         //1 -нужно создать новый массив с кол-вом столбов на единицу больше m2+1
 +         //2 -скопировать данне из первого массива и в новый столбец добавить единицы
 +         if (rc == 1)
 +         {
 +             int **pArrNew = new int*[m1];
 +             for (i = 0; i < m1; i++) pArrNew[i] = new int[m2+1];
 +
 +             for (i=0,i2=0; i < m1; i++,i2++)
 +             {
 +                 for (j=0,j2=0; j2<m2+1; j++,j2++)
 +                 ​{pArrNew[i2][j2]=pArr[i][j];​
 +
 +                      if (j == pos)
 +                      {
 +                          for (int k=0;​k<​m1;​k++) pArrNew[k][pos]=1;​
 +                          j--;
 +                      ​
 +                     }else pArrNew[i2][j2]=pArr[i][j];​
 +                 }
 +             }
 +             //​вывод на экран нового массива
 +             for (i = 0; i < m1; i++)
 +             {
 +                 for (j = 0; j < m2+1; j++)
 +                 {
 +                     ​cout<<​pArrNew[i][j]<<"​\t";​
 +                 }
 +                 ​cout<<"​\n";​
 +             }
 +             //​Последовательное уничтожение двумерного массива
 +             for (i = 0; i < m1; i++) delete[]pArrNew[i];​
 +             ​delete[]pArrNew;​
 +         }
 +         //​функция добавления строки
 +         //1 -нужно создать новый массив с кол-вом строк на единицу больше m1+1
 +         //2 -скопировать данные из первого массива и в новую строку добавить единицы
 +         if (rc == 0)
 +         {
 +             int **pArrNew = new int*[m1+1];
 +             for (i = 0; i < m1+1; i++) pArrNew[i] = new int[m2];
 +             //​копируем,​ заполняем новый массив данными
 +             for (i=0,i2=0; i < m1; i++,i2++)
 +             {
 +                 for (j=0,j2=0; j2<m2+1; j++,j2++)
 +                 {
 +                     if (i==pos && strnew)
 +                      {
 +                          for (int k=0;​k<​m1+1;​k++) pArrNew[pos][k]=1;​
 +                                  cout<<"​i= "<<​i<<"​\n";​
 +                                  cout<<"​j= "<<​j<<"​\n";​
 +                                  ​
 +                                  strnew=false;​
 +                                  i--;
 +                                  break;
 +
 +                     }else pArrNew[i2][j2]=pArr[i][j];​
 +                 }
 +             }
 +             //​вывод на экран нового массива
 +             for (i = 0; i < m1+1; i++)
 +             {
 +                 for (j = 0; j < m2; j++)
 +                 {
 +                     ​cout<<​pArrNew[i][j]<<"​\t";​
 +                 }
 +                 ​cout<<"​\n";​
 +             }
 +             //​Последовательное уничтожение двумерного массива
 +             for (i = 0; i < m1; i++) delete[]pArrNew[i];​
 +             ​delete[]pArrNew;​
 +         }
 +        ​
 +         //​Последовательное уничтожение двумерного массива
 + for (i = 0; i < m1; i++)
 + delete[]pArr[i];​
 + delete[]pArr;​
 +
 +
 +    return (EXIT_SUCCESS);​
 +}
 +</​file>​
загрузка...
reshenie_zadachi_5.txt · Последние изменения: 2010/10/08 15:36 (внешнее изменение)