Найти - Пользователи
Полная версия: Графический исполнитель "Робот"
Начало » Python для новичков » Графический исполнитель "Робот"
1 2 3 4 5 6 7 8 None 28 29 30 31
NakiriEri
py.user.next
программа ряд подходит для закраски : да/нет
т,е как я понимаю, это некая рекурсия, проблема в том, что для питона я смотрю лекции МФТИ а именно “Тимофей Хирьянов” на данный курс “робот” ведет ссылка после просмотра второй лекции, в первой лекции было про синтаксис, во второй про алгебру логики, так же было затронуто, что такое if, else, elif, for while. Все, т,е циклы и условные операторы. Не было объяснение что такое функция, т,е мне лучше смотреть дальше и уже потом придти к роботу, или может быть вы посоветуете какую то книгу для знакомства с основными возможностями python.Т.е для js это например https://learn.javascript.ru/. т.е основная проблема, я не знаю как это оформить на языке python

py.user.next
NakiriEri
т,е как я понимаю, это некая рекурсия
Нет. Это просто выделение подпрограмм.

Ну вот функция записана
на псевдокоде
программа ряд подходит для закраски : да/нет
шагнуть вниз
если внизу нет стены то
шагнуть вверх
ответ := да
иначе
шагнуть вверх
ответ := нет
конец если
конец программы

на питоне
  
def row_needs_fill():
    move_down()
    if not wall_is_beneath():
        move_up()
        return True
    else:
        move_up()
        return False

А вот то, как её придумать, Тимофей там учит (я смотрел его лекции). Лекция со строителями дома.
https://www.youtube.com/watch?v=DvsCUI5FNnI&t=37m50s

NakiriEri
т,е мне лучше смотреть дальше и уже потом придти к роботу, или может быть вы посоветуете какую то книгу для знакомства с основными возможностями python
Есть программирование, а есть языки программирования. Вот когда ты спрашиваешь “как написать эту программу?” не на питоне, а вообще само решение сделать - это программирование. А когда ты задумываешься “а как записать придуманное решение на питоне?” - это язык программирования.
Вот как по программированию есть книги, так и по языкам программирования есть книги. Это разные книги с разной информацией. Изучив питон, ты не научишься программы составлять. А изучив программирование, ты не научишься писать правильный код на питоне (правильный синтаксически, правильный стилистически).

NakiriEri
я не знаю как это оформить на языке python
Можешь изучать по питону книжки простейшие, простые или средние по сложности. Оптимальный путь зависит от того, какая у тебя база в программировании до питона. Если ты школьник, тебе надо простейшие книжки изучать, потому что школьник не сможет усвоить математику, которая требуется для понимания многих конструкций (функции, например, - это из математики понятие и то, как они там устроены, всё слизано с математики). Если же ты учился в вузе и ты не историк какой-нибудь, решивший вдруг стать поверхностным айтишником непонятной специализации, а имел дело там с физикой, математикой, то ты можешь читать средние книжки по питону, потому что ты их поймёшь.

Вот есть топик на 50 страниц, где только одни книжки по питону.
https://python.su/forum/topic/18/
Обрати внимание, что топик тянется с 2006 года. Многие книжки уже переизданы по несколько раз. Многие книжки появились, которые перекрыли старые книжки. Ну и книжки часто повторяют друг друга другими словами.

В принципе, для изучения питона хватает Dive Into Python 3 и последующего изучения документации питона https://docs.python.org .
https://docs.python.org/3/reference/index.html
https://docs.python.org/3/library/index.html
https://www.python.org/dev/peps/
Kareglazaja
Добрый день! Решаю задачи по этому курсу - http://judge.mipt.ru/mipt_cs_on_python3/labs/lab2.html#o31-task-8-30

Прошу вашей помощи решить задачу №31: task_8_30
Добраться до нижнего уровня. Количество уровней не известно. Расстояние между стенами не известно. В каждой стене точно есть ровно один проём.
Не могу понять как конкретно в этой задаче стоит использовать переменные.
py.user.next
Kareglazaja
Прошу вашей помощи решить задачу №31: task_8_30
На псевдокоде рабочий код (проверял на реальном)
флаг_искать_проход := да
цикл пока флаг_искать_проход выполнять
флаг_искать_проход := нет
цикл пока справа_нет_стены выполнять
шагнуть вправо
цикл пока снизу_нет_стены выполнять
шагнуть вниз
флаг_искать_проход := да
конец цикла
конец цикла
цикл пока слева_нет_стены выполнять
шагнуть влево
цикл пока снизу_нет_стены выполнять
шагнуть вниз
флаг_искать_проход := да
конец цикла
конец цикла
конец цикла

[guest@localhost pyrob]$ python3 task_31.py 
INFO:pyrob:Starting task task_8_30
INFO:pyrob:Task task_8_30 finished: +
INFO:pyrob:Total: 1/1
[guest@localhost pyrob]$
Kareglazaja
py.user.next

Спасибо огромное за помощь и псевдокод! Все получилось

INFO:pyrob:Starting task task_8_30
INFO:pyrob:Task task_8_30 finished: +
INFO:pyrob:Total: 1/1
EugeneDemonSpeed666
Извините, что беспокою, но я не могу решить 28 задачу http://judge.mipt.ru/mipt_cs_on_python3/labs/lab2.html
 n = 0
	if cell_is_filled():
		while not wall_is_on_the_right():
			n += 1
			for i in range(n):
				move_right()
	else:
		while not wall_is_on_the_right():
			move_right()
py.user.next
EugeneDemonSpeed666
не могу решить 28 задачу
число_закрашенных := 0
цикл пока справа_нет_стены выполнять
если клетка_закрашена то
число_закрашенных.увеличить на 1
конец если
если число_закрашенных = 5 то
выход из цикла
конец если
конец цикла

[guest@localhost pyrob]$ python3 task_28.py 
INFO:pyrob:Starting task task_7_6
INFO:pyrob:Task task_7_6 finished: +
INFO:pyrob:Total: 1/1
[guest@localhost pyrob]$
6uvenb
День добрый, подскажите пожалуйста, где неправильно решаю задачу №20 (или намекните)
собрал сначала через range 13,потом 356 получилось,но не то. теперь пробую как правильно не получается ( извините за код.
while not cell_is_filled():
move_right()

while not wall_is_on_the_right():
while not cell_is_filled(): #<-хочу остановить действие,но не получается.
break #<-
fill_cell()
move_right()
while wall_is_on_the_right():
move_down()
move_left()
while not wall_is_on_the_left():
fill_cell()
move_left()
while wall_is_on_the_left():
move_down()
move_right()
py.user.next
6uvenb
День добрый, подскажите пожалуйста, где неправильно решаю задачу №20 (или намекните)
Вот здесь писал решение этой задачи (в этой же теме)

Это решение с функциями, но из функций можно достать содержимое и записать в виде вложенных циклов.

Весь секрет в том, чтобы сначала шагнуть вправо, а потом уже для этого состояния писать весь алгоритм прохода.
Pavel32272
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB