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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2011, 17:21   #1
Вася Маклауд
 
Регистрация: 03.04.2011
Сообщений: 6
Печаль Элементы матрицы. Все ненулевые элементы массива D(k) расположить в начале массива E(k) и подсчитать их к

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Memo1: TMemo;
Memo2: TMemo;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
Label3: TLabel;
Label4: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);


private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
close;
end;


procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Memo1.clear; // по нажатию специальной кнопки оба компонента TMemo очищаются
Memo2.clear;

end;

procedure TForm1.BitBtn3Click(Sender: TObject);

var
m, i,n,j,l:integer;
a,b:array of integer;
begin
j:=0;
l:=0;
n:=m;
n:=Memo1.Lines.Count;
m:=Memo2.Lines.Count;
SetLength(A,n); // рассчитываем длину рабочих одномерных массивов A и B
SetLength(B,m); // причем длина их должна быть одинакова

// присвоение массива A
for i:=0 to n-1 do
begin
A[i]:=strtoint(Memo1.Lines[i]); // в массив A сбрасывается все, что ввел пользователь
end;
// определяем все ненулевые элементы
for i:=0 to n-1 do
begin
if (A[i]<>0) then // если элемент массива НЕ равен нулю, то …
begin
B[j]:=A[i]; // скопируем этот элемент в массив B
l:=l+1; // к счетчику ненулевых элементов прибавим единицу
Memo2.Lines.Add (inttostr(B[j])); // выведем новый элемент B[j] в компоненте TMemo
j:=j+1; // счетчик элементов массива B изменим на единицу
end;
end;
// выводим нули
for i:=j to n-1 do { т. к. j – число ненулевых элементов, то выражение n-1-j – это число нулей в конце массива }
begin
B[j]:=0; // все оставшиеся незаполненными ячейки обнуляем
Memo2.Lines.Add(inttostr (B[j])); // и выводим

Label2.Caption:=intToStr(l); // выводим количество ненулевых элементов
A:=NIL; // очищаем массивы A…
B:=NIL; // … и B
end;
end;



end.




Вот код программы выдает ошибку Is not a valid integer value подправьте плиз код буду благодарен очень)а то уже незнаю че делать)
Вася Маклауд вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расположить элементы массива в порядке возрастания Klik_1602 Помощь студентам 2 04.01.2011 14:59
Все отрицательные элементы массива А заменить на сумму, а положительные на полусумму предшествующих Lada05 Помощь студентам 1 27.10.2010 15:44
1.Найти в матрице первую строку, все элементы которой отрицательны 2.отсортировать элементы массива по в w0lf16 Помощь студентам 2 22.11.2009 15:47
Расположить элементы массива в порядке убывания частоты встречаемости элементов. QWERT12345 Паскаль, Turbo Pascal, PascalABC.NET 7 14.11.2008 22:30
в начале все отрицательные, затем все положительные элементы в матрице motaro Паскаль, Turbo Pascal, PascalABC.NET 2 07.03.2008 19:16