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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2009, 23:30   #11
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Sianessa, так просто бросьте на форму, например, stringgrid, и установите количество столбцов 20, а количество строк 1.
Установите опцию goEditing в true и уберите фиксированные строки и столбцы.
И в цикле заполните массив:
Код:
for i:=1 to 20 do
 mas[i] := StrToInt(StringGrid1.Cells[i-1,0]);
Для Edit'а придется посимвольно проходить по содержимому, поэтому имхо проще со стринггридом.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.04.2009, 23:37   #12
Sianessa
Форумчанин
 
Регистрация: 18.01.2009
Сообщений: 144
По умолчанию

__STDC__, понятно... А я вот только начинаю сие счастье изучать, и отношения с этой программой складываются как-то не очень хорошо...
Там есть Edit1 - текстовое поле... Но замучаешься вводить 20 чисел через запятую в одно поле... Когда тебя просят например ввести число, ты можешь быстро ввести и нажать Enter для ввода следующего - так гораздо удобнее... И ладно здесь 20 чисел, а если будет 100?
То текстовое поле тут не поможет...
Sianessa вне форума Ответить с цитированием
Старый 05.04.2009, 23:41   #13
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

смотри выше
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 05.04.2009, 23:42   #14
Sianessa
Форумчанин
 
Регистрация: 18.01.2009
Сообщений: 144
По умолчанию

Sazary, StringGrid... Ну да, можно попробовать, как вариант...
А какие ещё варианты можно использовать для вывода?
Sianessa вне форума Ответить с цитированием
Старый 05.04.2009, 23:43   #15
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
А какие ещё варианты можно использовать для вывода?
Полно вариантов. Эдит, Мемо, СпинЭдит...
Только вот оптимальный - стринггрид.
Точнее, оптимальный для вас.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.04.2009, 23:44   #16
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

можно из текстового файла еще =)
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 05.04.2009, 23:55   #17
Sianessa
Форумчанин
 
Регистрация: 18.01.2009
Сообщений: 144
По умолчанию

Спасибо всем большое ^^

В общем я написала код программы. Но оно не работает, пишет что: Incompatible types: 'integer' and 'Extended' и выделяет при этом следующую строчку:

StringGrid2.cells[i-1,0]:=inttostr(b[i]);


Код:
procedure TForm1.Button1Click(Sender: TObject);
var a:array [1..20] of integer;
    b:array [1..20] of integer;
i,j:byte;
begin
 a[i]:= StrToInt(StringGrid1.Cells[i-1,0]);
 for i:=1 to 20 do begin
   for j:=1 to 20 do
      if (i<>j) then b[i]:=b[i]+a[j];
   b[i]:=b[i]/19
StringGrid2.cells[i-1,0]:=inttostr(b[i]);
end;
end;
end.

Последний раз редактировалось Stilet; 06.04.2009 в 08:32.
Sianessa вне форума Ответить с цитированием
Старый 06.04.2009, 00:28   #18
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

оой.. не понял.. вероятно в стринггрид не текст хранится... убери inttostr.. может поможет..
***
хотя не.. что-то туплю к вечеру... у тебя в массиве b целые числа но при делении на 19 получается вещественное... поменяй тип массива b на real (или extended) и в строке StringGrid2.cells[i-1,0]:=inttostr(b[i]);
напиши floattostr вместо inttostr
Uguu~

Последний раз редактировалось __STDC__; 06.04.2009 в 00:36.
__STDC__ вне форума Ответить с цитированием
Старый 06.04.2009, 00:39   #19
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Дополнительно к вышесказанному, вы еще и исходный массив не вводите.
Выдаст ошибку при выполнении на строчке
Код:
a[i]:= StrToInt(StringGrid1.Cells[i-1,0]);
Вот.
Код:
procedure TForm1.Button1Click(Sender: TObject);
const N=5;
var a:array [1..N] of integer;
    b:array [1..N] of real;
i,j:byte;
begin
 for i:=1 to N do
  a[i]:= StrToInt(StringGrid1.Cells[i-1,0]);
 for i:=1 to N do
  begin
  for j:=1 to N do
   if (i<>j) then
    b[i]:=b[i]+a[j];

  b[i]:=b[i]/(N-1);
  StringGrid2.cells[i-1,0]:=floattostr(b[i]);
  end;
end;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.04.2009, 00:39   #20
Sianessa
Форумчанин
 
Регистрация: 18.01.2009
Сообщений: 144
По умолчанию

сами то форматы обоих массивов интеджеровские... Это только порядковые номера элементов массивов i И j баитовые... Хотя атм хоть что ставь - это не влияет особо.
Sianessa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача в Delphi. Объясните смысл! Sianessa Помощь студентам 13 31.03.2009 22:11
Объясните delphi (inc) Neymexa Помощь студентам 5 27.01.2009 16:30
Бд в Delphi,объясните плиз RamireZ БД в Delphi 1 21.10.2008 23:58