Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2010, 16:29   #1
Vali_T
Пользователь
 
Регистрация: 23.05.2008
Сообщений: 32
По умолчанию delphi, строки

Задачка:
есть строка, содержащая символы, требуется вывести на экран количество встречаемых символов. в виде:
v - 5
g - 2
! - 1

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

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  s: string;
  i, k, n, m: integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
   k:=0;
   n:=0;
   m:=0;
   s:= edit1.Text;  
   for i:= 0 to length(s)  do
    begin
      if s[i] = 'a' then k:=k+1;
      if s[i] = 'b' then n:=n+1;
      if s[i] = '!' then m:=m+1;
    end;
   ShowMessage('a' + '-' + inttostr(k) + #10#13 + 'b' + '-' + inttostr(n) + #10#13 + '!' + '-' + inttostr(m));

end;

end.
Vali_T вне форума Ответить с цитированием
Старый 19.09.2010, 16:35   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Предлагаю такой код:
Код:
var i:integer;c:char;
 a:array['A'..'z'] of byte;
begin
 for c:='A' to 'z' do a[c]:=0;
 for i:=1 to length(Edit1.Text) do  inc(a[Edit1.Text[i]]);
 ListBox1.Clear;
 for c:='A' to 'z' do if a[c]<>0 then ListBox1.Items.Add(c+' = '+IntToStr(a[c]));

end;
Он может быть помещен в клик кнопки. Здесь текст из Эдита разбирается побуквенно, выясняется кол-во каждой буквы и выводится отчет в ЛистБокс

Идея понятна?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.09.2010, 17:04   #3
D@rkD@iver
Форумчанин
 
Регистрация: 28.07.2009
Сообщений: 189
По умолчанию

а лучше вот так сделай
Цитата:
var i:integer;c:char;
a:array[char] of byte;
begin
for c:=char(0) to char(255) do a[c]:=0;
for i:=1 to length(Edit1.Text) do inc(a[Edit1.Text[i]]);
ListBox1.Clear;
for c:=char(0) to char(255) do if a[c]<>0 then ListBox1.Items.Add(c+' = '+IntToStr(a[c]));

end;
пишу программы для студентов и школьников на Pascal, Delphi, C++, WINAPI, assembler
обучаю программированию на паскале(дистанционно);mail: hruslow@gmail.com
D@rkD@iver вне форума Ответить с цитированием
Старый 19.09.2010, 17:06   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
D@rkD@iver
Чем лучше то?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.09.2010, 17:08   #5
Vali_T
Пользователь
 
Регистрация: 23.05.2008
Сообщений: 32
По умолчанию

Да, понятна и получилось, спасибо, а как же быть с другими символами к примеру: !, -, 1 и т.д.?

Цитата:
Сообщение от D@rkD@iver Посмотреть сообщение
а лучше вот так сделай
Вот то что надо, Спасибо
а через ShowMessage эти результаты можно вывести?

Последний раз редактировалось Stilet; 19.09.2010 в 18:34.
Vali_T вне форума Ответить с цитированием
Старый 19.09.2010, 18:34   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а через ShowMessage эти результаты можно вывести?
Ну а чего нет?
Код:
for c:=char(0) to char(255) do if a[c]<>0 then ss:=ss+c+' = '+IntToStr(a[c]))+#13#10;
ShowMessage(ss);
Где ss - string
Цитата:
с другими символами к примеру: !, -, 1 и т.д.?
Ну тогда согласен с D@rkD@iver-ом
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
строки в delphi STIFLER32 Помощь студентам 6 27.03.2010 13:44
строки в Delphi Михаил70 Помощь студентам 2 15.09.2009 02:05
delphi строки motaro Общие вопросы Delphi 5 21.08.2009 18:45
#Delphi Строки forumu Помощь студентам 3 24.12.2007 23:31
Строки в Delphi. Wise Помощь студентам 9 03.12.2007 17:58