![]() |
|
Программирование и разработка Обсуждение вопросов программирования |
![]() |
|
Опции темы | Опции просмотра |
|
![]() |
#1 |
[Alternative] Rock Member
Регистрация: 23.01.2006
Адрес: Linkin Park
Jabber: mishka_anderson@jabber.ru
p2p: воистину p2p
Нарушения:[Посмотреть] |
Задачки по TP
Горит зачёт по гадскому турбо паскалю, а через неделю отчисление. 3 из 6 задач сделал, а до остальных вообще никак не додуматься. Если кто сможет помочь, с меня причитается.
Интересует решение пары задач с циклическими участками: 1) даны 25 чисел, среди них много нулей. Найти количество чисел в наиболее длинной последовательности подряд идущих нулей. 2) построить таблицу пересчёта миль в киллометры (1 миля ~ 1609.3 м) для расстояний от 1 до 100 км. Таблица должна иметь следующий вид: мили км 0.6214 1.0000 1.0000 1.6093 1.2428 2.0000 1.8641 3.0000 ... Заранее спасибо откликнувшимся.
__________________
Fire Walk With Me И если завтра проснёшься - попробуй влюбиться! Как звезда рок-н-ролла...
|
![]() |
![]() |
![]() |
#2 |
Дважды дипломирован
|
эх...знакомая тема,но я ничего не помню,сор
|
![]() |
![]() |
![]() |
#3 |
online();
|
а че-то вообще не поняла в чем проблема, особенно во второй задаче.. в чем конкретно у тебя загвоздка?
|
![]() |
![]() |
![]() |
#4 | |
[Alternative] Rock Member
Регистрация: 23.01.2006
Адрес: Linkin Park
Jabber: mishka_anderson@jabber.ru
p2p: воистину p2p
Нарушения:[Посмотреть] |
Цитата:
Во второй понятно, что с использованием цикла WHILE, но хоть ты тресни, не получалось.
__________________
Fire Walk With Me И если завтра проснёшься - попробуй влюбиться! Как звезда рок-н-ролла...
|
|
![]() |
![]() |
![]() |
#5 |
Местный
|
Насчёт первой задачи. Как реализовать это на ТП, я не знаю, так как его не изучал, но идея такая: Создаёшь переменную, которая будет выполнять роль счётчика, допустим A. Приравниваешь её к 0. Создаёшь другую переменную, в которой будет сохраняться максимальный результат, допустим B. Её тоже приравниваешь к 0. Создаёшь цикл, который прокручивает все числа на предмет 0 - не 0. Допустим число равно 0. Тогда прибавляешь к переменной А единицу. Если число - не 0, то присваиваешь переменной B значение переменной A, тем самым сохраняя результат, при условии, что предыдущее B < A, и опять приравниваешь А к нулю. В итоге после прокрутки всех чисел в переменной B должно сохраниться максимальное число нулей, идущих подряд. Оно там не сохранится в одном случае - если максимальное число нулей шло в конце, и после него уже не было ненулевого числа. Так что после выполнения цикла ещё раз сравниваешь A и B и переписываешь B, если А больше. Выводишь B.
Последний раз редактировалось Apo. 01.04.2007 в 18:38. |
![]() |
![]() |
![]() |
#6 |
Местный
|
Синтаксис Паскаля не помню. Предлагаю решение на С++ Самое лёгкое и очень неэффективное. Пишу с коментами. Думаю не составит труда все перевести нс интаксис Паскаля.
PHP код:
|
![]() |
![]() |
![]() |
#7 | |
профессиональный любитель
|
Цитата:
1. ох уж эти высосанные формулировки. что считать-то? количество нулей в самой длинной последовательности? ну посчитай количество нулей во всех последовательностях нулей, запиши результаты в массив, а потом выбери из него максимум. 2. кхм.. в примере написан какой-то бред, вам не кажется? если надо действительно от 1 до 100 км, сделай массив из 100 элементов и запиши в него числа (1000*(n+1))/1609.3 где n - номер ячейки (только округли результаты там как надо). |
|
![]() |
![]() |
![]() |
#8 | |
следователь
|
Цитата:
Можно ведь сразу проверить на максимум: if (current_max_val > global_max_val) global_max_val = current_max_val; |
|
![]() |
![]() |
![]() |
#9 |
профессиональный любитель
|
|
![]() |
![]() |
![]() |
#10 |
Местный
|
2 maniac: Давайте ещё в третий раз то же самое скажем, только другими словами )))
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Загадки и задачки | shibzdik | Юмор | 390 | 03.10.2015 07:54 |
Задачки на С++ | M@GIC | Программирование и разработка | 23 | 04.08.2009 15:35 |