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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
No0b41k
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 68
#1

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

21.12.2010, 17:37. Просмотров 298. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2010, 17:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос работа с матрицей (C++):

Работа с матрицей в С++ - C++
Почему матрица выводится неправильно, подскажите пожалуйста? П.5.18.Правил Запрещено размещать задания и решения в виде картинок и...

работа с симметричной матрицей - C++
Работаю над реализацией симметричной матрицы на Си и столкнулся с такой проблемой: т.к. матрица симметричная,то памяти достаточно...

Работа с динамической матрицей - C++
Всем доброго времени суток, проблема заключается в том, что я ввожу значения в матрицу, а когда пытаюсь их обработать или просто вывести на...

Работа с квадратной матрицей - C++
Дана целочисленная квадратная матрица NxN определить: 1)Cумму элементов в тех столбцах,которые не содержат отрицательных элементов.( у...

Работа с целочисленной матрицей - C++
Дана целочисленная квадратная матрица 1. Найти сумму модулей элементов в строках, содержащих хотя бы один неотрицательный элемент 2....

Работа с очень большой матрицей - C++
Надо постоянно в программе обращаться к матрице большого размера с элементами double (приблизительно она весит 40Гб). Какие элементы С++...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2010, 17:37
Привет! Вот еще темы с ответами:

Работа с матрицей в шаблонном классе - C++
Часть работы разобрал, не получается сделать такое задание как: создать метод который дает возможность изменять кол-во строк или столбцов...

Работа с матрицей С++ Visual Studio - C++
Люди, помогите сделать задание с матрицей. Вобщем: Дана матрица натуральных чисел (Xij) порядка m*n. Упорядочить столбцы матрицы за...

Работа с матрицей (нахождение детерминант) - C++
привет всем форумчанинам! моя первая тема так что за оформление сори)) а теперь о главном)) В общем есть программа написанная на...

Работа с матрицей - исправить ошибки в коде - C++
работать не хочет... вылетает после 35 строки.(компилит нормально) как быть друзья? #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru