![]() |
|
#1
|
|||
|
|||
![]() Какое условие записать для повторяющихся элементов?
Последний раз редактировалось flips, 18.11.2010 в 18:39. |
#2
|
||||
|
||||
![]() массив чего?
|
#3
|
||||
|
||||
![]() Предположу что речь идет о модуле Variants;
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#4
|
|||
|
|||
![]() Нужно взять массив из строки и вывести его в Memo
Вот код для взятия из строки: Код:
procedure getArrayFromStr(var a:TArray100;var cnt:integer; const s:string); var wep:integer; w:string[20];s1:string; begin s1:=s; cnt:=0; while length(Trim(s))>0 do begin s1:=Trim(s1); wep:=Pos('',s1); if wep=0 then wep:=length(s1) else wep:=wep-1; w:=copy(s1,1,wep); delete(s1,1,wep); cnt:=cnt+1; a[cnt]:=strtoint(w); end; end; Код:
procedure showArrayInMemo(const a:TArray100;cnt:integer;Memo1:TMemo); var i:integer; begin Memo1.Clear; for i:=1 to cnt do begin Memo1.Lines.Add(inttostr(a[i])); end; end; Проблема в этой строке: Код:
a[cnt]:=strtoint(w); Код:
procedure createRandomArray(var a:TArray100;cnt,modul:integer); var i:integer; begin randomize; for i:=1 to cnt do a[i]:=random(modul); end; Код:
function ArrayToStr(const a:TArray100;cnt:integer):string; var i:integer; begin result:=''; for i:=1 to cnt do result:=result+intToStr(a[i])+' '; end; Спасибо за внимание. |
#5
|
||||
|
||||
![]() Как я понял цель функции getArrayFromStr извлечь из строки числа и заполнить ими массив.
Для начала, цикл у вас никогда не завершится потому-что вы обрабатываете S1 а проверяете S которая никак не меняется. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#6
|
|||
|
|||
![]() забыл поменять.
Да вы правильно поняли. Может мы перейдем в icq, чтобы решить все проблемы сразу? |
#7
|
|||
|
|||
![]() И еще как записать условие четных элементов массива?
|
#8
|
||||
|
||||
![]() Пока не получится по аське пообщаться. С чужого компа периодически выглядываю на форум.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#9
|
|||
|
|||
![]() А что насчет самих вопросов?
Второй вопрос возможно глуповатый, но условие нужно одновременно записывать или по-очереди? |
#10
|
|||
|
|||
![]() Цитата:
Код:
if (N mod 2) = 0 then showmessage('четный'); |
#11
|
|||
|
|||
![]() Цитата:
Код:
procedure getArrayFromStr(var a:TArray100;var cnt:integer; const s:string); var wep:integer; w:string[20];s1:string; begin s1:=s; cnt:=0; while length(Trim(s1))>0 do begin s1:=Trim(s1); wep:=Pos('',s1); if wep=0 then wep:=length(s1) else wep:=wep-1; w:=copy(s1,1,wep); delete(s1,1,wep); cnt:=cnt+1; a[cnt]:=strtoint(w); end; end; Код:
a[cnt]:=strtoint(w); Последний раз редактировалось flips, 15.11.2010 в 17:31. |
#12
|
|||
|
|||
![]() Помогите
![]() ![]() ![]() |
#13
|
|||
|
|||
![]() Товарищи форумчане помогите, пожалуйста
![]() ![]() |
#14
|
||||
|
||||
![]() попробуй сделать так:
Код:
... showmessage(w+' '+inttostr(length(w))); a[cnt]:=strtoint(w); jmp $ ; Happy End! The Cake Is A Lie. |
#15
|
|||
|
|||
![]() Разобрался я со считыванием данных из строки в кавычках для фун-и pos пробел не указал.
Новая проблема появилась. Задание звучит так: Из массива удалить четные элементы, элементы то удаляет, но еще добавляет мусор. Где нужно внести поправки в код? Код:
procedure DelEvenElement(var a:TArray100;cnt:integer); var i,j:integer; begin i:=1; while i<=cnt do begin if (a[i]mod 2)=0 then begin dec(cnt); for j:=i to cnt do a[j]:=a[j+1]; end else i:=i+1; end; end; |