Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 343

/ вопрос открыт /

Здравствуйте, эксперты!
Имеется текстовой файл,содержащий матрицу целых чисел
(array [1..8,1..8] of integer).
Сформировать на его основе новый текстовой файл,дополнив каждую строку исходного файла значением суммы элементов в данной строке и добавив строку,содержащую значения сумм элементов по столбцам матрицы.

istra Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: 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 на примерах из математики автор Адаменко Анатолий Николаевич
Надеюсь размышления на тему вам помогут!

Приложение:
  1.  
  2.  
  3.  
  4.  
  5. matrix:= array [1..8] of integer [1..8] of integer;
  6.  
  7. matrix:= array [1..8,1..8] of integer;
  8.  
  9. matrix[2][5]
  10.  
  11. matrix[2,5]
  12.  
  13.  
  14. f:file of integer;
  15. f:file;
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26. matrix[1][2]:=matrix[3][4]+matrix[3][5];
  27. write('element',matrix[6][6]);
  28.  
  29.  


Ответ отправил: Drozdov D.V. (статус: 4-ый класс)
Время отправки: 22 февраля 2008, 10:49
Оценка за ответ: 4


Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:57
Выполнено за 0.02 сек.