Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.06.2014, 19:28
hrustnik hrustnik вне форума
Прохожий
 
Регистрация: 15.06.2014
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию delphi первокурсник

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

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
 sum:=0;
 memo1.lines.clear;
begin
with StringGrid1 do
  for i:=FixedCols to ColCount-1 do
  for j:=FixedRows to RowCount-1 do
    Cells[i, j]:='';
end;


if RadioButton1.Checked=true then
begin
n:=strtoint(Edit1.Text);
n1:=strtoint(Edit2.Text);
if (n<2) or (n>10) or (n1<2) or (n1>10) then
begin
    Showmessage('Кол-во строк и столбцов не больше 10 и не меньше 2');
    exit;
end;
for i:=0 to n do begin
for j:=0 to n1 do begin
x[i,j]:= strtoint(StringGrid1.Cells[i,j]);
begin
  sum:= sum + x[i,j];
  Memo1.Lines.Add('Сумма элементов '+inttostr(i)+'-ой строки = '+inttostr(sum));
end;
end;
end;
end;


if RadioButton2.Checked=true then
begin
randomize;
n:=random(8)+ 2;
n1:=random(8)+ 2;
Edit1.Text:=inttostr(n+1);
Edit2.Text:=inttostr(n1+1);

for i:=0 to n do begin
for j:=0 to n1 do begin
x[i+1,j+1]:= random(10)+2;
StringGrid1.Cells[j,i]:= FormatFloat('0.00',x[i+1,j+1]);
begin
  sum:= sum + x[i,j];
  Memo1.Lines.Add('Сумма элементов '+inttostr(i)+'-ой строки = '+inttostr(sum));
end;
end;

MAD: пользуемся тегом code, а не quote.

1. когда работаем рандом то в memo идут неправильные данные
2. самому вообще не ввести, пишет ошибку
буду благодарен

Последний раз редактировалось M.A.D.M.A.N., 21.06.2014 в 19:37.
Ответить с цитированием
  #2  
Старый 21.06.2014, 22:11
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от hrustnik
...Вычислить сумму элементов каждой строки матрицы А (n x m), определить наименьшее значение этих сумм и номер соответствующей строки...
Матрица Х должна быть уже заполнена
Код:
...
var
i,j,n:integer;
tmp: array of integer;
begin
 Memo1.Clear;

 SetLength(tmp, High(x)+1);

 for i := Low(x) to High(x) do
  begin
   tmp[i]:= SumInt(x[i]);
   Memo1.Lines.Add(IntToStr(i) + ': ' + IntToStr(tmp[i]));
  end;

 n:= MinIntValue(tmp);

 for i := Low(tmp) to High(tmp) do if tmp[i] = n then
  Memo1.Lines.Add('Минимальная сумма элементов ' + IntToStr(i) + '-ой строки = ' + IntToStr(tmp[i]));
end;
З.Ы. Кстати, очистить ячейки стрингрида можно и так
Код:
with StringGrid1 do for i := FixedCols to ColCount-1 do Cols[i].Clear;
Ответить с цитированием
  #3  
Старый 21.06.2014, 22:24
hrustnik hrustnik вне форума
Прохожий
 
Регистрация: 15.06.2014
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

море ошибок и я ничего не понимаю
думаю дело в том, что у меня делфи xe3 (
Ответить с цитированием
  #4  
Старый 21.06.2014, 22:26
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Какое море, всего несколько строк - в uses нужно Math добавить. Проверил, работает
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:16.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter