Важная информация
Показано с 1 по 4 из 4

Тема: Форматирование матрицы С++

  1. #1 Форматирование матрицы С++ 
    Новичок
    Регистрация
    03.12.2015
    Сообщений
    12
    Сказал(а) спасибо
    15
    Поблагодарили 0 раз(а) в 0 сообщениях
    Дано: с клавиатуры вводится два целых числа - М и К. 1<М<10, 1<К<10. (М - число строк, К - число столбцов).
    Требуется: сгенерировать матрицу размерности М х К из случайных вещественных чисел из интервала [-25,40].
    Вывести её на экран в отформатированном табличном виде .
    Для каждой строки определить минимальный четный положительный элемент и вывести на экран сам найденный элемент и его индексы (номера строк и столбцов) в отформатированном виде построчно в М строк.
    Генерацию, обработку и вывод матрицы производить с помощью двух вложенных циклов. Внешний - while, внутренний - while.

    P.S. заранее всем спасибо кто поможет написать программку(на Си )) если можно то с комментариями))
    Ответить с цитированием  
     

  2. #2  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,846
    Сказал(а) спасибо
    1,815
    Поблагодарили 945 раз(а) в 807 сообщениях
    Записей в блоге
    1
    Заранее извиняюсь, если кто-то может сделать это лучше, а скорее всего могут.
    Просто не всегда удаётся тут помочь всем. И не все имеют время на это.

    C++ Code:
    1. #include <iostream>
    2. #include <ctime>
    3.  
    4. using namespace std;
    5.  
    6. int main (int argc, char *argv[])
    7. {
    8. /**  Переменные   **/
    9.    char quit;
    10.    int M, K;     //  Строки , Столбцы
    11.    int ix, iy;   //  ix - столбец  iy - строка
    12.  
    13.    int tekmin;   //  Минимум при поиске элемента в строке строке
    14.    int minindy;  //  Номер строки минимального чёт. полож. элемента
    15.    int minindx;  //  Номер столбца минимального чёт. полож. элемента
    16. /**  Ввод данных с клавиатуры   **/
    17. cout << endl << "Vvedi chislo strok: ";
    18. cin >> M;
    19.     
    20. cout << "Vvedi chislo stolbcov: ";
    21. cin >> K;
    22. cout << endl;   //  Просто на след строку
    23.  
    24.     int a[M][K];
    25.     int MinZn[M], indM[M], indK[M]; //  Значение и индексы минимального элемента
    26.     int zn;
    27.  
    28. // Инициализация генератора случ. чисел
    29. srand( time(0) );
    30.  
    31. /**  Генерируем случайную матрицу   **/
    32.   //  Перебираем строки
    33. iy = 0;
    34. while (iy < M)
    35.     { ix = 0;
    36.      //  Идём по строке (т.е. фигурирует номер столбца)
    37.     while (ix < K)
    38.        {
    39.        a[iy][ix] = (rand() % 65) - 25;
    40.        ix++;    //  Положение в строке + 1
    41.        }
    42.     iy++;    //  Следующая строка
    43.     }
    44.  
    45. /**  Вывод матрицы   **/
    46.   //  Перебираем строки
    47. iy = 0;
    48. while (iy < M)
    49.     { ix = 0;
    50.      //  Идём по строке (т.е. фигурирует номер столбца)
    51.     while (ix < K)
    52.        {
    53.        cout << a[iy][ix] << "\t";
    54.        ix++;    //  Положение в строке + 1
    55.        }; cout << endl;
    56.     iy++;    //  Следующая строка
    57.     }
    58.  
    59.  
    60. /**  Вывод матрицы   **/
    61.   //  Перебираем строки
    62. iy = 0;
    63. while (iy < M)
    64.     { ix = 0;
    65.       //tekmin = a[iy][0];   //  берём первый элемент в строке за минимальный
    66.        tekmin = 1000;
    67.      //  Идём по строке (т.е. фигурирует номер столбца)
    68.     while (ix < K)
    69.        {
    70.           zn = (a[iy][ix]) % 2;
    71.           //cout << zn << " ";
    72.           //  Если элемент чётный (делится на два без остатка)
    73.           //  и одновременно положительный
    74.           if ((zn == 0) && (a[iy][ix] > 0))
    75.           {
    76.               //  Тогда проверим его на "минимальность"
    77.               //  И если он меньше, то запомним его
    78.              if (a[iy][ix] < tekmin)
    79.              {
    80.                   tekmin = a[iy][ix];
    81.                   minindy = iy;
    82.                   minindx = ix;
    83.              }
    84.           }
    85.        ix++;    //  Положение в строке + 1
    86.        };
    87.        MinZn[iy] = tekmin;
    88.        indM[iy] = minindy;   // Сохраним номер строки
    89.        indK[iy] = minindx;   // Сохраним номер столбца
    90.  
    91.     iy++;    //  Следующая строка
    92.     }
    93.  
    94. cout << endl;  // Просто переведём на след строку
    95. //   И выведем все найденные минимальные чёт. полож. элементы по строкам
    96. iy = 0;
    97. while (iy < M)
    98.     {
    99.     if (MinZn[iy] != 1000)
    100.        { cout << "Stroka: " << indM[iy] << "\t" << "Stolbec: " << indK[iy] << "\t";
    101.          cout << "Znachenie elementa = " << MinZn[iy] << "\t" << endl;
    102.        }
    103.     else
    104.        {
    105.          cout << "Sootv. element na stroke "<< iy << "ne naiden!!!" << endl;
    106.        }
    107.       
    108.     iy++;    //  Следующая строка
    109.     }
    110.  
    111.   system("pause");
    112.  
    113.   return 0;
    114. }


    Это моя первая(вообще) программа на языке си. Для этого пришлось перелопатить кучу информации
    и установить среду разработки DEV-C++ (Ссылка чтобы скачать: http://prdownloads.sourceforge.net/d....2_setup.exe):
    Изучать си пока не планирую, просто хотел помочь с решением задачи.

    Новичкам будет полезно:
    Как завести матрицу(двумерный массив):
    http://kvodo.ru/urok-9-matritsyi-obshhie-svedeniya.html

    Случайные числа:
    http://cppstudio.com/post/339/

    Цикл While:
    http://cppstudio.com/post/352/

    Арифметичекие операции:
    http://cppstudio.com/post/259/

    Условный оператор(проверка условий):
    http://kvodo.ru/uslovnyie-operatoryi-if-i-switch.html

    Вообще мозг достаточно быстро адаптируется к новому диалекту и это радует, значит ещё не
    совсем атрофировался .
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  3. 3 пользователя(ей) сказали cпасибо:

    nik_1 (23.02.2016), rrrFer (23.02.2016), лиана (23.02.2016)

  4. #3  
    Профи Аватар для nik_1
    Регистрация
    03.08.2014
    Сообщений
    283
    Сказал(а) спасибо
    160
    Поблагодарили 145 раз(а) в 109 сообщениях
    Записей в блоге
    1
    си, паскаль, бейсик - эти яп по диалекту близки друг другу. другое дело лисп, ассемблер.
    Ответить с цитированием  
     

  5. #4  
    Профи Аватар для nik_1
    Регистрация
    03.08.2014
    Сообщений
    283
    Сказал(а) спасибо
    160
    Поблагодарили 145 раз(а) в 109 сообщениях
    Записей в блоге
    1
    вопрос лиане. вы с нашей помощью и диплом писать будете?
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Матрицы
    от BlowedUp в разделе C/C++
    Ответов: 1
    Последнее сообщение: 15.02.2015, 08:55
  2. Ответов: 1
    Последнее сообщение: 25.01.2014, 17:53
  3. Ответов: 1
    Последнее сообщение: 25.07.2013, 00:43
  4. Ответов: 7
    Последнее сообщение: 09.12.2011, 16:06
  5. Ответов: 0
    Последнее сообщение: 03.12.2010, 23:11
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •