Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 14.08.2019, 17:01   #1
Ghelovek
 
Регистрация: 14.08.2019
Сообщений: 4
Репутация: 10
По умолчанию в ввыводе же строки с 7 по 11 происходит проверка аналогичная предидущей но не одна из ch или bln2 не стоит

Код:
n1 = int(input())
n2 = int(input())

bln = True
a = 2
bln1 = True
a1 = 2
H = n1
bln2 = True

while bln:
	if (n1 % a)>0:
		bln2 = False
		print('bln2 False')
		a += 1
	elif n1 == a:
		print(a , 'a')
		print(n1 , 'n1')
		bln = False
	else:
		u = a
		print(a , 'a')
		print(n1 , 'n1')
		n1 = n1 / a

	if (n2 % a1) != 0:
			a1 += 1
			print('bln2 False1')
			bln2 = False
	elif n2 == a1:
		print(a1 , 'a1')
		print(n2 , 'n2')
		a1 = -1
	else:
		u1 = a1
		print(a1 , 'a1')
		print(n2 , 'n2')
		n2 = n2 / a1 
	while bln2:
		if u != u1:
			print(u , u1 , 'ch3 yes')
			if u > u1:
				print(u , '-u')
				bln2 = False
			elif u1 > u:
				print(u1 , '-u1')
				H = H * u1
				print(H , 'H')
				bln2 = False
			else:
				bln2 = False
		else:
			print(u , '<=>' , u1 , 'ch0')
			bln2 = False
	else:
		print('ch3 none')
else:
	print('NONE1')
-------------------------------------------------------------
ввывод
56
20

1 2 a
2 56 n1
3 2 a1
4 20 n2
5 2 <=> 2 ch0
6 ch3 none
7 2 a
8 28.0 n1
9 2 a1
10 10.0 n2
11 ch3 none
12 2 a
13 14.0 n1
14 bln2 False1
15 ch3 none
16 bln2 False
17 bln2 False1
18 ch3 none
bln2 False
bln2 False1
ch3 none
bln2 False
5 a1
5.0 n2
ch3 none
bln2 False
-1 a1
5.0 n2
ch3 none
bln2 False
-1 a1
- 5.0 n2
ch3 none
7 a
7.0 n1
-1 a1
5.0 n2
ch3 none
NONE1

по факту в ввыводе перед (сh3 none)
может стоять либо:
(bln2 = False), (ch3 yes) (u <=> u1 ch0)

в ввыводе же строки с 7 по 11 происходит проверка аналогичная предидущей
но не одна из ch или bln2 не стоит
Спасибо

Последний раз редактировалось Аватар; 14.08.2019 в 17:50.
Ghelovek вне форума   Ответить с цитированием
Старый 14.08.2019, 17:40   #2
ViktorR
Профессионал
 
Регистрация: 23.10.2010
Сообщений: 1,325
Репутация: 644
По умолчанию

В Python очень важны отступы.
Сделайте доброе дело, прочитайте правила, как оформлять сообщение.
Код программы должен находиться между тегами CODE.
Выделите код и нажмите кнопку [CODE], которая находится в меню над окном редактора.
__________________
Как-то так, ...
ViktorR на форуме   Ответить с цитированием
Старый 15.08.2019, 22:05   #3
Ghelovek
 
Регистрация: 14.08.2019
Сообщений: 4
Репутация: 10
По умолчанию

здравствуйте извинте просто недавно на форуме учту спасибо
Ghelovek вне форума   Ответить с цитированием
Старый 16.08.2019, 01:50   #4
ViktorR
Профессионал
 
Регистрация: 23.10.2010
Сообщений: 1,325
Репутация: 644
По умолчанию

Я бы обратил внимание на то, что u и u1 определяются в условных операторах.
Вы уверены, что они получают нужные значения?
Никаких предупреждений не выдаётся?
Сделайте тестовую печать
Код:
...
while bln2:
    print('u= ', u, '   u1 = ', u1)
    if ...
Что выводится?
__________________
Как-то так, ...
ViktorR на форуме   Ответить с цитированием
Старый 20.08.2019, 17:50   #5
Ghelovek
 
Регистрация: 14.08.2019
Сообщений: 4
Репутация: 10
По умолчанию

Проблема в том что по проверкам цикл While bln2 не выполняется хотя не выполнятся он может если пишется проверка
Код:
(bln2 False),а затем ch3 none
и сама проверка которую вы мне подсказали не происходит
Ghelovek вне форума   Ответить с цитированием
Старый 20.08.2019, 18:36   #6
Ghelovek
 
Регистрация: 14.08.2019
Сообщений: 4
Репутация: 10
По умолчанию

Цитата:
Сообщение от ViktorR Посмотреть сообщение
Я бы обратил внимание на то, что u и u1 определяются в условных операторах.
Вы уверены, что они получают нужные значения?
Никаких предупреждений не выдаётся?
Сделайте тестовую печать
Код:
...
while bln2:
    print('u= ', u, '   u1 = ', u1)
    if ...
Что выводится?
Цитата:
Сообщение от Ghelovek Посмотреть сообщение
Проблема в том что по проверкам цикл While bln2 не выполняется хотя не выполнятся он может если пишется проверка
Код:
(bln2 False),а затем ch3 none
и сама проверка которую вы мне подсказали не происходит
вот
Ghelovek вне форума   Ответить с цитированием
Старый 21.08.2019, 10:57   #7
ViktorR
Профессионал
 
Регистрация: 23.10.2010
Сообщений: 1,325
Репутация: 644
По умолчанию

Цитата:
и сама проверка которую вы мне подсказали не происходит
Ну так поставьте эту проверку перед циклом и посмотрите значение bln2.
В вашей программе эта переменная получает значение true только при инициализации. В теле цикла bln эта переменная (bln2) несколько раз получает значение false.
Если перед циклом
Код:
...
while bln2:
...
bln2 равен false, то и цикл выполняться не будет.
Посмотрите на набор входных данных и на набор условных операторов перед циклом с bln2.
__________________
Как-то так, ...
ViktorR на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление записи и локация предидущей. tarakan1983 БД в Delphi 5 20.09.2012 09:09
ошибка в ввыводе символов bloger Общие вопросы C/C++ 8 30.11.2011 20:15
Вроде бы аналогичная вложенной процедура не работает при переносе в дополнительный модуль! vedro-compota Общие вопросы Delphi 1 04.05.2010 17:12
Проверка запущена ли ещё одна копия TaYgA Помощь студентам 9 03.01.2010 18:22
Проверка запущена ли ещё одна копия приложения Vol666 Общие вопросы Delphi 7 12.10.2009 00:56


00:53.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.