|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
12.06.2012, 19:09 | #1 (permalink) |
Member
Регистрация: 06.02.2012
Сообщений: 46
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Задача об удалении элемента массива
нужна консультация! я правильно мыслю: я должна вводить i, n, k. причем k-число, которое задуманно мной, а значит любое. кроме того при удалении элемента у меня и штдекс будет изменятся, т.е было n[5]:=n[6]. значит в цикле писать нужно будет for i:=1 to n-1 do? |
12.06.2012, 19:09 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Рекомендую вам внимательно пролистать эти топики, они очень похожи на вашу тему Паскаль. Помогите написать программу поиска элемента, пожалуйста Неправильно считает сумму после минимального элемента Задача об особых элементах массива Программа определения номера первого отрицательного элемента. Паскаль Нужна помощь в удалении порно-баннера... перезагрузка при "безопасном удалении оборудования" |
12.06.2012, 19:25 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Запросто!
Цитата:
|
|
12.06.2012, 19:39 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Да без проблем:
Код:
Const Nmax=100; var a:array [1..Nmax] of Real; i,j,n,k: integer; b:boolean; begin Randomize; Write('n = '); Readln(n); for i:=1 to n do begin a[i]:=Random*10; write(a[i]:8:2); end; writeln; writeln; Write('k (1..9) = '); Readln(k); writeln; b:=false; i:=0; Repeat i:=i+1; If a[i]<k then b:=true; Until (i=n) or b; If b then begin for j:=i to n-1 do a[j]:=a[j+1]; n:=n-1; for i:=1 to n do write(a[i]:8:2); end else Writeln('No such elements!'); Readln End. |
12.06.2012, 19:42 | #5 (permalink) |
Member
Регистрация: 06.02.2012
Сообщений: 46
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
спасибо большое)
а вот если простым для меня языком могу я условия так написать: if a[i] <k (при условии, что kввожу сама)then a[i]:= a[i+1]или я уже не в ту степь пошла? |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
12.06.2012, 20:18 | #6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Да, не совсем в ту. Так будет передвинут только один элемент, следующий за найденным, точнее, его значение будет скопировано в позицию найденного элемента, все же остальные останутся на своих местах.
|
12.06.2012, 20:56 | #7 (permalink) |
Member
Регистрация: 06.02.2012
Сообщений: 46
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
так-то по вашему примеру я поняла суть решения. но мне нужен самый простой алгоритм. объясните одну вещь j-это значение, которое приобретает i. т.е наши так называемые ячейки смещаются на 1. так?
|
13.06.2012, 10:11 | #9 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Теперь насчет i и j. Поясню на примере. Пусть у нас есть массив из 20 элементов. Пусть требуемому условию отвечает элемент №5. В этом случае, когда цикл с постусловием (Repeat..Until) дойдет до значения i=5, флажок b примет значение true, перебор по i прекратится и цикл прервется. Далее запустится цикл по j от 5 до 19, в котором каждому a[j] будет присвоено значение следующего элемента массива. Таким образом, как и требуется, исходный 5-й элемент будет исключен. Так он и применен... |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|