|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
05.05.2014, 08:58 | #1 (permalink) |
Member
Регистрация: 16.04.2014
Сообщений: 51
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Задачка на множества, Паскаль
Буду благодарен за помощь. |
05.05.2014, 08:58 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Пожалуйста, не торопитесь решать все самостоятельно, просмотрите схожие проблемы Программа на Паскаль. Множества Множества |
05.05.2014, 17:59 | #5 (permalink) |
Member
Регистрация: 05.03.2014
Сообщений: 200
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 834
|
с множествами не работал, но как понимаю в множестве может содержаться буква только один раз?
то есть слово ОТВЕТ будет множество "О Т В Е"? значит я беру слово, заношу его в множество и сверяю с множеством звонких согласных? и если более 2 совпадений то запоминаю? я верно понял? |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
05.05.2014, 20:20 | #7 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
ПолучИте.
Несколько замечаний. 1. Прописные буквы недопустимы: строка должна состоять из русских слов, написанных строчными буквами и разделенных запятыми. 2. Буква "й" в качестве звонкой согласной не включена в список. Если надо - добавьте и увеличьте длину массива Codes на 1. 3. Сам по себе массив Codes возник исключительного из-за идиотского требования расположить буквы в результирующем списке по алфавиту. Если бы не этот преподский дебилизм, то программа была бы куда компактнее, и никакой надобности в массиве не возникло бы. А так... Дело в том, что элементы множества всегда располагаются "навалом", и упорядочить их внутри множества никакой возможности нет, вот и пришлось извращаться с массивом. Код:
Const Sonants:Set of Char=['б','в','г','д','ж','з','л','м','н','р']; Var S:String; C:Char; i,j,k,N:Byte; Found:Set of Char; Codes:Array[1..10] of Byte; Begin Writeln('Enter the string:'); Readln(S); Writeln; Found:=[]; N:=0; i:=0; Repeat Inc(i); If (S[i] in Sonants) and not (S[i] in Found) then begin C:=S[i]; k:=i; repeat Inc(k); until (S[k]=',') or (k=Length(S)); if S[k]=',' then begin repeat Inc(k); until (S[k]=C) or (k=Length(S)); if S[k]=C then begin Found:=Found+[C]; Inc(N); Codes[N]:=Ord(C); end; end; end; Until i=Length(S)-1; for i:=1 to N-1 do for j:=1 to N-i do if Codes[j]>Codes[j+1] then begin k:=Codes[j]; Codes[j]:=Codes[j+1]; Codes[j+1]:=k; end; writeln('Result:'); for i:=1 to N do write(Chr(Codes[i]),' '); Readln End. |
05.05.2014, 20:33 | #10 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|