Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Incompatible types: array and integer 
:(
    Опции темы
Fantik1990
Дата 5.11.2010, 06:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 5.11.2010

Репутация: нет
Всего: нет



Код

procedure TForm1.Button1Click(Sender: TObject);
var
  a:array[1..n] of real;
  b:array[1..n] of real;
  c:array[1..n] of real;
  i:integer;
  s1,s2,sb,sg,ai:real;
begin
 //------------------------------------------------------------
 for i:=1 to n do
   a[i]:=strtofloat(memo1.lines[i-1]);  //ввод данных в массив
   b[i]:=strtofloat(memo2.lines[i-1]);
   c[i]:=strtofloat(memo3.lines[i-1]);
 //------------------------------------------------------------
  a[i]:=random(30); //генератор случайных чисел
  b[i]:=random(30);
  c[i]:=random(30);
 //-------------------------среднее ариф b
 s1:=0;
 for i:=1 to n do
 begin if i=1 then
 b:=1 else
 b:=(i-1)*i;
 s1:=s1+b;
 sb:=s1/n;
 end;
 //-------------------------среднее геометрич. c
 s2:=0;
 for i:=1 to n do
 begin if i=1 then
 c:=1 else
 c:=(i-1)*i;
 s2:=s2*c;
 sg:=Power(s2,1/n);
 end;
 //--------------------кол-во а
 ai:=0;
 for i=1 to n do
 begin if sb<=a<=sg
 then
 ai:=ai+1;
 end;


Добавлено @ 06:16
что тут не так,подскажите!

Это сообщение отредактировал(а) Rrader - 5.11.2010, 10:00
PM MAIL   Вверх
~FoX~
Дата 5.11.2010, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 5
Всего: 68



Цитата(Fantik1990 @  5.11.2010,  07:15 Найти цитируемый пост)
что тут не так,подскажите! 

Собственно все не так ))))

Цитата(Fantik1990 @  5.11.2010,  07:15 Найти цитируемый пост)
 b:=1 else
 b:=(i-1)*i;

Код

 b[i]:=1 else
 b[i]:=(i-1)*i;

Цитата(Fantik1990 @  5.11.2010,  07:15 Найти цитируемый пост)
 c:=1 else
 c:=(i-1)*i;

Код

c[i]:=1 else
c[i]:=(i-1)*i;


Цитата(Fantik1990 @  5.11.2010,  07:15 Найти цитируемый пост)
ai:=0;

Цитата(Fantik1990 @  5.11.2010,  07:15 Найти цитируемый пост)
 ai:=ai+1;


Код

a[i]:=0;
.......
a[i]i:=a[i]+1;



Это сообщение отредактировал(а) ~FoX~ - 5.11.2010, 09:18


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
superVad
Дата 5.11.2010, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



аааа - какая чушь

Код

procedure TForm1.Button1Click(Sender: TObject);
var
  a:array[1..n] of real;
  b:array[1..n] of real;
  c:array[1..n] of real;
  i:integer;
  s1,s2,sb,sg,ai:real;
begin
  //------------------------------------------------------------
  for i:=1 to n do
    a[i]:=strtofloat(memo1.lines[i-1]);  //ввод данных в массив
  b[i]:=strtofloat(memo2.lines[i-1]);
  c[i]:=strtofloat(memo3.lines[i-1]);
 //------------------------------------------------------------
  a[i]:=random(30); //генератор случайных чисел
  b[i]:=random(30);
  c[i]:=random(30);
 //-------------------------среднее ариф b
  s1:=0;
  for i:=1 to n do
  begin
    if i=1
    then b:=1
    else b:=(i-1)*i;
    s1:=s1+b;
    sb:=s1/n;
  end;
 //-------------------------среднее геометрич. c
  s2:=0;
  for i:=1 to n do
  begin
    if i=1
    then c:=1
    else c:=(i-1)*i;
    s2:=s2*c;
    sg:=Power(s2,1/n);
  end;
 //--------------------кол-во а
  ai:=0;
  for i=1 to n do
  begin
    if sb<=a<=sg
    then ai:=ai+1;
  end;



Что бросается в глаза - непонятно, что это за такие - ввод данных в массив и генератор случайных чисел. Ну и энда в конце нету  smile .

Это сообщение отредактировал(а) superVad - 5.11.2010, 14:37
PM MAIL   Вверх
Fantik1990
Дата 5.11.2010, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 5.11.2010

Репутация: нет
Всего: нет



~FoX~ молодцом. сразу понял что мне надо.
только вот на строчке 

 ai:=0;
  for i=1 to n do
  begin
    if sb<=a<=sg
    then ai:=ai+1;

встает курсор после to и выдает ошибку как было до этого.
в этой строчке мне нужно найти количество значений A, которые отвечают требованию sb<=ai<=sg
где sb-среднее арифмитическое, а sg-среднее геометрическое.
я исправил эту строчку как ты писал,но он все равно жалуется
что посоветуешь?
PM MAIL   Вверх
Fantik1990
Дата 5.11.2010, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 5.11.2010

Репутация: нет
Всего: нет



 s3:=0;
 for i=1 to n do
 begin if sb<=a[i]<=sg
 then
 s3:=s3+1;
 end;

можно сделать и как предыдущие,но все равно не получается именно этот отрываок
PM MAIL   Вверх
~FoX~
Дата 5.11.2010, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 5
Всего: 68



Fantik1990, for i :=
Блин, кароче на:
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  a:array[1..n] of real;
  b:array[1..n] of real;
  c:array[1..n] of real;
  i:integer;
  s1,s2,sb,sg,ai:real;
begin
 //------------------------------------------------------------
 for i:=1 to n do
   a[i]:=strtofloat(memo1.lines[i-1]);  //ввод данных в массив
   b[i]:=strtofloat(memo2.lines[i-1]);
   c[i]:=strtofloat(memo3.lines[i-1]);
 //------------------------------------------------------------
  a[i]:=random(30); //генератор случайных чисел
  b[i]:=random(30);
  c[i]:=random(30);
 //-------------------------среднее ариф b
 s1:=0;
 for i:=1 to n do
 begin if i=1 then
 b[i]:=1 else
 b[i]:=(i-1)*i;
 s1:=s1+b[i];
 sb:=s1/n;
 end;
 //-------------------------среднее геометрич. c
 s2:=0;
 for i:=1 to n do
 begin if i=1 then
 c[i]:=1 else
 c[i]:=(i-1)*i;
 s2:=s2*c[i];
 sg:=Power(s2,1/n);
 end;
 //--------------------кол-во а
 a[i]:=0;
 for i:=1 to n do begin
 if (sb<=a[i]) and (a[i]<=sg) then
 a[i]:=a[i]+1;
 end;
end;



Хотя имхо, код реально странноватый )))

Это сообщение отредактировал(а) ~FoX~ - 5.11.2010, 15:49


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
superVad
Дата 5.11.2010, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



~FoX~,

не

Код

for i:=1 to n do
   a[i]:=strtofloat(memo1.lines[i-1]);  //ввод данных в массив
   b[i]:=strtofloat(memo2.lines[i-1]);
   c[i]:=strtofloat(memo3.lines[i-1]);


а

Код

for i:=1 to n do
  a[i]:=strtofloat(memo1.lines[i-1]);  //ввод данных в массив
b[i]:=strtofloat(memo2.lines[i-1]);
c[i]:=strtofloat(memo3.lines[i-1]);


Это я к тому, что что то явно не так.


Это сообщение отредактировал(а) superVad - 5.11.2010, 16:03
PM MAIL   Вверх
Fantik1990
Дата 5.11.2010, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 5.11.2010

Репутация: нет
Всего: нет



