Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2007, 23:29   #1
kano
 
Аватар для kano
 
Регистрация: 29.10.2007
Сообщений: 5
По умолчанию Паскаль. выявить отрезки возрастания в последовательности

дана последовательность из n чисел (n=50).выявить отрезки возрастания в этой последовательности и вывести каждый из них на экран с новой строки.на паскале
kano вне форума Ответить с цитированием
Старый 30.10.2007, 08:11   #2
Aristarh Dark
Форумчанин
 
Регистрация: 07.08.2007
Сообщений: 154
По умолчанию

Я вижу решение так:
Дан массив из 50 элементов.
Код:
Вводим переменную НачалоПоследовательности, инициализируем ее в -1

Организуется цикл по массиву, начиная со второго элемента. 
  В цикле текущий элемент сравниваем с предыдущим, 
    если он больше 
      то смотрим переменную НачалоПоследовательности 
         если она равна -1 то 
            устанавливаем ей значение - ТекущийЭлементМассива-1,
            если она положительна - ничего не меняем
    если он меньше
      то смотрим переменную НачалоПоследовательности
         если она равна -1 то 
            ничего не делаем
            если она положительна - выводим в цикле элементы исходного массива, начиная с индекса НачалоПоследовательности и заканчивая ТекущийЭлементМассива-1 затем устанавливаем НачалоПоследовательности в -1
Примерно так.
Aristarh Dark вне форума Ответить с цитированием
Старый 30.10.2007, 08:30   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А я это так вижу :

var a:array[1..50] of integer;
var s,k:integer;
begin clrscr;
{Здесь мы массив забиваем как хотим}
for k:=2 to high(a) do begin
if a[k]>a[k-1] then write('(',a[k-1],' to ',a[k],') ');end;
writeln;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.10.2007, 09:00   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

фразу
Цитата:
write('(',a[k-1],' to ',a[k],') ');
лучше написать так
Код:
writeln('[',a[k-1],' , ',a[k],'] ');
Это правильнее математически.
Последнее writeln убрать, т.к. появляются лишние пробелы, и решение даже при TextMode(258) не влезает.
А все таки интересно, как вывести все числа из интервала. У меня не получается.

Последний раз редактировалось puporev; 30.10.2007 в 09:34.
puporev вне форума Ответить с цитированием
Старый 30.10.2007, 09:07   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Верно, и еще я там провтыкал если такая последовательность 2,3,3,4,3
то на самом то деле должно быть [2,4] а у меня будет [2,3][3,4]
В общем там подправить нуна бы (Эт я просто не сразу допер )) )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.10.2007, 09:42   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Все у тебя првильно, просто плохо мы арифметику знаем. Интервал [3,3] не является интервалом возрастания по определению (a[i]>a[i-1],
а не а[i]>=a[i-1], ). Еще я свой предыдущий пост поправил, пока ты писал. Посмотри.
puporev вне форума Ответить с цитированием
Старый 30.10.2007, 16:28   #7
kano
 
Аватар для kano
 
Регистрация: 29.10.2007
Сообщений: 5
По умолчанию

ВСЕМ БОЛЬШОЕ СПАСИБО ЧТО ПОМОГЛИ.

Последний раз редактировалось kano; 30.10.2007 в 16:34.
kano вне форума Ответить с цитированием
Старый 30.10.2007, 16:34   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
все числа из интервала
ы-ы-ы не понял? что имеется ввиду?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.10.2007, 17:48   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Я имел в виду то , что если интервал возрастания выглядит как -1,0,1,2, то на экран выводится [-1,2], а хотелось бы, чтоб выводилось -1,0,1,2.
puporev вне форума Ответить с цитированием
Старый 30.10.2007, 19:21   #10
Tayfun
Форумчанин
 
Аватар для Tayfun
 
Регистрация: 24.06.2007
Сообщений: 351
По умолчанию

Цитата:
выявить отрезки возрастания в этой последовательности и вывести каждый из них на экран с новой строки
Цитата:
Я имел в виду то , что если интервал возрастания выглядит как -1,0,1,2, то на экран выводится [-1,2], а хотелось бы, чтоб выводилось -1,0,1,2.
с точки зрения математики отрезок, для последовательности -1,0,1,2, должен обозначаеться так (-1,2), хотя здейсь скорей всего имелась в виду имеено такая запись -1,0,1,2, условие задачи надо уточнить, а понятие интервала к данной задачи несовсем корректо, хотя не отрицаеться.
Я не маюсь бездельем, я от него тащусь!
Tayfun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись последовательности в txt NeiL Общие вопросы Delphi 1 14.04.2008 22:23
Ввод последовательности чисел POPOV Общие вопросы Delphi 5 16.02.2008 22:13
Как из последовательности чисел выделить недостающие Юрій Microsoft Office Excel 2 27.01.2008 21:46
Не могу выявить ошибку Cyn4uk Общие вопросы Delphi 14 14.01.2008 13:12
суммы членов числовой последовательности tonic Microsoft Office Excel 2 04.01.2008 00:24