Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2019, 12:03   #1
Enotik_1998
Пользователь
 
Регистрация: 09.03.2018
Сообщений: 77
По умолчанию Работа с массивами в delphi7

Здравствуйте. Вот есть задача: Дан целочисленный вектор А(n). Поменять местами первый отрицательный и последний положительный элементы вектора. Ввод, вывод и работу с вектором нужно сделать через stringgrid. Помогите, пожалуйста переделать в delphi7. Вот код на pascal abc:
Код:
Program p1;
var
a:array[1..10]of integer;
i,n,first_otr,last_pol,b:integer;
begin
Write('Введите размерность вектора n=');
Read(n);
For i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
Writeln('Исходный вектор:');
For i:=1 to n do write(a[i]:3);
first_otr:=0;
last_pol:=0;
for i:=1 to n do
if a[i] < 0 then
begin
first_otr:=i;
break;
end;
for i:=n downto 1 do
if a[i]>0 then
begin
last_pol:=i;
break;
end;
if (first_otr>0)and(last_pol>0) then
begin
b:=a[first_otr];
a[first_otr]:=a[last_pol];
a[last_pol]:=b;
end;
Writeln();
Writeln('Полученный вектор:');
For i:=1 to n do write(a[i]:3);
end.
______________________
Используйте тег [CODE] (кнопка [CODE] в форме сообщения) при вставке кода на форум. Подробнее в FAQ

Последний раз редактировалось Serge_Bliznykov; 18.03.2019 в 12:27.
Enotik_1998 вне форума Ответить с цитированием
Старый 18.03.2019, 12:29   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Enotik_1998 Посмотреть сообщение
Помогите, пожалуйста переделать в delphi7
А чем конкретно помочь?
Вы форму на Delphi сделали? Кнопки нужные, поле для ввода размерности вектора, StringGrid на неё положили?
Вам нужен только код для
Цитата:
Сообщение от Enotik_1998 Посмотреть сообщение
Поменять местами первый отрицательный и последний положительный элементы вектора.
?

Остальное уже всё сделано?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.03.2019, 12:33   #3
Enotik_1998
Пользователь
 
Регистрация: 09.03.2018
Сообщений: 77
По умолчанию

Остальное - готово. Помогите с этим, пожалуйста. Да, и ещё такой вопрос: Как сделать, чтобы результат выводился на другую форму в stringgrid?

Последний раз редактировалось Enotik_1998; 18.03.2019 в 12:56.
Enotik_1998 вне форума Ответить с цитированием
Старый 18.03.2019, 13:34   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Enotik_1998 Посмотреть сообщение
Как сделать, чтобы результат выводился на другую форму в stringgrid?
показать другую форму и заполнить на этой форме StringGrid нужными значениями


Цитата:
Сообщение от Enotik_1998 Посмотреть сообщение
Помогите с этим, пожалуйста.
процедура на кнопку
Код:
var
  a:array[1..100]of integer;
  i,n,first_otr,last_pol,b:integer;
begin
  n = StringGrid1.ColCount;

  For i:=1 to n do a[i] := StrToIntDef( StringGrid1.Cells[i-1, 0], 0 );

  first_otr:=0;
  last_pol:=0;
  for i:=1 to n do
    if a[i] < 0 then begin
       first_otr:=i;
       break;
    end;
  for i:=n downto 1 do
    if a[i]>0 then begin
       last_pol:=i;
       break;
    end;
  if (first_otr>0)and(last_pol>0) then
  begin
     b:=a[first_otr];
     a[first_otr]:=a[last_pol];
     a[last_pol]:=b;
  end;
  For i:=1 to n do StringGrid1.Cells[i-1, 0] := IntToStr( a[i] );
end;
Код предполагает, что грид имеет одну строку и нужное число колонок.
Заголовков (фиксированных = fixed) строчек и столбцов - НЕТ!
Код:
  StringGrid1.FixedCols := 0;
  StringGrid1.FixedRows := 0;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.03.2019, 11:56   #5
Enotik_1998
Пользователь
 
Регистрация: 09.03.2018
Сообщений: 77
По умолчанию

спасибо огромное
Enotik_1998 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Операции над двумерными массивами Delphi7 VinDiz Помощь студентам 1 28.01.2012 19:14
Работа с реестром в Delphi7 DENIS_1992 Общие вопросы Delphi 0 07.06.2011 11:33
Работа с реестром в Delphi7 DENIS_1992 Помощь студентам 2 01.06.2011 22:39
Delphi7 работа с ячейками Alkifr Помощь студентам 3 12.12.2010 13:13
Работа с файлами в Delphi7 сер4ей Помощь студентам 1 20.03.2009 04:40