0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 46
|
||||||
1 | ||||||
Вычислить суммы элементов в каждом столбце матрицы. Полученные суммы вывести в ListBox03.04.2015, 22:41. Показов 822. Ответов 2
Метки нет Все метки)
(
Здравствуйте, у меня такая задачка: Вычислить суммы элементов в каждом столбце матрицы. Полученные суммы вывести в компоненте ListBox. Предусмотреть возможность сортировки вычисленных сумм по возрастанию и по убыванию.
Задачку я решил, очень легко, но к ней прилагаются пункты, которые я не смог решить: 1. В случае ввода отрицательных чисел необходимо предусмотреть их корректный ввод. Например, символ минуса ‘-’ в ячейке матрицы допускается только один. В случае некорректного ввода числа должно выводится сообщение об ошибке с соответствующим пояснением. Примеры некорректного ввода: «1-2», «34-», «123-45», «789-». 2. Количество строк и столбцов задается на форме программы. По умолчанию это матрица 5х5. То есть при запуске программы выводится матрица размерностью 5х5, заполненная случайными целыми числами. Далее пользователь может поменять количество строк или столбцов (например, в поле TextBox), нажать на кнопку «Заполнить матрицу», и в StringGridдолжна отобразиться матрица нового размера, заполненная случайными целыми числами. Первый пункт я решил на половину: буквы не вводятся, знаки препинания тоже, водится только один минус, но с расположением минуса я так и не решил.. да и когда я перешел в динамичный массив, то при программировании программа крашится. Второй пункт я не сделал вообще. Да, это надо сделать через динамичный массив, но как это сделать, я так и не дошел.. Подскажите пожалуйста!
0
|
|
03.04.2015, 22:41 | |
Ответы с готовыми решениями:
2
Вычислить суммы и количества элементов каждой строки матрицы |
2610 / 1623 / 737
Регистрация: 23.03.2015
Сообщений: 5,096
|
|
04.04.2015, 08:53 | 2 |
Вот посмотрите: procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char); begin case Key of // Разрешение ввода цифр и "BackSpace"" #8,'0'..'9':; // Разрешение ввода "-" только в начале строки '-' : if Length(StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row]) <>0 then Key:=#0; //----------------------------------------------------------// { Замена разделителя целой и дробной части на допустимый} {Можно определить допустимый символ-разделитель в настройке Windows через глобальную переменную "Decimaiseparator" } ',','.' : begin if Key <> DecimalSeparator then Key := DecimalSeparator; // Запрет повторного ввода разделителя if Pos(DecimalSeparator,StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row])<>0 then Key:=#0; end; #13:// "Enter" - при нажатии -переход от одной ячейки к другой ( по горизонтали) if StringGrid1.Col < StringGrid1.ColCount -1 then begin StringGrid1.Col:= StringGrid1.Col+1; end else begin if StringGrid1.Row<StringGrid1.RowCount-1 then begin StringGrid1.Row:= StringGrid1.Row+1 ; StringGrid1.Col :=0; end; end ; else Key:=#0; end end; Добавлено через 19 минут Размер "StringGrid"а var i,j:Integer; begin // Если незадана новая матрица ,то к-во строк =5 if Edit1.Text='' then j:=5 else j:=StrToInt(Edit1.text); // Если незадана новая матрица ,то к-во столбцов =5 if Edit2.Text='' then i:=5 else i:=StrToInt(Edit2.text); StringGrid1.ColCount:=i; StringGrid1.RowCount:=j; end; Заполнение "StringGrid" var i,j,m,n:Integer; R:Double; for m:=0 to StringGrid1.ColCount-1 do begin for n:=0 to StringGrid1.RowCount-1 do begin //Заполнение не целыми числами-так интереснее R:=Random(100)+ Random; StringGrid1.Cells[m,n]:=FloatTostr(RoundTo(R,-2));//Округление до сотых end; end;
1
|
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 46
|
|
04.04.2015, 18:53 [ТС] | 3 |
Narimanych,
Спасибо большое!!!
0
|
04.04.2015, 18:53 | |
Помогаю со студенческими работами здесь
3
Посчитать суммы элементов двух столбцов матрицы, вывести большую сумму В каждом столбце матрицы найти количество элементов, больших среднего арифметического всех элементов столбца В каждом столбце матрицы найти количество элементов, больших среднего арифметического всех элементов столбца Произвести сортировку элементов в каждом четном столбце матрицы Х Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |