Логически проблеми - Страница 2

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

Задача 5. Марина, Лариса, Жана и Катя знаят как да свирят на различни инструменти (пиано, виолончело, китара, цигулка), но всеки само на един. Те знаят и чужди езици (английски, френски, немски и испански), но всеки един. Знае се:

Момичето, което свири на китара, говори испански.

Лариса не свири нито на цигулка, нито на виолончело и не говори английски.

Марина не свири нито на цигулка, нито на виолончело и не знае нито немски, нито английски.

Момичето, което говори немски, не свири на виолончело.

Жана знае френски, но не свири на цигулка.

Кой на какъв инструмент свири и знае какъв чужд език?

Жана знае
От петото условие, че Жана знае френски, нарисувайте стрелка. От третото условие, че Марина не знае нито немски, нито английски, а Жана знае френски, Марина знае испански и, като се има предвид първото условие, тя свири на китара. От условие №2 виждаме, че Лариса свири на пиано, защото Марина свири на китара, но не може да свири на други инструменти, което означава, че говори немски.
страница
Защото Жана не свири на цигулка, тогава има само един инструмент, на който може да свири - виолончело. Тогава Катя свири на цигулка и знае английски.

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

Жана знае

Този раздел обсъжда друг тип логически проблем. Това са задачи, при които се изисква да се измери определено количество течност с помощта на съдове от известни контейнери, както и задачи, свързани с операцията по претегляне на скала. Най-простата техника за решаване на задачи от този клас се състои в изброяване на възможни варианти. Ясно е, че такъв метод на решение не е напълно успешен, трудно е да се отдели някакъв общ подход за решаване на други подобни проблеми.

По-систематичен подход за решаване на проблемите с преливането е използването на блок-схеми. Същността на този метод е следната. Първо се подчертават операциите, които ни позволяват да измерваме точно течността. Тези операции се наричат ​​команди. След това се установява последователността на изпълнение на избраните команди. Тази последователност е съставена под формата на диаграма. Такива вериги се наричат ​​блок-схеми и се използват широко при програмирането. Изготвената блок-схема е програма, изпълнението на която може да ни доведе до решението на разглежданата задача. За целта е достатъчно да се отбележи какви количества течност е възможно да се получат, когато компилираната програма работи. В този случай обикновено се попълва отделна таблица, в която се въвежда количеството течност във всеки от наличните съдове.

Задача 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 литра повече, двата съда трябва да бъдат напълнени.