Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.05.2007, 18:40
Aliar Aliar вне форума
Прохожий
 
Регистрация: 10.05.2007
Сообщения: 2
Репутация: 10
По умолчанию Наро прошу помощи!!!

Народ помогите PLEASE написать проги по 2 задачам!!!!
Проги над написать в паскале

1.Даны 2 вектора состоящие из N компонентов {Xn} {Yn} вычислить скалярное произаедение по формуле X1Yz+X2Y2...XnYn

2.Дано множество X1, содержащее символы из диапазона [А...Я]. Сформировать новое множество во Y1 выделения из множества X1 всех символов, расположенных раньше К или позже Р. На экран вывести множество Значение элементов исходного множества ввести с клавиатуры.

В заранее огромное спасибо!!!

Последний раз редактировалось Aliar, 10.05.2007 в 21:29.
Ответить с цитированием
  #2  
Старый 13.05.2007, 23:12
N3xt N3xt вне форума
Прохожий
 
Регистрация: 29.04.2007
Сообщения: 6
Репутация: 10
По умолчанию

гуру, ну хде вы
Ответить с цитированием
  #3  
Старый 14.05.2007, 08:44
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

А что, сами думать уже разучились???
Для второго задания (первое если честно не понял о чем):
На форме Memo1 и Memo2 (в первый Мемо вводится исходный набор символов, вывод результирующего - во второй Мемо), на форму кидаем кнопку и в ее обработчик OnClick пишем следующее:
Код:
var
  i:integer;
  before,after:string;
  currentPos:integer;
begin
  //Удаляем все не относящиеся к теме символы
  before:=Memo1.Lines.Text;
  for i:=1 to Length(before) do
    if not(before[i] in ['А'..'Я']) then
      before[i]:=',';
  before:=StringReplace(before,',','',[rfReplaceAll]);
  after:='';
  {Обработка, в результат не будут выводится токены
    завершающий "К" и
    начальный "Р"!!!!}
  //Ищем все "строки ДО К" (в общем случае их больше одной)
  currentPOS:=1;
  repeat
    currentPOS:=PosEx('К',before,currentPos);
    after:=after+LeftStr(before,currentPos-1);
  until currentPos<>0;
  //ищем все "подстроки ПОСЛЕ Р" та же фигня что и для предыдущего
  currentPOS:=1;
  repeat
    currentPOS:=PosEx('Р',before,currentPos);
    after:=after+RightStr(before,Length(before)-currentPos);
  until currentPOS<>0;
  Memo2.Lines.Text:=after;
end;
я это даже тестил, работает. причем зассматривается случай что токены "Р" и "К" встречаются больше одного раза, следовательно результирующая последовательность в общем случае может быть больше начальной. Так же отслеживается неправильный ввод исходных данных, все токены не относящаеся к заданному в задаче множеству просто выкидываются из исходных данных.
Ответить с цитированием
  #4  
Старый 14.05.2007, 10:39
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

А не проще вместо строки использовать тип "множество" (set of), раз уж Delphi его поддерживает?

set.zip
Ответить с цитированием
  #5  
Старый 14.05.2007, 11:09
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Decoding
если в твоем примере ввести:
"ЛЛЛЛКОООО" то ничего не выводит, а, по условию задачи должен вывести "ЛЛЛЛ", (то что "стоит перед К").
Ответить с цитированием
  #6  
Старый 14.05.2007, 11:15
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Значит вопрос задан некорректно, т.к. элементы в множестве не могут повторяться - они либо принадлежат множеству, либо нет… Так что если нужно именно множество, то у меня правильно, в противном случае надо корректнее сформулировать вопрос… В моем примере буквы с 'К' по 'Р' в множество не попадают (по условию задачи).

Последний раз редактировалось Decoding, 14.05.2007 в 11:21.
Ответить с цитированием
  #7  
Старый 14.05.2007, 11:25
Aliar Aliar вне форума
Прохожий
 
Регистрация: 10.05.2007
Сообщения: 2
Репутация: 10
По умолчанию

Цитата:
А что, сами думать уже разучились???
Еслиб мы еще умели это делать=)гыы
Пасиб вам огромное
Ответить с цитированием
  #8  
Старый 14.05.2007, 22:49
N3xt N3xt вне форума
Прохожий
 
Регистрация: 29.04.2007
Сообщения: 6
Репутация: 10
По умолчанию

Aristarh Dark, в турбо паскале такой метод не прокатит, только в делфи работает, адаптируй плиз код для ТП
Ответить с цитированием
  #9  
Старый 15.05.2007, 05:58
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Ну вообще народ обленился. Показывай сколько адаптировал, дальше поможем. Иначе за бабло
Ответить с цитированием
  #10  
Старый 15.05.2007, 07:18
N3xt N3xt вне форума
Прохожий
 
Регистрация: 29.04.2007
Сообщения: 6
Репутация: 10
По умолчанию

Дык там всё переделывать надо...
Ответить с цитированием
  #11  
Старый 15.05.2007, 09:18
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

На самом деле не все, процедуру получения входных данных надо, процедуру вывода результата, и, скорее всего, я не помню уже, PosEx реализовать, все остальное, в принципе, останется как есть (ну за незначительными изменениями)
Ответить с цитированием
  #12  
Старый 15.05.2007, 19:58
N3xt N3xt вне форума
Прохожий
 
Регистрация: 29.04.2007
Сообщения: 6
Репутация: 10
По умолчанию

В теории всё таг просто Не получается ничего
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:36.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter