Родились сегодня:
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.

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

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

Раздел: Pascal / Delphi / Lazarus
Автор вопроса: Важик (Посетитель)
Дата: 04.03.2021, 09:33 Консультация закрыта
Поступило ответов: 1

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

2) В двумерном массиве
а) Проверить, является ли сумма элементов n-ой строки массива двузначным числом. Выводить все промежуточные значения.
б) Определить, верно ли, что произведение элементов столбца массива с известным номером не превышает заданного числа. Выводить все промежуточные значения. Прикрепляю архив с имеющейся работой. Delphi

-----
Прикрепленные файлы:


b6717a3abc78b832e670efdd7814e883ec7b1c05.rar
скачать (73.2 кб)
Здравствуйте, Важик!

Код Lazarus:
Код [Pascal]
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Grids;
type
  { TForm1 }
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    StringGrid1: TStringGrid;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit1Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: char);
    procedure Edit2Click(Sender: TObject);
    procedure Edit2KeyPress(Sender: TObject; var Key: char);
    procedure FormCreate(Sender: TObject);
    procedure StringGrid1Click(Sender: TObject);
  private
  public
  end;
var
  Form1: TForm1;
implementation
{$R *.lfm}    
{ TForm1 }
  procedure CheckKey(var a:char);
    begin
      Case a of
      #08,#13,'0'..'9':;
      else a:=#0;
      end;
    end;
  procedure TForm1.FormCreate(Sender: TObject);
    begin
      Edit1.Caption:=' N ';
      Edit2.Caption:=' M ';
      Button1.Caption:='Create';
      Button2.Caption:='Setup';
      Edit1.Enabled:=True;
      Edit2.Enabled:=False;
      Button1.Enabled:=False;
      Button2.Enabled:=False;
      StringGrid1.Visible:=False;
      StringGrid1.DefaultColWidth:=40;
    end;
  procedure TForm1.Edit1Click(Sender: TObject);
    begin
      Edit1.Text:='';
    end;
  procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);
    begin
      CheckKey(Key);
      if Key<>#0then Edit2.Enabled:=True;
    end;
  procedure TForm1.Edit2Click(Sender: TObject);
    begin
      Edit2.Text:='';
    end;
  procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: char);
    begin
      CheckKey(Key);
      if Key<>#0then Button1.Enabled:=True;
    end;
  procedure TForm1.Button1Click(Sender: TObject);
    var
      i:integer;
    begin
      if(Edit1.Text<>'')and(Edit2.Text<>'')then
        begin
          StringGrid1.ColCount:=StrToInt(Edit2.Text)+1;
          StringGrid1.RowCount:=StrToInt(Edit1.Text)+1;
          for i:=1 to StringGrid1.RowCount-1 do StringGrid1.Cells[0,i]:=IntToStr(i);
          for i:=1 to StringGrid1.ColCount-1 do StringGrid1.Cells[i,0]:=IntToStr(i);
          StringGrid1.Visible:=True;
          Button2.Enabled:=True;
        end;
    end;
  procedure TForm1.Button2Click(Sender: TObject);
    var
      i,j:integer;
    begin
      for i:=1 to StrToInt(Edit2.Text) do
        for j:=1 to StrToInt(Edit1.Text) do
          StringGrid1.Cells[i,j]:=IntToStr(random(20)+1);
      ShowMessage('please select cells');
    end;
  procedure TForm1.StringGrid1Click(Sender: TObject);
    var
      a:string;
      i,j,n:integer;
    begin
      if (StringGrid1.Col>0)and(StringGrid1.Row>0)then
        begin
          ShowMessage('You select col:='+IntToStr(StringGrid1.Col)+' row:='+IntToStr(StringGrid1.Row));
          j:=0;
          for i:=1 to StringGrid1.ColCount-1 do
            j:=j+StrToInt(StringGrid1.Cells[i,StringGrid1.Row]);
          if(j>10)and(j<100)then ShowMessage('True:= '+IntToStr(j)+' in range 10 . . 99')
            else ShowMessage('False:= '+IntToStr(j)+' with out range 10 . . 99');
          repeat
            a:=InputBox('task 2b','Enter number:=','a');
          until TryStrToInt(a,n);
          j:=1;
          for i:=1 to StringGrid1.RowCount-1 do
            j:=j*StrToInt(StringGrid1.Cells[StringGrid1.Col,i]);
          if j<=n then ShowMessage('True '+IntToStr(j)+' <= '+a)
            else ShowMessage('False '+IntToStr(j)+' > '+a);
        end;
    end;
end.


Удачи!

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

Старший модератор
13.03.2021, 00:14
Мини-форум консультации # 200376

q_id

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

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

ID: 31795

1

= общий =    04.03.2021, 12:38
Важик:

ZIР-ните архив, RAR-платный и не у всех есть RAR с последними протоколами архивации.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

q_id

Важик

Посетитель

ID: 404834

2

= общий =    04.03.2021, 13:08

Архив в ZIP'e.

-----
Прикрепленные файлы:


4c3efffd1c287a0eb8f392a2c093f134.zip
скачать (75.9 кб)

=====
Серёга Мичурин (мичуган) smile

q_id

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

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

ID: 31795

3

= общий =    04.03.2021, 13:42
Важик:

Вам какой вопрос нужен 1 или 2?

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

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

Важик

Посетитель

ID: 404834

4

= общий =    04.03.2021, 14:20

2-й

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

Последнее редактирование 04.03.2021, 14:23 Важик (Посетитель)

=====
Серёга Мичурин (мичуган) smile

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

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

puporev

Профессор

Рейтинг: 111

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

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

Рейтинг: 74

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

4-й класс

Рейтинг: 1

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

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

Рейтинг: 0

Асмик Гаряка

Советник

Рейтинг: 0

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

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

Рейтинг: 0