Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Ynikum
5 / 3 / 2
Регистрация: 09.06.2010
Сообщений: 89
1

Поиск букв в тексте

04.10.2011, 20:26. Просмотров 2153. Ответов 2
Метки нет (Все метки)

Дана строка в файле, состоящая из русских слов, разделенных пробелами, запятыми.
найти гласные буквы которые встречались один раз.(в ответе буквы в алфавитном порядке)...

Добавлено через 52 минуты
В текстовом файл записан произвольный текст на английском языке. какие гласные буквы встречались в этом тексте только один раз. ответ вывед в виде строки символов, по алфовиту. Примечание: к гласным буквами в английском языке относят: a,e,i,o,u,y.

Добавлено через 15 минут
скиньте ссылки на темы это раньше решалось найти не могу
 Комментарий модератора 
Я объединил темы.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2011, 20:26
Ответы с готовыми решениями:

Дана строка символов. Определить, каких букв больше в этом тексте, больших латинских букв или малых
Дана строка символов. Определить, каких букв больше в этом тексте, больших латинских букв или...

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

Слова в тексте разделены пробелами. Сколько разных букв встречается в тексте?
???

Нахождение букв в тексте...
Создать текст. Вывести: а) первые вхождения букв в текст, сохраняя их исходный взаимный порядок;...

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

2
Daemon025
380 / 328 / 159
Регистрация: 06.12.2010
Сообщений: 894
04.10.2011, 21:49 2
Ynikum, а что самому решить мешает?
0
Mawrat
12878 / 5780 / 1704
Регистрация: 19.09.2009
Сообщений: 8,807
05.10.2011, 08:42 3
Лучший ответ Сообщение было отмечено Ynikum как решение

Решение

Цитата Сообщение от Ynikum Посмотреть сообщение
Дана строка в файле, состоящая из русских слов, разделенных пробелами, запятыми.
найти гласные буквы которые встречались один раз.(в ответе буквы в алфавитном порядке)...
Ynikum, как я понял, более точно, задание такое: "Найти гласные буквы, которые встречаются в тексте и которые в каждом слове могут встречаться только по одному разу."
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
program Project1;
 
const
  //Разделители слов.
  D = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13];
  //Множество гласных букв.
  Da = [
    //Русские.
    'А', 'Е', 'Ё', 'И', 'О', 'У', 'Э', 'Ю', 'Я', 'Ы',
    'а', 'е', 'ё', 'и', 'о', 'у', 'э', 'ю', 'я', 'ы',
    //Английские.
    'A', 'E', 'I', 'O', 'U', 'Y',
    'a', 'e', 'i', 'o', 'u', 'y'
  ];
var
  S : String;
  D1, D2, DW1, DW2, DRes : set of Char;
  i, Len : Integer;
  Ch : Char;
begin
  repeat
    Writeln('Задайте строку:');
    Readln(S);
 
    Len := Length(S);
 
    //Уровень всего текста:
    //Множество гласных букв, которые встретились в тексте.
    D1 := [];
    //Ммножество гласных букв, которые в некоторых словах
    //встречаются по нескольку раз.
    D2 := [];
    //Уровень отдельного слова:
    //Множество гласных букв, которые встречаются в слове.
    DW1 := [];
    //Множество гласных букв, которые встречаются в слове несколько раз.
    DW2 := [];
    for i := 1 to Len do begin
      //Пропускаем разделители.
      if S[i] in D then Continue;
      //Далее - обработка букв внутри слова.
      //Если это гласная буква.
      if S[i] in Da then begin
        //Если гласная буква в этом слове уже встречалась - добавляем её во множество DW2.
        if S[i] in DW1 then DW2 := DW2 + [ S[i] ];
        DW1 := DW1 + [ S[i] ];
      end;
      //Отслеживаем конец слова.
      if (i = Len) or (S[i + 1] in D) then begin
        //Множество гласных букв, которые встретились в слове, добавляем во множество D1.
        D1 := D1 + DW1;
        //Множество гласных букв, которые в слове встретились несколько раз,
        //добавляем во множество D2.
        D2 := D2 + DW2;
        //Обнуляем множества на уровне слова.
        DW1 := [];
        DW2 := [];
      end;
    end;
 
    //Множество гласных букв, которые встречаются в тексте и в каждом слове
    //могут встречаться только по одному разу.
    DRes := D1 - D2;
 
    //Ответ.
    if DRes = [] then begin
      Writeln('Нет ни одной гласной буквы, которая бы удовлетворяла');
      Writeln('заданным условиям.')
    end else begin
      Writeln('Гласные буквы, которые встречаются в тексте и в каждом слове могут');
      Writeln('присутствовать только по одному разу:');
      i := 0;
      for Ch := #0 to #255 do begin
        if not (Ch in DRes) then Continue;
        Inc(i);
        if i > 1 then Write(', ');
        Write(Ch);
      end;
      Writeln;
    end;
    Writeln;
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
Решение с файлом.
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
program Project1;
 
const
  //Разделители слов.
  D = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13];
  //Множество гласных букв.
  Da = [
    //Русские.
    'А', 'Е', 'Ё', 'И', 'О', 'У', 'Э', 'Ю', 'Я', 'Ы',
    'а', 'е', 'ё', 'и', 'о', 'у', 'э', 'ю', 'я', 'ы',
    //Английские.
    'A', 'E', 'I', 'O', 'U', 'Y',
    'a', 'e', 'i', 'o', 'u', 'y'
  ];
  Fn = 'file.txt';
var
  F : Text;
  S : String;
  D1, D2, DW1, DW2, DRes : set of Char;
  i, Len : Integer;
  Ch : Char;
begin
  repeat
    Writeln('Файл с исходными данными: ', Fn);
    Writeln('Для запуска нажмите Enter.');
    Readln;
 
    //Уровень всего текста:
    //Множество гласных букв, которые встретились в тексте.
    D1 := [];
    //Ммножество гласных букв, которые в некоторых словах
    //встречаются по нескольку раз.
    D2 := [];
    Assign(F, Fn);
    Reset(F);
    while not Eof(F) do begin
      Readln(F, S);
      Len := Length(S);
      //Уровень отдельного слова:
      //Множество гласных букв, которые встречаются в слове.
      DW1 := [];
      //Множество гласных букв, которые встречаются в слове несколько раз.
      DW2 := [];
      for i := 1 to Len do begin
        //Пропускаем разделители.
        if S[i] in D then Continue;
        //Далее - обработка букв внутри слова.
        //Если это гласная буква.
        if S[i] in Da then begin
          //Если гласная буква в этом слове уже встречалась - добавляем её во множество DW2.
          if S[i] in DW1 then DW2 := DW2 + [ S[i] ];
          DW1 := DW1 + [ S[i] ];
        end;
        //Отслеживаем конец слова.
        if (i = Len) or (S[i + 1] in D) then begin
          //Множество гласных букв, которые встретились в слове, добавляем во множество D1.
          D1 := D1 + DW1;
          //Множество гласных букв, которые в слове встретились несколько раз,
          //добавляем во множество D2.
          D2 := D2 + DW2;
          //Обнуляем множества на уровне слова.
          DW1 := [];
          DW2 := [];
        end;
      end;
    end;
    //Закрываем файл.
    Close(F);
 
    //Множество гласных букв, которые встречаются в тексте и которые
    //в каждом слове могут встречаться только по одному разу.
    DRes := D1 - D2;
 
    //Ответ.
    if DRes = [] then begin
      Writeln('Нет ни одной гласной буквы, которая бы удовлетворяла');
      Writeln('заданным условиям.')
    end else begin
      Writeln('Гласные буквы, которые встречаются в тексте и в каждом слове могут');
      Writeln('присутствовать только по одному разу:');
      i := 0;
      for Ch := #0 to #255 do begin
        if not (Ch in DRes) then Continue;
        Inc(i);
        if i > 1 then Write(', ');
        Write(Ch);
      end;
      Writeln;
    end;
    Writeln;
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
Цитата Сообщение от Ynikum Посмотреть сообщение
В текстовом файл записан произвольный текст на английском языке. какие гласные буквы встречались в этом тексте только один раз. ответ вывед в виде строки символов, по алфовиту.
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
program Project1;
 
const
  //Множество гласных букв.
  Da = [
    //Русские.
    'А', 'Е', 'Ё', 'И', 'О', 'У', 'Э', 'Ю', 'Я', 'Ы',
    'а', 'е', 'ё', 'и', 'о', 'у', 'э', 'ю', 'я', 'ы',
    //Английские.
    'A', 'E', 'I', 'O', 'U', 'Y',
    'a', 'e', 'i', 'o', 'u', 'y'
  ];
  Fn = 'file.txt';
var
  F : Text;
  S : String;
  D1, D2, DRes : set of Char;
  i, Len : Integer;
  Ch : Char;
begin
  repeat
    FileName := ExtractFilePath(ParamStr(0)) + Fn;
    Writeln('Файл: ', Fn);
    Writeln('Для запуска нажмите Enter.');
    Readln;
 
    //Множество гласных букв, которые встретились в тексте.
    D1 := [];
    //Ммножество гласных букв, которые встречаются по нескольку раз.
    D2 := [];
    Assign(F, Fn);
    Reset(F);
    while not Eof(F) do begin
      Readln(F, S);
      Len := Length(S);
      for i := 1 to Len do begin
        //Пропускаем символы, которые не являются гласными буквами.
        if not (S[i] in Da) then Continue;
        //Если гласная буква уже встречалась - добавляем её во множество D2.
        if S[i] in D1 then D2 := D2 + [ S[i] ];
        D1 := D1 + [ S[i] ];
      end;
    end;
    //Закрываем файл.
    Close(F);
 
    //Множество гласных букв, которые встречаются в тексте только по одному разу.
    DRes := D1 - D2;
 
    //Ответ.
    if DRes = [] then begin
      Writeln('Нет ни одной гласной буквы, которая бы удовлетворяла');
      Writeln('заданным условиям.')
    end else begin
      Writeln('Гласные буквы, которые встречаются в тексте только по одному разу:');
      i := 0;
      for Ch := #0 to #255 do begin
        if not (Ch in DRes) then Continue;
        Inc(i);
        if i > 1 then Write(', ');
        Write(Ch);
      end;
      Writeln;
    end;
    Writeln;
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2011, 08:42

Количество больших букв в тексте
Помоги пожалуйста с лабораторкой на тему РАБОТА С СТРОКАМИ. POS() COPY() DELETE()...

Количество чисел и букв с тексте
Вот написал программу по определению количества букв и чесел в тексте, но мне выдаются ошибки. Как...

Количество слов из 4 букв в тексте
нужно написать программу, подсчитывающую количество слов из 4 букв в тексте. туплю с циклом for,...


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

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

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