0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 32
|
||||||
1 | ||||||
Запись record в массив из edit20.02.2017, 17:52. Показов 3680. Ответов 45
Метки нет (Все метки)
Всем привет, мне нужна помощь. Вообще есть задача: список людей стоящих в очереди на получение квартиры. В списке указаны порядковый номер, фамилия, имя, отчество и год занятия очереди. По указанному количеству квартир выдаваемых в год, упорядочить список и указать в каком порядке и в каком году люди получат квартиры.
Но до этого далеко. Есть код: реализован интерфейс, сохранение и загрузка текстового файла и бла-бла-бла.
использоваться строки RichEdit1.Lines.add('¹ ' + Edit5.Text + ' ' + Edit1.Text + ' ' + Edit2.Text + ' ' + Edit3.Text + ' ' + Edit4.Text + ' ' + Edit7.Text); Всё отлично работает. Но в таком случае вторую часть задачи(сортировку) не понимаю как сделать. Пожалуйста, наставьте на путь истинный.
0
|
20.02.2017, 17:52 | |
Ответы с готовыми решениями:
45
Как создать record внутри которого есть динамический массив с record-ами? Дан одномерный массив из N элементов, каждый из которых представляет собой запись вида Type ZAP=Record St: string [10]; Массив из данных типа "запись" (record) содержит сведения о выставленных на продажу автомобилях Запись в файл из полей Edit и проверка Edit на пустоту |
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 32
|
|
20.02.2017, 17:59 [ТС] | 2 |
Прикрепляю скрин, сверху - как выглядит интерфейс программы. Скину - код ошибки. В самом коде программы пытаюсь хотя-бы одно поле сделать рабочим, в моём случае - fname - имя. После вводе - сразу виснит и выдаёт ту самую ошибку.
0
|
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,252
|
|
20.02.2017, 19:42 | 3 |
Как вы думаете какое значение имеет переменная i при выполнении этой строки кода?
0
|
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 32
|
|
20.02.2017, 20:12 [ТС] | 4 |
Целочисленное, от 1 до 20, в зависимости от строки, куда записываются данные.
0
|
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,252
|
|
20.02.2017, 20:21 | 5 |
А откуда она возьмется "от 1 до 20, в зависимости от строки", если вы ей ни разу не присваиваете никакого значения?
0
|
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 32
|
|
20.02.2017, 21:14 [ТС] | 6 |
И как-же это пофиксить? Я пытался присваивать значение 0 и после вывода i=i+1;
и через цикл 0 to 19 do тоже не работает
0
|
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,252
|
||||||
20.02.2017, 21:30 | 7 | |||||
0
|
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 32
|
|
20.02.2017, 22:24 [ТС] | 8 |
Спасибо, заработала идеально! А нет идей как реализовать такую сортировку, как в условии? Например, в списке 5 человек, все встали в очередь в 2016 году. А за год раздают 3 квартиры. Надо вывести у первых трёх 2016. А у оставшихся двух 2016+1
0
|
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 32
|
|
22.02.2017, 11:45 [ТС] | 9 |
Господа, пожалуйста, хотя-бы идею подскажите, алгоритм, как реализовать такую сортировку, пожалуйста!
0
|
3586 / 2195 / 693
Регистрация: 29.05.2013
Сообщений: 9,375
|
|
22.02.2017, 19:07 | 10 |
2016+1 это в смысле 2017?
2016+1 - строка 2017 - число Надо иметь ввиду, что результат сортировки строк несколько отличаются от сортировки чисел.
0
|
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 32
|
|
22.02.2017, 20:04 [ТС] | 11 |
Мне надо сортировать числа, которые записаны в строки. В конце каждой записи, в строке пишется год от их и надо сравнивать.
0
|
30 / 24 / 22
Регистрация: 12.11.2011
Сообщений: 181
|
||||||
22.02.2017, 21:30 | 12 | |||||
Если уж делать по-нормальному, то тогда надо zapis-и надо хранить не в массиве, а с помощью TList-a. В таком случае вся сортировка будет сводится к вызову функции Sort с разными параметрами
Делать это так:
0
|
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 32
|
|
23.02.2017, 00:36 [ТС] | 13 |
Что-то не то это, я не совсем понимаю код, да и сама сортировка у меня не совсем обычная должна быть
0
|
30 / 24 / 22
Регистрация: 12.11.2011
Сообщений: 181
|
|
23.02.2017, 06:48 | 14 |
Я так понимаю что сортировку надо сделать тупо по номеру в очереди. А потом выводить по формуле год:=начальный_год+(номер_в_очереди div колво_квартир_в_год). Тогда сортировка выходит самая обычная по числу.
0
|
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 32
|
|
23.02.2017, 16:34 [ТС] | 15 |
Сначала должно сравнивать количество заявок на год с количеством квартир выдаваемых в год. Если заявок больше, то выбираются первые по порядковому номеру очереди, остальные переносят в следующий год, опять сравнение. И вывод ожидаемого года получения
0
|
30 / 24 / 22
Регистрация: 12.11.2011
Сообщений: 181
|
|
23.02.2017, 18:59 | 16 |
0
|
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 32
|
|
24.02.2017, 00:16 [ТС] | 17 |
0
|
30 / 24 / 22
Регистрация: 12.11.2011
Сообщений: 181
|
|
24.02.2017, 08:34 | 18 |
Прочти внимательно Запись record в массив из edit
Мухи отдельно, котлеты отдельно! Сначала сортировка (если она вообще нужна) по номеру в очереди , а потом вывод года по указанной формуле
0
|
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 32
|
|
24.02.2017, 14:29 [ТС] | 19 |
Грубо говоря, они занесены в список уже отсортированными по порядковому номеру по возрастанию. А вот год записи может отличаться.
0
|
30 / 24 / 22
Регистрация: 12.11.2011
Сообщений: 181
|
||||||
24.02.2017, 19:37 | 20 | |||||
В таком случае сортировка вообще не нужна. Нужно просто вывести. Например так
0
|
24.02.2017, 19:37 | |
24.02.2017, 19:37 | |
Помогаю со студенческими работами здесь
20
Запись Record? Запись record в dat файл Запись в файл Record с TStringList Записать в файл запись типа record Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |