13.10.2013, 00:57 | #1 (permalink) |
Member
Регистрация: 26.04.2013
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
В типизированный файл F с помощью генератора случайных чисел
Pascal ABC |
13.10.2013, 00:57 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Очень часто пользователям помогают схожие топики Паскаль. Задача на типизированный файл Генератор случайных чисел Pascal ABC: File23. Дан файл вещественных чисел, создать файл целых чисел |
13.10.2013, 05:37 | #2 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Алгоритм:
В разделе переменных: 1. Определяете переменные для типизированных файлов и для циклов. В программе 2. Ассоциируете файловые переменные с путями к файлам. 3. Открываете файл F по перезаписи командой rewrite(f). 4. Инициализируете генератор псевдослучайных чисел командой randomize. 5. В цикле записываете в файл 1000 случайных чисел из указанного диапазона. Получить их можно, к примеру, командой round(random*101)-50. 6. Переоткрываете файл F по чтению командой reset(f), а файл G - по перезаписи командой rewrite(G). 7. В цикле считываете число из F, анализируете его на делимость на 2, если не делится - записываете в файл G. 8. Закрываете оба файла. По окончании работы программы можете просмотреть содержимое полученных файлов, к примеру, через Блокнот. |
14.10.2013, 10:25 | #4 (permalink) | |||||||||||
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Цитата:
Код:
Var F,G:File of Integer; i,N,P:Integer; Цитата:
Код:
Begin Цитата:
Код:
Assign(F,'D:\First'); Assign(G,'D:\Second'); Цитата:
Код:
ReWrite(F); Цитата:
Код:
Randomize; Цитата:
Код:
For i:=1 to 1000 do begin N:=-50+Random(101); Write(F,N); end; Close(F); Цитата:
Код:
ReSet(F); ReWrite(G); Цитата:
Код:
P:=0; For i:=1 to 1000 do begin Read(F,N); If (N mod 2)<>0 then begin Write(G,N); P:=P+1; end; end; Цитата:
Код:
Close(F); Close(G); Цитата:
Код:
ReSet(G); For i:=1 to P do begin Read(G,N); Write(N:4); end; Код:
Readln End. |
|||||||||||
20.10.2013, 16:36 | #5 (permalink) | |
Member
Регистрация: 26.04.2013
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Цитата:
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
20.10.2013, 17:32 | #6 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Ваше желание противоречит поставленной задаче, вам же уже выше писалиВпрочем, можно попытаться просмотреть содержимое файла, к примеру, через FAR Manager, но, к сожалению, никто не гарантирует, что вы получите желаемое.
|
20.10.2013, 17:44 | #7 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
Var F,G:Text; i,N:Integer; Begin Assign(F,'D:\First'); Assign(G,'D:\Second'); ReWrite(F); Randomize; For i:=1 to 1000 do begin N:=-50+Random(101); Write(F,N:4); end; Close(F); ReSet(F); ReWrite(G); For i:=1 to 1000 do begin Read(F,N); If (N mod 2)<>0 then Write(G,N:4); end; Close(F); Close(G); End. |
|
29.10.2013, 00:40 | #8 (permalink) |
Member
Регистрация: 26.04.2013
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
А можно чтоб паскаль выводил ответ,а то он выводит значения только файла F?
Код HTML:
uses crt; Var F,G:File of Integer; i,N,P:Integer; Begin clrscr; Assign(F,'D:\First'); Assign(G,'D:\Second'); ReWrite(F); Randomize; For i:=1 to 1000 do begin N:=-50+Random(101); Write(F,N); end; Close(F); ReSet(F); ReWrite(G); P:=0; For i:=1 to 1000 do begin Read(F,N); If (N mod 2)<>0 then begin Write(G,N); P:=P+1; end; end; Close(F); Close(G); ReSet(G); For i:=1 to P do begin Read(G,N); Write(N:4); end; Readln End. |
30.10.2013, 18:22 | #9 (permalink) |
Member
Регистрация: 26.04.2013
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Ой извините,там все правильно)
Спасибо еще раз. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|