![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Engl |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Женя Репутация: ![]() ![]() ![]() |
Здравствуйте,преподаватель заставил доделать 3 задачи,то есть заменить циклы for на while,у меня с этим туго получается..
Вот коды задачек: 1)Дана матрица и массив,нужно удалить эл-ты тех столбцов,которые присутствуют в массиве и вычислить сумму оставшихся столбцов program abc; В этой задаче нужно заменить на while в этом месте
Вот,что я попытался сделать:
2) Дана матрица и массив,нужно сортировать методом пузырька по убыванию тех строк,которые присутствуют в массиве
В этой задаче нужно заменить на while в этом месте
Вот,что я попытался сделать:
3)Дана матрица и массив,нужно сортировать по убыванию методом установки эл-ты тех столбцов,которые присутствуют в массиве program abc; В этой задаче нужно заменить на while в этом месте for j:=1 to M do Сообщение отредактировано: Engl - 15.01.2010 21:43 |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
1)Дана ... Во-первых, при цитировании первого куска нельзя забывать заевршающий end. Во-вторых, там ДВА вложенных цикла for, поэтому должно быть и два цикла while. В каждом свое условие, объединять их нельзя, поскольку приращение должно быть отдельное. Иначе гоаоря, цикл по i проходит много раз, при каждом значении p. Вот, смотри:В этой задаче нужно заменить на while в этом месте
Вот,что я попытался сделать:
Кроме прочего, я заменил два if на один if .. else. Сообщение отредактировано: Lapp - 17.01.2010 10:58 -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Engl |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Женя Репутация: ![]() ![]() ![]() |
Спасибо,к другим задачам можно увидеть правильный цикл
|
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Во-первых, небольшое исправление.. Сейчас заметил: в том моем куске нужно знаки "<" заменить на "<=" (я сейчас подредактирую тот мессадж. Ну, и поскольку я там ошибся, так уж и быть, напишу про второй номер..
2) Дана ... В этой задаче нужно заменить на while в этом месте for i:=1 to K do Вот,что я попытался сделать: i:=1 Зачем тут второй begin? И почему приращение inc(i) вылезло за пределы блока? И опять неравенство в условии нужно нестрогое. Вот так: i:=1; Все, дальше попробуй из этих примеров сделать выводы и напиши остальное сам. Или хотя бы попытайся. Результат можешь показать, проверим. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Engl |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Женя Репутация: ![]() ![]() ![]() |
Первая задача не правильно работает ><
Для третье вот мой код: for j:=1 to M do |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата Первая задача не правильно работает >< А не надо использовать ГЛОБАЛЬНУЮ переменную в качестве счетчика цикла. У тебя и в основной программе и в подпрограмме цикл по i (причем это именно одна и та же переменная, физически она одна, второй просто нет!!!), вот и получается, что после возврата из подпрограммы, значение i совсем не то, что было перед заходом в нее... Вот тут, я имею в виду:Цитата p:=1; Читаем Как не надо писать программы (пункт 3). Ничего не напоминает? |
Engl |
![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Женя Репутация: ![]() ![]() ![]() |
Допустим мы берем новую переменную для счетчика "z",и описываем ее в начале и в одной из процедур
И заменяем ее вместо "I" p:=1; Так? Сообщение отредактировано: Engl - 17.01.2010 21:02 |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Зачем ты вводишь ЕЩЕ ОДНУ глобальную переменную? Вот так не проще будет:
Procedure summa(p:integer);? |
Engl |
![]()
Сообщение
#9
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Женя Репутация: ![]() ![]() ![]() |
Теперь понял,но все равно не правильно вычисляет
|
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 11:39 |