Автор: darkcat 28.9.2009, 16:15
Помогите кто может,плиз.
необходимо написать программы на си,которые определяют:
1.Есть ли в последовательности число Х
2.Количество различных элементов неубывающей последовательности
3.Длину наибольшего постоянного участка последовательности
Последовательность находится в каком-то файле.
Использовать массивы нельзя(((
Автор: kaa 28.9.2009, 16:49
darkcat А какие ваши идеи или наработки?
Автор: darkcat 28.9.2009, 16:59
в 1й цикл,который последовательно сравнивает элементы с х.
2ю программу могу решить,но только через массив.
В принципе,могу решить эти задачи на паскале,но вот надо на си.а с семантикой и лексикой данного языка знакома слабо,времени разбираться пока что нет.поэтому дело не в идеях,а в особенностях реализации этих идей на си.
Автор: kaa 28.9.2009, 18:14
Цитата
в 1й цикл,который последовательно сравнивает элементы с х.
пример
int n=сколько чисел в последовательности
for(int i=0;i<n;i++)\\
{
if(тут сравнивать с Х)
{
вывести Х \\ если число Х попалось в последовательности
}
else
вывести " Не попались числа"
}
п.с я знаю с++ а си не очень )так что вам самим прийдеться переводить на язык програмированиия
http://www.languagec.info/
тут подробно описан синтаксис СИ) в правой стороне сайта...
Автор: Vago 29.9.2009, 7:25
Цитата(kaa @ 28.9.2009, 21:14)

пример
int n=сколько чисел в последовательности
for(int i=0;i<n;i++)\\
{
if(тут сравнивать с Х)
{
вывести Х \\ если число Х попалось в последовательности
}
else
вывести " Не попались числа"
}
Неверно.
Автор: Vago 29.9.2009, 13:38
Цитата(darkcat @ 29.9.2009, 16:11)

а как верно?
Нарисуйте блок-схему. Или напишите эту программку на Вашем любимом Паскале. Или просто - опишите алгоритм по-русски ("...читаем из файла очередной элемент; сравниваем его с
X; если он равен
X, то..., в противном случае - ..."). А потом переложите это на C. Не так уж много тут новой "семантики и лексики". Элементарная работа с файлами (открыть, читать в цикле пока не обнаружим конец файла, закрыть), операторы
if и
break, переменные типа
int и
bool, вывод по
printf(). Всё.
Автор: darkcat 29.9.2009, 13:41
Пусть так.но вот в 3ей задаче мне не понятна идея.
Автор: Vago 29.9.2009, 14:07
Цитата(darkcat @ 29.9.2009, 16:41)

в 3ей задаче мне не понятна идея.
Для простоты положим пока, что в файле есть хотя бы один элемент (перейти к случаю ошибочно-пустого файла просто, но задача сейчас - не обработка ошибок...). Полагаем:
макс_ длина_непрерывной_последовательности = 1 и
длина_текущей_непрерывной_последовательности = 1. Считываем первый элемент и запоминаем его, как
текущее_значение_непрерывной_последовательности. А дальше - читаем файл, элемент за элементом. После чтения очередного элемента, сравниваем его с
текущее_значение_непрерывной_последовательности. Что делать, если он оказался равен, а что - если нет, сами допишете?..
Автор: Vago 30.9.2009, 4:21
Цитата(darkcat @ 30.9.2009, 6:48)

спасибо
Не за что

. Прежде чем ломать голову над третьей задачей, алгоритмизируйте, всё-таки, сперва вторую (без массива, естественно). Используемые приёмы там такие же, как и в 3-й, но 2-я - чуть попроще.