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

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

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2020, 15:07   #1
vadim49584
Новичок
Джуниор
 
Регистрация: 30.04.2020
Сообщений: 1
Вопрос Из элементов одномерного массива A сформировать массив C в лазарусе

как можно исправить код для этого задания, а то я не совсем понимаю. Из элементов одномерного массива А сформировать массив С той же размерности по правилу: первые k элементов – Ai=10Ci,остальные - Ai=2Ci.
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Grids;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private

  public

  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var n,i:integer;
  a:array[0..100,0..100] of integer;
begin
 n:=strtoint(edit1.text);
 stringgrid1.colcount:=n;
 stringgrid1.visible:=true;
 randomize;
 for i:=0 to n-1 do
 begin
   a[i,0]:=random(101)-50;
   stringgrid1.cells[i,0]:=inttostr(a[i,0]);
   end;
end;

procedure TForm1.Button2Click(Sender: TObject);
   var n,i,k:integer;
  a:array[0..100,0..100] of integer;
begin
  n:=strtoint(edit1.text);
  k:=strtoint(edit2.text);


for i:=0 to n-1 do
   a[i,0]:=strtoint(stringgrid1.cells[i,0]);
 for i:=0 to n-1 do
  a[i,0]:=a[i,0]*10*i;
 begin
 for i:=k to high(a) do
 a[i,0]:=a[i,0]*2*i;
 end;
 stringgrid2.Visible:=true;
 stringgrid2.colcount:=n+1;
 for i:=0 to n-1 do
  Stringgrid2.Cells[i,0]:=inttostr(a[i,0]);





   end;





end.
vadim49584 вне форума Ответить с цитированием
Старый 06.05.2020, 12:59   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var n,i:integer;
  a:array[0..100] of integer;
begin
 n:=strtoint(edit1.text);
 stringgrid1.colcount:=n;
 stringgrid1.visible:=true;
 randomize;
 for i:=0 to n-1 do
 begin
   a[i]:=random(101)-50;
   stringgrid1.cells[i,0]:=inttostr(a[i]);
 end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var n,i,k:integer;
  a:array[0..100] of integer;
begin
  n:=strtoint(edit1.text);
  k:=strtoint(edit2.text);


for i:=0 to n-1 do
   a[i]:=strtoint(stringgrid1.cells[i,0]);
 for i:=0 to n-1 do
  If i<=k then
    a[i]:=a[i]*10 else
    a[i]:=a[i]*2;
 stringgrid2.Visible:=true;
 stringgrid2.colcount:=n;
 for i:=0 to n-1 do
  Stringgrid2.Cells[i,0]:=inttostr(a[i]);
end;
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 на форуме Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сформировать массив из средних арифметических элементов массива A с номерами от 1 до K - C++ SenkShow C++ Builder 4 04.11.2015 09:25
Сформировать новый массив из элементов массива, значения которых = 0 Liori Общие вопросы C/C++ 2 02.01.2015 17:54
Дан одномерный массив из 30 элементов. Сформировать второй массив, в котором сначала идут все элементы первого массива, кратные 5, Olzhakesh C# (си шарп) 1 29.04.2014 23:49
(С/С++) Сформировать новый массив из положительных нечетных элементов заданного массива Р(20) Chak1483 Общие вопросы C/C++ 0 01.12.2011 22:05