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

работа с матрицей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Контейнерные классы http://www.cyberforum.ru/cpp-beginners/thread215176.html
Добрый вечер! Получил задание на редактирование параграфов из файла. Решил делать через контейнер вида map. Все считывается и выводится, но проблема в том, что выводится не по порядку. Например,...
C++ Классы + дружественные функции Завтра экзамен а решить как не знаю. Тем более в классах я неоч петрю. кто откликнется с помощью скажу спасибо! Создать класс Time для работы со временем в формате «час:минута:секунда». Класс... http://www.cyberforum.ru/cpp-beginners/thread215171.html
Создание класса C++
Кто знает как реализовать эту прогу с помощью класса? Треугольник x1, y1, x2, y2, x3, y3 · печать (координат вершин) · площадь · определение типа треугольника · по умолчанию (0,0,0,1,1,0)...
C++ Посоветуйте с многофайловой разработкой программ
Посоветуйте с программой. Экзамен завтра. 1) Описать аналоги библиотечных функций для работы со строками strlen(), strcat(), strcpy(), strcmp(). Протестировать функции в главной функции на...
C++ STL mismatch http://www.cyberforum.ru/cpp-beginners/thread215155.html
чтото я запутался в синтаксисе :( помогите заюзать mismatch, элементы не равны если различие более чем на Х. пс. если возможно организовать без pair? #include "stdafx.h" #include <iostream>...
C++ функция для приближённого вычисления Log... здраствуйте! помогите с задачкой пожалуйста Написать и протестировать функцию для приближённого вычисления Log2х с помощью многочлена наилучшего приближения (ниже прилагается картинка с... подробнее

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

работа с матрицей - C++

21.12.2010, 17:37. Просмотров 295. Ответов 0
Метки (Все метки)

Пожалуйста помогите дописать правильно функцию int iz_faila().
Эта функция у меня читает матрицу из фаила, и выводит ее на экран. В добавок к этому необходимо, что бы программа подсчитала новую из той, которая была в фаиле, (по форме, как в функции void s_klav().) и ее вывела на экран. И что бы после этого, полученную матрицу, можно было записать в фаил, как в функции int masv_file(). Это у меня не получается((

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
#include <iostream>
#include <ctime> 
#include <cmath>
#include <stdio.h> 
#include <cstdlib>
const int NotUsed=system("color F0");
  
using namespace std;
int sr_geo(); //среднее геометрическое
void s_klav(); //ввод с клавиатуры
void mas_vyv(); //вывод на экран
int m_menu(); //меню программы
int iz_faila(); //чтение матрицы из фаила
int masv_file(); //вывод в фаил
int **arr;
int Rw=0;        //размерность матрицы
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<<endl;
    mas_vyv();
    cout<<"Vyvesti v fail? y/n \n";
    do 
    {
        cin>>fv;
    }
    while(fv!='y' && fv!='n');
    if (fv=='y')
    masv_file();
    else printf("Exit \n");
    }
    return 0;
}
void s_klav()
{
    srand((unsigned)time(NULL));
    int n,i,j;
    int sr;
    cout<<"Vvedite razmer massiva: ";
    cin>>Rw;
    arr = new int*[Rw];
    cout<<"Massiv: "<<endl;
    for(i=0; i<Rw; i++)
    {
        arr[i] = new int[Rw];
        for(j=0; j < Rw; j++)
        {
            arr[i][j]=rand()%9+1;
            cout<<arr[i][j]<<"  ";
        }
            cout<<endl;
    }
}
void mas_vyv()
{
    int sr = sr_geo(arr,Rw); 
        cout<<endl;
        cout<<"Sformirovannaya matrica:"<<endl;
        for(int i=0; i < Rw; i++)
        {
            for(int j=0; j < Rw; j++)
            {
                    if((i+j)%2==0)
                    {
                            arr[i][j]=sr;
                    }
                    cout<<arr[i][j]<<"  ";
            }
            cout<<endl;
        }
}
int m_menu()
{
    int cho;
    
    cout<<"1 - vvesti s klaviaturi\n2 - iz faila\n0 - vyhod\n";
    cin>>cho;
    switch(cho)
    {
    case 0:
        exit('Exit');
        break;
    case 1:
        s_klav();
        return 1;
        break;
    case 2:
        return iz_faila();
        break;
        default: cout<<"vvedite pynkt menu \n";
    }
    return 1;
}
int iz_faila()
{
    FILE *f;
    char FileName [80];
    printf ("Vvedite adres faila: \n");
    scanf("%s",FileName);
    printf ("Adres faila: %s\n", FileName);
    f=fopen(FileName,"rt");
    int nElements=0, m=0;
    char ch;
    if(f!=NULL)
    {
        printf("Fail yspeshno otkrit! \n\n");
        while((ch=getc(f))!=EOF)
        {
            if((ch!='\n')&&(ch!=' '))nElements++;    
                printf(" %c ", ch);            
        }
        cout<<endl<<endl;
        printf("Number=%d",nElements);
        cout<<endl;
        fseek(f,0,SEEK_SET);
        fclose(f);
        return 1;
    }
    else 
    {
        cout<<"Oshibka otkritiya!\n";
        return iz_faila();
    }
}
int masv_file()
{
    char fname [80];
    cout<<"Vvedite polnoe nazvanie fayla: \n";
    cin>>fname;
    FILE *pFile = fopen(fname, "w+");
    if(pFile != NULL)
    {
        for (int i=0; i < Rw; i++)
        {
            for (int j=0; j < Rw; j++)
            {
                fprintf(pFile,"%d ", arr[i][j]);
            }
            fprintf(pFile,"\n");
            puts("");
        }
        fclose(pFile);
            return 1;
    }
    else 
    {
        cout<<"Oshibka otkritiya!\n";
        exit(1);
    }
    return 1;
}
Добавлено через 19 часов 14 минут
ап, помогите пожалуйста, очень срочно!

Добавлено через 22 часа 14 минут
up!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru