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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.11.2012, 16:57
maxmaslo maxmaslo вне форума
Прохожий
 
Регистрация: 25.09.2012
Сообщения: 36
Репутация: 10
По умолчанию найти max и min элементы массива и поменять их местами

вывод обязательно в listbox. ввод из memo. ошибка после нажатия на button.
Код:
procedure TForm1.Button1Click(Sender: TObject);
const N=10;
var m:array [1..N] of real;
j,p,i,er:integer;
max,min:real;
st,sa:string;
begin
for i:=1 to N do
begin
sa:=memo1.lines[i-1];
val(sa,m[i],er);
end;
max:=m[1];
min:=m[1];
for i:=2 to N do
begin
if m[i]>max then
begin
max:=m[i];
j:=i;
end;
if m[i]<min then
begin
min:=m[i];
p:=i;
end;
end;
end;
m[j]:=min;
m[p]:=max;
str(m[i]:2:1,st);
listbox1.Items.Add(st);
end.
Ответить с цитированием
  #2  
Старый 20.11.2012, 17:06
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от maxmaslo
вывод обязательно в listbox. ввод из memo. ошибка после нажатия на button.
Какая ошибка?
Ответить с цитированием
  #3  
Старый 20.11.2012, 17:07
maxmaslo maxmaslo вне форума
Прохожий
 
Регистрация: 25.09.2012
Сообщения: 36
Репутация: 10
По умолчанию

выводит в listbox 0
Ответить с цитированием
  #4  
Старый 20.11.2012, 17:14
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от maxmaslo
выводит в listbox 0
Тебе нужно вывести в ListBox минимальное и максимальное значение?
Вот их и выводи, а не m[i]:
Код:
  ListBox1.Items.Add(FloatToStr(min));
  ListBox1.Items.Add(FloatToStr(max));
Ответить с цитированием
  #5  
Старый 20.11.2012, 17:17
maxmaslo maxmaslo вне форума
Прохожий
 
Регистрация: 25.09.2012
Сообщения: 36
Репутация: 10
По умолчанию

вывести нужно массив, не дописал, извини
Ответить с цитированием
  #6  
Старый 20.11.2012, 17:25
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от maxmaslo
вывести нужно массив, не дописал, извини
Сначала в цикле ищешь индексы максимального и минимального элемента (это у тебя есть).
Потом меняешь местами эти элементы массива (это у тебя тоже есть).
А потом нужно ещё один цикл организовать для вывода этого массива в ListBox1:
Код:
  for i := 1 to N do
  begin
    ListBox1.Items.Add(FloatToStr(m[i]));
  end;
Ответить с цитированием
  #7  
Старый 20.11.2012, 17:37
maxmaslo maxmaslo вне форума
Прохожий
 
Регистрация: 25.09.2012
Сообщения: 36
Репутация: 10
По умолчанию


вот что получается(
Ответить с цитированием
  #8  
Старый 20.11.2012, 17:42
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от maxmaslo
вот что получается(
Когда такое получается?
В Memo1 заполнено 10 строк с числами?
Ответить с цитированием
  #9  
Старый 20.11.2012, 21:18
maxmaslo maxmaslo вне форума
Прохожий
 
Регистрация: 25.09.2012
Сообщения: 36
Репутация: 10
По умолчанию

да, всё заполнено
Ответить с цитированием
  #10  
Старый 20.11.2012, 21:24
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от maxmaslo
да, всё заполнено
Такая ошибка стала появляться только после добавления последнего цикла? А без этого цикла появляется эта ошибка?
Ответить с цитированием
  #11  
Старый 20.11.2012, 21:41
maxmaslo maxmaslo вне форума
Прохожий
 
Регистрация: 25.09.2012
Сообщения: 36
Репутация: 10
По умолчанию

тогда просто нули в листбокс выводятся
Ответить с цитированием
  #12  
Старый 20.11.2012, 21:45
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от maxmaslo
тогда просто нули в листбокс выводятся
Приведи полный код процедуры "TForm1.Button1Click".
Ответить с цитированием
  #13  
Старый 20.11.2012, 21:52
maxmaslo maxmaslo вне форума
Прохожий
 
Регистрация: 25.09.2012
Сообщения: 36
Репутация: 10
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
const N=10;
var m:array [1..N] of real;
j,p,i,er:integer;
max,min:real;
st,sa:string;
begin
for i:=1 to N do
begin
sa:=memo1.lines[i-1];
val(sa,m[i],er);
end;
max:=m[1];
min:=m[1];
for i:=2 to N do
begin
if m[i]>max then
begin
max:=m[i];
j:=i;
end;
if m[i]<min then
begin
min:=m[i];
p:=i;
end;
end;
m[j]:=min;
m[p]:=max;

begin
listbox1.Items.Add(floattostr(m[i]));
end;
end;

Последний раз редактировалось Admin, 07.08.2016 в 22:50.
Ответить с цитированием
  #14  
Старый 20.11.2012, 21:53
maxmaslo maxmaslo вне форума
Прохожий
 
Регистрация: 25.09.2012
Сообщения: 36
Репутация: 10
По умолчанию

ниже end есть тоже
Ответить с цитированием
  #15  
Старый 20.11.2012, 22:02
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от maxmaslo
ниже end есть тоже
Ну так осталось добавить перед последним begin заголовок цикла "for i := 1 to N do" и всё прекрасно работает.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter