|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.05.2013, 09:35 | #1 |
Регистрация: 23.05.2013
Сообщений: 3
|
Работа с файлами. Turbo Pascal
Помогите написать, очень прошу, и очень срочно нужно...с меня огромное спасибо!!!
Пусть файлы c и d с компонентами, являющимися целыми или действительными числами, упорядочены по убыванию. Записать в файле g все числа файлов c и d без повторений и в порядке возрастания. |
29.05.2013, 13:31 | #2 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Шаг 1: осуществить сортировку слиянием из файлов c и d во временный файл e.
Шаг 2: переписать файл e в обратном порядке в файл g. Шаг 3: удаляем временный файл. Примечание: если файлы c и d целиком помещаются в память, без временного файла можно обойтись. |
29.05.2013, 19:42 | #3 | |
Регистрация: 23.05.2013
Сообщений: 3
|
Цитата:
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 program rec1; {Пусть файлы c и d с компонентами, являющимися целыми или действительными числами, упорядочены по убыванию. Записать в файле g все числа файлов c и d без повторений и в порядке возрастания.} uses crt; var c, d, g : file of integer; n, n1, i, j : word; a, b : integer; procedure CrF(s:string; n : word); var i : word; a : integer; f : file of integer; begin assign(f,s); rewrite(f); a := random(70)+15; for i := 1 to n do begin write(f,a); a := a - 1 - random(25); end; reset(f); writeln('файл ',s); while not eof(f) do begin read(f,a); write(a:4); end; writeln; close(f); end; begin clrscr; write('Количество компонент исходных файлов c и d :'); readln(n,n1); randomize; CrF('c.dat',n); CrF('d.dat',n1); assign(c,'c.dat'); assign(d,'d.dat'); assign(g,'g.dat'); reset(c); reset(d); rewrite(g); while (not eof(c)) or (not eof(d)) do begin if not eof(c) then begin read(c,a); write(g,a); end; if not eof(d) then begin read(d,a); write(g,a); end; end; for i := 1 to filesize(g)-1 do for j := 1 to filesize(g)-i do begin seek(g,j-1); read(g,a); seek(g,j); read(g,b); if a>b then begin seek(g,j-1); write(g,b); seek(g,j); write(g,a); end; end; writeln('Файл g.dat : '); reset(g); while not eof(g) do begin read(g,a); write(a:4); end; close(c); close(d); close(g); readln; end. Верно? |
|
29.05.2013, 20:24 | #4 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Цитата:
Отформатируйте его. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Turbo Pascal. Работа с файлами | Linar523 | Помощь студентам | 0 | 13.06.2012 17:09 |
Работа с файлами в Turbo Pascal | VoltZZZ | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 22.03.2012 19:34 |
работа с файлами на turbo pascal. | Катюша)) | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 19.12.2011 00:01 |
Turbo Pascal работа с файлами | 34P434 | Помощь студентам | 2 | 24.01.2007 13:12 |