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

Лабораторная задача. кто мож помогите разобраться - C++

Восстановить пароль Регистрация
 
BoMa
0 / 0 / 0
Регистрация: 20.05.2011
Сообщений: 29
08.11.2011, 17:54     Лабораторная задача. кто мож помогите разобраться #1
Требования!

Программа обработки числовой матрицы, загружаемой из файла.
Ввод/вывод – потоковый. Имя файла с матричными данными должно вводиться пользователем с клавиатуры. Результат операции открытия файлового потока должен проверяться и в случае неудачи должно выводиться соответствующее сообщение.
Число строк и столбцов матрицы программа должна определять автоматически по содержимому файла.
Память под хранение матричных данных должна выделяться динамически в 2 этапа: выделение памяти для хранения указателей на строки, выделение памяти для хранения элементов каждой строки. Освобождение – аналогично, но в обратном порядке. Работа с динамической памятью – new, delete.
______________________________________________________________________________________-


Задача

В квадратной матрице вычислить сумму элементов, расположенных на одной горизонтали- M, вертикали – K с заданным элементом А[ М, K], и полученное значение присвоить всем элементам матрицы, не участвовавшим в суммировании.

Добавлено через 1 минуту
Это я сделал на паскале как на С++
Pascal
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
program z8;
 
 
 
 Var
 x:array[1..100,1..100] of Real;
 i,j,k,n,m,q,l:byte;
 summ,summv,summg:real;
 f:text;
 
begin
readln(n,m);
assign(f',hop.txt);
reset(f);
for i:=1 to n do begin
for j:=1 to m do begin read(f,x[i,j]);
write(x[i,j]:0:6);
end;
writeln;
end;
     Writeln('VVedite nomer striki s elementom');
     readln(n);
     Writeln('VVedite nomer stolbca s elementom');
     readln(k);
     summg:=0;
     for i:=1 to n do begin
     summg:=summg+x[n,j];
     end;
     summv:=0;
     for i:=1 to m do begin
     summv:=summv+x[i,k];
     end;
     summ:=summv+summg-2*x[n,k];
     writeln(summ:0:3);
     for i:=1 to l do begin
     for j:=1 to l do begin
     if (i<>n) and(j<>k) then x[i,j]:=summ;
     end;
     end;
     for i:=1 to n do begin
     for j:=1 to m do
     write(x[i,j]:6:0);
     writeln;
     end;
     readln;
 
end.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2011, 17:54     Лабораторная задача. кто мож помогите разобраться
Посмотрите здесь:

Помогите разобраться... C++
C++ Помогите разобраться в обозначениях
Теория автоматов (лабораторная работа) ПОМОГИТЕ! C++
C++ Помогите разобраться
C++ Помогите разобраться с задачей....
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xdozorx
15 / 16 / 1
Регистрация: 13.12.2009
Сообщений: 138
Записей в блоге: 1
08.11.2011, 19:11     Лабораторная задача. кто мож помогите разобраться #2
держи
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
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
        int **x;
        short i,j,k,n,m,q,l;
        int summ,summv=0,summg=0;
        int fail = 0; 
        fstream fi;
        cout<<"n ";
        cin>>n;
        cout<<"m ";
        cin>>m;
        
        x=new int*[n];
        for(i=0; i<n; i++)
            x[i]=new int[m];
 
        fi.open("D:\\1.txt", ios::in);
        
    if (!fi)
         { 
             cerr << "ошибка!\n"; 
            exit(1);
            }
for(i=0;i<n;i++)
        for(j=0;j<m;j++)
                fi>>x[i][j];
for(i=0;i<n;i++)
{
        for(j=0;j<m;j++)
                cout<<x[i][j]<<' ';
        cout<<endl;
}
fi.close();
 cout<<"VVedite nomer striki s elementom ";
cin>>q;
 cout<<"VVedite nomer stolbca s elementom ";
 cin>>k;
 int f;
 for (j=0; j<m; j++) 
    summg+=x[q][j];
 
for (i=0; i<n; i++)
    summv+=x[i][k];
 
 summ=summv+summg-2*x[q][k];
 cout<<summ<<" ";
 for (i=0; i<n; i++)
 for (j=0; j<m; j++)
    if ((i!=q)&&(j!=k))  x[i][j]=summ;
 
for(i=0;i<n;i++)
{
        for(j=0;j<m;j++)
                cout<<x[i][j]<<' ';
        cout<<endl;
}
fi.close();
    cout<<endl<<summg<<" "<<summv<<" "<<summ;
        cin.get(); 
        cin.get();
return 0;
}
BoMa
0 / 0 / 0
Регистрация: 20.05.2011
Сообщений: 29
08.11.2011, 19:16  [ТС]     Лабораторная задача. кто мож помогите разобраться #3
спасибо за код терь постараюсь под требования загнать...

Добавлено через 1 минуту
как вот сделать чтоб задача сама определяла сколько элементов в файле... а не использовала
cout<<"n ";
cin>>n;
cout<<"m ";
cin>>m;
xdozorx
15 / 16 / 1
Регистрация: 13.12.2009
Сообщений: 138
Записей в блоге: 1
08.11.2011, 19:41     Лабораторная задача. кто мож помогите разобраться #4
посчитать количество пробелов в строке до первого азбаца и прибавить 1 , ето будет количество столбцов, а количество строк , колво елем массива / количество столбцов
Yandex
Объявления
08.11.2011, 19:41     Лабораторная задача. кто мож помогите разобраться
Ответ Создать тему
Опции темы

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