Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AndrewWhite
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 16
#1

Перенос вычислений в подпрограмму - C++

17.02.2014, 15:04. Просмотров 220. Ответов 4
Метки нет (Все метки)

Здравствуйте, есть лаба в которой нужно найти след трёх прямоугольных матриц и вывести на экран наибольший их них. Вычисления нужно оформить как подпрограмму. Как это сделать?
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
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define n 2
#define m 3
#define o 3
#define p 4
int main()
{
int i,j, sum1=0, sum2=0, sum3=0;
 
int a[n][m]={
        {2,5,6},
        {1,8,3}
             };//first matrix
int b[o][p]={
        {4,5,2,7},
        {6,4,2,2},
        {3,2,8,5}
             };//second matrix
int c[n][m]={
        {1,4,2},
        {3,4,2}
            };//third matrix
 
printf("Matrix A:\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%i\t",a[i][j]);
printf("\n");
};//Output first matrix
 
printf("\nMatrix B:\n");
for(i=0;i<o;i++)
{
for(j=0;j<p;j++)
printf("%i\t",b[i][j]);
printf("\n");
};//output second matrix
 
printf("\nMatrix C:\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%i\t",c[i][j]);
printf("\n");
};//output third matrix
 
for (i=0;i<n;i++)
{
        sum1=sum1+a[i][i];
}
printf("\nSled A: %i",sum1);//Sled A
 
 
for (i=0;i<o;i++)
{
        sum2=sum2+b[i][i];
}
printf("\nSled B: %i",sum2);//Sled B
 
for (i=0;i<n;i++)
{
        sum3=sum3+c[i][i];
}
printf("\nSled C: %i",sum3);//Sled C
 
if (sum1>sum2 && sum1>sum3)
printf("\nA the biggest");
 
else if (sum2>sum1 && sum2>sum3)
printf("\nB the biggest");
 
else if (sum3>sum1 && sum3>sum2)
printf("\nC the biggest");
 
 
getch();
return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2014, 15:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перенос вычислений в подпрограмму (C++):

Распараллеливание вычислений - C++
Здравствуйте. Может кто сможет подсказать как мне решить следующую задачу: необходимо распараллелить следующий последовательный код:...

Распараллеливание вычислений - C++
Вычисляю произведение матриц несколькими потоками (количество задаётся пользователем). Потоки &quot;засыпают&quot; на 1 мс. При вычислении...

Оптимизация вычислений - C++
Есть код: fstream file(&quot;out13.txt&quot;, ios::out); int index, summ; for(index = 0; index&lt;=9; ++index) { cout &lt;&lt;...

Погрешность вычислений - C++
Читаю книгу Дейтелов &quot;Как программировать на С++&quot;, попалась следующая задача, где нужно вводить кол-во бензина, пройденный путь, исходя из...

Порядок вычислений C++ - C++
Каков порядок вычисления для этого предложения,какие предположения можно сделать о типе операндов?Имеет ли место неоднозначность...

Точность вычислений - C++
Для проверки точности вычислений существуют формулы и калькулятор на 200000 знаков до и после запятой. Проверяются любые вычисленные...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
17.02.2014, 18:15 #2
Цитата Сообщение от AndrewWhite Посмотреть сообщение
Вычисления нужно оформить как подпрограмму. Как это сделать?
Выделить некоторые действия в функцию. Дать ей имя, и определить список параметров. А потом вызвать где необходимо.
0
AndrewWhite
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 16
18.02.2014, 11:07  [ТС] #3
Ну это я знаю И вроде бы все ясно и понятно, а вот на практике никак не выходит.
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
18.02.2014, 11:44 #4
AndrewWhite, ну вот например берем кусок кода:
C++
1
2
3
4
5
6
7
8
if (sum1>sum2 && sum1>sum3)
printf("\nA the biggest");
 
else if (sum2>sum1 && sum2>sum3)
printf("\nB the biggest");
 
else if (sum3>sum1 && sum3>sum2)
printf("\nC the biggest");
Это у Вас строки 69-76.

Обрамляем в функцию:
C++
1
2
3
4
5
6
7
8
9
10
11
void printBiggest( int sum1, int sum2, int sum 3)
{
   if (sum1>sum2 && sum1>sum3)
   printf("\nA the biggest");
 
   else if (sum2>sum1 && sum2>sum3)
   printf("\nB the biggest");
 
   else if (sum3>sum1 && sum3>sum2)
   printf("\nC the biggest");
}
Удаляем их там, где они были изначально и делаем вызов функции:
C++
1
printBiggest( sum1, sum2, sum3);
Потом можно например заняться переименованием параметров и прочим рефакторингом.
1
AndrewWhite
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 16
18.02.2014, 14:30  [ТС] #5
Спасибо большое. Понял свои ошибки и сделал как надо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2014, 14:30
Привет! Вот еще темы с ответами:

Погрешность вычислений - C++
определить погрешность вычислений на ЭВМ выражения а*(1/a), задавая тип данных для переменной a - float, double, long double. Для этого...

программирование математических вычислений - C++
Для 5 векторов, координаты которых записаны в массиве 5x3, определить номер того, длина которого минимальна, с помощью функции, которая...

Точность вычислений у double - C++
Дана задача: &quot;Определить, на сколько нулей заканчивается факториал числа n&quot;. Пример: вводим &quot;25&quot;, на выходе должны получить &quot;6&quot; (25! =...

Сравнение скорости вычислений с# и С++ - C++
Сделал тестовые расчеты для сравнения скорости расчетов с# и С++ на примере умножения квадратных матриц. Сравнил расчеты без ускорения...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.02.2014, 14:30
Ответ Создать тему
Опции темы

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