|
Вопрос # 1 343/ вопрос открыт / |
|
Здравствуйте, эксперты!
Имеется текстовой файл,содержащий матрицу целых чисел
(array [1..8,1..8] of integer).
Сформировать на его основе новый текстовой файл,дополнив каждую строку исходного файла значением суммы элементов в данной строке и добавив строку,содержащую значения сумм элементов по столбцам матрицы.
 |
Вопрос задал: istra (статус: Посетитель)
Вопрос отправлен: 16 февраля 2008, 19:05
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, istra!
Ну задачка для первого класса:)
Итак. вначале нам надо массив обявить, для хранения данных и некоторые другие данные.
var a:array[1..8, 1..8] of integer;
s1,s2:array[1..8] of integer;
i,j:integer;
f:textfile;
Первым долгом нужно ввести данные с файла. будем надеятся, что данные там правильные, иначе задача усложняется.
assign(f,'data.txt');
reset(f);
for i:= 1 to 8 do begin
for j:=1 to 8 do
read(f,a[i,j]);
readln;
end;
close(f);
дальше надо вычислить сумму, для этого вначале обнулим дополнительные массивы.
for i := 1 to 8 do
begin
s1[i] := 0; s2[i] := 0;
end;
и собственно сумма
for i:= 1 to 8 do
for j:=1 to 8 do begin
s1[i] := s1[i] + a[i,j];
s2[j] := s[j] = a[i,j];
end;
теперь нужно вывести это всё в файл
assign(f, 'rez.txt');
rewrite(f);
for i :=1 to 8 do begin
for j:=1 to 8 do
write(f,a[i],' ');
write(f,s[j]); writeln(f);
end;
for i := 1 to 8 do
write(f, s2[i], ' ');
writeln(f);
close(f);
Осталось только соединить это в одну программу. также аккуратно проследите за результатом, а то я мог перепутать массивы s1 и s2 местами при выводе. Но это ведь не сложно, не так ли?
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 16 февраля 2008, 22:47
Оценка за ответ: 4
|
Ответ #2. Отвечает эксперт: Drozdov D.V.
Здравствуйте, istra!
Решить проблему как мне видится можно следующим способом
организовать доступ к файлу, затем произвести запись в него
матреци. Если известна матрица чисел то всё просто можно и в ручную заполнить.
В противном случае через цикл for.
Для записи каждой суммы в новой строке используйте writeln(f,matrix[1][2]);
РЕКОМЕНДУЮ ПОЧИТАТЬ
PASCAL на примерах из математики автор Адаменко Анатолий Николаевич
Надеюсь размышления на тему вам помогут!
Приложение: Переключить в обычный режим-
-
-
-
- matrix:= array [1..8] of integer [1..8] of integer;
-
- matrix:= array [1..8,1..8] of integer;
-
- matrix[2][5]
-
- matrix[2,5]
-
-
- f:file of integer;
- f:file;
-
-
-
-
-
-
-
-
-
-
- matrix[1][2]:=matrix[3][4]+matrix[3][5];
- write('element',matrix[6][6]);
-
-
 |
Ответ отправил: Drozdov D.V. (статус: 4-ый класс)
Время отправки: 22 февраля 2008, 10:49
Оценка за ответ: 4
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|