Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2013, 19:02   #1
Serikbye
 
Регистрация: 07.10.2013
Сообщений: 7
По умолчанию создать файлы для ввода и вывода

вот у меня есть готовая программа,нужно все лишь создать файлы для ввода и вывода.помогите))
Дана прямоугольная матрица размером n x n, содержащая вещественные числа. Определить сумму элементов в каждой строке матрицы. Упорядочить номера строк по убыванию значений найденных сумм с помощью алгоритма сортировки обменом. Вывести упорядоченный список номеров строк и соответствующих им сумм
Код:
 Program Ice8;
const Max=20;
Type Tmas = array [1..Max,1..Max] of real;
Procedure Vvoda (Var A: Tmas; Var n: integer);
Var i,j :integer;
BEGIN
randomize;
repeat
Write ('Размер матрицы [1..',Max,'] = ');
ReadLn(n);
until n in [1..Max];
for i:=1 to n do
for j:=1 to n do
A[i,j]:=10*random;
end;
Procedure Vyvoda (Var A: Tmas; n: integer);
Var i,j :integer;
Begin
WriteLn ('Исходная матрица');
for i:=1 to n do
 Begin
  for j:=1 to n do
  Write(A[i,j]:6:2);
  WriteLn;
 end;
end;
Procedure  Summa(A: Tmas;n:integer;Var B: Tmas);
Var i,j :integer;
    sum:real;
Begin
for i:=1 to n do
 begin
  Sum:=0;
  for j:=1 to n do
  Sum:=Sum+A[i,j];
  B[1,i]:=i;
  B[2,i]:=Sum;
 End;
WriteLn('Сумма в строках ');
for j:=1 to n do
write(b[1,j]:6:0);
writeln;
for j:=1 to n do
Write (b[2,j]:6:2);
writeln;
writeln;
end;
Procedure Sortirivki(Var B: Tmas;n:integer);
var i,j,k:byte;
    x:real;
begin
for j:=1 to n-1 do
for i:=j+1 to n do
if b[2,j]<b[2,i] then
for k:=1 to n do
 begin
  x:=b[k,j];
  b[k,j]:=b[k,i];
  b[k,i]:=x;
 end;
writeln('Номера строк по убыванию сумм:');
write('Номер:');
for j:=1 to n do
write(b[1,j]:6:0);
writeln;
write('Сумма:');
for j:=1 to n do
write(b[2,j]:6:2);
end;
var a,b:Tmas;
    n:integer;
Begin
randomize;
Vvoda (A,n);
Vyvoda (A,n);
Writeln;
Summa(A,n,B);
Writeln;
Writeln;
Writeln('Результат сортировки');
Sortirivki(B,n);
readln
end.
Serikbye вне форума Ответить с цитированием
Старый 15.11.2013, 05:45   #2
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Код:
Program Ice8;
const Max=20;
Type Tmas = array [1..Max,1..Max] of real;

Procedure Vvoda (Var A: Tmas; Var n: integer);
Var i,j :integer;
f1 : text;
BEGIN
{randomize;}
assign(f1, 'input.txt'); 
Reset(f1);

{repeat
Write ('Размер матрицы [1..',Max,'] = ');
ReadLn(n);
until n in [1..Max];}
ReadLn(f1, n);
Write ('Размер матрицы',n);
for i:=1 to n do
for j:=1 to n do
Read(f1, A[i,j]);{A[i,j]:=10*random;}

close(f1);
end;

Procedure Vyvoda (Var A: Tmas; n: integer);
Var i,j :integer;
f : text;
Begin
assign   (f, 'output.txt'); 
Rewrite(f);
{WriteLn(f2,'Исходная матрица');
WriteLn ('Исходная матрица');}
for i:=1 to n do
 Begin
  for j:=1 to n do
  begin 
  Write(f,A[i,j]:6:2);
  Write(A[i,j]:6:2);
  WriteLn;
   WriteLn(f);
   end
 end;
 close(f);
end;
Procedure  Summa(A: Tmas;n:integer;Var B: Tmas);
Var i,j :integer;
    sum:real;
Begin
for i:=1 to n do
 begin
  Sum:=0;
  for j:=1 to n do
  Sum:=Sum+A[i,j];
  B[1,i]:=i;
  B[2,i]:=Sum;
 End;
WriteLn('Сумма в строках ');
for j:=1 to n do
write(b[1,j]:6:0);
writeln;
for j:=1 to n do
Write (b[2,j]:6:2);
writeln;
writeln;
end;

Procedure Sortirivki(Var B: Tmas;n:integer);
var i,j,k:byte;
    x:real;
begin
for j:=1 to n-1 do
for i:=j+1 to n do
if b[2,j]<b[2,i] then
for k:=1 to n do
 begin
  x:=b[k,j];
  b[k,j]:=b[k,i];
  b[k,i]:=x;
 end;
writeln('Номера строк по убыванию сумм:');
write('Номер:');
for j:=1 to n do
write(b[1,j]:6:0);
writeln;
write('Сумма:');
for j:=1 to n do
write(b[2,j]:6:2);
end;
var a,b:Tmas;
    n:integer;
Begin
randomize;
Vvoda (A,n);
Vyvoda (A,n);
Writeln;
Summa(A,n,B);
Writeln;
Writeln;
Writeln('Результат сортировки');
Sortirivki(B,n);
readln
end.
input.txt
Код:
3
1 2 3 
1 2 3
7 8 9
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!
SaLoKiN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать рекурсивную процедуру для ввода с клавиатуры последовательности чи-сел (конец ввода – 0) и вывода её на экран в обратном netiv Паскаль, Turbo Pascal, PascalABC.NET 1 17.02.2012 18:14
Файлы. Перемещение по потокам ввода-вывода Lex-7051 Visual C++ 0 17.05.2011 23:28
С++, файлы, перемещение по потокам ввода-вывода Lex-7051 Помощь студентам 0 17.05.2011 23:04
try-except Диалоговые окна ввода/вывода сообщений Типизированные файлы Ko$ Помощь студентам 5 16.03.2011 12:26
C++. Файлы ввода-вывода, массивы, указатели. Kanibal Помощь студентам 9 30.06.2010 17:16