Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
oleghj
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 4
1

Упорядочить элементы столбцов матрицы по возрастанию их значений методом выбора

06.02.2010, 21:13. Просмотров 2854. Ответов 8
Метки нет (Все метки)

Составить блок-схему алгоритма и программу на языке С согласно с заданием, полученным от преподавателя по таблице 1:
Заданную прямоугольную матрицу A={aij} отсортировать по указанному алгоритму;
Для отсортированной матрицы найти значения функции F(fi(aij)); алгоритм сортировки и вычисления fi(aij) оформить в виде функций;
Элементы матрицы вводить с клавиатуры;
Программа должна вывести на экран отсортированную матрицу, все значения fi(aij) и значения функции F(fi(aij)).

Таблица 1

3 Упорядочить элементы столбцов матрицы по возрастанию их значений методом выбора fi(aij) - сумма элементов в каждом рядке матрицы;
F(fi(aij)) - среднее геометрическое значение fi(aij)
2 0 33 -1 -21
78 7 -4 -3 11
-2 -7 -1 -9 0
13 61 60 42 -10
1 0 4 0 16

сама программа есть, но тут что-то с переменнми

Оригинал
Скласти блок-схему алгоритму та програму мовою Cі згідно з завданням, отриманим від викладача за табл. 1: задану прямокутну матрицю A={aij} відсортувати за вказаним алгоритмом; для відсортованої матриці знайти значення функції F(fi(aij)); алгоритм сортування і обчислення fi(aij) оформити у вигляді функції; елементи матриці вводити з клавіатури; програма повинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значення функції F(fi(aij)).

Таблиця 1

3 Впорядкувати елементи стовпців матриці за зростанням їх значень методом вибору fi(aij)-сума елементів у кожному рядку матриці; F(fi(aij))-середнє геометричне значення fi(aij)
2 0 33 -1 -21
78 7 -4 -3 11
-2 -7 -1 -9 0
13 61 60 42 -10
1 0 4 0 16


сама програма є, але тут шось з зміннними

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include<stdio.h>
#include"stdafx.h"
#include<math.h>
#include<conio.h>
#define n 5
void vvid(int element[n][n]);
void metod_vibory(int element[n][n]);
void suma(int element[n][n]);
void heometruchne(int element[n][n]);
void main()
{
    int element[n][n];
    vvid(element);
    metod_vibory(element);
    suma(element);
    heometruchne(element);
}
    /*ввід матриці*/
    /*ввод матрицы*/
        void vvid(int element[n][n])
        {
    int i,j,k,f,pos;
    for (i=0; i<n; i++)
    {
        for (j=0; j<n; j++)
        {
        printf("element[%d][%d] =", i+1, j+1);
        scanf_s("%d", element[i][j]);
    }
}
for (i=0; i<n; i++)
    {
    for (j=0; j<n; j++)
    printf("   %i\t",    element[i][j]);
    printf("\n");
    }
   _getch();
}
 
/* впорядкування елементів її стовпців за зростаням їхніх значень методом вибору */
/* сортировка элементов ее столбцов по возрастанию их значений методом выбора */
 
    void metod_vibory(int element[n][n])
    {
        int i,j,pos,p,f;
          for (j=0; j<n; j++)
        for (i=0; i<n-1; i++)
        {
            int pos=i;
            for(p=i+1; p<n; p++)
            if(element[pos][j] > element[p][j]);
                pos=p;
         f=element[pos][j];
        element[pos][j]=element[i][j];
            element[i][j]=f;
        }
        for(i=0; i<n; i++)
        {
            for(j=0; j<n; j++)
            printf("%i\t",  element[i][j]);
            printf("\n");
        }
        _getch();
    }
    /* обчисленя fi(aij)-суми елементів у кожному рядку матриці */
    /* вычисление fi(aij) - суммы элементов в каждом рядке матрицы */
void suma(int element[n][n])
    {
    int i, j;
    double suma;
 
    suma=0;
    for(i=0; i<n; i++) 
    {
        {
            for(j=0; j<n; j++)
            suma=suma+element[i][j];
        }
        printf("   suma elemetiv = %if",suma);
        printf("\n");
        suma=0;
    }
    _getch();
}
/* обчисленя F(fi(aij))-середнього геометричного значення fi(aij)*/
/* вычисление F(fi(aij)) - среднего геометричного значения fi(aij)*/
void heometruchne(int element[n][n])
    {
        int i,j;
        double dobutok, serheom;
        dobutok=i;
        {
        for(i=0; i<n; i++);
        {
            {
            for(j=0; j<n; j++)
            dobutok=dobutok*element[i][j];
            serheom=pow(dobutok, (double)i/n);
            
            }
        printf(" seredne heometrichne znachennya = %lf",serheom);
        printf("\n");
        dobutok=i;
        }
        }   
        _getch();
}
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2010, 21:13
Ответы с готовыми решениями:

Упорядочить столбцы матрицы по возрастанию максимальных элементов столбцов методом линейного выбора с обменом
Дана действительная матрица A размерности . Если среднее арифметическое элементов первой строки...

Упорядочить столбцы матрицы по возрастанию максимальных элементов столбцов (методом линейного выбора с подсчётом)
Дана действительная матрица А размерности (n x n). Если минимальный элемент матрицы встречается...

Упорядочить столбцы матрицы по возрастанию максимальных элементов столбцов методом линейного выбора с обменом
Дана действительная матрица A размерности (m x n). Если среднее арифметическое элементов первой...

Упорядочить элементы нечетных столбцов матрицы А по возрастанию значений
Упорядочить элементы нечетных столбцов матрицы А по возрастанию значений

8
novi4ok
554 / 508 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
06.02.2010, 22:22 2
3 Упорядочить элементы столбцов матрицы по возрастанию их значений методом выбора fi(aij) - сумма элементов в каждом рядке матрицы; F(fi(aij)) - среднее геометрическое значение fi(aij)
C++
1
2
3
4
5
   2   0  33  -1 -21
  78   7  -4  -3  11
  -2  -7  -1  -9   0
  13  61  60  42 -10
   1   0   4   0  16
что ты ожидаешь в результате? это?

-2 -7 -4 -9 -21
1 0 -1 -3 -10
2 0 4 -1 0
13 7 33 16 11
78 61 60 42 16


? а что это за метод такой, объясни на пальцах
Оригинал
3 Впорядкувати елементи стовпців матриці за зростанням їх значень методом вибору fi(aij)-сума елементів у кожному рядку матриці; F(fi(aij))-середнє геометричне значення fi(aij)
C++
1
2
3
4
5
   2   0  33  -1 -21
  78   7  -4  -3  11
  -2  -7  -1  -9   0
  13  61  60  42 -10
   1   0   4   0  16
що ти очікуєш у результаті? таке?

-2 -7 -4 -9 -21
1 0 -1 -3 -10
2 0 4 -1 0
13 7 33 16 11
78 61 60 42 16


? а що то за метод такий, поясни "на пальцях"
0
M128K145
Эксперт JavaЭксперт С++
8355 / 3576 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
07.02.2010, 00:08 3
oleghj, уточните конкретнее вашу проблему, с какими именно переменными проблема и по возможности пишите на русском языке или воспользуйтесь переводчиком
0
oleghj
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 4
07.02.2010, 10:17  [ТС] 4
Цитата Сообщение от M128K145 Посмотреть сообщение
oleghj, уточните конкретнее вашу проблему, с какими именно переменными проблема и по возможности пишите на русском языке или воспользуйтесь переводчиком
попробуйте запустить програму и вы сами всьо увидете
0
novi4ok
554 / 508 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
07.02.2010, 13:26 5
что ты хотел этим сделать?

C++
1
scanf_s("%d", element[i][j]);
наверное, вот так хотел?

C++
1
scanf_s("%d", &element[i][j]);
0
SerЁga
32 / 32 / 16
Регистрация: 18.08.2009
Сообщений: 93
07.02.2010, 13:30 6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Я вроде подправил.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include<stdio.h>
#include<math.h>
#include<conio.h>
#define n 5
void vvid(int element[n][n]);
void metod_vibory(int element[n][n]);
void suma(int element[n][n]);
void heometruchne(int element[n][n]);
void main()
{
    int element[n][n];
    vvid(element);
    metod_vibory(element);
    suma(element);
    heometruchne(element);
}
/*ввід матриці*/
/*ввод матрицы*/
void vvid(int element[n][n])
{
    int i,j,k,f,pos;
    for (i=0; i<n; i++)
    {
        for (j=0; j<n; j++)
        {
            printf("element[%d][%d] =", i+1, j+1);
            scanf_s("%d", &element[i][j]);///необходим & перед element[i][j]
        }
    }
    for (i=0; i<n; i++)
    {
        for (j=0; j<n; j++)
            printf("   %i\t",    element[i][j]);
        printf("\n");
    }
    _getch();
}
 
/* впорядкування елементів її стовпців за зростаням їхніх значень методом вибору */
/* сортировка элементов ее столбцов по возрастанию их значений методом выбора */
 
void metod_vibory(int element[n][n])
{
    int i,j,pos,p,f;
    for (j=0; j<n; j++)
        for (i=0; i<n-1; i++)
        {
            int pos=i;
            for(p=i+1; p<n-1; p++)
                if(element[pos][j] > element[p][j])
                { //ошибка что-бы в после проверки if выполнялоси несколько команд надо {} 
 
                pos=p;
            f=element[pos][j];
            element[pos][j]=element[i][j];
            element[i][j]=f;
                }
        }
        for(i=0; i<n; i++)
        {
            for(j=0; j<n; j++)
                printf("%i\t",  element[i][j]);
            printf("\n");
        }
        _getch();
}
/* обчисленя fi(aij)-суми елементів у кожному рядку матриці */
/* вычисление fi(aij) - суммы элементов в каждом рядке матрицы */
void suma(int element[n][n])
{
    int i, j;
    double suma;
 
    suma=0;
    for(i=0; i<n; i++) 
    {
        {
            for(j=0; j<n; j++)
                suma=suma+element[i][j];
        }
        printf("   suma elemetiv = %lf",suma);//вывод double используется %lf
        printf("\n");
        suma=0;
    }
    _getch();
}
/* обчисленя F(fi(aij))-середнього геометричного значення fi(aij)*/
/* вычисление F(fi(aij)) - среднего геометричного значения fi(aij)*/
void heometruchne(int element[n][n])
{
    int i=1,j;
    double dobutok, serheom;
    dobutok=i; //используется неинициализированная переменная
    {
        for(i=0; i<n; i++);
        {
            {
                for(j=0; j<n; j++)
                    dobutok=dobutok*element[i][j];
                serheom=pow(dobutok, (double)i/n);
 
            }
            printf(" seredne heometrichne znachennya = %lf",serheom);
            printf("\n");
            dobutok=i;
        }
    }       
    _getch();
}
0
oleghj
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 4
07.02.2010, 14:02  [ТС] 7
При компиляции выводет ошыбку:
C
1
`main' must return `int'
0
novi4ok
554 / 508 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
07.02.2010, 14:11 8
Цитата Сообщение от oleghj Посмотреть сообщение
При компиляции выводет ошыбку:
C
1
`main' must return `int'
естественно, если у тебя определенный тип приложения. допиши последним оператором в main:

C++
1
return 0;
и перепиши декларацию майна:
C++
1
int main(int argc, char* argv[])
0
oleghj
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 4
09.02.2010, 18:10  [ТС] 9
не могли бы вы вписа ето в програграму, потому что я только начал вывчать Си
0
09.02.2010, 18:10
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2010, 18:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Упорядочить элементы последних трех столбцов матрицы А по возрастанию значений
1) a=ln(i+0.5)+(j/2i) 2) хi – скалярное произведение i-й стро-ки на побочную диагональ; ...

Упорядочить элементы первых трех столбцов матрицы по возрастанию значений
1.Разработать в среде Turbo Pascal программу решения взаимосвязанных задач: a. расчет элементов...

Упорядочить элементы каждого столбца матрицы по возрастанию методом линейного выбора с обменом (по условию)
Мне очень нужен программный код к такому заданию. Дана действительная матрица A(n*n) . Если сумма...

Упорядочить элементы строк матрицы по возрастанию их значений методом обмена
Упорядочить элементы строк матрицы по возрастанию их значений методом обмена fi(aij)-сумма...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.