Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 035
от 06.09.2002, 21:50

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 59
Отправлено ответов: 165
Активность: 279.6 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе]


 Список экспертов, ответы которых опубликованы в данном выпуске

Necro
Статус: Доверительный
Общий рейтинг: 113.51
[Подробней >>]
Dark_Lord
Статус: Профессиональный
Общий рейтинг: 139.49
[Подробней >>]
Sensey
Статус: Профессиональный
Общий рейтинг: 129.23
URL: Страничка рассылки Паскаля...
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
 
Lank
Статус: Начальный
Общий рейтинг: 126.92
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 56. Здравствуйте.Помогите написать программу которая позволила-бы вводить с клавиатуры n кол-во чисел и... (ответов: 4)

Вопросов: 1, ответов: 4


 Вопрос № 56

Здравствуйте.Помогите написать программу которая
позволила-бы вводить с клавиатуры n кол-во чисел и извлекать такое кол-во чисел чтобы получилась возрастающая последовательность.
Например
1 2 3 5 4
Ответ-цифра 5.



Вопрос отправлен: 03.09.2002, 21:42
Отправитель: max

[Следующий вопрос >>] [Список вопросов]

Отвечает Necro

Здравствуйте, max!
Я что-то не понял, что конкретно надо вернуть? Максимальное число из последовательности? Длину последовательности? И для какой последовательности - первой или максимально длинной? Твой пример ничего не говорит. В любом случае, принцип такой:
1) Создаешь линейный массив длинной n
2) Запрашиваешь n чисел
3) Сортируешь массив
4) Проходишь по нему в поисках ответа на задание
Например, для поиска последовательности максимальной длины можно сделать примерно так:

const
N = 10;
var
a,l,lm : integer;
ar : array[1..n] of byte;
...
for a := 2 to n do
begin
if ar[a] - ar[a-1] = 1 then
inc(l)
else if ar[a] <> ar[a-1] then
begin
lm := (l+lm+abs(l-lm))div 2;
l := 1;
end;
end;
lm := (l+lm+abs(l-lm))div 2;

Тогда в lm будет максимальная длина.

Ответ отправлен: 03.09.2002, 22:45
Отправитель: Necro


Отвечает Dark_Lord

Доброе время суток, max!
В начале получаешь число, сколько будет цифр, куда-нибудь(это уже твоё дело) их записоваешь, а потом делаешь то, что в "приложении"!

Приложение:

Ответ отправлен: 03.09.2002, 22:21
Отправитель: Dark_Lord


Отвечает Sensey

Доброе время суток, max!
Ага...
Может тебе еще и отчет по лабе оформить? >:-(
Это не рассылка халявы, а помощь в самообучении!!!
Ладно, алгоритмом помогу...
Когда реализуешь, и возникнут конкретные вопросы, эксперты с удовольствием ответят...

Приложение:

Ответ отправлен: 04.09.2002, 11:50
Отправитель: Sensey


Отвечает Lank

Добрый день, max!
Пожалуста Max, если тебе надо исходник рабочей программы
то уточни некоторые детали, например какого типа числа они
Integer, DongInt, Word, Real или другого, ещё n какое есть его максимальное значение, если оно вообще есть. К тому-же не совсем понятно какой результат тебе надо. То-есть тебе саму последовательность надо? А шаг возростания? А если в
предлагаемом наборе несколько возможних
последовательностей например в наборе 1 2 3 4 5 6 8 10 есть
следующие последовательности :
1 2 3 4 5 6
2 4 6 8 10
1 3 5
2 5 8
2 6 10
какой результат тебя интересует ? И последний вопрос
может-ли какое-то из чисел последовательности встречатся
более одного раза? Уточни пожалуста.
Если-же тебя интересует алгоритм то могу предложить сачала
отсортировать последовательность по возростанию,
а потом для каждого елемента искать шаг возрастания к
следующиму и щитать длину последовательности с етим
шагом, потом ищеш шаг к следуюшиму и так для каждого
елемента. Работать будет довольно-таки медленно, но будет
работать.
С уважением Lank.
ЗИ: Смотри пример

Приложение:

Ответ отправлен: 04.09.2002, 18:04
Отправитель: Lank



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (39)
C / C++ (29)
Perl (9)
Delphi (15)
Pascal (25)
Basic / VBA (10)
Java / JavaScript (12)
PHP (9)
MySQL / MSSQL (10)
Пользователю
Windows 95/98/Me (40)
Windows NT/2000/XP (27)
"Железо" (37)
Поиск информации (12)
Администратору
Windows NT/2000/XP (14)
Linux / Unix (16)
Юристу
Гражданское право (10)
Семейное право (6)
Трудовое право (8)
КоАП (5)

Отправить вопрос всем экспертам выбранной рассылки.




be number one Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное