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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2019, 20:46   #1
Ислам99
Новичок
Джуниор
 
Регистрация: 15.04.2019
Сообщений: 1
По умолчанию list index out of bounds (0)

Не понимаю где у меня ошибка, по делфи новичок

Код:
procedure TForm1.Button1Click(Sender: TObject);
const
SIZE=5; //Количество элементов массива.
var
i:integer; //Индекс элементов массива.
max:integer; //Текущее значение максимума.
min:integer; //Текущее значение минимума.
k:integer; //Счетчик чисел которые меньше предыдущих.
j:integer; //Счетчик чисел которые больше предыдущих.
Sr_arif:double; //Среднее арифметическое.
n:integer; //количество строк введенных в поле Memo.
a:array[1..SIZE]of integer;//массив.

begin

n:=Memo1.Lines.Count; //подсчет кол-ва строк введенных в поле Memo
//Если количество строк, введенных пользователем меньше 5 то
//выведем на экран сообщение об ошибке и выйдем из процедуры.
if n<SIZE then
begin
ShowMessage('Исходные данные не введены!');
Exit;
//выход из процедуры обработки события
end;
//Если количество введенных строк превышает размер массива то
//выведем сообщение об ошибке. Далее будем обрабатывать только
//первые 5 записей.
if n>SIZE then
begin
ShowMessage('Количество строк превышает размер массива.');
n:=SIZE;//будем вводить только первые SIZE строк
end;

//Перевод масcива строк в массив целых чисел.
for i:=1 to n do
a[i]:=StrToInt(Form1.Memo1.Lines[i-1]);

max:=a[1]; //Присвоим значение большего числа переменной max.
min:=a[1];//Присвоим значение меньшего числа переменной min.
j:=0;//Значение счетчика в ноль.
k:=0;//Значение счетчика в ноль.
Sr_arif:=0;
for i:=1 to SIZE do //Перебираем элементы массива.
begin
if a[i]>max then //Если текущий элемент больше max,
begin
max:=a[i]; //то присвоить его значение max
inc(j); //и увеличить значение счетчика на 1.
end;
if a[i]<min then //Если текущий элемент меньше min,
begin
min:=a[i]; //то присвоить его значение min,
inc(k); //увеличить значение счетчика на 1
Sr_arif:=Sr_arif+a[i]; //и прибавить его к текущему значению суммы.
end;
end;
if k<>0 then Sr_arif:=Sr_arif/k; //Вычисление среднего арифметического.

//Вывод количества чисел которые больше предыдущих.
ListBox1.Items[0]:=IntToStr(j);
//Вывод среднего арифметического чисел которые меньше предыдущих.
ListBox1.Items[1]:=FloatToStr(Sr_arif);//

end;

_____
Код программы нужно выделять (форматировать) тегами [CODE] [/CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 15.04.2019 в 22:38.
Ислам99 вне форума Ответить с цитированием
Старый 15.04.2019, 22:44   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Ислам99 Посмотреть сообщение
Код:
//Вывод количества чисел которые больше предыдущих.
ListBox1.Items[0]:=IntToStr(j);
//Вывод среднего арифметического чисел которые меньше предыдущих.
ListBox1.Items[1]:=FloatToStr(Sr_arif);//
Так нельзя работать с элементами списка.

Почитайте как работать с TListBox. Например, первая ссылка по поиску - ТЫЦ
или на офф.сайте - ТЫЦ

замените эти строчки на такие, например:

Код:
   //Вывод количества чисел которые больше предыдущих.
   ListBox1.Items.Clear;
   ListBox1.Items.Add(IntToStr(j));
   //Вывод среднего арифметического чисел которые меньше предыдущих.
   ListBox1.Items.Add(FloatToStr(Sr_arif));
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.04.2019, 03:03   #3
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Лично я не понимаю зачем вообще нужно было выводить результаты в TListBox?
northener вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
list index out of bounds Bakdaulet Помощь студентам 9 22.06.2016 11:42
list index out of bounds (9) lord24 БД в Delphi 4 03.11.2015 09:36
List index of bounds(7) priamm Общие вопросы Delphi 7 14.05.2010 15:00
List index out of bounds (91) KoBRaAndrey Общие вопросы Delphi 6 25.12.2009 15:29