Родились сегодня:
goldssky@yandex.ru


Лидеры рейтинга

ID: 226425

Konstantin Shvetski

Модератор

768

Россия, Северодвинск


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

342

Россия, пос. Теплоозёрск, ЕАО


ID: 401284

Михаил Александров

Академик

278

Россия, Санкт-Петербург


ID: 325460

CradleA

Мастер-Эксперт

211

Беларусь, Минск


ID: 137394

Megaloman

Мастер-Эксперт

148

Беларусь, Гомель


ID: 400815

alexleonsm

6-й класс

130


ID: 400669

epimkin

Профессионал

120


8.8.15

09.05.2021

JS: 2.8.21
CSS: 4.5.5
jQuery: 3.6.0
DataForLocalStorage: 2021-05-14 03:16:12-standard


Создание программ на языках Pascal, Delphi и Lazarus.

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)

Консультация онлайн # 200368

Раздел: Pascal / Delphi / Lazarus
Автор вопроса: Ericsson (Посетитель)
Дата: 03.03.2021, 08:14 Консультация закрыта
Поступило ответов: 1

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
В двумерном массиве с числами в интервале от -20 до 20 заменить все элементы строк с номером от А до В на противоположные по знаку. Подсчитать сумму каждой строки, входящей в диапазон от А до В. Выводить все промежуточные значения. Delphi

Здравствуйте, Ericsson!

Код Lazarus:
Код
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Grids, StdCtrls, Math;
type  
  { TForm1 }  
  TForm1 = class(TForm)
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    StringGrid1: TStringGrid;
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private  
  public  
  end;
var
  Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
  var
    i, j: integer;
  begin
    for i := 0 to StringGrid1.ColCount - 1 do
      for j := 0 to StringGrid1.RowCount - 1 do
        StringGrid1.Cells[i, j] := IntToStr(randomRange(-20, 20));
    for i := 0 to StringGrid1.RowCount - 1 do
      ComboBox1.Items.Add(IntToStr(i));
    ComboBox2.Enabled := False;
  end;
procedure TForm1.ComboBox1Change(Sender: TObject);
  var
    i: integer;
  begin
    for i := ComboBox1.ItemIndex to StringGrid1.RowCount - 1 do
      ComboBox2.Items.Add(IntToStr(i));
    ComboBox2.Enabled := True;
  end;
procedure TForm1.ComboBox2Change(Sender: TObject);
  var
    i, j, s: integer;
  begin
    for j := StrToInt(ComboBox1.Items[ComboBox1.ItemIndex]) to
             StrToInt(ComboBox2.Items[ComboBox2.ItemIndex]) do
      begin
        s := 0;
        for i := 0 to StringGrid1.ColCount - 1 do
          begin
            StringGrid1.Cells[i, j] := IntToStr(-StrToInt(StringGrid1.Cells[i, j]));
            s := s + StrToInt(StringGrid1.Cells[i, j]);
          end;
        ShowMessage('Summa ' + IntToStr(j) + ' rows :=' + IntToStr(s));
      end;  
  end;
end.

Создаете форму :


Удачи!

Зенченко Константин Николаевич

Старший модератор
05.03.2021, 22:57
5
Мини-форум консультации # 200368

Нет сообщений в мини-форуме

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

puporev

Профессор

Рейтинг: 111

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 74

Степанов Иван /REDDS

4-й класс

Рейтинг: 1

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 0

Асмик Гаряка

Советник

Рейтинг: 0

Орловский Дмитрий

Мастер-Эксперт

Рейтинг: 0