Блин.Программа до запуска ни на что не жалуется,но как запустишь толи виснет толи не хочет делать все что прописано.может кто посмотрит,запустит ее у себя,посмотрит?((((((((((((((

Добавлено через 4 минуты и 19 секунд
~Fox~ то что ты прописал ошибки,они все исправились....но сама прога когда запускаешь не подает признаков жизни

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  delphi.rar 3,56 Kb
PM MAIL   Вверх
~FoX~
Дата 5.11.2010, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 5
Всего: 68



Fantik1990, Судя по всему ты просто скопипастил код, а событие на кнопку не объявил....В дизайн тайме тыкни два раза на батон... 
И объясни мне логику вот этого куска кода
Код

   a[i]:=strtofloat(memo1.lines[i-1]);  //ввод данных в массив
   b[i]:=strtofloat(memo2.lines[i-1]);
   c[i]:=strtofloat(memo3.lines[i-1]);
 //------------------------------------------------------------
  a[i]:=random(30); //генератор случайных чисел
  b[i]:=random(30);
  c[i]:=random(30);

Зачем введенные с мемо данные заменять рандомными? или на оборот ))))

Это сообщение отредактировал(а) ~FoX~ - 5.11.2010, 17:39

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  delphi.rar 6,31 Kb


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Fantik1990
Дата 5.11.2010, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 5.11.2010

Репутация: нет
Всего: нет



если числа не ввидет пользователь но задействуется генератор.так нельзя?

Добавлено через 10 минут и 6 секунд
random я убрал.Это реально бред.не подумал.
а как ты задал значения в memo стандартом?когда загружаешь там уже проставлены значения.я вот искал,искал,не смог найти где их прописать по умолчанию можно.

Добавлено через 14 минут и 47 секунд
при изменении значений в memo результаты те же, ведь не должно быть так наверное.
PM MAIL   Вверх
~FoX~
Дата 5.11.2010, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 5
Всего: 68



 smile  smile  smile  Свойство Items у  Мемо


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Fantik1990
Дата 5.11.2010, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 5.11.2010

Репутация: нет
Всего: нет



а почему когда значения меняешь,результаты те же?

PM MAIL   Вверх
superVad
Дата 5.11.2010, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



Fantik1990, разбей задачу на простые подзадачи и решай их. А то какая то ерунда получается.
В Memo смотри свойство Lines, это в самом коде видно кстати.

Ладно толстый намек еще:

вместо:

Код

for i:=1 to n do
   a[i]:=strtofloat(memo1.lines[i-1]);  //ввод данных в массив
   b[i]:=strtofloat(memo2.lines[i-1]);
   c[i]:=strtofloat(memo3.lines[i-1]);


наверное надо:

Код

for i:=1 to n do
begin
  a[i]:=strtofloat(memo1.lines[i-1]);  //ввод данных в массив
  b[i]:=strtofloat(memo2.lines[i-1]);
  c[i]:=strtofloat(memo3.lines[i-1]);
end;


Это сообщение отредактировал(а) superVad - 5.11.2010, 18:47
PM MAIL   Вверх
~FoX~
Дата 5.11.2010, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 5
Всего: 68



Цитата(Fantik1990 @  5.11.2010,  19:27 Найти цитируемый пост)
а почему когда значения меняешь,результаты те же?

Потому что твои расчеты средних сначала заполняют УЖЕ ЗАПОЛНЕННЫЙ массив, а потом производят действия ))))) smile 
Например
Код

 for i:=1 to n do begin 
 if i=1 then b[i]:=1  //Вот это всё нафиг убрать надо
 else b[i]:=(i-1)*i;  //Вот это всё нафиг убрать надо
 s1:=s1+b[i];
 sb:=s1/n;
 end;

Соответственно и с геометрической прогрессией тоже самое 

Может ты просто опишешь задачу?  smile 

Это сообщение отредактировал(а) ~FoX~ - 5.11.2010, 19:16


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Fantik1990
Дата 5.11.2010, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 5.11.2010

Репутация: нет
Всего: нет



Разработать алгоритм и программу решения задачи обработки одномерного массива (массивов). Количество элементов массива (массивов) является входным параметром и вводится в программе. При работе программы исходные массивы  не должны быть изменены.
Программа должна предлагать пользователю различные варианты задания значений элементов исходного массива (массивов):
1) Элементы исходного массива (массивов) вводятся пользователем.
2) Элементы исходного массива (массивов) вычисляются случайно.
3) Элементы исходного массива (массивов) задаются как предусмотренный в программе набор констант.
Программа должна быть представлена в виде консольного приложения и приложения Windows. 

Найти количество элементов массива a=(a1, a2,…,an), значения которых лежат между средним арифметическим элементов массива 
(b=b1, b2,…,bn) и средним геометрическим элементов массива c=(c1, c2,…,cn).

вот вся задача.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0837 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.