0 / 0 / 0
Регистрация: 26.09.2008
Сообщений: 12
|
|
1 | |
Линейный поиск элементов11.03.2010, 16:07. Показов 5315. Ответов 40
Метки нет (Все метки)
Помогите реализовать следующую задачу на языке Pascal :
В массиве H(n) хранятся значения высот некоторого профиля местности (ее вертикального сечения) с постоянным шагом по горизонтали. Найти области (номера точек измерения высоты), невидимые для наблюдателя, находящегося в точке h1. Заранее благодарен.
0
|
11.03.2010, 16:07 | |
Ответы с готовыми решениями:
40
Линейный поиск Поиск из файла (линейный) Линейный поиск в упорядоченной таблице получить линейный массив из четных элементов файла |
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
|
|
11.03.2010, 16:16 | 2 |
sk1p, а как считать точки ети? ну я понимаю что за 100 метровой горкой 50-ти метровую не видно, но 101 метровую стоя на горбике 10 метров расположеную от наблюдателя на расстоянии 10 метров тоже не видно... тоесть считать как? тупо если я стою на 1, и третья больше второй то я ее вижу или есть нюансы?
Добавлено через 2 минуты так же если я стою на 100 метровой то с расстоянием через 10 метров я вижу горки 90,85,80 метров высотой идущие в таком порядке...
0
|
0 / 0 / 0
Регистрация: 26.09.2008
Сообщений: 12
|
|
11.03.2010, 16:44 [ТС] | 3 |
Значит как я понял точки следует считать следующим образом:
например стоим мы на высоте 4, а вершины профиля идут 5 3 4 6, то мы видим первую так как мы перед ней стоим, и четвертую высотой 6, т.к. она выше чем 5, и выводим номера 2 и 3 которые не видим. Проще говоря если какая-то вершина выше исходной на которой стоим , то мы находим есть ли какая-то вершина выше нее , и так перебираем до конца массива, а затем выводим все номера невидимых.
0
|
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
|
||||||
11.03.2010, 17:11 | 4 | |||||
ня... ну я так и думал))) ща намутим)
Добавлено через 25 минут
0
|
0 / 0 / 0
Регистрация: 26.09.2008
Сообщений: 12
|
|
12.03.2010, 14:24 [ТС] | 5 |
Немного не разобрался с программой:
1) для чего пишется справа и слева 2) не совсем корректно отображает невидимые высоты Пример: 4 точки высоты 74 24 97 57 стоим на высоте 40 слева от нас выше 4 и 3 вершины по программе, но на деле мы видим первую и третью поскольку она выше первой невидимые 2 и 4
0
|
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
|
|
12.03.2010, 15:12 | 6 |
смотрите ня...
как все происходит. вы задаете количество какбы срезов... они вам выводятса в рядочек ето 74 24 97 57 какбы первая вершына - 74, вторая - 24 и так далее потом вас спрашывают а на которой мы стоим? тоесть ето не 40 метров над уровнем моря а первая, вторая или третья, или четвертая... тоесть оно нас ставит на ету вершыну ня... тоесть ето например вершына 2... тоесть мы стоим на высоте 24 метра(2-ая вершына) и гордо глядим по сторонам... справа от нее выше третья(97м) а слева первая(74м)... вот так вот)
0
|
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
12.03.2010, 15:47 | 7 |
Мне кажется неправильно истолковываете условие. Нужно еще угол зрения учитывать исходя из ометок и расстояний между ними. Например вы стоите на отметке 2, перед Вами в 5 метрах отметка 5, а за ней в километре отметка 6. Вряд ли Вы ее увидите.
0
|
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
|
|
12.03.2010, 15:49 | 8 |
Puporev, оно да) я с самого начала про ето говорил, но топик стартер хотел сделать так))) а желание важнее истины)))
0
|
0 / 0 / 0
Регистрация: 26.09.2008
Сообщений: 12
|
|
12.03.2010, 16:18 [ТС] | 9 |
На счет угла обзора, шаг по горизонтали в условии указано постоянный => расстояние между 4 и 5, 5 и 6 получается одинаково
Еще раз перечитав условия и посмотрев программу Jazon_deenAltа подумал еще вот над чем точка обзора которую мы вводим должна помещать в максимально близкую по значению вершину или ставить обозревателя перед самим профилем местности
0
|
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
|
|
12.03.2010, 16:27 | 10 |
уважаемый sk1p, обьясните ибо я бака, и немного не понимаю... вы хотите вводить высоту на которой стоит обозреватель??? например у нас есть горный хребет 100км длинной, с шагом 10 км мы измеряем высоты... например у нас такое розпределение высот
10 40 57 35 12 54 84 87 35 65... где каждое двузначное число ето вершына по номерам 1 2 3 4 5 6 7 8 9 10... сейчас так у нас спрашывают на какой номер вершыны мы высадим любознательного наблюдателя 1 2 3 4 5 6 7 8 9 или 10? садим его именно на ту вершыну номер которой мы задали и оттуда зырим... как надо вам? задавать высоту на которую смог вылезти альпинист? или подбирать самую близкую по заданой вершыну? а если ето 35? а таких вершын 2? или 3? как тогда?
0
|
0 / 0 / 0
Регистрация: 26.09.2008
Сообщений: 12
|
|
12.03.2010, 16:48 [ТС] | 11 |
Уточнил подробности задачи, значит задаем начальный номер точки на которой стоим Jazon_deenAlt ты был прав на счет своего предположения, я с этим немного перемудрил. Значит единственное что осталось добавить в программу то, чтобы она выводил не какие вершины выше, а номера тех которые он не видит.
0
|
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
|
||||||
12.03.2010, 18:00 | 12 | |||||
ну я же говорил, ня)
вот вариант с невидимыми горами)
2
|
0 / 0 / 0
Регистрация: 26.09.2008
Сообщений: 12
|
|
17.03.2010, 16:02 [ТС] | 13 |
Всем спасибо за помощь остановлюсь пока на последнем варианте, представленном Jazon_deenAlt'ом. Если будут еще какие-то вопросы отпишусь в теме.
0
|
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 36
|
|
02.06.2010, 08:19 | 14 |
помогите с этой задачкой. пробовала воспользоваться решением Jazon_deenAlt, но если вводить значения по убыванию, программа неправильно работает. например если ввести 5 4 3 2 0 и поставить наблюдателя в 1-ую точку, результат будет 2 3 4 5. или оно так и задумано?
0
|
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
02.06.2010, 08:41 | 15 |
Видимо так, выводит которые видно, хотя по условию нужно как раз наоборот, которые не видно.
Добавлено через 6 минут По условию все немного сложнее, нужно смотреть угол наклона до всех точек по порядку и если угол наклона к точке больше чем к какой-то из более близких, она невидима.
0
|
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
|
|
02.06.2010, 10:39 | 16 |
cerenara, а где в моем коде в 12 посте у вас есть возможность вводить вершыны вручную???
Добавлено через 3 минуты ето если нам еще дадут параметр который значит росстояние между точками замера, а так как его нету то и угол проблематично вычислить ня) но в идеале конечно вы правы ето было бы намного точнее)
0
|
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
02.06.2010, 10:57 | 17 |
Jazon_deenAlt,
0
|
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
|
|
02.06.2010, 11:07 | 18 |
Puporev, не проблема ня) но ведь топикстартеру не надо было) хотя пересмотрев свой тогдашний код я нашел причину такого неправельного вывода ня) и таки да там есть вот такой нехорошый момент) если cerenara, хочет то там легко переделать код под подобные треугольники для проверки на видимость)
0
|
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 36
|
|
02.06.2010, 14:57 | 19 |
Jazon_deenAlt, да не, мне так сложно не надо, треугольники, постоянный шаг и углы - это перебор) попроще бы, как в 12 посте, только чтоб работало правильно с любыми значениями.
0
|
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
|
|
02.06.2010, 15:15 | 20 |
cerenara, ето срочно? просто немного сейчас занят)
0
|
02.06.2010, 15:15 | |
02.06.2010, 15:15 | |
Помогаю со студенческими работами здесь
20
Дан неупорядоченный линейный односвязный список и массив, содержащий номера соответствующих элементов в упорядоченном списке. Перестроить данный списо Поиск элементов массива, для которых сумма предшествующих элементов больше суммы последующих Линейный поиск или поиск с барьером Линейный Поиск в массиве со случайными числами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |