Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 07.06.2014, 20:19   #1 (permalink)
helli
Новичок
 
Регистрация: 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. Составить программу, которая
а) повторяет процесс ввода строк, пока в строке не встретитсч хотя бв один символ *
б) исключает символы до первого вхождения * и после последнего вхождения *
в) выводит на печать исходный текст и его длину, количество исключенных символов, а также результирующую строку и ее длину.
helli вне форума   Ответить с цитированием

Старый 07.06.2014, 20:19
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Информация которая содержится в схожих по содержанию темах будет вам полезна

Множества
Записи и множества
Уважаемые программисты, помогите решить задачу на строки символов. Паскаль
Множества С++
Множества С++

Старый 07.06.2014, 20:20   #2 (permalink)
helli
Новичок
 
Регистрация: 07.06.2014
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Паскаль ABC
helli вне форума   Ответить с цитированием
Старый 07.06.2014, 20:35   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Сейчас нарисую, только вот... напрочь я забыл, как считается мощность множества. Вроде для таких множеств это просто число элементов, нет?
Vladimir_S вне форума   Ответить с цитированием
Старый 07.06.2014, 20:45   #4 (permalink)
helli
Новичок
 
Регистрация: 07.06.2014
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Да, мощность мн-ва это количество его элементов.
helli вне форума   Ответить с цитированием
Старый 07.06.2014, 20:54   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 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.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 07.06.2014, 21:25   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 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.
Vladimir_S вне форума   Ответить с цитированием
Старый 08.06.2014, 15:31   #7 (permalink)
helli
Новичок
 
Регистрация: 07.06.2014
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо большое )
helli вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 21:48.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.