![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 17.04.2011
Сообщений: 18
|
![]()
помогите исправить ошибки.задача: Ввести 2 целочисленных файла в которых первая компонента – количество строк, а вторая – количество столбцов в хранящихся в этих файлах матрицах. Третья компонента – сумма всех элементов в этих матрицах. Восстановить исходные матрицы , и вывести их. В случае невозможности проведения операции восстановления (элементов в файле меньше заявленного или размерность меньше 1) вывести об этом сообщение. Кроме того, вывести истинную и заявленные суммы элементов в матрицах. (прим.: при решении использовать подпрограммы)
Вот текст проги: program MaxMInExch; uses crt; const L=10; type T2M = array[1.. L,1..L] of integer; Tname = string[4]; TF = file of integer; var A1,A2: T2M; F1,F2 :TF; N1,N2,M1,M2:byte; S,K:integer; // процедура для ввода файла procedure VvodF(var F:TF; const name:Tname); var buf:integer; begin rewrite(F); writeLn('введите первую компоненту файла ', name); writeLn('999 - окончание ввода'); readLn(buf); while buf<>999 do begin write(F,buf); writeLn('введите следующую компоненту:'); readLn(buf); end; end; // процедура для вывода файла procedure VivodF(var F:TF; const name:Tname); var buf:integer; begin reset(F); writeLn('Выводим файл ', name); while not EOF(F) do begin read(F,buf); write(buf:5); end; writeLn; end; // формирование матриц из файла procedure form(var F:Tf; var A:T2m; var i,j:byte); var buf:integer; begin while not eof(f) do begin read(f,buf); seek(f,filepos(f)-1); i:=buf; read(f,buf); seek(f,filepos(f)-1); j:=buf; end; end; // процедура для вывода матрицы procedure VivodMx(const A:T2m; const N,M: byte; const name:Tname); var i,j:byte; begin writeLn('Матрица ',name,' после формирования:'); for i:=1 to N do begin for j:=1 to M do write(A[i,j]:4); writeLn; end; end; // вычисление истинной суммы элементов матрицы function podschetS(const A:T2m;const N,M:byte):integer; var s:integer; var i,j:byte; begin S:=0; for i:=1 to N do begin for J:=1 to M do begin S:=S+A[i,j]; end; end; podschetS:=S; end; //вычисление заявленной суммы function summa(var F:Tf):integer; var K,buf:integer; begin seek(f,3); while not eof(f) do begin read (f,buf); seek(F,filepos(f)-1); K:=buf; end; summa:=K; end; // основная программа begin cls; // инициализация файла F1 Assign(F1,'F1.dat'); VvodF(F1,'F1'); // инициализация файла F2 Assign(F2,'F2.dat'); VvodF(F2,'F2'); VivodF(F1,'F1'); VivodF(F2,'F2'); form(F1,A1,N1,M1); form(F2,A2,N2,M2); VivodMx(A1,N1,M1,'A1'); S:=podschetS(A1,N1,M1); writeln('истинная сумма=',s); K:=summa(F1); writeln('заявленная сумма=',k); VivodMx(A2,N2,M2,'A2'); s:=podschetS(A2,N2,M2); writeln('истинная сумма=',s); k:=summa(F2); writeln('заявленная сумма=',k); close(F1); close(F2); end. |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
код не оформлен.
Тема нарушает правила. ЗАКРЫТО! |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с программой | тузлук | Помощь студентам | 1 | 21.04.2011 16:05 |
Проблема с программой | kamil83 | Помощь студентам | 1 | 25.02.2011 07:58 |
Проблема с программой. | elDiablo | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 17.08.2010 21:59 |
Проблема с программой | DjSeNseI | Win Api | 2 | 12.07.2010 00:03 |
Проблема с программой | bboba | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 8 | 18.06.2009 19:50 |