ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Логічні задачі на мові програмування Prolog
         

     

    Інформатика, програмування

    Логіка задачі на мові програмування Prolog

    Завдання 1.

    Ввести запропонований текст програми, реалізувати її і записати на диск.

    predicates

    hello.

    goal

    hello.

    clauses

    hello: -

    makewindow (1,7,7, "Моя перша програма", 4,56,14,22),

    nl, write ( "Введіть ваше ім'я, n", "потім натисніть Enter ."),

    cursor (4,6),

    readln (Name), nl,

    write ( "Ласкаво пожаловатьn в PDC Prolog, n ","", Name ,"!").

    Результат: Ласкаво просимо до PDC Prolog, Vladimir!

    Навмисне ввести друкарські помилки в текст програми і ознайомитися з повідомленнями про ці всі помічені, виправити їх.

    predicates

    hello.

    goal

    hello.

    clauses

    hello: -

    makewindow (1,7,7, "Моя перша програма", 4,56,14,22)

    nl, write ( "Введіть ваше ім'я, n", "потім натисніть Enter ."),

    cursor (4,6),

    readln (Name) nl,

    write ( "Ласкаво пожаловатьn в PDC Prolog, n ",", Name ,!").

    Результат: 423 Syntax eror.

    Завдання 2.

    Реалізувати програму з введенням перерахованих нижче цілей і перевірити отримані результати. Цілі зовнішні.

    predicates

    book (symbol, symbol, symbol, integer).

    clauses

    book ( "Фігурне В.Е.", "IBM PC для користувача "," ФиС ", 1988).

    book ( "Пєтухов О.А. "," Проектування ОРБД "," Суднобудування ", 1984).

    book ( "Пєтухов О.А. "," Об'єктно-реляційні моделі даних "," СЗПІ ", 1987).

    book ( "Пєтухов О.А. "," Моделювання СМО "," СЗПІ ", 1989).

    book ( "Пєтухов О.А.", "PDC Prolog "," СЗПІ ", 2000).

    book ( "Анкудинов Г.І.", "Теорія автоматів "," СЗПІ ", 1997).

    book ( "Миколаїв В.І. "," Дискретні структури "," СЗПІ ", 1999).

    Результат: X = Proektirovanie OR BD, Y = SUDOSTROENIE, Z = 1984

    X = Object models of DATA, Y = SZPI, Z = 1987

    X = Modelirovanie CMO, Y = SZPI, Z = 1989

    X = PDC Prolog, Y = SZPI, Z = 2000

    4 Solutions

    X = Proektirovanie OR BD

    X = Object models of DATA

    X = Modelirovanie CMO

    X = PDC Prolog

    4 Solutions

    E = Petuchov OA, X = Object models of DATA, Z = 1987

    E = Petuchov OA, X = Modelirovanie CMO, Z = 1989

    E = Petuchov O.A., X = PDC Prolog, Z = 2000

    E = Ankudinov G.I., X = Automat theory, Z = 1997

    E = Nikolaev VI, X = Diskretniye struktury, Z = 1999

    5 Solutions

    Завдання 3.

    Реалізувати програму з введенням всіх перерахованих зовнішніх цілей і перевірити одержані результати:

    domains

    name = symbol

    year_in, year_out = integer

    predicates

    parents (name, name)

    woman (name)

    man (name)

    offspring (name, name)

    father (name, name)

    mother (name, name)

    parent_parents (name, name)

    brother (name, name)

    grandfather (name, name)

    grandmother (name, name)

    emperor (name, year_in, year_out)

    emperor_was (name, integer)

    clauses

    parents ( "Петро III", "Павло I ").

    parents ( "Катерина II "," Павло I ").

    parents ( "Павло I", "Олександр I ").

    parents ( "Павло I", "Микола I ").

    parents ( "Микола I "," Олександр II ").

    parents ( "Олександр II "," Олександр III ").

    parents ( "Олександр III "," Микола II ").

    woman ( "Катерина II ").

    man ( "Петро III ").

    man ( "Павло I ").

    man ( "Алексндр I ").

    man ( "Микола I ").

    man ( "Олександр II ").

    man ( "Олександр III ").

    man ( "Микола II ").

    offspring (Y, X):-parents (X, Y).

    father (X, Y):-parents (X, Y), man (X).

    mother (X, Y):-parents (X, Y), woman (X).

    parent_parents (X, Z):-parents (X, Y), parents (Y, Z).

    brother (X, Y):-parents (Z, X), parents (Z, Y), man (X), X <> Y.

    grandfather (X, Y):-father (X, Z), father (Z, Y).

    grandmother (X, Y):-mother (X, Z), father (Z, Y).

    emperor ( "Петро III ", 1761,1762).

    emperor ( "Катерина II", 1762,1796).

    emperor ( "Павло I ", 1796,1801).

    emperor ( "Олександр I ", 1801,1825).

    emperor ( "Микола I ", 1825,1855).

    emperor ( "Олександр II ", 1855,1881).

    emperor ( "Олександр III", 1881,1894).

    emperor ( "Микола II ", 1894,1917).

    emperor_was (X, Y):-emperor (X, A, B), Y> = A, Y <= B.

    Результат: Y = aleksandr I X = petr III, A = 1761, B = 1762 X = pavel I

    1 Solution X = ekaterina II, A = 1762, B = 1769 1 Solution

    X = pavel I, A = 1796, B = 1801

    X = aleksandr I, A = 1801, B = 1825

    X = nikolay I, A = 1825, B = 1855

    X = aleksandr II, A = 1855, B = 1881

    X = aleksandr III, A = 1881, B = 1894

    X = nikolay II, A = 1894, B = 1917

    8 Solutions

    Завдання 4.

    Реалізувати наведену програму:

    domains

    name = symbol

    predicates

    star (name)

    planet (name)

    revolve (name, name)

    satellite (name, name).

    goal

    satellite (X, "Марс "),

    write (X, "супутник Марса ."),

    nl.

    clauses

    star ( "Сонце ").

    planet ( "Земля ").

    planet ( "Марс ").

    revolve ( "Земля", "Сонце ").

    revolve ( "Марс", "Сонце ").

    revolve ( "Місяць", "Земля ").

    revolve ( "Фобос", "Марс ").

    revolve ( "Деймос", "Марс ").

    satellite (X, Y):-planet (Y), revolve (X, Y).

    Результат: Фобос супутник Марса.

    Написати і реалізувати програму встановлення родинних зв'язків: Василь має доньку Ольгу, у якої два сини Михайло і Максим. Використовувати зовнішні і внутрішні мети.

    domains

    name = symbol

    predicates

    men (name)

    mama (name)

    sons (name, name)

    doughter (name, name)

    deda (name, name)

    brother (name, name).

    goal

    doughter (Z, Y),

    write (Z, Y),

    nl.

    clauses

    men ( "Vaciliy ").

    men ( "Michail ").

    men ( "Maxim").

    mama ( "Olga ").

    sons ( "Michail", "Olga ").

    sons ( "Maxim", "Olga ").

    doughter ( "Olga", "Vasiliy ").

    deda (X, Y): - men (X), men (Y), sons (X, Y), doughter (Z, Y).

    brother (X, Y): - men (X), men (Y), sons (X, Z), sons (Y, Z), X <> Y.

    Результат: Olga, Vaciliy

    Завдання 5.

    Реалізувати наступну програму: Отримати псевдовипадкові речові числа в діапазоні від 0 до 1.

    goal

    random (X),

    Z = X,

    write ( "псевдовипадкове дійсне число від 0 до 1: ", Z),

    nl.

    Результат: 0,64823988962

    Отримати випадкові цілі числа в діапазоні від 0 до 10 і від 10 до 35.

    goal

    random (10, X),

    Z = X,

    write ( "псевдовипадкове дійсне число від 0 до 10: ", Z),

    nl.

    Результат: 5

    goal

    random (25, X),

    Z = X + +10,

    write ( "псевдовипадкове дійсне число від 10 до 35:, Z),

    nl.

    Результат: 21

    Завдання 6.

                                 
    Реалізувати наведену пргограмму для обчислення

    goal

    write ( "X = "),

    readint (X),

    nl,

    write ( "K = "),

    readreal (K),

    nl,

    Z = exp (sin (X)) + sqrt (K + X * X),

    write ( "Z = ", Z).

    Результат: X = 5, K = 16, Z = 6,7864292326

    В режимі калькулятора обчислити X = (2 + 5) * 3,4, тобто вводячи значення 2, 5, 3.4 з клавіатури.

    goal

    write ( "X = "),

    readint (X),

    nl,

    write ( "K = "),

    readint (K),

    nl,

    write ( "N = "),

    readreal (N),

    nl

    Z = (X + K) * N,

    write ( "Z = ", Z).

    Результат: 23,8

    Завдання 7.

    Реалізувати наведену програму з зовнішньої зв'язком, виконавши всі чотири арифметичні операції.

    predicates

    operation (symbol, real, real)

    clauses

    operation ("+", X, Y):-Z = X + Y,

    write (X ,"+", Y ,"=", Z),

    nl.

    operation ("-", X, Y):-Z = X-Y,

    write (X ,"-", Y ,"=", Z),

    nl.

    operation ("*", X, Y):-Z = X * Y,

    write (X ,"*", Y ,"=", Z),

    nl.

    operation ("/", X, Y):-Z = X/Y,

    write (X ,"/", Y ,"=", Z),

    nl.

    Результат: Z = 8 2 Z = 8-2 Z = 8 * 2 Z = 8/2

    Z = 10 Z = 6 Z = 16 Z = 4

    1 Solution 1 Solution 1 Solution 1 Solution

    2. Реалізувати цю ж програму з внутрішньою метою

    predicates

    operation (symbol, real, real)

    Goal

    write ( "Vvedite chisla "),

    nl,

    readreal (X),

    nl,

    readreal (Y),

    nl,

    operation ("+", X, Y),

    operation ("-", X, Y),

    operation ("*", X, Y),

    operation ( "/", X, Y).

    clauses

    operation ("+", X, Y):-Z = X + Y,

    write (X ,"+", Y ,"=", Z),

    nl.

    operation ("-", X, Y):-Z = X-Y,

    write (X ,"-", Y ,"=", Z),

    nl.

    operation ("*", X, Y):-Z = X * Y,

    write (X ,"*", Y ,"=", Z),

    nl.

    operation ("/", X, Y):-Z = X/Y,

    write (X ,"/", Y ,"=", Z),

    nl.

    Результат: Vvedite chisla

    2

    4

    2 +4 = 6

    2-4 =- 2

    2 * 4 = 8

    2/4 = 0,5

    Завдання 9.

    Реалізувати програму завдання 4 з новою метою, що використовує вбудований предикат fail, і проаналізувати отриманий результат.

    domains

    name = symbol

    predicates

    men (name)

    mama (name)

    sons (name, name)

    doughter (name, name)

    deda (name, name)

    brother (name, name).

    goal

    deda (X, "Vaciliy "),

    write (X, "Vaciliy "),

    nl.

    clauses

    men ( "Vaciliy ").

    men ( "Michail ").

    men ( "Maxim").

    mama ( "Olga ").

    sons ( "Michail", "Olga ").

    sons ( "Maxim", "Olga ").

    doughter ( "Olga", "Vasiliy ").

    deda (X, Y) : - men (X), men (Y), sons (X, Y), doughter (Z, Y), nl,

    write ( "", X), nl, fail.

    brother (X, Y): - men (X), men (Y), sons (X, Z), sons (Y, Z), X <> Y.

    Результат: Michail

    Maxim

    Завдання 10.

    Реалізувати програми обчислення суми таких рядів:

    1 + 2 + 3 + ... + 9 + 10

    2 + 4 + 6 + ... + 14 + 16

    10 + 9 + 8 + ... + 2 + 1

    1 + 3 + 5 + ... + 13 + 15

    domains

    number, sum = integer

    predicates

    sum (number, sum)

    goal

    write ( "Сума ряду: "),

    sum (1, sum), write (sum).

    clauses

    sum (11,0).

    sum (Number, Sum) :--

    New_number = Number 1,

    sum (New_number, Partial_sum),

    Sum = Number + Partial_sum.

    Результат: Сума ряду: 55

    domains

    number, sum = integer

    predicates

    sum (number, sum)

    goal

    write ( "Сума ряду: "),

    sum (2, sum), write (sum).

    clauses

    sum (18,0).

    sum (Number, Sum) :--

    New_number = Number 2,

    sum (New_number, Partial_sum),

    Sum = Number + Partial_sum.

    Результат: Сума ряду: 72

    domains

    number, sum = integer

    predicates

    sum (number, sum)

    goal

    write ( "Сума ряду: "),

    sum (9, sum), write (sum).

    clauses

    sum (0,11).

    sum (Number, Sum) :--

    New_number = Number-1,

    sum (New_number, Partial_sum),

    Sum = Number + Partial_sum

    Результат: Сума ряду: 55

    domains

    number, sum = integer

    predicates

    sum (number, sum)

    goal

    write ( "Сума ряду: "),

    sum (1, sum), write (sum).

    clauses

    sum (17,0).

    sum (Number, Sum) :--

    New_number = Number 2,

    sum (New_number, Partial_sum),

    Sum = Number + Partial_sum.

    Результат: Сума ряду: 64

    Завдання 12.

    Написати програму, що створює список міст. Виконати програму з різними внутрішніми і зовнішніми цілями.

    domains

    town_list = town *

    town = symbol

    predicates

    towns (town_list)

    goal

    towns ([A, B, C, D, E ]),

    write (A ,",", B ,",", C ,",", D ,",", E).

    clauses

    towns ([ "Kazan", "Nignekamsk", "Elabuga", "Bugulma", "Almetevsk"]).

    Результат: Kazan, Nignekamsk, Elabuga, Bugulma, Almetevsk

    Список літератури

    Для підготовки даної роботи були використані матеріали з сайту http://www.monax.ru/

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status