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