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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.01.2012, 16:06
999 999 вне форума
Прохожий
 
Регистрация: 21.01.2012
Сообщения: 5
Репутация: 10
По умолчанию Задача с массивами

Помогите пожалуйста!!!В чем ошибка? Заменить последний отрицательный элемент массива на модуль первого элемента массива.
Код:
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  
Старый 21.01.2012, 16:44
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

свои предположения есть?
Ответить с цитированием
  #3  
Старый 21.01.2012, 16:49
999 999 вне форума
Прохожий
 
Регистрация: 21.01.2012
Сообщения: 5
Репутация: 10
По умолчанию

Как записать что последний элемент массива отрицательный?
Ответить с цитированием
  #4  
Старый 21.01.2012, 16:52
Аватар для DelphiM0ZG
DelphiM0ZG DelphiM0ZG вне форума
Новичок
 
Регистрация: 22.10.2011
Сообщения: 62
Репутация: 666
По умолчанию

Цитата:
Сообщение от 999
Как записать что последний элемент массива отрицательный?
Как-то так:
Mas[Length(Mas)-1]:=-Mas[Length(Mas)-1];
__________________
Чем больше знаешь, тем сильнее осознаёшь, что знаешь гораздо меньше, чем не знаешь!..
Ответить с цитированием
Этот пользователь сказал Спасибо DelphiM0ZG за это полезное сообщение:
999 (21.01.2012)
  #5  
Старый 21.01.2012, 16:52
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

PHP код:
for := n-1 downto 0 do
  if 
a[i] < 0 then break;
a[i
Ответить с цитированием
Этот пользователь сказал Спасибо Pyro за это полезное сообщение:
999 (21.01.2012)
  #6  
Старый 21.01.2012, 19:20
999 999 вне форума
Прохожий
 
Регистрация: 21.01.2012
Сообщения: 5
Репутация: 10
По умолчанию Подскажите ,пожалуйста,в чем ошибка?Очень нужно..

Заменить последний отрицательный элемент массива на модуль первого элемента массива.
Код:
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  
Старый 21.01.2012, 20:38
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,048
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

последний отрицательный, это значит, что тебе надо найти этот элемент. Неизвестно, на каком месте он находится.

Код:
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  
Старый 22.01.2012, 08:50
999 999 вне форума
Прохожий
 
Регистрация: 21.01.2012
Сообщения: 5
Репутация: 10
По умолчанию Помогите ,пожалуйста,с массивом!

Разделить все элементы массива с нечетными номерами на последний элемент (последний элемент отличен от 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  
Старый 23.01.2012, 16:04
999 999 вне форума
Прохожий
 
Регистрация: 21.01.2012
Сообщения: 5
Репутация: 10
По умолчанию Двухмерный массив в 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.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter