Здравствуйте, дали задание, необходимо проверить правильно ли написан код.
Задание:Написать функцию. Функция возвращает числовое значение. На входе у функции два целочисленных параметра (num1,num2) и одна строка (str1).
Если num1 или num2 больше 10, функция прекращается и возвращает 0.
Функция выводит строку str1 в бесконечном цикле с условиями:
Если строка str1 выведена num1 раз, то функция прекращается и возвращает 1.
Если строка str1 выведена num2 раз, то функция прекращается и возвращает 2.
Код:
Функция функ(num1,num2,str1)
Если num1 > 10 или num2 > 10 тогда
Возврат 0
Конецесли;
i=1;
Пока Истина Цикл
Сообщить(str1);
Если i = Num1 Тогда
Возврат 1;
ИначеЕсли i = Num2 Тогда
Возврат 2;
КонецЕсли;
КонецЦикла;
Конецфункции
Задание:Написать функцию. Функция возвращает числовое значение. На входе у функции два целочисленных параметра (num1,num2) и одна строка (str1).
Если num1 или num2 больше 10, функция прекращается и возвращает 0.
Функция выводит строку str1 в бесконечном цикле с условиями:
Если строка str1 выведена num1 раз, то функция прекращается и возвращает 1.
Если строка str1 выведена num2 раз, то функция прекращается и возвращает 2.
Код:
Функция функ(num1,num2,str1)
Если num1 > 10 или num2 > 10 тогда
Возврат 0
Конецесли;
i=1;
Пока Истина Цикл
Сообщить(str1);
Если i = Num1 Тогда
Возврат 1;
ИначеЕсли i = Num2 Тогда
Возврат 2;
КонецЕсли;
КонецЦикла;
Конецфункции
По теме из базы знаний
Найденные решения
(1)
1) Форматируйте код.
2) Делайте условие так, что бы цикл не превращался в бесконечный. В вашем варианте нет увеличения i. А даже если было бы, то в случае если num1 и num2 = 0, то цикл тоже превращается в бесконечный.
Еще может быть отрицательное число, но будем предполагать, что его не может быть.
Функция функ(num1,num2,str1)
Если num1 > 10 или num2 > 10 тогда
Возврат 0
Конецесли;
i=1;
Пока Истина Цикл
Сообщить(str1);
Если i >= Num1 Тогда
Возврат 1;
ИначеЕсли i >= Num2 Тогда
Возврат 2;
КонецЕсли;
i=i+1;
КонецЦикла;
Конецфункции
Показать1) Форматируйте код.
2) Делайте условие так, что бы цикл не превращался в бесконечный. В вашем варианте нет увеличения i. А даже если было бы, то в случае если num1 и num2 = 0, то цикл тоже превращается в бесконечный.
Еще может быть отрицательное число, но будем предполагать, что его не может быть.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
1) Форматируйте код.
2) Делайте условие так, что бы цикл не превращался в бесконечный. В вашем варианте нет увеличения i. А даже если было бы, то в случае если num1 и num2 = 0, то цикл тоже превращается в бесконечный.
Еще может быть отрицательное число, но будем предполагать, что его не может быть.
Функция функ(num1,num2,str1)
Если num1 > 10 или num2 > 10 тогда
Возврат 0
Конецесли;
i=1;
Пока Истина Цикл
Сообщить(str1);
Если i >= Num1 Тогда
Возврат 1;
ИначеЕсли i >= Num2 Тогда
Возврат 2;
КонецЕсли;
i=i+1;
КонецЦикла;
Конецфункции
Показать1) Форматируйте код.
2) Делайте условие так, что бы цикл не превращался в бесконечный. В вашем варианте нет увеличения i. А даже если было бы, то в случае если num1 и num2 = 0, то цикл тоже превращается в бесконечный.
Еще может быть отрицательное число, но будем предполагать, что его не может быть.
(8
В окончательном варианте, так пойдет?
И еще вопрос, почему i >= num1?? Почему не i = num1?
Функция функ(num1,num2,str1)
Если num1 > 10 или num2 > 10 или num1 <= 0 или num2 <= 0 тогда
Возврат 0
Конецесли;
i=1;
Пока Истина Цикл
Сообщить(str1);
Если i = Num1 Тогда
Возврат 1;
ИначеЕсли i = Num2 Тогда
Возврат 2;
КонецЕсли;
i=i+1;
КонецЦикла;
Конецфункции
ПоказатьВ окончательном варианте, так пойдет?
И еще вопрос, почему i >= num1?? Почему не i = num1?
(1) не определены пограничные условия в задании для нулевых и отрицательных num. Будем считать, что раз строка не выводится, то и возвращаем 0.
Я бы решил так:
Я бы решил так:
Функция функ(num1, num2, str1)
МинНомер = Мин(num1, num2);
Если Макс(num1, num2) > 10 Или МинНомер <= 0 Тогда
Возврат 0;
КонецЕсли;
Для i=1 По МинНомер Цикл
Сообщить(str1);
КонецЦикла;
Возврат ?(num1 = МинНомер, 1, 2);
КонецФункции
Показать
Что-то похоже если не дописать после конецесли i=i+1 тогда цикл никогда не кончится и возврата значения не будет. Возврат значения будет только если при вызове функции передадут значения num1 и num2 больше 10 или равно 1.
(5) Главное пойми - i - это счетчик.
И он должен быть равен числу выводов строки.
Значит если поставишь изначально i=0
То i=i+1 надо ставить перед проверкой выведенного количества
А если так как сейчас i=1
То i=i+1 надо ставить после проверки выведенного количества
И он должен быть равен числу выводов строки.
Значит если поставишь изначально i=0
То i=i+1 надо ставить перед проверкой выведенного количества
А если так как сейчас i=1
То i=i+1 надо ставить после проверки выведенного количества
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот