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

Динамический массив и работа с файлами - C++

Восстановить пароль Регистрация
 
lubchuk
 Аватар для lubchuk
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 8
29.04.2010, 23:58     Динамический массив и работа с файлами #1
Было дано задание:
Массив определять как динамический. Исходные данные и результаты размещать в текстовых файлах. Обработку массивов оформить в виде функций.
Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицы размером 10 на 10.
Найти сумму модулей элементов, расположенных выше главной диагонали.

Вот мой код:
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
#include<iostream>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
 
using namespace std;
FILE*fi,*fo;
//==========================
void FVvod(int**a)
{int i,j;
cout<<"Kol-vo strok=10";
cout<<"\nKol-vo stolbcov=10\n";
for(j=0;j<10;j++)
for(i=0;i<10;i++)
fscanf(fo,"%i",&a[i][j]);
cout<<"\nmatriza:\n";
for(i=0;i<10;i++)
for(j=0;j<10;j++)
fscanf(fi,"%i",&a[i][j]);
}
//==========================
void sum(int** a,float tt)
{int i,j;
for(i=0;i<10;i++)
{for(j=0;j<10;j++)
{if (i==j)
tt+=a[i-1][j];}}
cout<<"\nSumma- "<<tt;
}
//==========================
void lokal(int** a)
{int i=0,j=0,k=0;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
                if ((i==0)&&(j==0))
                {
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                }
                if ((i==10)&&(j==10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i-1][j-1]))
                k++;
                }
                if ((i==10)&&(j==0))
                {
                if ((a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j])&&(a[i][j]<a[i-1][j+1]))
                k++;
                }
                if ((i==0)&&(j==10))
                {
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i+1][j-1]))
                k++;
                }
                if ((i==0)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i+1][j]))
                k++;
                }
                if ((i==10)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i-1][j]))
                k++;
                }
                if ((j==0)&&(i!=0)&&(i!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i][j+1]))
                k++;
                }
                if ((j==10)&&(i!=0)&&(i!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i][j-1]))
                k++;
                }
                if ((i!=0)&&(i!=10)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                }
}
cout<<"\nKol-vo.lokal.min- "<<k;
}                         
//==========================
int main()
{int i,j;
 
fi=fopen("D:\\1.txt","w");
fo=fopen("D:\\2.txt","rt");
 
int**a= new int*[10];
for(i=0;i<10;i++)
a[i]=new int[10]; 
    
    FVvod(a);   
    sum(a);
    lokal(a);
    getch();    
    return 0;
}
Прога только начинает запускаться и тут же вылетает....данные в исходном файле стираются...

Если можно то еще объясните как сделать чтобы выводило полученные данные в файл...

Компилятор Dev
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vet
 Аватар для vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
30.04.2010, 12:04     Динамический массив и работа с файлами #2
1)Какой формат входного файла? И что там содержится?

2)в main у Вас: sum(a);
В сама ф-ция void sum(int** a,float tt) с двумя параметрами
lubchuk
 Аватар для lubchuk
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 8
30.04.2010, 17:19  [ТС]     Динамический массив и работа с файлами #3
в файле цифры, формат txt, а с функцией sum спасибо, поправил, все равно естественно вылетает...

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<iostream>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
 
using namespace std;
FILE*fi,*fo;
//==========================
void FVvod(int**a)
{int i,j;
cout<<"Kol-vo strok=10";
cout<<"\nKol-vo stolbcov=10\n";
for(j=0;j<10;j++)
for(i=0;i<10;i++)
fscanf(fo,"%i",&a[i][j]);
cout<<"\nmatriza:\n";
for(i=0;i<10;i++)
for(j=0;j<10;j++)
fscanf(fi,"%i",&a[i][j]);
}
//==========================
void sum(int** a)
{int i,j;
float tt;
for(i=0;i<10;i++)
{for(j=0;j<10;j++)
{if (i==j)
tt+=a[i-1][j];}}
cout<<"\nSumma- "<<tt;
 
}
//==========================
void lokal(int** a)
{int i=0,j=0,k=0;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
                if ((i==0)&&(j==0))
                {
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                }
                if ((i==10)&&(j==10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i-1][j-1]))
                k++;
                }
                if ((i==10)&&(j==0))
                {
                if ((a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j])&&(a[i][j]<a[i-1][j+1]))
                k++;
                }
                if ((i==0)&&(j==10))
                {
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i+1][j-1]))
                k++;
                }
                if ((i==0)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i+1][j]))
                k++;
                }
                if ((i==10)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i-1][j]))
                k++;
                }
                if ((j==0)&&(i!=0)&&(i!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i][j+1]))
                k++;
                }
                if ((j==10)&&(i!=0)&&(i!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i][j-1]))
                k++;
                }
                if ((i!=0)&&(i!=10)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                }
}
cout<<"\nKol-vo.lokal.min- "<<k;
}                         
//==========================
int main()
{int i,j;
 
fi=fopen("D:\\1.txt","w");
fo=fopen("D:\\2.txt","rt");
 
int**a= new int*[10];
for(i=0;i<10;i++)
a[i]=new int[10]; 
    
    FVvod(a);   
    sum(a);
    lokal(a);
    getch();    
    return 0;
}
Проблема с чтением из файла только я ее найти не могу...

П.С. в файле такой набор чисел:
Код
1 2 3 4 5 6 7 8 9 0
2 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
vet
 Аватар для vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
01.05.2010, 06:46     Динамический массив и работа с файлами #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
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
#include<iostream>
#include <fstream>
using namespace std;
 ifstream in("D:\\1.txt");
 ofstream out  ("D:\\2.txt");
//==========================
void FVvod(int**a)
{int i=0,j=0;
cout<<"Kol-vo strok=10";
cout<<"\nKol-vo stolbcov=10\n";
while(in)
{
         for(i=0;i<10;i++){
for(j=0;j<10;j++){
in>> a[i][j];
     }                      
}
}
 
       
                             
//scanf(fo,"%i",&a[i][j]);
cout<<"\nmatriza:\n";
for(i=0;i<10;i++){
for(j=0;j<10;j++){
                  cout << a[i][j] << " ";
                  }
                  cout << "\n";
                  } 
//scanf(fi,"%i",&a[i][j]);
}
//==========================
void sum(int** a)
{int i,j;
float tt;
for(i=1;i<=10;i++)//!!!!!!!!!!!!!!!!!!!!!!!!!
{for(j=0;j<10;j++)
{if (i==j)
tt+=a[i-1][j];}}// Çäåñü была îøèáêГ*: i-1 (ïîëó÷Г*ëîñü,Г·ГІГ® Г*Г* 1-Г© 
//ГЁГІГҐГ°Г*öèè (0-1), Г* ГЁГ*äåêñ îòðèö áûòü Г*ГҐ ìîæåò)
out <<"\nÑóììГ* = "<<tt;// Âûâîä Гў ГґГ*éë 2.txt
cout<<"\nSumma- "<<tt;
 
}
//==========================
void lokal(int** a)
{int i=0,j=0,k=0;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
                if ((i==0)&&(j==0))
                {
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                }
                if ((i==10)&&(j==10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i-1][j-1]))
                k++;
                }
                if ((i==10)&&(j==0))
                {
                if ((a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j])&&(a[i][j]<a[i-1][j+1]))
                k++;
                }
                if ((i==0)&&(j==10))
                {
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i+1][j-1]))
                k++;
                }
                if ((i==0)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i+1][j]))
                k++;
                }
                if ((i==10)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i-1][j]))
                k++;
                }
                if ((j==0)&&(i!=0)&&(i!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i][j+1]))
                k++;
                }
                if ((j==10)&&(i!=0)&&(i!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i][j-1]))
                k++;
                }
                if ((i!=0)&&(i!=10)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                }
}
out << "\nÊîë-ГўГ® ëîêГ*ëüГ*ûõ ìèГ*èìóìîâ- "<<  k;// Âûâîä Гў ГґГ*éë 2.txt
cout<<"\nKol-vo.lokal.min- "<<k;
}                         
//==========================
int main()
{int i,j;
 
 
//fi=fopen("D:\\1.txt","w");
//fo=fopen("D:\\2.txt","rt");
 
int**a= new int*[10];
for(i=0;i<10;i++)
a[i]=new int[10]; 
    
    FVvod(a);   
        sum(a);
        lokal(a);
        cin.get();        
}
lubchuk
 Аватар для lubchuk
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 8
01.05.2010, 21:34  [ТС]     Динамический массив и работа с файлами #5
vet, ОГРОМНОЕ СПАСИБО!!!!! Не знаю даже как благодарить!!
и в Сумме я тупанул
Большее спасибо еще раз
vet
 Аватар для vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
02.05.2010, 02:29     Динамический массив и работа с файлами #6
Пожалуйста
Darky
Быдлокодер
 Аватар для Darky
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
02.05.2010, 08:29     Динамический массив и работа с файлами #7
lubchuk, Я, может быть, не в тему, но совет на будущее - постарайтесь делать код более читабельным, а то разобрать его крайне проблематично.
lubchuk
 Аватар для lubchuk
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 8
07.05.2010, 16:47  [ТС]     Динамический массив и работа с файлами #8
еще есть вопрос, по этой программе...
вот это место нужно заменить:
C++
1
2
if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
я сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if ((i!=0)&&(i!=9)&&(j!=0)&&(j!=9))
                {
                m=i-1;
                s=j-1;
                t=i+2;
                l=j+2;
                q=0;
                y=a[i][j];
                for(b=m;b<t;b++)
                for(c=s;c<l;c++)
                if ((b!=(m+1))&&(c!=(s+1)))
                if (y<(a[b][c])) 
                q++;        
                if (q==8)
                k++;
Определил переменные так:
C++
1
int i,j,b,c,m,s,t,l,y=0,q,k=0;
набор символов в документе 1.txt такой:
1 2 1 4 5 6 7 8 9 0
2 5 5 4 5 6 7 8 9 1
1 5 5 4 5 6 7 8 9 0
2 5 0 4 5 6 7 8 9 1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 9
0 2 3 4 0 6 7 8 9 0

И вот 0 (3 столбик, 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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
 
#include<iostream>
#include <fstream>
using namespace std;
 ifstream in("D:\\1.txt");
 ofstream out  ("D:\\2.txt");
//==========================
void FVvod(int**a)
{int i=0,j=0;
cout<<"Kol-vo strok=10";
cout<<"\nKol-vo stolbcov=10\n";
while(in)
{
         for(i=0;i<10;i++){
for(j=0;j<10;j++){
in>> a[i][j];
     }                      
}
}
 
       
                             
//scanf(fo,"%i",&a[i][j]);
cout<<"\nmatriza:\n";
for(i=0;i<10;i++){
for(j=0;j<10;j++){
                  cout << a[i][j] << " ";
                  }
                  cout << "\n";
                  } 
//scanf(fi,"%i",&a[i][j]);
}
//==========================
void sum(int** a)
{int i,j;
float tt;
for(i=0;i<10;i++)
{for(j=0;j<10;j++)
{if (j>i)
tt+=a[i][j];}}out <<"\nSumma = "<<tt;
cout<<"\nSumma- "<<tt;
 
}
//==========================
void lokal(int** a)
{int i,j,b,c,m,s,t,l,y=0,q,k=0;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
                if ((i==0)&&(j==0))
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                if ((i==9)&&(j==9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i-1][j-1]))
                k++;
                if ((i==9)&&(j==0))
                if ((a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j])&&(a[i][j]<a[i-1][j+1]))
                k++;
                if ((i==0)&&(j==9))
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i+1][j-1]))
                k++;
                if ((i==0)&&(j!=0)&&(j!=9))
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i+1][j]))
                k++;
                if ((i==9)&&(j!=0)&&(j!=9))
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i-1][j]))
                k++;
                if ((j==0)&&(i!=0)&&(i!=9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i][j+1]))
                k++;
                if ((j==9)&&(i!=0)&&(i!=9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i][j-1]))
                k++;   
           [B] if ((i!=0)&&(i!=9)&&(j!=0)&&(j!=9))                                           
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;[/B]
                }
                
                
                              
                         
out << "\nКол-во локальных минимумов- "<<  k;// Вывод в файл 2.txt
cout<<"\nKol-vo.lokal.min- "<<k;
}                         
//==========================
int main()
{int i,j;
 
 
//fi=fopen("D:\\1.txt","w");
//fo=fopen("D:\\2.txt","rt");
 
int**a= new int*[10];
for(i=0;i<10;i++)
a[i]=new int[10]; 
    
    FVvod(a);   
        sum(a);
        lokal(a);
        cin.get();        
}
Я заменил так:
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
#include<iostream>
#include <fstream>
using namespace std;
 ifstream in("D:\\1.txt");
 ofstream out  ("D:\\2.txt");
//==========================
void FVvod(int**a)
{int i=0,j=0;
cout<<"Kol-vo strok=10";
cout<<"\nKol-vo stolbcov=10\n";
while(in)
{
         for(i=0;i<10;i++){
for(j=0;j<10;j++){
in>> a[i][j];
     }                      
}
}
 
       
                             
//scanf(fo,"%i",&a[i][j]);
cout<<"\nmatriza:\n";
for(i=0;i<10;i++){
for(j=0;j<10;j++){
                  cout << a[i][j] << " ";
                  }
                  cout << "\n";
                  } 
//scanf(fi,"%i",&a[i][j]);
}
//==========================
void sum(int** a)
{int i,j;
float tt;
for(i=0;i<10;i++)
{for(j=0;j<10;j++)
{if (j>i)
tt+=a[i][j];}}out <<"\nSumma = "<<tt;
cout<<"\nSumma- "<<tt;
 
}
//==========================
void lokal(int** a)
{int i,j,b,c,m,s,t,l,y=0,q,k=0;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
                if ((i==0)&&(j==0))
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                if ((i==9)&&(j==9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i-1][j-1]))
                k++;
                if ((i==9)&&(j==0))
                if ((a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j])&&(a[i][j]<a[i-1][j+1]))
                k++;
                if ((i==0)&&(j==9))
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i+1][j-1]))
                k++;
                if ((i==0)&&(j!=0)&&(j!=9))
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i+1][j]))
                k++;
                if ((i==9)&&(j!=0)&&(j!=9))
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i-1][j]))
                k++;
                if ((j==0)&&(i!=0)&&(i!=9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i][j+1]))
                k++;
                if ((j==9)&&(i!=0)&&(i!=9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i][j-1]))
                k++;                                              
                if ((i!=0)&&(i!=9)&&(j!=0)&&(j!=9))
                {
                m=i-1;
                s=j-1;
                t=i+2;
                l=j+2;
                q=0;
                y=a[i][j];
                for(b=m;b<t;b++)
                for(c=s;c<l;c++)
                if ((b!=(m+1))&&(c!=(s+1)))
                if (y<(a[b][c])) 
                q++;        
                if (q==8)
                k++;
                }
                }
                
                
                              
                         
out << "\nКол-во локальных минимумов- "<<  k;
cout<<"\nKol-vo.lokal.min- "<<k;
}                         
//==========================
int main()
{int i,j;
 
 
//fi=fopen("D:\\1.txt","w");
//fo=fopen("D:\\2.txt","rt");
 
int**a= new int*[10];
for(i=0;i<10;i++)
a[i]=new int[10]; 
    
    FVvod(a);   
        sum(a);
        lokal(a);
        cin.get();       
}

Смотрим Функцию lokal...
lubchuk
 Аватар для lubchuk
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 8
09.05.2010, 15:48  [ТС]     Динамический массив и работа с файлами #9
Буду благодарен если поможете...
Есть у кого какие предложения?
П.С. Сори за даблпостинг...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2010, 02:15     Динамический массив и работа с файлами
Еще ссылки по теме:

C++ Работа с файлами (умножить массив на 5, и полученный результат сохранить в файле)
Работа с файлами запись в массив цифр C++
Работа с файлами(открыть файл, считать данные в double массив) C++

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

Или воспользуйтесь поиском по форуму:
lubchuk
 Аватар для lubchuk
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 8
11.05.2010, 02:15  [ТС]     Динамический массив и работа с файлами #10
Все уже не нужна помощь))) Нашел в чем ошибка, а вернее не точность)))
Правильный код такой:
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
 
#include<iostream>
#include <fstream>
using namespace std;
 ifstream in("D:\\1.txt");
 ofstream out  ("D:\\2.txt");
//==========================
void FVvod(int**a)
{int i=0,j=0;
cout<<"Kol-vo strok=10";
cout<<"\nKol-vo stolbcov=10\n";
while(in)
{
         for(i=0;i<10;i++){
for(j=0;j<10;j++){
in>> a[i][j];
     }                      
}
}
 
       
                             
//scanf(fo,"%i",&a[i][j]);
cout<<"\nmatriza:\n";
for(i=0;i<10;i++){
for(j=0;j<10;j++){
                  cout << a[i][j] << " ";
                  }
                  cout << "\n";
                  } 
//scanf(fi,"%i",&a[i][j]);
}
//==========================
void sum(int** a)
{int i,j;
float tt;
for(i=0;i<10;i++)
{for(j=0;j<10;j++)
{if (j>i)
tt+=a[i][j];}}out <<"\nÑóììГ* = "<<tt;// Âûâîä Гў ГґГ*éë 2.txt
cout<<"\nSumma- "<<tt;
 
}
//==========================
void lokal(int** a)
{int i,j,b,c,m,s,t,l,k=0,p,q,n;
float y;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{                
                if ((i==0)&&(j==0))
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                if ((i==9)&&(j==9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i-1][j-1]))
                k++;
                if ((i==9)&&(j==0))
                if ((a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j])&&(a[i][j]<a[i-1][j+1]))
                k++;
                if ((i==0)&&(j==9))
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i+1][j-1]))
                k++;
                if ((i==0)&&(j!=0)&&(j!=9))
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i+1][j]))
                k++;
                if ((i==9)&&(j!=0)&&(j!=9))
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i-1][j]))
                k++;
                if ((j==0)&&(i!=0)&&(i!=9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i][j+1]))
                k++;
                if ((j==9)&&(i!=0)&&(i!=9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i][j-1]))
                k++;                                              
                }
for(i=1;i<9;i++)
for(j=1;j<9;j++)       
{
                       
                m=i-1;
                s=j-1;
                t=i+2;
                l=j+2;
                p=i;
                n=j;
                q=0;
                y=a[i][j];                      
                for(b=m;b<t;b++)
                for(c=s;c<l;c++)                                             
                if (y<a[b][c])                 
                q++;                     
                if (q==8)
                k++;
                
                }
                
                
                              
                         
out << "\nÊîë-ГўГ® ëîêГ*ëüГ*ûõ ìèГ*èìóìîâ- "<<  k;// Âûâîä Гў ГґГ*éë 2.txt
cout<<"\nKol-vo.lokal.min- "<<k;
}                         
//==========================
int main()
{int i,j;
 
 
//fi=fopen("D:\\1.txt","w");
//fo=fopen("D:\\2.txt","rt");
 
int**a= new int*[10];
for(i=0;i<10;i++)
a[i]=new int[10]; 
    
    FVvod(a);   
        sum(a);
        lokal(a);
        cin.get();        
}
Yandex
Объявления
11.05.2010, 02:15     Динамический массив и работа с файлами
Ответ Создать тему
Опции темы

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