Перейти к содержанию

Помогите решить задачу


Рекомендуемые сообщения

Пожалуйста помогите.

Дана последовательность, содержащая от 2 до 10 слов, в каждом из которых от 2 до 10 строчных русских букв. Между соседними словами – не менее одного пробела, за последним словом – точка. Составить программы, в которых выполнить для исходной последовательности слов следующие действия:

1Оставить в словах только первые вхождения каждой буквы.

2Упорядочить слова по возрастанию количеств букв ‘а’, входящих в слова.

3Определить, находятся ли слова последовательности в алфавитном порядке.

Ссылка на комментарий

1)функция->обработка слова(на вход строка-слово)->на выход отредактированная строка

используется тип множество(изначально пустое) далее последовательно проверяешь вхождение буквы в данное множество, если не входит(то ты встретил его впервые :) и обязательно добавь его в это множество ) , если входит удаляешь символ из слова

2)процедура-> метод пузырька/вставки. Используется массив слов

i от 1 слова до n-1 слова

j от i+1 слова до n слова

если (функция подсчета буковок а в i элементе массива>функция подсчета буковок а в j элементе массива) то меняем их местами

на выходе имеем упорядоченный массив по условиям пункта 2

3)булева функция-> на вход массив слов-> на выход соответсвенно булев результат

метод пузырька/вставки по ascii коду))

......

если a>a[j] то меняем местами//причем можно не сравнивать каждый символ)) можно сравнить строки полностью :)

.......

полностью исходный текст писать нечестно :) а алгоритм примерно такой :)

P.S. стесняюсь спросить :) а это не Энгельсины Сергеевны задачки?

Ссылка на комментарий

всю программу целиком писать не буду.... ибо всё равно так нечестно :)

как там в библии.... вначале было слово :)

алгоритм по вылавливанию слова(не претендую на идеальный код)

{где то тут витает глобальная по отношению к этой функции строка S}

function slovo(index:byte):string; //на вход индекс первого символа слова не похожего на пробел или точку :)

var s1:string;j:byte; //вспомогательные переменные формирования строки и "бегунок"

begin

j:=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. думаю это даст пищу для размышлений..... кстати в приложении методички должны быть описаны структуры данных, типы и их диапазон.

Ссылка на комментарий
  • 1 месяц спустя...

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...