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

Переделать программу с использованием функций (минимум 3) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Минимальное расстояние http://www.cyberforum.ru/cpp-beginners/thread402518.html
Яша плавал в бассейне размером NM метров и устал. В этот момент он обнаружил, что находится на расстоянии x метров от одного из длинных бортиков (не обязательно от ближайшего) и y метров от одного из коротких бортиков. Какое минимальное расстояние должен проплыть Яша, чтобы выбраться из бассейна на бортик? Программа получает на вход числа N, M, x, y. Программа должна вывести число метров,...
C++ Elias coding Привет Есть ли какаята програма, что кодируєт числа за Омега и Дельта кодом Элиаса...? буду благодарен и за любую ссилочку на ети методи кодирования ( на википедию не кидайте уже) http://www.cyberforum.ru/cpp-beginners/thread402513.html
Перегрузка оператора == C++
Есть шаблонный класс List (не имеющий перегруженных операторов) и есть шаблонный класс ListWithName, который наследует List и из своих полей имеет ещё одно : строка с именем. Не могу понять что за странные ошибки у меня получаются, особенно удивляет замечание компилятора что функция должна принимать два аргумента =-O ListWithName template <typename T> class ListWithName: public List<T> {...
C++ обработка литерных величин
Проверьте,можно ли из слова Х составить слово У.нужно ввести два слова,и проверить,принадлежат ли все буквы слова У слову Х. не знаю как это сделать(
C++ Написать программу подсчета букв ‘и’ во введенной строке http://www.cyberforum.ru/cpp-beginners/thread402477.html
Здравствуйте. Простейшая программа: Написать программу подсчета букв ‘и’ во введенной строке. Не могу понять - почему не работает? Прошу помощи. #include <vcl.h> #include <iostream.h> #include <conio.h> #pragma hdrstop #pragma argsused #pragma hdrstop using namespace std;
C++ Можно ли строку (типа string) отсортировать с помощью qsort? Как можно строку a (типа string) отсортировать с помощью qsort, или это не возможно? На это ... int compare (const void * a, const void * b) { return ( *(int*)a - *(int*)b ); } ... qsort(a,a.length(),sizeof(char),compare); подробнее

Показать сообщение отдельно
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
10.12.2011, 23:37  [ТС]     Переделать программу с использованием функций (минимум 3)
Программа подсчитывает сумму определенных элементов двумерного массива (какие именно на картинке во вложениях)

вот то,что мне удалось состряпать.

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
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
 
void input(int *n, int *massiv)
{
  int i,j;
  setlocale(LC_ALL,"RUS");
  cout<<"Введите размер массива n,принадлежащего интервалу (1;50)."<<endl<<endl<<"n = ";
  do
  { 
   cin>>*n;
   if ((1<*n)&&(*n<50)) break;
   else cout<<"Ваш размер массива не входит в указанный интервал."<<endl
            <<"Введите другой размер массива!"<<endl
            <<"Новый размер массива n = "; 
  }
  while(1);
 
  ifstream is("D://forlabs/for9.txt");
   for(i=0;i<*n;i++)
        for(j=0;j<*n;j++)
   {
         is >> *(*massiv+*n*i+j);
   }
  is.close();
 
 
}
 
void processing(int* allsum)
{
  const int max=49;
  int sb1=0,skn=0,sbn=0,sk1=0,i,j,size;
  int Array[max][max];
  
  cout<<"Обработка полученных данных"<<endl;
 
  input(&size,&Array[0][0]);
  
  cout<<"Вот элементы вашего массива: "<<endl;
 
  for(i=0;i<size;i++)
        {
        for(int j=0;j<size;j++)
         cout<<Array[size][size]<<" "; cout<<endl;
        }
  for(j=0;j<size;j++)
        {       
         i=0;
         sk1+=Array[size][size];
        }
  for(i=1;i<size;i++)
        {
         j=0;
         sb1+=Array[size][size];
        }
  for(j=1;j<(size-1);j++)
        {
         i=(size-1);
         skn+=Array[size][size];
        }
  for(i=1;i<size;i++)
        {
         j=(size-1);
         sbn+=Array[size][size];
        }
        *allsum=sb1+skn+sbn+sk1;
}
 
void main()
{ 
  const unsigned max=49;
  int razmer,A[max][max];
  int skANDsb;
  setlocale(LC_ALL,"RUS");
  cout<<"Программа для вычисления суммы элементов массива."<<endl<<"Версия с функциями."
      <<endl<<"Создана Лосевым Кириллом(студент группы 1301) :P!"<<endl<<endl;
  input(&razmer,&A[0][0]);
  
  if(razmer%2==0)
    {
    cout<<"Ваш размер "<<razmer<<" имеет четное значение";
        processing(&skANDsb);
        if(razmer==2) cout<<endl<<"Сумма необходимых элементов массива = "<<skANDsb<<endl;
        else          cout<<endl<<"Сумма необходимых элементов массива = "<<skANDsb+A[1][1]+A[1][razmer-1]+A[razmer-1][1]+A[razmer-1][razmer-1]<<endl;
    }
  
  else
        {
        cout<<"Ваш размер "<<razmer<<" имеет нечетное значение";
        processing(&skANDsb);
    if(razmer==3) cout<<endl<<"Сумма необходимых элементов массива = "<<skANDsb+(A[1][1])<<endl;
    else          cout<<endl<<"Сумма необходимых элементов массива = "<<skANDsb+(A[1][1])+(A[1][razmer-1])+(A[razmer-1][1])+(A[razmer-1][razmer-1])<<endl;
    }
}
вот исходная программа

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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# include "iostream"
# include "iomanip"
# include "strstream"
# include "fstream"
using namespace std;
 
int main()
{
 setlocale(LC_ALL,"RUS");
 const unsigned max=50; //максимальный размер массива
 int A[max][max],
 choose,            //выбор для запуска программы заново
 i,             //номер строки
 n,             //размер массива
 j,             //номер столбца
 sum=0,         //сумма в цикле
 sk1=0,         //сумма элементов 1 строки
 skn=0,         //сумма элементов n строки
 sb1=0,         //сумма элементов 1 столбца
 sbn=0;         //сумма элементов n столбца
 
 do
 {
         cout<<"________________________________________________________________________________" <<endl;
 cout<<"Введите размер массива n = ";
 do
 {  
  cin>>n;
  if((1<n)&&(n<50)) 
        break;
  else  
    cout<<"Ошибка! Пожалуйста," 
              <<"введите другой размер массива n=";
 }
 while(1);
 
 if(n%2==0)
 {
  cout<<"Ваш размер массива имеет четное значение"<<endl;
  ifstream is("D://forlabs/l6(ch).txt");    //ввод массива из файла
  for(int i=0;i<n;i++)
   for(int j=0;j<n;j++)
   {
    is >> A[i][j];
   }
  is.close();
 cout<<endl<<"Элементы вашего массива: "<<endl;
 for(i=0;i<n;i++)           
 {
  for(int j=0;j<n;j++)
   cout<<A[i][j]<<" "; cout<<endl;
 }
 for(j=0;j<n;j++)                   //расчет суммы элементов 1 строки
 {  
  i=0;
  sk1=sum+=A[i][j];
 }
 sum=0;
 for(i=1;i<n;i++)
 {
  j=0;
  sb1=sum+=A[i][j];
 }
 sum=0;
 for(j=1;j<(n-1);j++)
 {
  i=(n-1);
  skn=sum+=A[i][j];
 }
 sum=0;
 for(i=1;i<n;i++)
 {
  j=(n-1);
  sbn=sum+=A[i][j];
 }
 sum=0;
            
 if(n==2)          //сумма при n=2
    cout<<endl<<"Сумма элементов = "
    <<sb1+skn+sbn+sk1<<endl;
 else              //сумма при всех остальных четныз значениях
    cout<<endl<<"Сумма элементов = "
          <<sb1+skn+sbn+sk1+(A[1][1])+(A[(n-1)][1])+
      (A[(n-1)][(n-1)])+(A[1][(n-1)])<<endl;
}
else
{
cout<<"Ваш размер массива имеет нечетное значение"<<endl;
ifstream is("D://forlabs/l6(Nch).txt");
for(int i=0;i<n;i++)
 for(int j=0;j<n;j++)
 {
   is >> A[i][j];
 }
 is.close();
cout<<endl<<"Элементы вашего массива: "<<endl;
for(i=0;i<n;i++)
{
 for(int j=0;j<n;j++)
  cout<<A[i][j]<<" "; cout<<endl;
}
 
for(j=0;j<n;j++)
{   
 i=0;
 sk1=sum+=A[i][j];
}
sum=0;
for(i=1;i<n;i++)
{
 j=0;
 sb1=sum+=A[i][j];
}
sum=0;
for(j=1;j<(n-1);j++)
{
 i=(n-1);
 skn=sum+=A[i][j];
}
sum=0;
for(i=1;i<n;i++)
{
 j=(n-1);
 sbn=sum+=A[i][j];
}
sum=0;
            
if(n==3)
    cout<<endl<<"Сумма элементов = "
           <<sb1+skn+sbn+sk1+A[1][1]<<endl;
else        
    cout<<endl<<"Сумма элементов = "
                   <<sb1+skn+sbn+sk1+(A[1][1])+(A[(n-1)][1])
           +(A[(n-1)][(n-1)])+(A[1][(n-1)])<<endl;
}
cout<<endl<<"Запустить программу заново?"<<endl
               <<"Введите 1-""Да"" или 0-""Нет"""<<endl
           <<"Ваш выбор - ";
    
cin>>choose;
cout<<endl;
        
if(choose==0) break;
else continue;
}
while(1);
return 0;
}
Миниатюры
Переделать программу с использованием функций (минимум 3)  
 
Текущее время: 03:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru