Code: program Sequences; type Sequence=array [byte] of byte; var M,N,i:byte; X:Sequence; Yes:boolean; procedure Next(var X:Sequence;var Yes:boolean); var i:byte; begin i:=N; {поиск i} while (i>0)and(X[i]=M) do begin X[i]:=1;dec(i) end; if i>0 then begin inc(X[i]);Yes:=true end else Yes:=false end; begin write('M,N=');readln(M,N); for i:=1 to N do X[i]:=1; repeat for i:=1 to N do write(X[i]);writeln; Next(X,Yes) until not Yes end. N - кол-во элементов (8 в твоём случае) M - верхняя граница (40 в твоём случае) А вообще учи комбинаторику, чисто комбинаторная задача.
Подскажиет пожалуйста, как можно вывести значения нескольких переменных типа string в memo, причем значения пеерменных должны отображаться столбиком. Например a:=1 b:=3 c:=5 В поле мемо выглядит как 1 3 5
Code: var ss,s1,s2,s3 : string; begin s1 := '1'; s2 := '2'; s3 := '3'; ss := s1 + #13#10 + s2 + #13#10 + s3; memo1.Lines.Add(ss); .... или memo1.Lines.Add(s1); memo1.Lines.Add(s2); memo1.Lines.Add(s3);
всем доброго времени суток у меня такой тяжёленький вопрос надеюсь поможете обрыл всё что мог на делфикинге не помогают. В общем написал прогу по отправке письма , но я хочу её модифицировать и сделать отправку с подменой адреса как это осуществить?
Нужен хостинг с php и sendmail . На сколько я знаю, бесплатно таких трудно найти, а если найти то работают они на 50%. Поэтому юзается платный хостинг. То есть закидываешь скрипт на этот хост и через него посылаешь сообщения анонимно. Все попытки отредактировать MIME ну и так далее к нужному результату не приведут
Нужно написть что-то наподобии графического редактора. Посоветуйте у кого был опыт какой компонент лучше всего использовать для этого? Пока из мыслей только Image, на нём рисовать, но думаю дальше паинта не уйду. Желатьельно чтобы можно было делать слои и поддерживалась прозрачность.
Я новичек в делфи, поэтому просьба не пинать. Как сделать так чтоб этот кусок кода выполнялся 10 раз и останавливался? Code: ICQclient1.SendMessage(StrToInt(target.Text),edit.text); Sleep(200); ICQclient2.SendMessage(StrToInt(target.Text),edit.text); Sleep(200); ICQclient3.SendMessage(StrToInt(target.Text),edit.text); И вот еще при ипользовании оператора Sleep программа немного подвисает, как сделать чтоб клиенты по очереди слали сообщения с определенным промежутком времени. Тоесть мне надо например при нажатии на кнопку 3 этих ICQClient'а будут слать сообщения с имтервалом 200мс 10 раз, тоесть с итоге должно получится 30 сообщний
Эм, циклом? Code: For x:=1 to 10 do begin ICQclient1.SendMessage(StrToInt(target.Text),edit. text); Sleep(200); ICQclient2.SendMessage(StrToInt(target.Text),edit. text); Sleep(200); ICQclient3.SendMessage(StrToInt(target.Text),edit. text); end; А от зависаний я пользовался Аpplication.ProcessMessages(), но при сложных расчётах, как со слипом будет работать - не скажу. Ну либо компонентом TIdAntiFreeze
чтоб не зависало тут или в отдельном потоке или Code: procedure sleep(ms:cardinal); var tc:cardinal; begin tc:=GetTickCount; repeat Application.ProcessMessages; until GetTickCount-tc > ms; end;
Всем привет! Есть задача подсчитать кол-во предложений в тексте. 1. Есть ли что-то готовое на этот счёт? 2. Начала реализовывать вот так: Но получается что для более точного подсчёта предложений мне нужно знать что находится перед символами "." "!" "?", а использовать стандартные функции работы с текстом нельзя и массивы тоже. Подскажите пожалуйста как выйти из данной ситуации?
Примерно так делай. Определит все предлложения кроме незаконченных символами . ? ! Code: var s,tmp:string; x,len,cnt:integer; f:text; begin cnt:=0; assign(f,'input.txt'); reset(f); while not eof(f) do begin readln(f,s); len:=length(s); for x:=1 to len-1 do // перебираем все символы кроме последнего begin // 1 - Eсли удовлетваряет услови. // 2 - чтобы исключить ... .? !? итд if (s[x] in ['!','?','.']) and (s[x+1] in ['!','?','.']=false) then inc(cnt); end; if (s[len] in ['!','?','.']) then inc(cnt); end; вывод cnt
тогда идем так: Code: var c,last_c:char; cnt:integer; f:text; begin cnt:=0; last_c:=' '; assign(f,'input.txt'); reset(f); while not eof(f) do begin read(f,c); if (c in ['!','?','.']) and (last_c in ['!','?','.']=false) then inc(cnt); last_c:=c; end; close(f); вывод cnt
Странно, всё нормально но выдаёт 0. Ни разу не видел такой синтаксис: (last_c in ['!','?','.']=false) Но суть понятна: если прошлвый символ <> ни одному элементу этого массива то... //Всё окей, прошу прощения, мои глюкю ((last_c in ['!','?','.'])=false) slesh Спасибо что не оставил без внимания!
Slesh Есть недочеты в коде: Вот пофикси. Code: f:TextFile; Code: assignfile(f,'input.txt'); Code: closefile(f);