Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ программки на си

Автор: 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
вывести " Не попались числа"
}

Неверно.

Автор: darkcat 29.9.2009, 13:11

а как верно?

Автор: 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. Считываем первый элемент и запоминаем его, как текущее_значение_непрерывной_последовательности. А дальше - читаем файл, элемент за элементом. После чтения очередного элемента, сравниваем его с текущее_значение_непрерывной_последовательности. Что делать, если он оказался равен, а что - если нет, сами допишете?..

Автор: darkcat 30.9.2009, 3:48

думаю,да.спасибо

Автор: Vago 30.9.2009, 4:21

Цитата(darkcat @ 30.9.2009, 6:48) *

спасибо

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

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)