Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Заполнение матрицы случайными числами






    Выполняется также в двойном цикле аналогично одномерным массивам. В примере показано заполнение целой матрицы случайными числами в интервале [a, b] (для вещественных чисел формула изменится – см. одномерные массивы). В этой и последующих программах будем считать, что объявлена целая матрица M на N, где M и N — целые константы (объявленные через const), а также целые переменные i и j.

    for (i = 0; i < M; i ++)

    for (j = 0; j < N; j ++)

    A[i][j] = random(b-a+1) + a;

    Вывод элементов матрицы

    Двумерные массивы необходимо выводить в привычном виде (по строкам), начиная вывод новой строки массива в новую строку экрана.

    for (i = 0; i < M; i ++)

    { for (j = 0; j < N; j ++)

    printf(“%d \t”, A[i][j]);

    printf (“\n”);

    Суммирование элементов матрицы

    for (S=0, i=0; i< m; i++)

    for (j=0; j< n; j++)

    S=S+b[i][j];

    Суммирование диагональных элементов матрицы (вычисление следа матрицы)

    for (S=0, i=0; i< n; i++)

    S=S+b[i][i];

    Суммирование элементов заданной строки матрицы

    Для двумерного массива b размером M на N необходимо вычислить сумму элементов строки с номером k.

    for (S=0, j=0; j< n; j++)

    S=S+b[k][j];

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

    Необходимо вычислить сумму элементов каждой строки двумерного массива b размером M на N с выводомрезультатов на экран.

    for (i=0; i< m; i++)

    { S=0; // обнуление суммы каждой строки

    for (j=0; j< n; j++)

    S=S+b[i][j];

    printf (“Сумма элементов строки %d=%d \n “, i, S); }

    Транспонирование матрицы

    Необходимо заменить строки матрицы ее столбцами, а столбцы – строками.

    int b[m][n], a[n][m], i, j;

    ….

    for (i=0; i< n; i++)

    for (j=0; j< m; j++)

    a[i][j]=b[j][i];

     

    Для квадратной матрицы размером N на N для этого необходимо поменять местами каждый элемент верхнего треугольника с соответствующим элементом нижнего (диагональные элементы переставлять не нужно). При этом для каждой строки нужно выполнять перестановку элементов, расположенных правее главной диагонали, с элементами соответствующего столбца, расположенными ниже главной диагонали. При перестановке используем вспомогательную переменную P, помещая в нее для временного хранения один из переставляемых элементов, чтобы не потерять его значение.

    int b[n][n], i, j, P;

    ….

    for (i=0; i< n-1; i++)

    for (j=i+1; j< n; j++)

    { P= b[i][j];

    b[i][j]=b[j][i];

    b[j][i]=P;

    }

    Умножение матрицы на вектор

    int a[m][n], i, j, s, b[n], c[m];

    ….

    for (i=0; i< m; i++)

    { s=0;

    for (j=0; j< n; j++)

    s=s+a[i][j]*b[j];

    c[i]=s;

    }

    Удаление строки из матрицы

    Требуется удалить строку с заданным номером k. Решение задачи аналогично удалению элемента из одномерного массива. Все строки, начиная с (k+1)-й, нужно переместить вверх. Число строк уменьшается на 1.

    for (i=k; i< m; i++)

    for (j=0; j< n; j++)

    b[i][j]=b[i+1][j];

    Удаление столбца осуществляется аналогично.






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.