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

рекурсия B c++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевод символа в число http://www.cyberforum.ru/cpp-beginners/thread353339.html
У меня такой вопрос. Необходимо прочитать из файла "input.txt" строку типа "D1", означающая координату на шахматной доске. Нужно первый символ (т.е. 'D') перевести в число согласно его порядку в английском алфавите. К примеру, для D это 4, для A это 1, для B это 2 и т.д. Я обычно пишу так: if(ch == 'A') i = 1; Может в С++ есть более эффективный прием?
C++ типы данных какой диапазон данных у main, getch? и какой тип данных у getch? http://www.cyberforum.ru/cpp-beginners/thread353333.html
Напечатать названия моделей авто, у которых максимальная скорость больше 180 км/ч C++
Известны максимальные скорости 20 моделей легковых автомобилей. Все значения выражены в км/ч. напечатать названия моделей, у которых максимальная скорость больше 180 км/ч. Помогите, пожалуйста, не силен пока в с++...
C++ Положительные и отрицательные элементы массива записать в разные переменные
В универе используем компилятор DEV C++. Была дана задача ввести массив разными способами(вручную и рандомно). И сделать следующее: чтобы все положительные элементы множились и записывались в некую переменную "р", а все отрицательные формировались в другой массив. И по своему не знанию...я не могу разобраться...Пошлите на путь истинный... А то лазил по форуму, и ничего не смог склеить(
C++ Производные(похідні) http://www.cyberforum.ru/cpp-beginners/thread353319.html
x^4+x^2+1 Как эту функцию решить в с++? покажите примером. Или там как то спец функция есть. Как находить математически производные я знаю, а вот как записать..
C++ Не получается считать информацию из файла в 2-х мерный массив (С++) Что-то не совсем праильно работает, да и подскажите как потом поменять местами столбики со строками соответственно (т.е. 1-я строка соответстует 1-у столбику и т.д.) и записать в другой файл #include <stdlib.h> #include <conio.h> #include <iostream> #include <fstream> #include <string> using namespace std; int main() { подробнее

Показать сообщение отдельно
антон1986
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 3
18.09.2011, 17:19     рекурсия B c++
пожалуйста помогите,почему не работает?
дело в рекурсии,функция func1 вызывается много раз..

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
 int func1 (float A[z][z],float B[z][z],float C[z][z],int N){ 
 
      int m;
      float P7[q][q],P6[q][q],P5[q][q],P4[q][q],P3[q][q],P2[q][q],P1[q][q],
      B11[q][q],B12[q][q],B21[q][q],B22[q][q],A11[q][q],A12[q][q],A21[q][q],A22[q][q],
      Asum1[q][q],Asum2[q][q],Asum5[q][q],Asum6[q][q],Asum7[q][q],
      Bsum1[q][q],Bsum3[q][q],Bsum4[q][q],Bsum6[q][q],Bsum7[q][q];
      
/////////////////////////////////////////////////////////////
  
    m=N/2;
 
    
     for(int i = 0;  i< m; ++i){
      for(int j = 0; j < m; ++j){
      (A11)[i][j]=0;
      (A11)[i][j]+=(A)[i][j];
      (A12)[i][j]=0;
      (A12)[i][j]+=(A)[i][j+m];
      (A21)[i][j]=0;
      (A21)[i][j]+=(A)[i+m][j];
      (A22)[i][j]=0;
      (A22)[i][j]+=(A)[i+m][j+m];}}
 
 
      for(int i = 0;  i< m; ++i){
      for(int j = 0; j < m; ++j){
      (B11)[i][j]=0;
      (B11)[i][j]+=(B)[i][j];
      (B12)[i][j]=0;
      (B12)[i][j]+=(B)[i][j+m];
      (B21)[i][j]=0;
      (B21)[i][j]+=(B)[i+m][j];
      (B22)[i][j]=0;
      (B22)[i][j]+=(B)[i+m][j+m];}}
      
      
     for(int i = 0;  i< m; ++i){
      for(int j = 0; j < m; ++j){
        
      Asum1[i][j]+=A11[i][j]+A22[i][j];      
     Bsum1[i][j]+=B11[i][j]+B22[i][j];
      
      Asum2[i][j]+=A21[i][j]+A22[i][j];
      
      Bsum3[i][j]+=B12[i][j]-B22[i][j];
      
      Bsum4[i][j]+=B21[i][j]-B11[i][j];
      
      Asum5[i][j]+=A11[i][j]+A12[i][j];
      
      Asum6[i][j]+=A21[i][j]-A11[i][j];
       Bsum6[i][j]+=B11[i][j]+B12[i][j];
       
        Asum7[i][j]+=A12[i][j]-A22[i][j];
        Bsum7[i][j]+=B21[i][j]+B22[i][j];}}
        
        
        if(m<2){   
           
                func2(Asum1,Bsum1,P1,m);
                func2(Asum2,B11,P2,m);
                func2(A11,Bsum3,P3,m);
                func2(A22,Bsum4,P4,m);
                func2(Asum5,B22,P5,m);
                func2(Asum6,Bsum6,P6,m);
                func2(Asum7,Bsum7,P7,m);
                int i;
                for( i=0;i<m;i++){
                for(int j=0;j<m;j++)         
                for(int k=0;k<m;++k) {  
                (C)[i][j]=P1[i][k]+P4[i][k]+P7[i][k]-P5[i][k];
                (C)[i][j+m]=P3[i][k]+P5[i][k];
                (C)[i+m][j]=P2[i][k]+P4[i][k];
                (C)[i+m][j+m]=P1[i][k]-P2[i][k]+P3[i][k]+P6[i][k];}}
                }  
                   
   
                else{ 
                
                          
          return func1(Asum1,Bsum1,P1,m);
          return func1(Asum2,B11,P2,m);
         return func1(A11,Bsum3,P3,m);
         return func1(A22,Bsum4,P4,m); 
         return func1(Asum5,B22,P5,m); 
         return func1(Asum6,Bsum6,P6,m); 
         return func1(Asum7,Bsum7,P7,m);
         int i;
                for( i=0;i<m;i++){
                for(int j=0;j<m;j++)         
                for(int k=0;k<m;++k) {  
                (C)[i][j]=P1[i][k]+P4[i][k]+P7[i][k]-P5[i][k];
                (C)[i][j+m]=P3[i][k]+P5[i][k];
                (C)[i+m][j]=P2[i][k]+P4[i][k];
                (C)[i+m][j+m]=P1[i][k]-P2[i][k]+P3[i][k]+P6[i][k];}}
         }
                
       
                
               
        
        
      
                   
        
    ofstream oos;
    oos.open("rezultatai.txt");
    oos<<"C:\n"<<endl;                                                                
    for(int i=0;i<kiek;i++){
    oos<<endl<<endl;
    for(int j=0;j<kiek;j++){
    oos<<"["<<setw(2)<<C[i][j]<<setw(2)<<"]";}}
    oos.close();
    
//////////////////////////////////////////////////
 
}      
 
    int func2 (float A[z][z],float B[z][z],float C[z][z],int N){ 
         
    for(int i=0;i<N;++i)
    for(int j=0;j<N;++j){
  
     C[i][j]=0;
     for(int k=0;k<N;++k)
     C[i][j]+=A[i][k]*B[k][j];}
     
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru