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

матрица и ее ввод\вывод из фаила - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Решить уравнение с абсолютной точностью http://www.cyberforum.ru/cpp-beginners/thread202066.html
помогите,пожалуйста,составить программу: Используя метод итераций решить следующее уравнение: 5 sin Z = ( 1+ Z )/ 2 ...
C++ Проверить, образуют ли элементы целочисленного массива размера N арифметическую1|геометрическую2 прогрессию помогите с решением задачи на С.облазил почти весь интернет нигде не могу найти решения. ЗАДАЧА: Проверить, образуют ли элементы целочисленного массива размера N арифметическую1|геометрическую2... http://www.cyberforum.ru/cpp-beginners/thread202062.html
C++ Работа с графиками
Подскажите как вообще построить график в с++(советы,исходники,примеры)?у меня visual studio 2010 есть уравнение прямой,где к и b задаются пользователем и есть квадратное уравнение ax^2+bx+c,где...
C++ Метод Шимбела
Пардон, ни у кого не завалялось кода алгоритма Шимбелла, метод состоит в нахождении кратчайших расстояний между двумя вершинами графа.
C++ Удаление простых положительных чисел из массива http://www.cyberforum.ru/cpp-beginners/thread202001.html
написал программу на си которая должна удалять простые положительные числа из массива. for(i=0;i<N;i++) {if(a>0) { b=a; if(simple(b)==true) {i2=i; while(i2<n) {a=a; i2++;...
C++ Переписать все простые числа из данного массива в другой массив Дан массив целых положительных чисел. Переписать все простые числа из данного массива в другой массив.Первый массив упорядочить Добавлено через 39 минут подскажите пожалуйста решение очень нужно... подробнее

Показать сообщение отдельно
No0b41k
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 68

матрица и ее ввод\вывод из фаила - C++

02.12.2010, 16:18. Просмотров 413. Ответов 6
Метки (Все метки)

Доброго дня ув. форумчане. Пожалуйста помогите исправить программу, делал в Visual Studio 2006, вылазит множество ошибок, я никак не могу понять что именно не правильно(.

Задание таково: дано действительную квадратную матрицу порядка n. Получить новую матрицу путем замены элементов, сумма индексов которых четная на среднее геометрическое модулей элементов, находящихся на главной диагонали. Предусмотреть и сделать главное меню программы, ввод\вывод из\в фаил, вывод на экран, ввод с клавиатуры.

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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
#include <iostream>
#include <ctime> 
#include <cmath>
#include <stdio.h>
 
using std::cout;
using std::cin;
using std::endl;
 
int sr_geo(); //среднее геометрическое
void s_klav(); //ввод с клавиатуры
void mas_vyv(); //вывод на экран
int m_menu(); //меню программы
int iz_faila(); //ввод из фаила
int masv_file(); //вывод в фаил
 
int sr_geo(int **arr, int n)
{
        int sr_geo=0;
        float pr=1;
        for(int i=0; i<n; i++)
        {
                pr*=abs(arr[i][i]);
        }
        sr_geo = (int)exp(log((float)pr)/n);
        return sr_geo;
}
 
int main()
{
    char fv;
    if(m_menu())
    {
    cout<<"Resultat: \n";
    mas_vyv();
    cout<<"Vyvesti v fail? y/n \n";
    cin>>fv;
    if (fv=='y')
    masv_file();
    }
    system("pause");
return 0;
}
 
void s_klav()
{
         srand((unsigned)time(NULL));
         int n,i,j;
         int sr;
         int **arr;
         cout<<"Vvedite razmer massiva: ";
         cin>>n;
         arr = new int*[n];
         cout<<"Massiv: "<<endl;
         for(i=0; i<n; i++)
      {
                  arr[i] = new int[n];
                  for(j=0; j<n; j++)
                   {
                     arr[i][j]=rand()%9+1;
                     cout<<arr[i][j]<<"  ";
                        }
            cout<<endl;
      }
}
 
void mas_vyv()
{
         sr = sr_geo(arr,n); 
         cout<<endl;
         cout<<"Sformirovannaya matrica:"<<endl;
         for(i=0; i<n; i++)
         {
                 for(j=0; j<n; j++)
                 {
                         if((i+j)%2==0)
                         {
                                 arr[i][j]=sr;
                         }
                         cout<<arr[i][j]<<"  ";
                 }
              cout<<endl;
         }
     delete arr;
}
 
int m_menu()
{
    int cho;
    do
    {
      cout<<"1 - vvesti s klaviaturi\n2 - iz faila\n0 - vyhod\n";
      cin>>cho;
      switch(cho)
      {
      case 1:
          s_klav();
          return 1;
          break;
      case 2:
          if(iz_faila())
          return 1;
          else return 0;
          break;
      default: cout<<"vvedite pynkt menu \n";
      }
    }
    while (vyb!=0);
}
 
int iz_faila()
{
    FILE *f;
    char fname [80];
    cout<<"Vvedite polnoe nazvanie fayla: \n";
    gets(fname);
    f=fopen(fname,"rt");
    if(f)
    {
        while(!feof(f))
        {
            if(fgetc(f)=='\n')
                n++;
        }
        fseek(f,0,SEEK_SET);
        m = new float * [n];
        for (i=0;i<n;i++)
        {
            m[i]=new float [n];
        }
        for (i=0;i<n;i++)
        {
            for (j=0;j<n;j++)
                fscanf(f,"%f",&m[i][j]);
        }
        fclose(f);
        return 1;
    }
    else 
    {
        cout<<"Oshibka otkritiya!\n";
        return 0;
    }
}
 
int masv_file()
{
    FILE *f;
    char fname [80];
    cout<<"Vvedite polnoe nazvanie fayla: \n";
    gets(fname);
    f=fopen(fname,"wt");
    if(f)
    {
        for (i=0; i<n; i++)
        {
            for (j=0; j<n; j++)
            {
               fprintf(f,"%f ",m[i][j]);
            }
            fprintf(f,"\n");
        }
        fclose(f);
        return 1;
    }
    else 
    {
        cout<<"Oshibka otkritiya!\n";
        return 0;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru