Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 13.12.2011
Сообщений: 10

Помогите "разбить" программу на несколько функций

23.12.2011, 21:06. Показов 801. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть готовая программа по матрицам, нужно "разбить" её на несколько функций (нахождение столбцов с равными элементами и их удаление и подсчет суммы строк и вывод сумм строк с номерами равными координатам вектора)

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
#include <stdio.h>
#include <conio.h>
 
void main(void)
{
    int a[100][100],m,n,i,j,k,b[100][100],l,p=0, q, g[100],c;
 
 
    puts("vvedite kolichestvo strok m\n");
    scanf("%d",&m);
    puts("vvedite kolichestvo stolbcov n\n");
    scanf("%d",&n);
            puts("\nvvedite matricy");
    for (int i=0; i<m; i++)
     for (int j=0; j<n; j++)
       {
        printf ("a[%d][%d]= ", i+1,j+1);
        scanf ("%d", &a[i][j]);
       }
    puts("\nvi vveli matricu B\n");
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
            printf("%6d",a[i][j]);
        puts("\n");
    }
 
 
    for(j=0;j<n;j++)                      //нахождение столбцов с равными элементами и их удаление 
    {
        for(l=0,i=0;i<m;i++)
        {
            for(k=0;k<m;k++)
            {
                if(a[i][j]==a[k][j])
                            l++;
 
            }
 
        }
                if(l==k)
        {
            for(l=0;l<n;l++)
                b[l][p]=a[l][j];
            p++;
        }
 
    }
 
 
    puts("\nnovaya matrica C\n");
    for(i=0;i<m;i++)
    {
        for(j=0;j<p;j++)
            printf("%6d",b[i][j]);
        puts("\n");
    }
 
   printf ("\nvvedite razmer vektora q: ");
    scanf ("%d", &q);
    for (int i=0; i<q; i++)
    {
      printf ("\nvvedite %d koord vektora ", i+1);
      scanf ("%d", &g[i]);
    }
     printf ("\nvash vektor:\t");
      for (int i=0; i<q; i++)
      {
      printf ("%d\t", g[i]);
      }
 
       for (int i=0; i<q; i++)
        {
        if (g[i]<=0)
         {
          g[i]=g[i+1];
         }
        }
 
 
    float sum;                              // подсчет и вывод сумм строк с номерами равными коорд. вектора
     for (int i=0; i<m; i++)
     {
        sum=0;
        c=0;
          for (int j=0; j<p; j++)
          {
          sum += b[i][j];
          c=i;
          }
        for (int i=0; i<q; i++)
        {
          if (g[i]==c+1)
          {
          printf ("\nsumma %d ctroki = %f\n",c+1, sum)   ;
          }
        }
     }
 
 
   getch ();
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.12.2011, 21:06
Ответы с готовыми решениями:

Разбить программу на несколько функций
Как сделать эту программу в виде функций, сейчас она работает правильно. Программа ищет все локальные минимумы(элемент который меньше всех...

Динамический массив, разбить программу на несколько функций
Разбить программу на несколько функций #include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;locale.h&gt; int main() { setlocale(LC_CTYPE,...

Разбить на несколько функций
Доброго времени суток, подскажите пожалуйста, нужно разбить одну большую функцию, на несколько. Вот исходные код с одной...

1
49 / 49 / 13
Регистрация: 29.06.2011
Сообщений: 174
24.12.2011, 00:57
Вот пример функции(код не отлажен да и я просто тут закопипастил):
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
int find_stolb(int *a, int *b)
{ 
    int i,j,k,p;
    for(j=0;j<n;j++)                      //нахождение столбцов с равными элементами и их удаление 
        {
                for(l=0,i=0;i<m;i++)
                {
                        for(k=0;k<m;k++)
                        {
                                if(*a[i][j]==*a[k][j])
                                l++;
 
                        }
 
                }
                if(l==k)
                {
                        for(l=0;l<n;l++)
                                *b[l][p]=*a[l][j];
                        p++;
                }
 
         puts("\nnovaya matrica C\n");
        for(i=0;i<m;i++)
        {
                for(j=0;j<p;j++)
                        printf("%6d",*b[i][j]);
                puts("\n");
        }
        return *b;
}
Суть в том, что нужно описать алгоритм, а при вызове функции просто указать аргументы(кажется я кэп)
Для улучшенного понимания советую почитать книгу Кернигана и Ритчи "Программирование на Си" (второе издание)
Конечно лучше использовать указатели(как в данном примере-a и b-указатели на массивы)-сэкономите уйму памяти(если будете работать с БОЛЬШИМ числом элементов)-да и алгоритм можно поэффективней найти
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.12.2011, 00:57
Помогаю со студенческими работами здесь

Thread разбить программу в несколько потоков mutex, разбить класс на несколько потоков
Всем привет! Помогите пожалуйста разделить мою программу на несколько потоков, вроде используют mutex, но я не знаю как его...

Разбить программу на несколько файлов
Препод сказал вывести так чтобы функци была отдельно программа отдельно и файл вызова отдельно!Ничего не получается,может кто знает в чем...

Разбить программу на несколько отдельных библиотек
Привет. Подскажите такую вещь: Например написали мы небольшой пример на Java. Используем сборщик Maven. И вот теперь хотим разбить...

Программу с классами разбить на несколько файлов
Здравствуйте. Я учусь программировать на с++ и столкнулся с проблемой. Не могу найти как написать мой код класса, отдельными файлами...

Thread разбить программу в несколько потоков
Всем привет! Народ, такая проблема, написала программу, теперь нужно её разбить на несколько потоков. Но вот беда, не умею пользоваться...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru