![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
warning777 |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
возможно ли этот цикл запустить в обратном порядке,то есть
for i:=n to 1 do ? интересуюсь,потому что не знаю как найти первый отрицательный элемент в массиве... если использовать for i:=1 to n do begin if a[i]<0 fhen n1:=i end. он найдет первое и продолжит искать...как остановить поиск после нахождения первого отрицательного ? |
![]() ![]() |
kvadrat |
![]()
Сообщение
#2
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 81 Пол: Мужской Репутация: ![]() ![]() ![]() |
for i:=n downto 1 do
Вроде бы она делает то что ты хочеш |
sintanial |
![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 70 Пол: Мужской Реальное имя: Мартын Репутация: ![]() ![]() ![]() |
Цитата он найдет первое и продолжит искать...как остановить поиск после нахождения первого отрицательного ? Ну нас в универе заставляли не пользоваться этой функцией однако мне она очень нравится. Функция break оканчивает цикл =) Да и вообще тута много вариаций как остановить цикл после того как ты нашел что тебе надо =) Ну не знаю можно ли так или нет, но мне кажется что можно for i:=1 to n do begin if a[i]<0 fhen begin n1:=i n:=i-1; <- вроде бы так тоже остановится =) end end. Сообщение отредактировано: sintanial - 22.05.2008 21:59 |
warning777 |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
а если так попробовать ? или масло маслянjе ?
l=0 for i:= to n do begin if a[i]<0 theh begin l:=l+1 if l=1 then n1:=i end; end. |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата Вроде бы она делает то что ты хочеш Только зачем проходить по всем элементам массива, если можно просто остановиться вовремя?i := 1; P.S. Цитата Функция exit оканчивает цикл =) Паскалевский Exit немедленно оканчивает текущую подпрограмму (если вызван в основной программе - то заканчивает программу) вообще-то... Цикл заканчивает Break...Сообщение отредактировано: volvo - 22.05.2008 21:42 |
warning777 |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
класс !!! спасибо огромное
![]() значит чтобы найти первый отрицаельный элемент массива и присвоить ему номер n1 запишу следующее i := 1; while (i <= n) and (a[i] >= 0) do i := i + 1; n1:=i что бы найти последнее равное нулю и присвоить ему номер n2 сделаю так for i:=1 to n do begin if a[i]=0 then n2:=i end все верно ? спасибо огромное за помощь |
Айра |
![]()
Сообщение
#7
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 731 Пол: Женский Репутация: ![]() ![]() ![]() |
Цитата что бы найти последнее равное нулю и присвоить ему номер n2 сделаю так ты здесь тоже можешь while'ом обойтись, только у тебя i будет изначально равно n, а потом будет уменьшаться.. Добавлено через 7 мин. и еще i := 1; Сообщение отредактировано: Айра - 22.05.2008 21:57 |
warning777 |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
у меня еще один вопрос.
если мне дан массив,записанный в файл, как мне выдрать из него массив,находящийся, допустим, между третим и десятым элементом в основном массиве k=0 for i:=3 to 10 do begin k:=k+1; b[k]:=a[i]; end так будет работать ? я просто пока начинающий в паскале,прошу изивинить за такие вопросы Сообщение отредактировано: warning777 - 22.05.2008 21:57 |
sintanial |
![]()
Сообщение
#9
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 70 Пол: Мужской Реальное имя: Мартын Репутация: ![]() ![]() ![]() |
Цитата Паскалевский Exit немедленно оканчивает текущую подпрограмму (если вызван в основной программе - то заканчивает программу) вообще-то... Цикл заканчивает Break... Извиняюсь , перепутал |
warning777 |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
если мне дан массив,записанный в файл, как мне выдрать из него массив,находящийся, допустим, между третим и десятым элементом в основном массиве
k=0 for i:=3 to 10 do begin k:=k+1; b[k]:=a[i]; end так будет работать ? |
sintanial |
![]()
Сообщение
#11
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 70 Пол: Мужской Реальное имя: Мартын Репутация: ![]() ![]() ![]() |
Ммм смотря в какой файл записан, я так думаю =). В типизированном наверно так нельзя( но это я так только предполагаю !!! )
|
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 2:29 |