Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2008, 21:36   #1
d3[Z.oRg]
 
Регистрация: 20.04.2008
Сообщений: 8
По умолчанию одномерный массив в delphi

Дан массив A(n). Изменить порядок следования элементов на обратный между первым и последним отрицательным. Учесть возможность того, что отрицательных элементов в массиве может не быть.
d3[Z.oRg] вне форума Ответить с цитированием
Старый 20.04.2008, 21:41   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Где ваши наработки? Что не получается?
Приводите ваш код, будем помогать доводить его до ума...
mihali4 вне форума Ответить с цитированием
Старый 20.04.2008, 22:09   #3
d3[Z.oRg]
 
Регистрация: 20.04.2008
Сообщений: 8
По умолчанию

впринципе вся сложность в опеделении первого и последнего отрицательного элементов.
вот поискал в инете:
i:=1; Flag:=FALSE;
While (i<=N) and not Flag do
If A[i]<0
then begin
Flag:=TRUE; k:=i
end
else i:=i+1;
это более менее похоже на определение первого отрицательного.
сам вывод между ними в обратном порядке похоже просто через downto осуществляется
d3[Z.oRg] вне форума Ответить с цитированием
Старый 20.04.2008, 22:47   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
вот поискал в инете
Неужели задача так сложна для понимания?
Как ищется первый отрицательный элемент на бумажке? Начинаем просмотр с первого элемента и как только натыкаемся на отрицательный - записываем его или его номер.
Теперь продолжаем просмотр до самого конца. Автоматически у нас в нашей переменной, где мы записываем позиции отрицательных элементов, окажется теперь позиция последнего отрицательного элемента. Верно?
Теперь о коде.
Можно написать так:
Код:
var perv,posl,i:integer;
begin
//обнуляем переменные для первого и последнего элемента
perv:=-1;
//организуем цикл по всем элементам массива А
for i:=0 to Length(A) do
begin
if A[i]<0 then
begin
//если первый элемент еще не был найден (perv=-1), то присваиваем ему позицию
if perv=-1 then
begin
perv:=i;
//на случай, если всего один отрицательный элемент, то
posl:=perv;
end else
//иначе позицию присваиваем переменной posl последнего отрицательного эл-та 
posl:=i;
end;
end;
В результате в PERV - позиция первого найденного отрицательного элемента, а в POSL - последнего.
З.Ы. Немного подправил, ведь речь идет о массиве, а не о строке...
Цитата:
с пониманием как раз таки все вроде хорошо, только реализация хромает, опыта-то маловато
В этом (приобретении опыта) всегда и с удовольствием поможем...

Последний раз редактировалось mihali4; 21.04.2008 в 00:17.
mihali4 вне форума Ответить с цитированием
Старый 20.04.2008, 23:41   #5
d3[Z.oRg]
 
Регистрация: 20.04.2008
Сообщений: 8
По умолчанию

да нет, с пониманием как раз таки все вроде хорошо, только реализация хромает, опыта-то маловато
Цитата:
В результате в POSL - позиция первого найденного отрицательного элемента, а в POSL - последнего.
ну это как я понимаю опечатка просто, вместо первого POSL должен быть PERV. Вот такой вот каламбур.
В любом случае огромное спасибо за оказанную помощь !
Работает
d3[Z.oRg] вне форума Ответить с цитированием
Старый 18.06.2011, 14:35   #6
Zevs Olimpic
Новичок
Джуниор
 
Регистрация: 28.06.2009
Сообщений: 2
По умолчанию

Немогу разобраться с одномерными масивами...
1)Подсчитать сумму всех элементов в одномерном массиве длиной N.
2)Каждый элемент массива размерностью N умножить на его порядковый номер в массиве.
3)Задача. В одномерном массиве размера N определить индексы элементов кратных 4 и 6.
4)Задача. В одномерном массиве размера N определить среднее арифметическое элементов, принадлежащих промежутку [-3; 5].
5)Заменить все элементы одномерного массива размерностью N по формуле аи = аи + sin aи.
6)Получить сумму тех членов одномерного массива размерностью N, удовлетворяющих условию аи> i3.
7)В одномерном массиве размерностью N все положительные элементы умножить на 10, а все отрицательные элементы заменить на 0.
8)Задача. В одномерном массиве размера N определить среднее геометрическое четных элементов.
9)Задача. В одномерном массиве размера N определить среднее арифметическое положительных элементов.
10)В одномерном массиве размерностью N найти индекс первого отрицательного элемента
11)В одномерном массиве размерностью N найти индекс первого положительного элемента
12)В одномерном массиве размерностью N подсчитать количество положительных элементов, отрицательных элементов и нулей
ИЛИ ОБЯСНИТЕ КАК ИХ ДЕЛАТЬ (ПРИНЦИП)
Зарание спасибо

Последний раз редактировалось Zevs Olimpic; 18.06.2011 в 14:38.
Zevs Olimpic вне форума Ответить с цитированием
Старый 18.06.2011, 14:38   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Зачем ты пишешь сообщения в какие-то древние темы 2008г?)



А принцип есть в учебнике или гугле)
Чтобы "пройти" весь массив обычно используется цикл for (если массив двухмерный и т.д., то вложенный цикл т.е. один цикл в другом). Во время цикла что-то делаем или не делаем с каждым элементом, сравниваем их и сохраняем или выводим куда нужно, то что ищем: индексы, значения и т.д..
Например, 3 как-то так можно:
Код:
for i:=1 to n do
   if (a[i] mod 4 = 0) and (a[i] mod 6 = 0) then
      writeln('Элемент массива а с индексом ', i, ' кратен 4 и 6');
Там, где надо закончить после нахождения первого подходящего элемента и т.д. (10, 11) можно использовать break для завершения цикла (тоже учебник или гугл).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 18.06.2011 в 14:45.
Alex11223 вне форума Ответить с цитированием
Старый 18.06.2011, 15:04   #8
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
Немогу разобраться с одномерными масивами...
стучи) контакты в подписи) помогу за денежку)
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
одномерный массив 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