Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 12.05.2022
Сообщений: 11

Вывести на экран заданный массив из n символов, удалив из него повторные вхождения каждого символа

13.05.2022, 17:31. Показов 1637. Ответов 12

Студворк — интернет-сервис помощи студентам
Сформировать массив. Вывести на экран заданный массив из n символов, удалив из него повторные вхождения каждого символа.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.05.2022, 17:31
Ответы с готовыми решениями:

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

Вывести на экран заданный массив из k символов, удалив из него повторные вхождения каждого символа
Ошибка в том, что после повторяющегося символа она завершает работу <style> .button1 { background: navy; ...

Дан массив,состоящий из символов. Удалить из него повторные вхождения каждого символа
Дан массив,состоящий из символов. Удалить из него повторные вхождения каждого символа. Помогите,пожалуйста, написать правильно, используя...

12
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,328
13.05.2022, 18:39
ShinyDragon,
1. Откуда сформировать? Откуда взять эти символы?
2. Какой алфавит (какие символы)?
3. Приложение консольное или графическое?
4. Если графическое, то куда (в какой компонент) вывести?
0
0 / 0 / 0
Регистрация: 12.05.2022
Сообщений: 11
13.05.2022, 19:17  [ТС]
1. Из этого файла Проект.rar
2. Латиница и цифры
3. Графическое
4. Memo
0
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,328
02.08.2025, 18:15
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
// https://www.cyberforum.ru/delphi-beginners/thread2983470.html
 
// Сформировать массив. Вывести на экран заданный массив из n символов,
// удалив из него повторные вхождения каждого символа.
 
procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
  i1, i2: integer;
begin
  s := Edit1.Text;
  i1 := 1;
  while i1 <= Length(s) do
  begin
    if i1+1 <= Length(s) then
    begin
      i2 := i1+1;
      while i2 <= Length(s) do
      begin
        if UpperCase(s[i1]) = UpperCase(s[i2]) then
          Delete(s, i2, 1)
        else
          Inc(i2);
      end;
    end;
    Inc(i1);
  end;
  Memo1.Text := s;  
end;
 
end.
Вложения
Тип файла: rar delphi-beginners thread2983470 Массив символов.rar (1.5 Кб, 0 просмотров)
0
 Аватар для Beltar
802 / 418 / 36
Регистрация: 05.05.2022
Сообщений: 2,877
04.08.2025, 08:02
1) Может я что-то не понимаю, но точно надо рассматривать массив символов, как строку и удалять именно из нее, а не просто вывести без повторов для чего проще скопировать всё в др. массив?
2) Delete строке при большой длине как-то слабо сочетается с производительностью.
0
Модератор
 Аватар для D1973
9903 / 6441 / 2454
Регистрация: 21.01.2014
Сообщений: 27,342
Записей в блоге: 3
04.08.2025, 09:28
Цитата Сообщение от Beltar Посмотреть сообщение
как-то слабо сочетается с производительностью
А точно нужно достижение экстра-производительности в школьном задании?
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 21
04.08.2025, 09:34
а точно нужно решать задачу если посмотреть на даты #3 и #4 ? )
0
 Аватар для Beltar
802 / 418 / 36
Регистрация: 05.05.2022
Сообщений: 2,877
04.08.2025, 10:29
AzAtom, походу, решил приколоться.
0
Эксперт Pascal/Delphi
 Аватар для droider
4882 / 2819 / 862
Регистрация: 04.10.2012
Сообщений: 10,248
04.08.2025, 11:01
Цитата Сообщение от Beltar Посмотреть сообщение
AzAtom, походу, решил приколоться
по ходу он решает оставшиеся задачки для практики.
0
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,328
04.08.2025, 11:02
Опять комментаторы набежали...

Beltar,
1, 2) Почему бы и нет? По сути, string является массивом символов, так что, условие соблюдено. Но можно и в соседний массив копировать, конечно.

Добавлено через 29 секунд
droider, оставшиеся без решения задачи.
1
Нарушитель
10226 / 5657 / 1258
Регистрация: 12.03.2015
Сообщений: 26,191
04.08.2025, 12:26
Цитата Сообщение от droider Посмотреть сообщение
по ходу он решает оставшиеся задачки для практики.
Какая нах практика? Это задачки для спинного мозга.
0
Эксперт Pascal/Delphi
 Аватар для droider
4882 / 2819 / 862
Регистрация: 04.10.2012
Сообщений: 10,248
04.08.2025, 14:58
Цитата Сообщение от AzAtom Посмотреть сообщение
оставшиеся без решения задачи
я так и понял)
0
14 / 11 / 3
Регистрация: 14.08.2022
Сообщений: 157
19.08.2025, 22:57
О боже. [Удалено]
Да элементарно это все делается. Если массив создан из случайных символов в котором возможны повторы, и нужно игнорировать повторы то делается это элементарно.
Создается массив-таблица, в которой код символа - индекс. А содержимое - флаг статуса.
И все. Начинаем сканировать исходный массив. Каждый символ по его коду проверяется в массиве статуса.
Если флаг установлен, значит символ был. Игнорируем его. Если не установлен, то заносим символ в выходной массив или выводим сразу на печать а в массиве статуса устанавливаем флаг.
Вот собственно и все.
Если нет чувствительности к регистру (Большая или маленькая буква считается за один символ) то тут или анализ символа при его чтении из исходного массива, или опять же использование таблицы, которую нужно предварительно составить для всех подобных задач. Еще нужно учитывать кодировку. Поскольку string в новых делфи это юникод, то нужно брать тип ansistring
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.08.2025, 22:57
Помогаю со студенческими работами здесь

задать массив, состоящий из символов. Удалить из него повторные вхождения каждого символа.
задать массив, состоящий из символов. Удалить из него повторные вхождения каждого символа.

Напечатайте заданный текст из 60 литер, удалив из него повторные вхождения каждой литеры
Напечатайте заданный текст из 60 литер, удалив из него повторные вхождения каждой литеры. На форме два компонента Memo1 и Button1. ...

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

Напечатайте заданный текст из 100 литер, удалив из него повторные вхождения каждой литеры
Мы ведь &quot;ОДНА БОЛЬШАЯ СЕМЬЯ&quot;, помогите сделать:)!!! Напечатайте заданный текст из 100 литер, удалив из него повторные вхождения каждой...

Как напечатать заданный текст из 100 литер, удалив из него повторные вхождения каждой литеры
Программа. Напечатать заданный текст из 100 литер, удалив из него повторные вхождения каждой литеры.


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru