|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Задача с массивами
Помогите пожалуйста!!!В чем ошибка? Заменить последний отрицательный элемент массива на модуль первого элемента массива.
Код:
var Form1: TForm1; N:integer; M:array of integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin Randomize; N:=Strtoint(Edit1.Text); setlength(M,N); Edit2.Text:=' '; for I := 0 to N-1 do begin M[i]:=Round(Sin(Random(10))*10); M[n-1]<=0; Edit2.Text:=Edit2.Text+' '+inttostr(M[i]); end; begin m[n-1]:=abs( m[1]); Edit3.Text:=Edit3.Text+' '+inttostr(M[i]); end; end; end. Последний раз редактировалось Admin, 21.01.2012 в 16:52. |
#2
|
|||
|
|||
свои предположения есть?
|
#3
|
|||
|
|||
Как записать что последний элемент массива отрицательный?
|
#4
|
||||
|
||||
Цитата:
Mas[Length(Mas)-1]:=-Mas[Length(Mas)-1]; Чем больше знаешь, тем сильнее осознаёшь, что знаешь гораздо меньше, чем не знаешь!.. |
Этот пользователь сказал Спасибо DelphiM0ZG за это полезное сообщение: | ||
999 (21.01.2012)
|
#5
|
|||
|
|||
PHP код:
|
Этот пользователь сказал Спасибо Pyro за это полезное сообщение: | ||
999 (21.01.2012)
|
#6
|
|||
|
|||
Подскажите ,пожалуйста,в чем ошибка?Очень нужно..
Заменить последний отрицательный элемент массива на модуль первого элемента массива.
Код:
var Form1: TForm1; N:integer; M:array of integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin Randomize; N:=Strtoint(Edit1.Text); setlength(M,N); Edit2.Text:=' '; Edit3.Text:=' '; for I := 0 to N-2 do begin M[i]:=Round(Sin(Random(10))*10); Edit2.Text:=Edit2.Text+' '+inttostr(M[i]) end; for i := n-1 downto 0 do if m[i] < 0 then break; Edit2.Text:=Edit2.Text+' '+inttostr(M[i]); end; M[n-1]:=abs(m[1]); Edit3.Text:=Edit3.Text+' '+inttostr(M[i]); end Последний раз редактировалось lmikle, 21.01.2012 в 20:35. |
#7
|
|||
|
|||
последний отрицательный, это значит, что тебе надо найти этот элемент. Неизвестно, на каком месте он находится.
Код:
var M : Array of Integer; I : Integer; begin ... For I := High(M) DownTo Low(M) Do If M[i] < 0 Then Begin M[i] := Abs(M[Low(M)]); Break; End; ... end; PS. Не забываем про теги и лучше форматируй код, тебе же проще будет в нем разбираться. |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
999 (21.01.2012)
|
#8
|
|||
|
|||
Помогите ,пожалуйста,с массивом!
Разделить все элементы массива с нечетными номерами на последний элемент (последний элемент отличен от 0).
Как записать условие?в чем тут ошибка? var Form1: TForm1; N:integer; M:array of integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin Randomize; N:=Strtoint(Edit1.Text); setlength(M,N); Edit2.Text:=' '; Edit3.Text:=' '; for I := 0 to N-2 do begin M[i]:=Round(Sin(Random(10))*10); end; for i := n-1 to n-1 do if M[i]=0 then begin m[i]:=Round(Sin(Random(10))*10); end; for i := 0 to n - 1 do Edit2.Text:=Edit2.Text+' '+inttostr(M[i]); end; for i := 0 to n- 1 do if i mod 2 <>0 then begin M[i]:= M[i]/M[n-1]; end; Edit3.Text:=Edit3.Text+' '+inttostr(M[i]); end; end. Последний раз редактировалось 999, 22.01.2012 в 09:25. |
#9
|
|||
|
|||
Двухмерный массив в Delphi.Помогите найти ошибку!
Дан двумерный массив размером n*m, заполненный случайным образом.
Заменить минимальный по модулю элемент каждого столбца на противоположный Код:
var Form3: TForm3; i,j,n,m,min:Integer; a:array [0..30,0..30] of integer; implementation {$R *.dfm} procedure TForm3.Button1Click(Sender: TObject); begin Randomize; n:=strtoint(Edit1.Text); m:=strtoint(Edit2.Text); for i:=0 to n-1 do for j:=0 to m-1 do a[i,j]:=Round(Sin(Random(100))*100); StringGrid1.RowCount:=n+1; StringGrid1.RowCount:=m+1; With StringGrid1 do begin i:=0; for J := 1 to RowCount do Cells[i,j]:=Inttostr(j); j:=0; for i:= 1 to ColCount do Cells[i,j]:=Inttostr(i); end; With StringGrid1 do for i:= 1 to n do for j:=1 to m do Cells[i,j]:=inttostr(a[i-1,j-1]); for i:= 1 to n do begin min:=abs(a[1,1]); for I := 0 to n-1 do if abs(a[i,j])< abs(min) then min:=a[i,j]; end; for i:= 1 to n do for j:=1 to m do begin a[i,j]:=-a[i,j]; end; With StringGrid2 do begin i:=0; for J := 1 to RowCount do Cells[i,j]:=Inttostr(j); j:=0; for i:= 1 to ColCount do Cells[i,j]:=Inttostr(i); end; With StringGrid2 do for i:= 1 to n do for j:=1 to m do Cells[i,j]:=inttostr(a[i-1,j-1]); end; end. |