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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2017, 14:07   #1
Глеб Иванов
Пользователь
 
Регистрация: 06.03.2015
Сообщений: 12
По умолчанию вывод в алфавитном порядке буквы первого массива

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

Если кто может - подкиньте алгоритмы. Буду благодарен


есть пример на Делфи, но нужен Асемблер
Код:
procedure TForm1.Button1Click(Sender: TObject);
  var s,c:set of char;
      i:integer;
      m:char;
  begin
      s:=[];
      c:=[];
    if Memo1.Lines.Count <=500 then
    for i:=1 to Memo1.Lines.Count do s:=s+[memo1.lines[i-1][1]] else
       Showmessage('Забагато символів');
    if Memo2.Lines.Count <=400 then
    for i:=1 to Memo2.Lines.Count do c:=c+[Memo2.Lines[i-1][1]] else
       Showmessage('Забагато символів');
    for m:= 'a' to 'z' do begin
      if (m in s) and (not (m in c)) then Memo5.Lines.Add(m);
      if (m in c) and (not (m in s)) then Memo6.Lines.Add(m);
     end;
     end;
Изображения
Тип файла: png Снимок.PNG (14.7 Кб, 71 просмотров)

Последний раз редактировалось Глеб Иванов; 09.04.2017 в 14:11.
Глеб Иванов вне форума Ответить с цитированием
Старый 09.04.2017, 14:10   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

И что, кто-то должен сделать?

Покажите свои наработки, конкретные вопросы и т.п.

Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.04.2017, 16:34   #3
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Тут не бесплатное бюро переводов!
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 09.04.2017, 17:44   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Цитата:
Если кто может - подкиньте алгоритмы. Буду благодарен
Алгоритм прост.
Создаешь еще два массива размером в алфавит - masAB1[] и masAB2[].

Пишешь первую подпрограмму (пусть это - pp1), которая
- очищает элементы массива masAB1[] <-- 0
Что-то типа xor ax,ax mov masAB1[], ax: ассемблера не знаю .
- заполняет этот массив по следующему принципу:
- Очищаются старшие биты символа. Полученный код символа используется как индекс для инкремента элементов массива masAB1[].

Пишешь вторую подпрограмму (пусть это pp2), которая
- очищает элементы массива masAB2[]
- проверяет наличие символа в массиве masAB1[]. Если элемент массива 0 (ноль) -символа нет, то инкремент соответствующего элемента массива masAB2[]

Пишешь третью п/п (pp3), которая проверяет элементы массива - masAB2[].
Если найден не нулевой элемент, то преобразование индекса в символ и вывод результата на экран или в файл.

Если есть два исходных массива mas1 и mas2, то:
Вызываем первую подпрограмму, примерно так:
Код:
call pp1 mas1 masAB1 - тут pp1 - имя первой п/п, mas1 - первый массив,
                       masAB1 - массив символов, которые есть в mas1
Затем вторую:
Код:
call pp2 mas2 masAB2 - тут masAB2 - массив символов, которые отсутствуют в mas1, но есть в mas2.
Затем третью
Код:
call pp3 masAB2 - Получаем результат.
Повторяем вызов:
Код:
call pp1 mas2 - тут pp1 - имя первой п/п, а mas2 - второй массив
Затем вторую:
Код:
call pp2 mas1.
Затем третью
Код:
call pp3 masAB2 - Получаем результат.
Идем к преподу и докладываем ...


PS: Как писал ранее, ассемблера не знаю (ну очень давно это было ...),
так что не взыщи. Просил алгоритм, получи ...
Как-то так, ...

Последний раз редактировалось ViktorR; 09.04.2017 в 18:01.
ViktorR вне форума Ответить с цитированием
Старый 09.04.2017, 19:13   #5
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

..ещё можно брать очередной символ из первого массива, и искать его SCASB'ом во-втором. По окончании - отсортировать результат по-возрастанию. Получишь символы в алфавитном порядке.
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 10.04.2017, 09:54   #6
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

А вот еще один алгоритм. Возможно не самый лучший, но ...
Поскольку в задании ничего не говорится о необходимости сохранять данные в массивах, то:
- Берем первый символ из mas1 и удаляем все такие символы в mas1, а затем и в mas2.
- Повторяем эту операцию для всех символов mas1.
- Сортировку выполняем через п/п PpSort mas.
Вызов типа Call PpSort mas1
- Повторяем сортировку для mas2
Вызов типа Call PpSort mas2

п/п PpSort mas
Очищаем элементы массива masAB.
Просматриваем массив mas и инкрементом устанавливаем элемент массива masAB, порядковый номер которого - номер символа из mas.
Выводим результат.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан текст, заканчивающийся символом "!". Выписать из этого текста все гласные буквы, которые не входят более чем в одно слово. Расположить эти буквы в алфавитном порядке. Денис123321 Паскаль, Turbo Pascal, PascalABC.NET 1 16.02.2017 10:06
Паскаль - Вывести на экран все русские согласные буквы строки в алфавитном порядке. ss1112 Помощь студентам 0 20.12.2016 18:39
Напечатать в алфавитном порядке все согласные буквы, которые не входят в каждое слово Rinat777 Помощь студентам 5 22.11.2013 12:17
Строки - Расположить все буквы данного слова в алфавитном порядке Александра Раш Паскаль, Turbo Pascal, PascalABC.NET 6 01.05.2012 22:22
Вывести в алфавитном порядке все латинские буквы Jereme Паскаль, Turbo Pascal, PascalABC.NET 6 26.12.2008 13:15