Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Krasava89rus
1

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

31.05.2012, 10:26. Показов 1544. Ответов 2
Метки нет (Все метки)

Обьясните пожалуйста подробно где что и как это прога делает(я ее купил)
(текст задачи:Напечатать в алфавитном порядке все различные строчные буквы, входящие в заданный текст из 100 литер)
Delphi
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Clear;
Memo2.Lines.Clear;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var s:string;
  I: Integer;
  c: char;
  j: Integer;
  res: string;
begin
res:='';
s:=Memo1.Lines.Text;
 
c:='а';
while (c<='я') do
  begin
    i:=0;
    while (i<length(s)) do
    begin
      if s[i] = c then begin
      res:=res+c;
      i:=i+1;
      break;
      end else i:=i+1;
    end;
  c:=Chr(Ord(c)+1);
  end;
Memo2.Clear;
Memo2.Lines.Add(res);
end;
 
end.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2012, 10:26
Ответы с готовыми решениями:

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

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

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

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

2
1903 / 1014 / 123
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
31.05.2012, 10:40 2
Мне кажется, что эта программа выполняет вашу задачу
правда каким-то необычным способом

Не по теме:

Интересно, кто брал плату за такое? :rofl:

0
13067 / 5853 / 1705
Регистрация: 19.09.2009
Сообщений: 8,807
31.05.2012, 13:13 3
Предлагаю сделать так.
С распечаткой по алфавиту (согласно кодировочной таблице). Только буква "ё" будет выбиваться из правила - она в кодировочной таблице идёт до русской буквы "а".
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TForm1.Button2Click(Sender: TObject);
const
  //Множество строчных букв. Русские и английские буквы.
  D = ['а'..'я', 'ё', 'a'..'z'];
var
  S, SRes : string;
  i : Integer;
  Ds : Set of Char;
  Ch : Char;
begin
  S := Memo1.Text;
  Ds := [];
  for i := 1 to Length(s) do
    if S[i] in D then Ds := Ds + [S[i]];
 
  SRes := '';
  for Ch := 'a' to 'я' do //Здесь 'a' - английская. - Её код меньше, чем у всех других букв.
    if Ch in Ds then begin //Если символ принадлежит множеству Ds, то распечатываем его.
      if SRes <> '' then SRes := SRes + ', ';
      SRes := SRes + Ch;
    end;
  Memo2.Text := SRes;
end;
Принцип здесь такой. Множество D - это множество всех строчных букв. Множество Ds - это множество уникальных букв, которые встречаются в исходном тексте. Вначале Ds является пустым множеством Ds := [].
Теперь, перебираем все символы строки слева-направо:
Delphi
1
2
  Ds := [];
  for i := 1 to Length(s) do
И для каждого символа делаем проверку: если этот символ принадлежит множеству строчных букв (D), то такой символ записываем во множество Ds. В противном случае не обрабатываем символ.
Delphi
1
if S[i] in D then Ds := Ds + [S[i]];
Пояснение - тип множества устроен так, что в него нельзя поместить одинаковые элементы. При записи во множество одинаковых элементов, всё равно запишется только один экземпляр.
Таким образом, когда мы обработаем все символы строки, то получим множество Ds, которое будет содержать набор строчных букв, где каждая буква представлена в одном экземпляре.
После того, как множество Ds составлено, остаётся распечатать элементы этого множества - это и будет ответом в задаче. Для распечатки применяется код:
Delphi
1
2
3
4
5
6
7
  SRes := '';
  for Ch := 'a' to 'я' do //Здесь 'a' - английская. - Её код меньше, чем у всех других букв.
    if Ch in Ds then begin //Если символ принадлежит множеству Ds, то распечатываем его.
      if SRes <> '' then SRes := SRes + ', ';
      SRes := SRes + Ch;
    end;
  Memo2.Text := SRes;
---
Для справки по символам и их кодам: Кодировочная таблица Windows-1251 (CP1251). - На этой странице показана вторая половина таблицы ANSI - с кодами #128..#255. Первая часть таблицы ANSI совпадает с таблицей ASCII и задаёт соответствие для символов с кодами #0..#127. На странице по представленной ссылке есть также ссылки на таблицу ASCII - по ним можно её посмотреть.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2012, 13:13

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

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

В алфавитном порядке напечатать (по одному разу) все строчные русские буквы, входящие в заданный текст
Подскажите ошибку, которую допустила в программе. Задание такое: Вводится текст, за которым...

В алфавитном порядке напечатать все строчные английские гласные буквы, входящие в текст
Помогите пожалуйста, у меня получилось как-то так. uses crt; var s: string; i, count:...

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


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

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

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