0 / 0 / 0
Регистрация: 19.05.2017
Сообщений: 163
1

Переделать массив. StingGrid

01.06.2017, 22:15. Показов 510. Ответов 1
Метки нет (Все метки)

Надо чтобы задачка была без SpinEdit и сокращений вроде SG, а также без randomrange(только random могу пользоваться).
Когда я просто заменяю, у меня юнит рушится почему-то! Прошу помогите переделать.

Задача :
Дана матрица целых чисел(размеры и элементы вводит пользователь). Построить вторую матрицу по правилу : если элемент исходной матрицы лежит ниже главной диагонали, является нечётным и сумма его индексов кратна 4, то соответствующий ему элемент второй матрицы задать равным 0, иначе - 3. Вывести эти матрицы на экран.

И обязательна ли процедура ClearGrids??? Буду очень благодарен!

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
procedure TForm1.Button1Click(Sender: TObject);
var i, j: integer;
    a, b: array of array of integer;
begin
 SetLength(a, SpinEdit1.Value, SpinEdit1.Value);
 SetLength(b, SpinEdit1.Value, SpinEdit1.Value);
 for i := 0 to SpinEdit1.Value - 1 do
  for j := 0 to SpinEdit1.Value - 1 do
   begin
    a[i, j] := RandomRange(10, 100);
    if(i > j) and ((i + j) mod 4 = 0) and (Odd(a[i, j]))
     then b[i, j] := 0 else b[i, j] := 3;
    SG1.Cells[j, i] := IntToStr(a[i, j]);
    SG2.Cells[j, i] := IntToStr(b[i, j]);
   end;
end;
 
procedure TForm1.ClearGrids;
var i, j: integer;
begin
 for i := 0 to ControlCount - 1 do
  if Controls[i] is TStringGrid
   then for j := 0 to (Controls[i] as TStringGrid).RowCount - 1 do
         (Controls[i] as TStringGrid).Rows[j].Clear;
end;
 
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
 SG1.RowCount := SpinEdit1.Value;
 SG1.ColCount := SpinEdit1.Value;
 SG2.RowCount := SpinEdit1.Value;
 SG2.ColCount := SpinEdit1.Value;
 ClearGrids;
end;
 
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2017, 22:15
Ответы с готовыми решениями:

Запись данных из stinggrid в одномерный массив
Люди добрые, приветствую, помогите! Необходимо записать данные из stinggrid в одномерный массив...

StingGrid
ВВести 5 целых чисел с помощью StringGrid, нужно сделать программу которая выведет числа которые...

SpinEdit и StingGrid
Подскажите пожалуйста. Есть 4 компонента SpinEdit на одной форме и StingGrid да другой, как сделать...

Запись, StingGrid и удаление
Добрый вечер. Возникла проблема. на форме есть StringGrid в него заносится информация из StringGrid...

1
Модератор
7821 / 5142 / 2147
Регистрация: 21.01.2014
Сообщений: 22,160
Записей в блоге: 3
03.06.2017, 19:22 2
Цитата Сообщение от GeorgeLight Посмотреть сообщение
Когда я просто заменяю, у меня юнит рушится почему-то!
Так надо выкладывать не чужой рабочий код, а свой, который "рушится"
Цитата Сообщение от GeorgeLight Посмотреть сообщение
без SpinEdit и сокращений вроде SG
Ну не меняйте имена своих СтрингГридов, пусть в Вашем коде они будут StringGrid1 и StringGrid2, что за беда-то?
Перенесите код из метода SpinEdit1Change в самое начало метода Button1Click, потом замените SpinEdit на простой Edit и выражение SpinEdit1.Value замените на StrToInt(Edit1.Text)
Цитата Сообщение от GeorgeLight Посмотреть сообщение
обязательна ли процедура ClearGrids???
Нет. т.к. Вы, почему-то, выбросили фрагмент, где эта процедура взывалась еще одни раз, то просто перепишите код этой процедуры вместо ее вызова
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.06.2017, 19:22
Помогаю со студенческими работами здесь

StingGrid подсветка символов
Добрый день! Кто нибудь знает как сделать так, чтобы при нажатии на кнопку, текст StringGrid...

Delphi, StingGrid, lines
Помогите пожалуйста, нужно сделать линии В STRINGGRID'е так, как на рисунке, цифры по центру, и...

Расчет по заданной строке в StingGrid
Кароч, такая лабуда, надо подсчитать стоимость оплаты по заданному телефону, он вноситься в Edit1....

Удалить все строки в StingGrid, кроме первой
Как в StingGrid удалить (не очистить) все строки, оставив только первую (верхнюю) строку?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru