Логически проблеми - Страница 2
Графиката е схема, в която се посочва само присъствието на обекти (системни елементи) и наличието и вида на връзката между обектите. Обектите са представени в графиката с върхове (на диаграмата те са обозначени с кръгове, правоъгълници и др.). Връзките между обектите са представени, ако връзката е еднопосочна (обозначена на диаграмата с редове със стрелки) или с ръбове, ако връзката между обектите е двупосочна (обозначена на диаграмата с редове без стрелки). Например, ако трябва да представите в графиката, че е възможен преход от състояние A към състояние B под въздействието на V, тогава това може да се изобрази по следния начин: Ако трябва да си представите, че участник в състезанието е взел n-то място (или, което е същото, n-то място е заето от k-тия участник), то може да бъде изобразено по следния начин:
Задача 5. Марина, Лариса, Жана и Катя знаят как да свирят на различни инструменти (пиано, виолончело, китара, цигулка), но всеки само на един. Те знаят и чужди езици (английски, френски, немски и испански), но всеки един. Знае се:
Момичето, което свири на китара, говори испански.
Лариса не свири нито на цигулка, нито на виолончело и не говори английски.
Марина не свири нито на цигулка, нито на виолончело и не знае нито немски, нито английски.
Момичето, което говори немски, не свири на виолончело.
Жана знае френски, но не свири на цигулка.
Кой на какъв инструмент свири и знае какъв чужд език?


Метод шести: Метод на блок-схема

Този раздел обсъжда друг тип логически проблем. Това са задачи, при които се изисква да се измери определено количество течност с помощта на съдове от известни контейнери, както и задачи, свързани с операцията по претегляне на скала. Най-простата техника за решаване на задачи от този клас се състои в изброяване на възможни варианти. Ясно е, че такъв метод на решение не е напълно успешен, трудно е да се отдели някакъв общ подход за решаване на други подобни проблеми.
По-систематичен подход за решаване на проблемите с преливането е използването на блок-схеми. Същността на този метод е следната. Първо се подчертават операциите, които ни позволяват да измерваме точно течността. Тези операции се наричат команди. След това се установява последователността на изпълнение на избраните команди. Тази последователност е съставена под формата на диаграма. Такива вериги се наричат блок-схеми и се използват широко при програмирането. Изготвената блок-схема е програма, изпълнението на която може да ни доведе до решението на разглежданата задача. За целта е достатъчно да се отбележи какви количества течност е възможно да се получат, когато компилираната програма работи. В този случай обикновено се попълва отделна таблица, в която се въвежда количеството течност във всеки от наличните съдове.
Задача 6. Съдовете са два - трилитрови и петлитрови. Необходимо е, използвайки тези съдове, да се получат 1, 2, 3, 4, 5, 6, 7 и 8 литра вода. Разполагаме с кран и мивка, където можете да налеете вода.

Решение. Ние изброяваме всички възможни операции, които могат да бъдат използвани от нас, и въвеждаме следните съкращения за тях: NB - напълнете по-голям съд с чешмяна вода; NM - напълнете по-малък съд с чешмяна вода; OB - изпразване на по-големия съд чрез изливане на вода в мивката; OM - изпразване на по-малкия съд чрез изливане на вода в мивката; B → M - прелива се от по-голям на по-малък, докато по-големият съд се изпразни или по-малкият съд се напълни; M → B - преливайте от по-малкия към по-големия, докато по-малкият съд се изпразни или по-големият съд се напълни. Нека посочим само три от изброените отбори: NB, B → M, OM. В допълнение към тези три команди, помислете за още две помощни команди: B = 0? - вижте дали по-големият съд е празен; М = Z? - вижте дали малкият съд е пълен. В зависимост от резултатите от тази проверка, ние пристъпваме към изпълнението на следващата команда, използвайки един от двата клавиша - „да“ или „не“. Такива команди в програмирането обикновено се наричат команди "условен скок" и са изобразени в блокови диаграми под формата на диамант с два изходни превключвателя. Сега нека се договорим за последователността на изпълнение на избраните команди. След B → M, ние ще изпълняваме OM всеки път, когато по-малкият съд се напълни, и NB всеки път, когато по-големият съд се изпразни. Ще изобразим последователността от команди под формата на блок-схема (фиг. 1). Нека започнем да изпълняваме програмата. Ще запишем как се променя количеството вода в съдовете, ако действаме по дадената схема. Резултатите са представени под формата на таблица (таблица)
Освен това тази последователност ще бъде напълно повторена. От таблицата виждаме, че количеството вода в двата съда заедно образува следната последователност: 0, 5, 2, 7, 4, 1, 6, 3, 0 и т.н. По този начин, следвайки горната схема, можете да измерите произволен брой литри от 1 до 7. За да измерите 8 литра повече, двата съда трябва да бъдат напълнени.