Вопрос № 180961: Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос, не совсем понимаю что сделать надо: В формулировке каждого задания указана функция f(w), а также типы X и Y, такие, что f: сигма(X) ->Y. 14. Количество отрезков с зада...
Вопрос № 180961:
Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос, не совсем понимаю что сделать надо: В формулировке каждого задания указана функция f(w), а также типы X и Y, такие, что f: сигма(X) ->Y. 14. Количество отрезков с заданным свойством, f: сигма1(Z) -> N0. Вариан-ты свойства отрезка: а) возрастающий;
Отвечает Борисыч (Профессор) :
Здравствуйте, Посетитель - 347607! Реализация задания: количество отрезков, состоящих из равных элементов. Pascal-ABC
Код:
{-------------------------------------------------------------------------------------------------} {
Количество отрезков, состоящих из равных элементов } { Функция не является индуктивной, то есть нельзя только по количеству отрезков, } { состоящих из равных элементов, сделать вывод о том, появился ли новый отрезок } { или элемент продолжает последний отрезок } { Расширение: количество отрезков, состоящих из равных элементов; последний элемент} {-------------------------------------------------------------------------------------------------} const MinInt = -MaxInt-1; var x, { очередной элемент последовательности } y, { y = f ( w ) } z : Integer; { z = t ( w ) } fin, { input file } fout : Text ; { output file } begin Assign( fin, 'INITSEQ.DAT' ); Assign( fout, 'INFREZ.DAT' ); Rewrite( fout ); WriteLn( fout, 'Элемент Последний Количество' ); Reset( fin );
y := 0; z := MinInt;
while not Eof(fin) do begin Read( fin, x );
Write( fout, x : 6 );
{ новый рекорд : } if z<>x then { обновить рекорд } begin y := y+1; WriteLn( fout, y : 16 ) end else { оставить старый } WriteLn( fout , z : 8 );
{ новый конкурент : } if z<>x then z := x;
end { while };
WriteLn( fout, '***Количество отрезков = ', y, '***' ); Close( fin ); Close( fout ) end.
<
br>Входной файл
Код:
1 2 2 1 1 1 0 -3 0 -3 -3
Выходной файл
Код:
Элемент Последний Количество 1 1 2 2 2 2 1 3 1 1 1 1 0 4 -3 5 0 6 -3 7 -3 -3 ***Количество отрезков = 7***
Ответ отправил: Борисыч (Профессор)
Ответ отправлен: 30.11.2010, 13:12
Номер ответа: 264438
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 264438
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.