07.06.2014, 20:19 | #1 (permalink) |
Новичок
Регистрация: 07.06.2014
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Множества и строки символов
1.Даны три множества х1={1‚2‚3..20} ,х2={10,11,12..30} и х3={11,3,5..19,21}. Сформировать множество у=(х1+х2)*(х1+х3)-(х2+х3), из которого выделить подмножество у1 чисел, делящихся на 4 без остатка. На печать вывести множество у и мощность множества у1. Исходные множества вывести с клавиатуры. 2. Составить программу, которая а) повторяет процесс ввода строк, пока в строке не встретитсч хотя бв один символ * б) исключает символы до первого вхождения * и после последнего вхождения * в) выводит на печать исходный текст и его длину, количество исключенных символов, а также результирующую строку и ее длину. |
07.06.2014, 20:19 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Информация которая содержится в схожих по содержанию темах будет вам полезна Множества Записи и множества Уважаемые программисты, помогите решить задачу на строки символов. Паскаль Множества С++ Множества С++ |
07.06.2014, 20:35 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Сейчас нарисую, только вот... напрочь я забыл, как считается мощность множества. Вроде для таких множеств это просто число элементов, нет?
|
07.06.2014, 20:54 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ну тогда так. Вот первая. Но оговорюсь сразу:
1. Паскаля АВС, равно как и порнухи вообще, у себя не держу, поэтому программа писалась и тестировалась на Free Pascal. Но вроде должно подойти и для... гм... этого. 2. Смысла сентенции "Исходные множества вывести с клавиатуры" не понял напрочь, а потому, извините, проигнорировал. Код:
Var X1,X2,X3,Y,Y1:Set of Byte; i,P:Byte; Begin X1:=[]; X2:=[]; X3:=[]; for i:= 1 to 20 do X1:=X1+[i]; for i:=10 to 30 do X2:=X2+[i]; for i:=11 to 21 do X3:=X3+[i]; Y:=(X1+X2)*(X1+X3)-(X2+X3); Write(' Y: '); for i:=1 to 30 do if i in Y then write(i:3); Writeln; Write('Y1: '); Y1:=[]; P:=0; for i:=1 to 30 do if (i in Y) and ((i mod 4)=0) and not (i in Y1) then begin Y1:=Y1+[i]; write(i:3); Inc(P); end; Writeln; Writeln('P(Y1) = ',P); Readln End. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
07.06.2014, 21:25 | #6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
А вот вторая:
Код:
Var S1,S2:String; i,k1,k2:byte; b:boolean; Begin Repeat b:=false; writeln('Enter the string:'); Readln(S1); for i:=1 to Length(S1) do if S1[i]='*' then b:=true; Until b; Writeln; Writeln; Writeln; k1:=0; Repeat Inc(k1); Until S1[k1]='*'; k2:=Length(S1)+1; Repeat Dec(k2); Until S1[k2]='*'; S2:=''; for i:=k1 to k2 do S2:=S2+S1[i]; k1:=k1-1; k2:=Length(S1)-k2; Writeln('Initial string:'); Writeln(S1); Writeln('Length = ',Length(S1)); Writeln; Writeln('New string:'); Writeln(S2); Writeln('Length = ',Length(S2)); Writeln; Writeln('Number of excluded symbols = ',k1+k2); Readln End. |
08.06.2014, 15:31 | #7 (permalink) |
Новичок
Регистрация: 07.06.2014
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо большое )
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|