tyz1332 Опубликовано 13 ноября, 2009 Жалоба Опубликовано 13 ноября, 2009 Пожалуйста помогите.Дана последовательность, содержащая от 2 до 10 слов, в каждом из которых от 2 до 10 строчных русских букв. Между соседними словами – не менее одного пробела, за последним словом – точка. Составить программы, в которых выполнить для исходной последовательности слов следующие действия:1Оставить в словах только первые вхождения каждой буквы.2Упорядочить слова по возрастанию количеств букв ‘а’, входящих в слова.3Определить, находятся ли слова последовательности в алфавитном порядке.
martinges Опубликовано 13 ноября, 2009 Жалоба Опубликовано 13 ноября, 2009 1)функция->обработка слова(на вход строка-слово)->на выход отредактированная строкаиспользуется тип множество(изначально пустое) далее последовательно проверяешь вхождение буквы в данное множество, если не входит(то ты встретил его впервые и обязательно добавь его в это множество ) , если входит удаляешь символ из слова2)процедура-> метод пузырька/вставки. Используется массив словi от 1 слова до n-1 словаj от i+1 слова до n слова если (функция подсчета буковок а в i элементе массива>функция подсчета буковок а в j элементе массива) то меняем их местамина выходе имеем упорядоченный массив по условиям пункта 23)булева функция-> на вход массив слов-> на выход соответсвенно булев результатметод пузырька/вставки по ascii коду))......если a>a[j] то меняем местами//причем можно не сравнивать каждый символ)) можно сравнить строки полностью .......полностью исходный текст писать нечестно а алгоритм примерно такой P.S. стесняюсь спросить а это не Энгельсины Сергеевны задачки?
tyz1332 Опубликовано 13 ноября, 2009 Автор Жалоба Опубликовано 13 ноября, 2009 В математическом классе
martinges Опубликовано 13 ноября, 2009 Жалоба Опубликовано 13 ноября, 2009 всю программу целиком писать не буду.... ибо всё равно так нечестно как там в библии.... вначале было слово алгоритм по вылавливанию слова(не претендую на идеальный код){где то тут витает глобальная по отношению к этой функции строка S}function slovo(index:byte):string; //на вход индекс первого символа слова не похожего на пробел или точку var s1:string;j:byte; //вспомогательные переменные формирования строки и "бегунок"beginj:=index;s1:='';//говорим бегунку откуда скакать, очищаем строку от мусора мало ли while (s[j]<>' ')and(s[j]<>'.') do //трах дибидох ПОКА(предусловие) не натыкаемся на вражеский пробел или точку begin s1:=s1+s[j]; //посимвольно формируем слово inc(j);//бегунок попрыгал дальше end;slovo:=s1; // отдаем сформированное слово во внешний мир end;в теле программы тебе нужно только скармливать ей первые буковки слов) она формирует само слово, делаешь со словом что душе угодно незабудь сместить бегунок в основном блоке программы на длину сформированного слова, если все работает верно ты окажешься на пробеле или на точке.(пользуйся трассировкой великая вещь )1 пункт программы тип---> set of char; первоначально пустой{примеры задания множества}mnozhestvo:=[];{пустое множество}mnozhestvo:=['0'..'9'];{диапазон элементов символы цифр от 0 до 9}mnozhestvo:=['0'..'9','$'];{---//--- и знак доллара}условие вхождения во множествоif '$' in mnozhestvo then write('Зараза капиталюги атакуют ');P.S. думаю это даст пищу для размышлений..... кстати в приложении методички должны быть описаны структуры данных, типы и их диапазон.
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти