Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
2 / 2 / 1
Регистрация: 20.10.2015
Сообщений: 244
1

Найти и вывести на экран самую короткую группу символов из строки

25.03.2016, 20:39. Показов 1807. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана строка, состоящая из групп нулей и единиц. Найти и вывести на экран самую короткую группу.
Надо сделать с использованием TListBox, загвоздка в том что не могу сделать что бы в строку заносилась группа чисел которая активна в TListBox. Через Edit, когда сам ввожу группу все получается и ошибок при компиляции нету.
Проект во вложениях:
laba8.rar
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2016, 20:39
Ответы с готовыми решениями:

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

Найти и вывести на экран самую короткую группу символов в строке
Помогите! Кто может помочь с данной программой: Дана строка, состоящая из групп нулей и единиц....

Строка: Найти и вывести на экран самую короткую группу символов
Дана строка состоящая из групп нулей и единиц. Каждая группа отделяется друг от друга одним или...

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

5
2 / 2 / 1
Регистрация: 20.10.2015
Сообщений: 244
25.03.2016, 20:42  [ТС] 2
Найти и вывести на экран самую короткую группу символов из строки

Найти и вывести на экран самую короткую группу символов из строки

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    mmo1: TMemo;
    lbl1: TLabel;
    lbl2: TLabel;
    btn1: TButton;
    btn2: TButton;
    lst1: TListBox;
    procedure btn2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.btn2Click(Sender: TObject);
begin
Close;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  mmo1.Clear;
  mmo1.Lines.Add('Лaбораторная работа №8 Болгара Максима');
end;
 
procedure TForm1.btn1Click(Sender: TObject);
const
  D = ['0', '1'];
var
  S : String;
  i, Len, Cnt, CntMin, IMin : Integer;
begin
  S := lst1.Text;
 
  Len := Length(S);
  IMin := 0;
  CntMin := Len;
  Cnt := 0;
  for i := 1 to Len do begin
    if not (S[i] in D) then Continue;
    Inc(Cnt);
    if (i = Len) or (S[i] <> S[i + 1]) then begin
      if (Cnt < CntMin) then begin
        CntMin := Cnt;
        IMin := i - Cnt + 1;
        if CntMin = 1 then Break;
      end;
      Cnt := 0;
    end;
  end;
 
 
  if IMin > 0 then begin
    mmo1.Lines.Add('Перша найменша група:');
    mmo1.Lines.Add(
      'Кількість елементів: ' + IntToStr(CntMin)
      + ', позиція: ' + IntToStr(IMin)
      + ', группа: "' + Copy(S, IMin, CntMin) + '".'
    );
  end else
    mmo1.Lines.Add('В рядку немає груп.');
end;
 
end.
0
500 / 356 / 231
Регистрация: 29.03.2015
Сообщений: 675
25.03.2016, 20:50 3
Лучший ответ Сообщение было отмечено Max00766 как решение

Решение

Сделал обработку выбранного пункта в ListBox.
Прилагаю проект на Delphi.
Вложения
Тип файла: zip laba8.zip (217.1 Кб, 7 просмотров)
1
2 / 2 / 1
Регистрация: 20.10.2015
Сообщений: 244
25.03.2016, 21:02  [ТС] 4
unifikator, А можете, пожалуйста, объяснить что Вы исправили, а то мне очень хочеться разобраться как это все работает? Эту строку выходит?:
Delphi
1
S := lst1.items[lst1.itemindex];
0
500 / 356 / 231
Регистрация: 29.03.2015
Сообщений: 675
25.03.2016, 21:41 5
Удалил Вашу строку:
Delphi
1
S := lst1.Text;
И вместо неё написал:
Delphi
1
2
3
4
5
6
if lst1.ItemIndex<0 then
begin
showmessage('Выберите пункт списка!');
exit;
end;
S := lst1.items[lst1.itemindex];
lst1.ItemIndex - это номер выбранного пункта в списке ListBox. Если он меньше 0, то ни один пункт не выбран. Пункты нумеруются от 0 и до (lst1.Count-1). showmessage(s); выводит окно с сообщением s и кнопкой OK. exit; - выход из текущей функции или процедуры. Первые 5 строк моего кода: если не
выбран пункт в списке, то выводится сообщение и обработка нажатия на кнопку завершается.
lst1.items[i] - пункт в списке номер i, где i начинается с 0. lst1.items[lst1.itemindex] - выбранный пункт в списке. Последняя, то есть 6 строка моего кода присваивает S выбранный пункт списка.
1
2 / 2 / 1
Регистрация: 20.10.2015
Сообщений: 244
26.03.2016, 10:37  [ТС] 6
unifikator, Большое спасибо
0
26.03.2016, 10:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2016, 10:37
Помогаю со студенческими работами здесь

Найти и вывести на экран самую короткую группу нулей и единиц
Здравствуйте, помогите решить задачу: дана строка, состоящая из групп нулей и единиц. Найти и...

Строки. Вывести на экран самую короткую группу из 0 и 1
Дана строка, состоящая из групп нулей и единиц. Найти и вывести на экран самую короткую группу. ...

Строки. Вывести на экран самую короткую группу из 0 и 1.
Помогите плз написать код. Дана строка, состоящая из групп нулей и единиц. Найти и вывести на...

В строке, состоящей из групп нулей и единиц, найти и вывести на экран самую короткую группу
В строке, состоящей из групп нулей и единиц, найти и вывести на экран самую короткую группу....


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru