1. Запишите блок-схему с 1 входной переменной, вычисляющей ее факториал.
  2. Запишите блок-схему с 2 входными переменными, вычисляющую количество простых чисел между ними.
  3. На рисунке изображена блок-схема, приведены несколько спецификаций. Домены всех переменных - множество всех целых чисел. Ответьте на вопрос про каждую из спецификаций, является ли эта блок-схема частично корректной относительно неё? (блок-схема к задаче)
    1. ϕ(x) ≡ x ≥ 0, ψ(x, z) ≡ z = x²
    2. ϕ(x) ≡ T, ψ(x, z) ≡ z = x²
    3. ϕ(x) ≡ |x| > 10, ψ(x, z) ≡ |z| > 100
    4. ϕ(x) ≡ x > 0, ψ(x, z) ≡ z > x
    5. ϕ(x) ≡ x ≥ 0, ψ(x, z) ≡ z ≥ x
  4. Для каждой приведенной ниже спецификации напишите блок-схемы с указанными ниже свойствами, если они существуют. Домен всех входных и выходных переменных - множество всех целых чисел.
    • блок-схема, не являющая частично корректной относительно данной спецификации;
    • блок-схема, являющаяся частично, но не полностью корректной относительно данной спецификации, при этом блок-схема должна завершаться на всем подмножестве входного домена, для которого существует элемент выходного домена, удовлетворяющий постусловию;
    • блок-схема, являющаяся полностью корректной относительно данной спецификации.
      1. ϕ(x₁, x₂) ≡ x₁ > x₂ ≥ 0, ψ(x₁, x₂, z₁, z₂) ≡ z₁ > x₁ > z₂ > x₂
      2. ϕ(x₁, x₂) ≡ 0 > x₁ > x₂, ψ(x₁, x₂, z₁, z₂) ≡ x₁² > z₁ > x₂² > z₂
      3. ϕ(x₁, x₂) ≡ x₁ > x₂ ≥ 0, ψ(x₁, x₂, z₁, z₂) ≡ x₂² > z₁ > x₁² > z₂
      4. ϕ(x₁) ≡ x₁ > 0, ψ(x₁, z₁, z₂) ≡ z₁ = x₁ * z₂ ∧ z₁ < z₂
  5. Докажите или опровергните утверждения о {частичной} или ❬полной❭ корректности. Заглавными буквами обозначены блок-схемы, строчными - логические формулы.
    1. ∀ a ∀ P ∃ b such as {a}P{b} ⇒ {b}P{a}
    2. ∀ a ∀ P ∃ b such as ❬a❭P❬b❭ ⇒ {b}P{a}
    3. ∀ P ∃ a ∃ b such as ❬a❭P❬b❭
    4. ∀ P ∃ a ∃ b such as {a}P{b} ∧ ¬ ❬a❭P❬b❭