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

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

Восстановить пароль Регистрация
 
AndrewWhite
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 16
17.02.2014, 15:04     Перенос вычислений в подпрограмму #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
#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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2014, 15:04     Перенос вычислений в подпрограмму
Посмотрите здесь:

C++ Точность вычислений
Точности вычислений double C++
C++ Оптимизация вычислений
C++ Результат вычислений функции
C++ Погрешность вычислений
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
17.02.2014, 18:15     Перенос вычислений в подпрограмму #2
Цитата Сообщение от AndrewWhite Посмотреть сообщение
Вычисления нужно оформить как подпрограмму. Как это сделать?
Выделить некоторые действия в функцию. Дать ей имя, и определить список параметров. А потом вызвать где необходимо.
AndrewWhite
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 16
18.02.2014, 11:07  [ТС]     Перенос вычислений в подпрограмму #3
Ну это я знаю И вроде бы все ясно и понятно, а вот на практике никак не выходит.
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
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);
Потом можно например заняться переименованием параметров и прочим рефакторингом.
AndrewWhite
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 16
18.02.2014, 14:30  [ТС]     Перенос вычислений в подпрограмму #5
Спасибо большое. Понял свои ошибки и сделал как надо.
Yandex
Объявления
18.02.2014, 14:30     Перенос вычислений в подпрограмму
Ответ Создать тему
Опции темы

Текущее время: 01:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru