Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2022, 11:26   #1
Aleksey7754
 
Регистрация: 22.05.2022
Сообщений: 5
Сообщение Язык СИ. Двумерный массив и функция

Здравствуйте! Дана программа написанная в языке Си "Операции с двумерными массивами. Функции." и необходимо его дополнить по заданию (см.фото). Место для работы я выделил. В разделе ОБРАБОТКА (в конце программы) пишется код по которому находится значение (там таких 2 - №5, №6). А для вывода значений пишется в разделе ПУНКТ 4. ЗАВЕРШЕНИЕ - 'ВЫВОД ДАННЫХ И РЕЗУЛЬТАТ', место тоже выделил. Все обработки пишется через функции VOID.

Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <locale.h>
#define N 10 //МАКСИМАЛЬНОЕ ЗНАЧЕНИЕ РАЗМЕРНОСТЬ МАТРИЦЫ
 
    void vvod_rnd(float,float,float[][N],int);
    void vivod(float[][N],int,char*);
    void vvod_d(float x[][N],float y[][N],float z[][N],float g[][N],int);
    void vvod_hands(float[][N],int);
    void main()
{
    int v;
    float A[N][N],B[N][N],C[N][N],D[N][N]; int n,p=0;
    srand(time(NULL));
 
    setlocale(LC_ALL, "Rus");
 
///==================================//ОСНОВНОЕ МЕНЮ ПРОГРАММЫ\\===================================///
char ch;
    do
    {
        system("cls");
        printf("+===================================================================================================+ \n");
        printf("|    Добро пожаловать, дорогой пользователь! Нажимите на кнопку от F1 до F4 для нужного пункта >    | \n");
        printf("+===================================================================================================+ \n");
        printf("|      F1: 'Начало - 'Ввод исходных данных''                                                        | \n");
        printf("|      F2: 'Обработка данных'                                                                       | \n");
        printf("|      F3: 'Завершение - 'Вывод на экран исходной строки и полученной в результате обработки''      | \n");
        printf("|      Esc: 'Выход из программы'                                                                    | \n");
        printf("+===================================================================================================+ \n");
            ch=getch();
            if (ch == 0) ch = getch();
                switch(ch)
//=========================================\\КОНЕЦ//===============================================//
 
 
///==========================//ПУНКТ 2. НАЧАЛО - 'ВВОД ИСХОДНЫХ ДАННЫХ'\\===========================///
        case 59:
            system("cls");
 
        printf("+===================================================================================================+ \n");
        printf("|                           Пункт 2. Начало - 'Ввод исходных данных'                                | \n");
        printf("+===================================================================================================+ \n");
 
    {
        printf("Выберите режим ввода матрицы? Кнопка 1 - ввод с клавиатуры, 2 - случайная генерация\n");
        scanf("%d",&v);
    if(v==2) //случайная генерация RANDOM
        {
        printf("Введите размерность массива(%d)=",N);
        scanf ("%d",&n);
            //ввод матрицы A, B, C, D
            vvod_rnd(6,8,A,n);
            vvod_rnd(-8,2,B,n);
            vvod_rnd(-15,4,C,n);
            vvod_d(A,C,D,B,n);
        p=1;
        getch(); break;
        }
 
    if(v==1) //ввод с клавиатуры
        {
            printf("Введите размерность массива(%d)=",N);
            scanf ("%d",&n);
                //ручной ввод матрицы A, B, C, D
                vvod_hands(A,n);
                vvod_hands(B,n);
                vvod_hands(C,n);
                vvod_d(A,C,D,B,n);
            p=1;
            getch(); break;
        }
 
    if(v<1||v>2) //ввод другой кнопки
        {
            printf("Ошибка! Попробуйте еще раз");
            getch(); break;
        }
    }
//==========================================\\КОНЕЦ//==============================================//
 
///=================================//ПУНКТ 3. ОБРАБОТКА ДАННЫХ\\===================================///
        case 61:
            system("cls");
 
        printf("+===================================================================================================+ \n");
        printf("|                                    Пункт 3. Обработка данных                                      | \n");
        printf("+===================================================================================================+ \n");
 
            if (p==1)
        {
                //вывод матрицы A, B, C, D
                vivod(A,n,"\n Матрица A\n");
                vivod(B,n,"\n Матрица B\n");
                vivod(C,n,"\n Матрица C\n");
                vivod(D,n,"\n Матрица D\n");
        }
            else
                printf("\n Матрицы не введены. Вернитесь к пункту 1 (F2)!");
            getch(); break;
 
///==========================//ПУНКТ 4. ЗАВЕРШЕНИЕ - 'ВЫВОД ДАННЫХ И РЕЗУЛЬТАТ'\\===========================///
        case 62:
            system("cls");
 
        printf("+===================================================================================================+ \n");
        printf("|     Пункт 4. Завершение - 'Вывод на экран исходной строки и полученной в результате обработки'    | \n");
        printf("+===================================================================================================+ \n");
 
    if (p==1)
        {
            ...
            //тесктовое сообщение о нахождении необходимых значений
            ...
        }
    else
        printf("\n Матрицы не введены. Вернитесь к пункту 1 (F2)!");
        getch(); break;
        }
    }
    while (ch != 27);
}
 
//+++++++++++++++++++++++++++++//ОБРАБОТКА\\+++++++++++++++++++++++++++++//
 
//==================//1. ВВОД МАСТРИЦЫ ПРИ ПОМОЩИ RANDOM\\==================//
void vvod_rnd(float xn,float xk,float x[][N],int size)
    {
        int i,j;
            for (i=0; i<size;i++)
                for (j=0; j<size;j++)
                x[i][j]=xn+(xk-xn+1)*rand()/RAND_MAX;
    }
 
//==================//2. ВЫВОД МАТРИЦ НА ЭКРАН\\==================//
void vivod(float x[][N],int size,char*st)
    {
        int i,j;
            printf("%s",st);
                for (i=0;i<size;i++)
                {
                    for (j=0; j<size;j++)
                    printf("%8.2f",x[i][j]);
                    printf("\n");
                }
    }
 
//==================//3. НАХОЖДЕНИЕ МАТРИЦЫ D\\==================//
    void vvod_d(float x[][N],float y[][N],float z[][N],float g[][N],int size)
        {
            int i,j,k;
                for (i=0; i<size;i++)
                for (j=0; j<size;j++)
                {
                    z[i][j]=0;
                        for (k=0; k<size;k++)
                        z[i][j]+=x[i][k]*y[k][j];
                        z[i][j]-=g[i][j];
                }
        }
 
//==================//4. ВВОД МАТРИЦЫ ПРИ ПОМОЩИ КЛАВИАТУРЫ\\==================//
void vvod_hands(float x[][N],int size)
{
int i,j;
for(i=0;i<size;i++)
for(j=0;j<size;j++)
{
printf("Элемент матрицы[%d,%d]:",i,j);
scanf("%f",&x[i][j]);
}
}

//===========//5. НАХОЖДЕНИЕ МИНИМАЛЬНОГО ЗНАЧЕНИЯ МАТРИЦЫ 'C'\\============//
... /// > НЕОБХОДИМО ЗАПОМНИТЬ
 
//============//6. ПОВОРОТ МАТРИЦЫ 'D' ПРОТИВ ЧАСТОВОЙ СТРЕЛКИ\\============//
... /// > НЕОБХОДИМО ЗАПОМНИТЬ
Изображения
Тип файла: png 2022-05-27_16-41-26.png (17.9 Кб, 5 просмотров)
Aleksey7754 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив в C++ Формирование массива из min элементов строк матрицы,а функция 2 - Поиск max элемента массива. kisel2014 Общие вопросы C/C++ 0 18.12.2019 00:36
двумерный массив (матрица), язык Си Yulia24* Помощь студентам 9 03.11.2016 21:25
двумерный массив (матрица), язык Си Yulia24* Помощь студентам 10 02.11.2016 20:26
язык С# двумерный массив rocker34rus Помощь студентам 0 31.03.2013 12:21
двумерный массив,язык СИ Riona Общие вопросы C/C++ 26 13.04.2012 19:19