Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Derzky
0 / 0 / 2
Регистрация: 01.12.2015
Сообщений: 120
#1

Общие символы для 2х слов - Turbo Pascal

30.01.2016, 16:14. Просмотров 221. Ответов 5
Метки нет (Все метки)

Дано два слова(вводятся в программу пользователем). Определить и вывести символы, которые являются общими для двух слов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2016, 16:14
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Общие символы для 2х слов (Turbo Pascal):

Найти символы, общие для обеих строк
Дано 2 строчки , из каких общих символов состоят эти строчки?

Вывести общие символы двух строк
Вывести общие символы двух строк.

Найти общие символы двух заданных строк и составить из них новую строку
Помогите написать программу. Две строки разной длины вводятся с экрана. Найти...

Найти элементы, общие для всех множеств
Дано n множеств, набор элементов с которых можно создать множества записаные в...

Напечатать те символы которые встречаются только в одном из слов
даны 2 слова.Напечатать те символы которые встречаются только в одном из этих...

Найти количество слов, первый и последний символы которых совпадают
Дана строка символов.Группы символов, разделенные одним или несколькими...

5
YBF19
1 / 1 / 5
Регистрация: 30.01.2016
Сообщений: 11
30.01.2016, 19:58 #2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Program pr3;
Const
  Alf = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
Var
  s1, s2 : String[20];
  i, k : Integer;
  m1, m2, m3 : Set of Char;  
Begin
  k := 0;
  m1 := []; m2 := []; {Пустые множества}
  Write('Введите первое слово: ');
  ReadLn(s1);
  Write('Введите второе слово: ');
  ReadLn(s2);
  {Сформируем 2 множества, в которые будут входить буквы 1 и 2 слова}
  For i := 1 To Length(s1) Do include(m1, UpCase(s1[i]));
  For i := 1 To Length(s2) Do include(m2, UpCase(s2[i]));
  {Найдем пересечение множеств}
  m3 := m1 * m2;
  Write('общие символы в двух словах: ');
  For i := 1 to Length(Alf) Do
    If Alf[i] in m3 Then
    Begin
      Write(Alf[i], ' ');
      Inc(k)
    End;
  If k = 0 then WriteLn('нет таких символов');
  ReadLn
End.
Добавлено через 48 минут
В строку
Pascal
1
Alf = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
можно добавить символы, какие могут быть во введенных словах. Эта строчка нужна только для того, чтобы было что перебирать при выводе множества, так как более простого способа вывести множество в Turbo Pascal нет.
0
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
3755 / 2452 / 2034
Регистрация: 22.11.2013
Сообщений: 6,821
30.01.2016, 20:39 #3
Цитата Сообщение от YBF19 Посмотреть сообщение
так как более простого способа вывести множество в Turbo Pascal нет
Это не совсем так, или даже совсем не так.
Pascal
1
2
3
4
var
  c: Char;
...
  for c:=#32 to #255 do if c in m then Write(c); WriteLn;
А с учетом подсчета количества:
Pascal
1
2
3
4
  for c:=#32 to #255 do
    if c in m then begin
      Write(c); Inc(k);
    end; WriteLn;
1
YBF19
1 / 1 / 5
Регистрация: 30.01.2016
Сообщений: 11
30.01.2016, 20:45 #4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

bormant, да, пожалуй, этот вариант куда лучше...

Добавлено через 3 минуты
Поправила:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Program pr3;
Var
  s1, s2 : String[20];
  i, k : Integer;
  m1, m2, m3 : Set of Char; 
  c : Char;  
Begin
  k := 0;
  m1 := []; m2 := []; {Пустые множества}
  Write('Введите первое слово: ');
  ReadLn(s1);
  Write('Введите второе слово: ');
  ReadLn(s2);
  {Сформируем 2 множества, в которые будут входить буквы 1 и 2 слова}
  For i := 1 To Length(s1) Do include(m1, UpCase(s1[i]));
  For i := 1 To Length(s2) Do include(m2, UpCase(s2[i]));
  {Найдем пересечение множеств}
  m3 := m1 * m2;
  Write('Общие символы в двух словах: ');
  For c:=#32 To #255 Do
    If c in m3 Then
    Begin
      Write(c, ' ');
      Inc(k)
    End;
  If k = 0 then WriteLn('нет таких символов');
  ReadLn
End.
0
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
3755 / 2452 / 2034
Регистрация: 22.11.2013
Сообщений: 6,821
30.01.2016, 21:05 #5
Лучший ответ Сообщение было отмечено ildwine как решение

Решение

YBF19,
еще вариант для разнообразия:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
  m, tm: set of Char;
  k: Integer;
  c: Char;
begin
  for k:=1 to 2 do begin
    Write('Слово ',k,': '); tm:=[];
    while not EoLn do begin
      Read(c); Include(tm,c);
    end; ReadLn;
    if k=1 then m:=tm else m:=m*tm;
  end;
  Write('Общие символы:');
  if m=[] then Write(' отсутствуют')
  else
    for c:=#32 to #255 do if c in m then Write(' ',c);
end.
2
YBF19
1 / 1 / 5
Регистрация: 30.01.2016
Сообщений: 11
30.01.2016, 21:12 #6
bormant, прикольно сделано: посимвольный ввод и сразу добавляем в множества.
0
30.01.2016, 21:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2016, 21:12
Привет! Вот еще темы с решениями:

Строки. В строке слов упорядочить символы избранного слова по алфавиту
В строке слов упорядочить символы избранного слова за алфавитом! Пожалуйста!

Найти колличество слов у которых первый и последний символы совпадают
дана строка символов ,разделённые пробелами(одним или несколькими) и не...

Удалить все символы 'а' из слов, длина которых равна выбранной
Помогите пожалуйста как написать программу в которой требуется "Удалить все...

Определить количество слов, последний и предпоследний символы которых совпадают
Дана строка символов, содержащая слова. Определить количество слов, последний и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru