03.07.2014, 14:01 | #1 (permalink) |
Новичок
Регистрация: 03.07.2014
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Файлы, Паскаль
создать F1, в котором будут находиться записи о параметрах заданного числа кругов. Записи должны содержать случайные координаты центра из интервала [0.0,10.1] и случайный радиус из [0.0,5.0], полученные Random. Найти в файле круг, площадь пересечения которого с квадратом [0..10][0..10] максимальна. Записать в файл F2 информацию о всех кругах файла F1, целиком лежащих в максимальном найденном круге. Код:
program practice; type krug = record x, y, r: real; end; var f1, f2: file of krug; z, zmx: krug; n, i, k: integer; mx: real; begin randomize; assign(f1, 'input.txt'); rewrite(f1); writeln('Введите число кругов:'); read(N); for i := 1 to N do begin z.x := 10.1 * random; z.y := 10.1 * random; z.r := 5 * random; write(f1, z) end; writeln('Содержание файла F1'); seek(f1, 0); mx := 0; while not eof(f1) do begin read(f1, z); writeln('(', z.x:5:2, ',', z.y:5:2, ',', z.r:5:2, ') '); if pi * sqr(z.r) > mx then begin mx := pi * sqr(z.r); zmx := z end; end; writeln; writeln('Самый большой круг (', zmx.x:5:2, ',', zmx.y:5:2, ',', zmx.r:5:2, ') его площадь=', mx:0:2); assign(f2, 'output.txt'); rewrite(f2); seek(f1, 0); k := 0; while not eof(f1) do begin read(f1, z); if sqrt(sqr(z.x - zmx.x) + sqr(z.y - zmx.y)) < zmx.r - z.r then begin k := 1; writeln(f2, z); end; end; close(f1); if k = 0 then write('Нет кругов, полностью лежащих в самом большом круге') else begin writeln('Содержание файла F2'); seek(f2, 0); while not eof(f2) do begin read(f2, z); writeln('(', z.x:5:2, ',', z.y:5:2, ',', z.r:5:2, ') '); end; end; close(f2) end. |
03.07.2014, 14:01 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Ранее на нашем форуме участники создавали аналогичные топики Файлы, Паскаль Файлы паскаль |
03.07.2014, 15:45 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Ладно, попробую помозговать. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|