| 
| 
 | Вопрос # 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
 |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |