Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 1
Регистрация: 28.12.2015
Сообщений: 154
Записей в блоге: 1

Проверка одинаковых букв в строках

09.12.2017, 15:04. Показов 2809. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вводим текст2, затем текст2, потом выходят те буквы, которые встречаются в тексте1 и тексте2.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.12.2017, 15:04
Ответы с готовыми решениями:

Число одинаковых букв в строках X и Y равной длины,
Составьте алгоритм подсчёта числа одинаковых букв в строках X и Y равной длины, стоящих на одних и тех же местах.

Функция, возвращающая количество одинаковых слов в строках, переданных параметрами
Помогите пожалуйста!!! Напишите функцию в Паскале, которая принимает в качестве аргументов две строки, а возвращает кол-во одинаковых слов...

Составить программу подсчета числа одинаковых букв
Составьте программу подсчета числа одинаковых букв, стоящих на одних и тех же местах в словах X и Y.

10
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
09.12.2017, 15:22
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
var
  t1, t2: string;
  q1, q2: set of char;
  ch: char;
  i: integer;
 
begin
  q1 := [];
  q2 := [];
  readln(t1);
  readln(t2);
  for i := 1 to length(t1) do
    if t1[i] in ['A'..'Z', 'a'..'z', 'А'..'Я', 'а'..'я'] then
      include(q1, t1[i]);
  for i := 1 to length(t2) do
    if t2[i] in ['A'..'Z', 'a'..'z', 'А'..'Я', 'а'..'я'] then
      include(q2, t2[i]);
  write('Set 1: ');    
  writeln(q1);
  write('Set 2: ');    
  writeln(q2);
  write('Set 3 - буквы, которые встречаются в тексте1 и тексте2): ');    
  writeln(q1 + q2);
end.
1
0 / 0 / 1
Регистрация: 28.12.2015
Сообщений: 154
Записей в блоге: 1
09.12.2017, 15:41  [ТС]
ZX Spectrum-128,
по-другому, тут сложнее все.. переформулирую вопрос:
дан текст. я пишу свой текст и выводятся те буквы, которые использованы в моем и данном мне тексте.
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
uses crt;
const nmax=20;
var m1,m2:array[1..nmax]of string;
    n,i,j,k,p,l:byte;
    mn:set of char;
begin
clrscr;
writeln('Vvedite stroki simvolov, okoncanie vvoda *');
n:=0;
repeat
inc(n);
write('Stroka ',n,': ');
readln(m1[n]);
until (m1[n]='*')or (n=2);
writeln;
writeln('Simvoly > 1 raza:');
p:=0;
for i:=1 to n do {идем по массиву}
  begin
    while pos(' ',m1[i])>0 do {пока в текущей строке есть пробелы}
    delete(m1[i],pos(' ',m1[i]),1);{удаляем из нее пробелы}
    write('stroka ',i,': ');
    k:=0;mn:=[];{счетчик совпадений символа=0, множество символов пустое}
    for j:=1 to length(m1[i])-1 do{идем по очередной строке}
    for l:=j+1 to length(m1[i]) do{по ее "клону" со следующего символа}
    if (m1[i][j]=m1[i][l])and not(m1[i][j] in mn) then{если символ совпал и его еще нет в множестве}
      begin
        k:=1;{фиксируем}
        write(m1[i][j],' ');{выводим в строку}
        mn:=mn+[m1[i][j]];{включаем в множество}
      end;
    if k=0 then write('Takih simvolov net!'){если нет таких, сообщаем}
    else if k=1 then{если есть}
        begin
          inc(p);{увеличиваем счетчик нового массива}
          m2[p]:=m1[i];{заносим в него строку}
        end;
    writeln;
  end;
Writeln('Massiv m2:');{}
for i:=1 to p do
writeln(m2[i]);
readln
end.
Пока в этом коде разбираюсь. Он может считать, считает он все в одной строке. А нужно - считать 1 и 2 строку, затем найти одинаковые в них символы. не могу понять, как это вообще реализовать...
0
Модератор
10428 / 5716 / 3404
Регистрация: 17.08.2012
Сообщений: 17,383
09.12.2017, 18:53
Простейший вариант:
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
var s1, s2: string;
    q1, q2, q: set of char;
    c: char;
    i: integer;
begin
  writeln('Введите первую строку:');
  readln(s1);
  writeln('Введите вторую строку:');
  readln(s2);
  q1 := [];
  for i := 1 to length(s1) do include(q1, s1[i]);
  q2 := [];
  for i := 1 to length(s2) do include(q2, s2[i]);
  q := q1 * q2 * ['A'..'Z', 'a'..'z', 'А'..'Я', 'а'..'п', 'р'..'я', 'Ё', 'ё'];
  write('Буквы, которые есть в обеих строках');
  if q = []
    then writeln(', не найдены.')
    else begin
      write(': ');
      for c := low(char) to high(char) do if c in q then write(c);
      writeln
    end;
  readln
end.
0
0 / 0 / 1
Регистрация: 28.12.2015
Сообщений: 154
Записей в блоге: 1
10.12.2017, 18:32  [ТС]
Cyborg Drone,
Pascal
1
      for c := low(char) to high(char) do if c in q then write(c);
здесь ошибка выходит, "ожидалась переменная"
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33379 / 21503 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 12
10.12.2017, 18:34
Цитата Сообщение от Lnqwex Посмотреть сообщение
здесь ошибка выходит
Значит, надо озвучить компилятор, потому что при использовании нормального компилятора никакой ошибки не выходит.
0
0 / 0 / 1
Регистрация: 28.12.2015
Сообщений: 154
Записей в блоге: 1
10.12.2017, 19:02  [ТС]
volvo, можно, пожалуйста конкретнее, как его озвучить..
0
Модератор
10428 / 5716 / 3404
Регистрация: 17.08.2012
Сообщений: 17,383
10.12.2017, 19:29
Так и озвучить. Пишете: я работаю в среде...

Далее указываете диалект паскаля, который применяете. Скорее всего, Вы его сможете прочитать в заголовке окна Вашей среды программирования.

Итак, что используете?

Turbo Pascal
Turbo Pascal School Pak
Borland Pascal
Object Pascal (использовался на компьютерах Apple)
Pascal ABC (не перепутайте с Pascal ABC.NET)
Pascal ABC.NET
Free Pascal
Консоль Delphi (с некоторой натяжкой это Object Pascal)
Консоль Lazarus (это Free Pascal)
GNU Pascal
TMT Pascal
0
0 / 0 / 1
Регистрация: 28.12.2015
Сообщений: 154
Записей в блоге: 1
11.12.2017, 08:11  [ТС]
Cyborg Drone, abs.NET
не подскажете, как количество букв одинаковых определить?
0
0 / 0 / 1
Регистрация: 28.12.2015
Сообщений: 154
Записей в блоге: 1
13.12.2017, 13:54  [ТС]
все, сделал. спасибо за помощь.

Добавлено через 2 минуты
Таки подскажите, какой из этих паскалей скомпилирует с большей вероятностью все мои букавки, которые я напечатал?

Добавлено через 58 секунд
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Turbo Pascal
Turbo Pascal School Pak
Borland Pascal
Object Pascal (использовался на компьютерах Apple)
Pascal ABC (не перепутайте с Pascal ABC.NET)
Pascal ABC.NET
Free Pascal
Консоль Delphi (с некоторой натяжкой это Object Pascal)
Консоль Lazarus (это Free Pascal)
GNU Pascal
TMT Pascal
этих вот
0
Модератор
10428 / 5716 / 3404
Регистрация: 17.08.2012
Сообщений: 17,383
13.12.2017, 14:25
Возьмите Free Pascal. Или лучше Lazarus - среду программирования на основе Free Pascal.

Добавлено через 13 минут
...А вообще, сами выбирайте, на свой вкус: Скачать Паскаль
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.12.2017, 14:25
Помогаю со студенческими работами здесь

Составьте программу подсчета числа одинаковых букв
1. Составьте программу подсчета числа одинаковых букв,стоящих на одних и тех же местах в словах Х и У 2.Составьте программу, меняющую в...

Дано предложение, определить сколько в нем одинаковых соседних букв
Дано предложение, определить сколько в нем одинаковых соседних букв. ПАСКАЛЬ))

В стороке найти слова, содержащие более двух одинаковых букв в слове
В тексте определить количество слов, имеющих более двух одинаковых букв в слове. Вывести на экран эти слова. Удалить из исходного текста...

Найти количество слов, в которых есть пары соседних одинаковых букв.
В файле есть строка которая состоит со слов разделенных одним или несколькома пробелами. Надо найти количество слов, в которых есть пары...

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru