|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.12.2007, 09:06 | #1 |
Пользователь
Регистрация: 19.11.2007
Сообщений: 36
|
#Delhpi Одномерный массив
Здравствуйте, уважаемые программисты. Помогите пожалуйста найти ошибку в программе и как ее можно исправить.
Задание: Дан массив целых чисел из n элементов, заполненный случайным образом числами из промежутка [-50,50]. Вставить значение минимального элемента массива после всех четных элементов. Код:
|
20.12.2007, 12:11 | #2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Первое, что бросилось в глаза:
1. for i:=1 to N do Индексация в неявно задаваемых массивах - с 0, а не с 1 - вылет за размерность. Соответственно - for i:=0 to N-1 do... И так - везде. Все глюки в программе связаны, в основном, с этим. 2. Странная какая-то конструкция: while (i=1)or(frac(A[i]/2)<>0)do begin A[i+1]:=A[i]; A[i]:=min.Y; i:=i-1; end; Вы о FOR...DOWNTO... не слыхали? |
20.12.2007, 13:00 | #3 | |||
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Цитата:
Цитата:
Цитата:
|
|||
20.12.2007, 13:23 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
20.12.2007, 14:10 | #5 |
Пользователь Подтвердите свой е-майл
Регистрация: 06.11.2007
Сообщений: 68
|
Код:
Последний раз редактировалось north; 20.12.2007 в 22:37. |
20.12.2007, 18:03 | #6 |
Пользователь
Регистрация: 19.11.2007
Сообщений: 36
|
Хм, прикольно, работает... Огромное спасибо тому человеку, который эту программу исправил!
|
20.12.2007, 18:14 | #7 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Выделять память для массива нужно разумно. У вас-то именно так и было сделано. А вот в предложенном - аж для тысячи элементов массива (при том, что в Edit может быть введено число, гораздо меньшее). Для этой простой задачи такая вольность в обращении с ресурсами конечно же, большой роли не сыграет. Главное - чтоб это не стало дурной привычкой. Последний раз редактировалось mihali4; 20.12.2007 в 22:45. |
|
20.12.2007, 22:36 | #8 |
Пользователь Подтвердите свой е-майл
Регистрация: 06.11.2007
Сообщений: 68
|
для массива из 1000 элементов типа integer нужно всего 2КБ памяти, поэтому нельзя сказать, что это так уж неразумно. В любом случае 1000 можно исправить на 20.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
одномерный массив | ldx | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 06.06.2008 17:45 |
VBA. Одномерный массив | ExMatiss | Microsoft Office Excel | 9 | 07.05.2008 05:57 |
одномерный массив | fatdog | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 23.02.2008 10:05 |
Массив Одномерный | flait111 | Помощь студентам | 3 | 15.12.2007 14:08 |
Одномерный массив | SkyDreamer | Помощь студентам | 1 | 01.12.2007 21:22 |