|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.03.2011, 13:05 | #1 |
Пользователь
Регистрация: 14.12.2010
Сообщений: 50
|
Процедура вствки элемента в динамический массив
Друзья , нужна помощь. Я создал процедуру создания динмаического массива CreateMas. Она нормально работает. Теперь нужно создать процедуру вставки элемента в динамический массив. А вот с этим проблемы (. Спасибо тем, кто поможет. Привожу весь код:
Код:
Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 24.03.2011 в 13:27. |
24.03.2011, 13:39 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
1) крайне не рекомендую смешивать формальные параметры и глобальные!
(например, в CreateMas вы передаёте Memo1 - но зато во всю исполльзуете сам массив A и переменную N 2) у Вас в процедуре Ainsert N не изменяется! попробуйте так: Код:
И ещё, совет на будущее, описывайте все переменные ПОСЛЕ описания процедур, перед главным begin программы. Тогда при попытке использовать переменную как глобальную - компилятор выдаст ошибку и Вы сможете описать передачу нужной переменной в качестве параметра. И второе, в этих же целях рекомендую по разному называть формальные параметры и фактические. Ну, например, не procedure Ainsert (var A:Areal ... а procedure Ainsert (var AMas:Areal это опять таки позволит избежать невольного использования глобальных переменных. |
24.03.2011, 13:54 | #3 |
Форумчанин
Регистрация: 18.10.2009
Сообщений: 185
|
Ну особенного криминала не вижу в вашем коде. Есть конечно стилистически не очень хорошие моменты. Но в целом должно всё работать. В чём конкретно у вас проблемма?
Единственное замечание при вывод в Memo2 вы теряете последний элемент. Нужно написать либо Код:
Код:
Ну а вот в целом немного стиль подправил Код:
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает." |
24.03.2011, 14:32 | #4 |
Пользователь
Регистрация: 14.12.2010
Сообщений: 50
|
А почему передача N неправильно и некрасиво ?
|
24.03.2011, 14:42 | #5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Вот, ознакомтесь внимательно с примером кода, который привёл val_nnm Там этой проблемы с использованием глобальных переменных нет! единственное замечание к его коду - это надо убрать вывод в Memo1 в процедуре CreateMas Последний раз редактировалось Serge_Bliznykov; 24.03.2011 в 14:53. |
|
24.03.2011, 14:50 | #6 |
Пользователь
Регистрация: 14.12.2010
Сообщений: 50
|
С этим понятно. А зачем тогда в CreateMas Memo1.Lines.Add(IntToStr(A[i])); ? . Если по сути тоже самое в ShowMas ?
|
24.03.2011, 14:55 | #7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
24.03.2011, 14:59 | #8 |
Пользователь
Регистрация: 14.12.2010
Сообщений: 50
|
Но не вставляется . При n=5, R=23, Ind=4.
Memo1 1 2 3 4 5 Это правильно. Но Memo2 1 1 1 1 23 1 Совсем не то |
24.03.2011, 15:02 | #9 |
Пользователь
Регистрация: 14.12.2010
Сообщений: 50
|
Ложная тревога ). Это я не то написал. Извините. Всем спасибо
|
24.03.2011, 15:13 | #10 |
Пользователь
Регистрация: 14.12.2010
Сообщений: 50
|
И крайний вопрос ). Индекс вставки -это куда в Memo2 поставить новый элемент ? При n=5, r=44,ind=1. Как я понимаю на первое место поставить 44 . Так ?. А он
Memo1 1 2 3 4 5 Memo2 1 44 2 3 4 5 То есть на второе место . Но ведь это неправильно ? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Динамический массив - или всё таки не динамический? | vedro-compota | Общие вопросы C/C++ | 30 | 10.12.2010 23:22 |
динамический стек. удаление элемента | alex(21) | Помощь студентам | 2 | 01.11.2010 20:22 |
Процедура нахождения мах элемента. | Другая | Помощь студентам | 5 | 11.05.2010 20:03 |
Динамический массив | Zhanna5006 | Помощь студентам | 7 | 10.01.2010 14:09 |