Примерное начало. Есть недостаток. Например для картинки из задачи неправильно посчитается верхний правый угол.Код:uses crt; const n = 3; type rec = record x1, x2:integer; y1, y2:integer; end; var coords:array[1..n] of rec; i:integer; t:rec; begin clrscr; coords[1].x1:= 0; coords[1].y1:= 0; coords[1].x2:= 4; coords[1].y2:= 4; coords[2].x1:= 1; coords[2].y1:= 1; coords[2].x2:= 5; coords[2].y2:= 5; coords[3].x1:= 2; coords[3].y1:= 3; coords[3].x2:= 9; coords[3].y2:= 7; t:= coords[1]; for i:= 1 to n-1 do begin if (coords[i].x1 < coords[i+1].x1) and (coords[i].y1 < coords[i+1].y1) then if (coords[i+1].x1 > t.x1) and (coords[i+1].y1 > t.y1) then begin {bl_max:= i+1;} t.x1:= coords[i+1].x1; t.y1:= coords[i+1].y1; end; if (coords[i].x2 < coords[i+1].x2) and (coords[i].y2 < coords[i+1].y2) then if (coords[i].x2 < t.x2) and (coords[i].y2 < t.y2) then begin {tr_min:= i;} t.x2:= coords[i].x2; t.y2:= coords[i].y2; end; end; writeln('test'); writeln(t.x1,' ',t.y1,' ',t.x2,' ',t.y2); readln; end.
Последний раз редактировалось a7161; 05.03.2012 в 02:18.
Кода не будет, паскаль успешно мной забыт
1) Найти минимальный и максимальный Х(тупо перебираем рекорды и сравниваем)
2) Найти минимальный и максимальный У(так-же точно)
Этим мы получили некую относительную координатную сетку
3)определяем объект с наибольшим начальным Х и по пути проверяем не превышет ли он значения конечных Х других объектов(условие пересечения объектов), запоминаем это значение
4)определяем объект с наибольшим начальным У и проверяем не превышает ли его значение конечные У других объектов(условие пересечения), запоминаем значение
Ура, мы получили верхнюю левую точку
5)определяем объект с наименьшим конечным х, добавляем к нему У из шага 4(верхняя правая точка)
6)определяем объект с наименьшим конечным у, добавляем к нему Х из шага 1(нижняя левая точка)
7)берём х из 5 и у из 6(нижняя правая точка)
8)Оптимизируем код, смотрим какие шаги можно выполнить вместе итд итп, какие вообще выкинуть(например первые два шага могут не понадобиться)
Как-то так
Тут еще самое интересное это:
Не представляю, как можно не уложиться во втором. Хотя никто же мерить не будет.Ограничение по времени 1 сек.
Ограничение по памяти 64 мб.
PS: паскаль успешно вспоминается за пару минут чтения встроенной справки.
a7161 (06.03.2012)
а че, как на счет вещественных типов? Задача на вывод целого числа не ограничивает тебя в типах данных, вполне покатят real, single и double
приветик всем)) помогите пожалуйста с решеними задач связанных с паскалем,очень нуждаюсь ввашей помощи... вот задачи при решении которых возникли проблемы...
1. составить блок-схему и написать программу вычисления смешанного арифметического выражения для данных в форматах real (переменные a,b), integer(остальные переменные)
(-2*c+d*82)/tg(a/4-1)
<br>
2. дано вещественное число A и целое число N(>0) вывести А в степени N: АN = А*А*...*А (числа А перемножаются N раз)
3.одномерные массивы.дан целочисленный массив А размера 10. вывести номер первого из тех его элементов А[i], которые удовлетворяют двойному неравенству : A[1]<A[i]<A[10]. если таких элементов нет, то вывести 0.
4.двумерные массивы///дана матрица размера 5х10. найти минимальное значение в каждом столбце.
помогите пожалуйста, нужно сдать завтра, буду очень благодарна, заранее спасибо вам)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)