В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
Татьяна4222
Татьяна4222
02.06.2023 06:12 •  Информатика

На бес­ко­неч­ном поле есть го­ри­зон­таль­ная и вер­ти­каль­ная стены. Пра­вый конец го­ри­зон­таль­ной стены со­единён с верх­ним кон­цом вер­ти­каль­ной стены. Длины стен не­из­вест­ны. В каж­дой стене есть ровно один про­ход, точ­ное место про­хо­да и его ши­ри­на не­из­вест­ны. Робот на­хо­дит­ся в клет­ке, рас­по­ло­жен­ной не­по­сред­ствен­но под го­ри­зон­таль­ной сте­ной у её ле­во­го конца. На ри­сун­ке ука­зан один из воз­мож­ных спо­со­бов рас­по­ло­же­ния стен и Ро­бо­та (Робот обо­зна­чен бук­вой «Р»). На­пи­ши­те для Ро­бо­та ал­го­ритм, за­кра­ши­ва­ю­щий все клет­ки, рас­по­ло­жен­ные не­по­сред­ствен­но ниже го­ри­зон­таль­ной стены и левее вер­ти­каль­ной стены. Про­хо­ды долж­ны остать­ся не­за­кра­шен­ны­ми. Робот дол­жен за­кра­сить толь­ко клет­ки, удо­вле­тво­ря­ю­щие дан­но­му усло­вию. На­при­мер, для при­ведённого выше ри­сун­ка Робот дол­жен за­кра­сить сле­ду­ю­щие клет­ки (см. ри­су­нок).

При ис­пол­не­нии ал­го­рит­ма Робот не дол­жен раз­ру­шить­ся, вы­пол­не­ние ал­го­рит­ма долж­но за­вер­шить­ся. Ко­неч­ное рас­по­ло­же­ние Ро­бо­та может быть про­из­воль­ным. Ал­го­ритм дол­жен ре­шать за­да­чу для лю­бо­го до­пу­сти­мо­го рас­по­ло­же­ния стен и лю­бо­го рас­по­ло­же­ния и раз­ме­ра про­хо­дов внут­ри стен. Ал­го­ритм может быть вы­пол­нен в среде фор­маль­но­го ис­пол­ни­те­ля или за­пи­сан в тек­сто­вом ре­дак­то­ре. Со­хра­ни­те ал­го­ритм в тек­сто­вом файле.​


На бес­ко­неч­ном поле есть го­ри­зон­таль­ная и вер­ти­каль­ная стены. Пра­вый конец го­ри­зон­таль

Показать ответ
Ответ:
pedro2408
pedro2408
11.08.2022 20:22

название : тип text или varchar (text может хранить не более 65 535 символов, varchar может хранить не более 255 символов, поскольку в русском языке нет слов длиной больше 255 символов то тут предпочтительнее varchar)

Длины достаточно 80 символов 

материк: так же типа varchar здесь достаточно длины 50 символов (50 взято для запаса, если вдруг решат изменить это поле скажем на страну в которой протекает река)

длина: здесь можно использовать два типа или float если мы хотим получить длину в километрах с точкой, т.е чтобы можно было записать 655,78 км, или UNSIGNED INT (беззнаковое целое число, беззнаковое потому что длина реки не может быть отрицательной), если нам нужно хранить только целую часть длины в километрах

максимальная глубина: десь так же или float или unsigned int 

куда впадает: здесь тип varchar, длиной в 80 символовю

наличие водохранилищ: тип bool (1 - есть водохранилища, 0 - нет водохранилищ)

 

Первичным ключом в данной таблице сторого говоря нельзя назвать ни одно поле, потому что поле, назначенное первичным ключом должно иметь уникальное значение для каждой записи. ни одно из полей не может быть уникальным:

- название не подходит потому что  например по Калимантану протекает две реки с одинаковым названием — Капуас, значит название реки не может быть первичным ключом.

- материк, тут понятно не может, потому что есть много рек текущих по одному материку

- длина в километрах: теоретически может выступать как первичный ключ, но нельзя исключить что в мире есть 2 реки с одинаковой длиной.

- максимальная глубина: очевидно что нет никаких гарантий что в мире нет рек с одинаковой максимальной глубиной. 

- куда впадает: в одно и то же место может впадать множество рек, это тоже не подходит под первичный ключ.

-наличие водохранилищи тоже не может выступать как первичный ключ, поскольку уже для 3х рек он не будет уникальным (ведь он принимает только 2 значение TRUE или FALSE)

 

Значит под из перечисленных строк первичным ключом можно назначить длину в километрах, хотя конечно это будет неверно.

 

Поэтому для первичного ключа надо ввести еще одно поле ID, куда записывать число типа UNSIGNED INT, причем применяя атрибут AUTOINCREMENT, т.е для каждой строки увеличивая ее значение на 1.

 

Тогда можно будет различить две реки даже если у них совпадает 1 или более полей.

 

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

 

В принципе это делается достаточно просто с запроса и некоторого обработчика входных данных.

 

0,0(0 оценок)
Ответ:
Лучік12
Лучік12
27.12.2021 18:17

Переводим целую часть числа. Заменяем каждый разряд на код из таблицы.

Двоичная СС Восьмеричная СС

000               0

001               1

010               2

011               3

100               4

101               5

110               6

111               7


Получаем число:
7748 = 1111111002

Переводим дробную часть числа.
Получаем число:
08 = 0002
Переводим целую часть числа. Для этого разделим исходный код на группы по 4 разряда.
111111100 = 0001 1111 1100 
Затем заменяем каждую группу на код из таблицы.

Двоичная СС шестнадцатеричная СС

0000             0

0001             1

0010             2

0011             3

0100             4

0101             5

0110             6

0111             7

1000             8

 1001            9

1010             A

1011             B

1100             C

1101             D

1110             E

1111             F


Получаем число:
0001 1111 1100 2 = 1FC16

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота