Что значит ppk3:=99?
i:=N;
ppk3:=99; repeat if (A[i]>0) and ((A[i] mod 3)=0) then ppk3:=A[i] else i:=i-1; until ppk3<>99; writeln('posledniy polo}|{itelniy element kpatniy 3' ppk3:4) Что значит ppk3:=99? Спасибо! |
Цитата:
Вообще программа (точнее, фрагмент) написана не так, чтобы очень. Точнее, очень не очень. Разберёмся. Как я понял, задача поставлена так. Есть массив из N целых элементов (положительных и отрицательных), причем в нём заведомо нет элемента со значением 99, и требуется найти последний положительный элемент, кратный 3. Прекрасно. Решается, судя по программе, это так. Вводится переменная ppk3, которой присваивается значение 99, и дальше, идя по массиву с конца в начало, мы ищем элемент, удовлетворяющий поставленным условиям (положительный и кратный 3). Найдя таковой, мы присваиваем его значение переменной ppk3, обрываем цикл и выводим найденное значение на экран. Но возникает вопрос: а если среди элементов массива не найдётся нужного? Тогда программа не сможет выйти из цикла, попытается присвоить индексу массива (i) нулевое или отрицательное значение, и возникнет ошибка выхода за диапазон индексов массива! Чтобы этого избежать, чуть усложним программу: Код:
i:=N; P.S. И модераторское замечание: не цепляйтесь к чужим темам, создавайте свои! |
Владимир Игоревич, при всём уважении..
Ну на кой ляд там именно этот оператор? Всё равно значение будет присвоено раньше первого использования этой переменной. |
Цитата:
|
Мы имеем огрызок от программы, не зная ничего об исходных условиях и задаче в целом. Мы не знаем диапазонов значений.
Что такое N? Что произойдёт в версии Владимира, если первым же элементом массива окажется 99? Если он окажется любым элементом? В используемом диалекте Паскаля нумерация элементов массива начинается с нуля или единицы? Если с нуля - один элемент не будет обработан. Да и интересный порядок обработки массива: с последнего ;) Особенно с учётом выводимого сообщения о последнем кратном элементе. |
Андрей, значит так, укладывайся на разделочную доску и приготовься: сейчас я из тебя отбивную делать буду. :D
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
7 13 6 8 9 5 и нужно найти последний элемент, кратный трём, т.е., в данном случае, это число 9. И вот тут рационально пойти с конца, пока не выполнится условие кратности. В данном случае 5 — нет, 9 — да. И на этом цикл завершается, задача решена. |
Цитата:
Цитата:
Цитата:
|
Часовой пояс GMT +4, время: 00:32. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.