![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
QDe5n1K |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Репутация: ![]() ![]() ![]() |
Сабж...
1) В общем первая процедура - ввод двумерного целочисленного массива ( количество чисел кратно 10, 10 столбцов) и запись его в файл. 2) Вторая процедура - Вызов этого двумерного массива из файла и обработка его таким образом, что в каждой строке сначала идут отрицательные числа, затем положительные, запись в другой файл... Помогите пожалуйста... |
QDe5n1K |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот наработка по первой процедуре:
Код type TElem = shortint; Matrix = array[1..100,1..100] of TElem; Filex = file of TElem; procedure file_name(var result:string); begin writeln(' Enter name of new file'); readln(result); end; procedure create_new_file(var filename:string; var m,n:integer); var a:matrix; i,j:word; numb_data:integer; ff:filex; begin file_name(filename); assign(ff,filename); rewrite(ff); write('Enter number of data: '); readln(numb_data); if numb_data mod 10 = 0 then m:=numb_data div 10 else m:=1+(numb_data div 10); n:=10; writeln('<R>-random. input of data, other keys-manual. input of data: '); if keypressed='R' then begin end; else begin For i:=1 to n do begin For j:=1 to m do begin write('A[',i,' ',j,']= '); readln(A[i,j]); end; end; end; writeln('Sohraneno'); for i:=1 to n do for j:=1 to m do write(ff,a[i,j]); close(ff); end; Но... хоть убейте, не пойму, почему не работает! (для проверки я в последний цикл вставлял write(a[i,j]); , мне выводились цифры в строчку... Randomный ввод чисел пока не написал, это не столь важно... Сообщение отредактировано: QDe5n1K - 12.11.2004 1:21 |
Jahnerus |
![]()
Сообщение
#3
|
![]() Уникальный ![]() ![]() Группа: Пользователи Сообщений: 64 Пол: Мужской Репутация: ![]() ![]() ![]() |
Напиши обязательно в каком виде нужно записывать матрицу в файл...
Я написал реализацию в которой матрица записывается в файл в столбец ... если в принцыпе это важно, то можно и переделать так проще читать данные ! Код uses crt; const n=3;{число строк} type m=array[1..n,1..10] of integer; var i,j,g:integer; a,b:m; procedure fwrite(a:m; s:string); var f:text; begin assign(f,s); rewrite(f); for i:=1 to n do begin for j:=1 to 10 do writeln(f,a[i,j]); end; close(f); end; function fread(s:string; var a:m):boolean; var f:text; st:string; er:integer; begin fread:=true; assign(f,s); reset(f); for i:=1 to n do begin for j:=1 to 10 do begin readln(f,st); val(st,a[i,j],er); if er<>0 then fread:=false; end; end; close(f); end; begin clrscr; for i:=1 to n do begin for j:=1 to 10 do begin write('Введите M[',i,',',j,'] '); readln(a[i,j]); end; end; fwrite(a,'c:\out.dat'); if not(fread('c:\out.dat',a)) then writeln('Ошибка чтения данных'); writeln('Массив до преобразования:'); for i:=1 to n do begin for j:=1 to 10 do write(a[i,j]:4); writeln; end; for i:=1 to n do begin g:=0; for j:=1 to 10 do begin if a[i,j]<0 then begin g:=g+1; b[i,g]:=a[i,j]; end; end; for j:=1 to 10 do begin if a[i,j]>=0 then begin g:=g+1; b[i,g]:=a[i,j]; end; end; end; writeln('Массив после преобразования:'); for i:=1 to n do begin for j:=1 to 10 do write(b[i,j]:4); writeln; end; fwrite(b,'c:\out_2.dat'); readln; end. -------------------- Век живи, век учи С © by Jahnerus
|
QDe5n1K |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Репутация: ![]() ![]() ![]() |
В файл матрицу нужно записывать в столбец.
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 10:37 |