Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 17.05.2017
Сообщений: 45

Создание динамической базы данных Turbo Prolog 2.0

12.11.2017, 01:10. Показов 4788. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, делаю лабораторные работы по Turbo Prolog, столкнулась с таким заданием. Дан код:
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Domains
p_name,k_name, pos, college = string p_number, height, weight, nfl_exp = integer
Database
dplayer(p_name, k_name,p_number,pos, height,weight,nfl_exp, college)
Predicates repeat do_mbase
assert_database menu process(integer) clear_database
player(p_name, k_name,p_number,pos, height,weight,nfl_exp, college) error
Goal
do_mbase.
Clauses
repeat.
repeat:-repeat.
/*База данных футбол*/
player("Иванов Иван","Спартак",13,"з", 205,90,3, "ГГПИ").
player("Петров Петр","Динамо",96,"пз", 185,78,4, "ГТК").
player("Сидоров Денис","Локомотив",69,"в", 190,88,2, "ГТУ").
player("Васечкин Илья","Торпедо",5,"в", 195,80,5, "ГГПИ").
player("Алексеев Дима","ЦСКА",1,"н", 165,67,2, "ГТК").
player("Карпов Павел","Зенит",12,"н",170,74,1, "ГКК").
/*конец начальных данных*/ assert_database:-
player(P_name,K_name,P_number,Pos,Height,Weight,Nfl_exp,College), assertz(dplayer(P_name,K_name,P_number,Pos,Height,Weight,Nfl_exp,
College)),
fail. assert_database:-!.
 
clear_database:-
retract(dplayer(_,_,_,_,_,_,_,_)), fail.
clear_database:-!. do_mbase :-
assert_database,
makewindow(1,7,7," FOOTBALL DATABASE ",0,0,25,80),
menu, clear_database.
menu :-
repeat, clearwindow, nl,
write(" ************************************* "),nl, write(" * 1. Добавление нового игрока в БД * "),nl, write(" * 2. Удаление игрока из БД   * "),nl, write(" * 3. Просмотр данных    * "),nl,
write(" * 4. Выход из программы * "),nl, write(" ************************************* "),nl, write(" Пожалуйста, сделайте свой выбор 1, 2, 3 or 4 : "),
readint(Vibor),nl,process(Vibor),Vibor = 4,!.
/* Добавление информации об игроке в БД */ process(1) :-
makewindow(2,7,7,"Добавление данных",2,20,18,58),shiftwindow(2), write("Введите, пожалуйста:"),nl,
write("Имя игрока: "), readln(P_name), write("Название клуба: "), readln(K_name), write("Номер игрока: "), readint(P_num), write("Позицию: "), readln(Pos),
 
write("Рост: "), readint(Ht),
write("Вес: "), readint(Wt),
write("Стаж выступлений: "), readint(Exp), write("Название учебного заведения: "), readln(College),
assertz(dplayer(P_name, K_name, P_num,Pos,Ht,Wt,Exp, College)), write(P_name," добавлен в БД"), nl,!,
write("Press space bar. "), readchar(_), removewindow, shiftwindow(1).
/* Удаление */ process(2) :-
makewindow(3,7,7,"Удаление данных",10,30,7,40),shiftwindow(3), write("Введите имя удаляемого игрока: "), readln(P_name), retract(dplayer(P_name,_,_,_,_,_,_,_)),
write(P_name," удален из БД "), nl, !,
write("Press space bar."), readchar(_), removewindow, shiftwindow(1).
/* Просмотр данных об игроке*/ process(3) :-
makewindow(4,7,7," Просмотр ", 7,30,16,47), shiftwindow(4), write("Введите имя для просмотра: "), readln(P_name), dplayer(P_name,T_name,P_number,Pos,Ht,Wt,Exp,College),nl, write(" Имя игрока   : ",P_name),nl,
write(" Название клуба : ",T_name),nl, write(" Номер игрока : ",P_number),nl, write(" Позиция    : ",Pos),nl,
write(" Рост    : ",Ht), nl,
write(" Вес  : ",Wt),nl, write(" Стаж выступлений : ",Exp), nl,
write(" Учебное заведение   : ",College),nl, nl,!, write("Press space bar"), readchar(_), removewindow, shiftwindow(1).
process(3) :-
makewindow(5,7,7," Неудача ",14,7,5,60), shiftwindow(5), write("К сожалению, данных нет."),nl,
write("Извините, пока!"),nl,!, write("Press space bar."),readchar(_), removewindow,shiftwindow(1).
/* Выход */ process(4) :-
write("До новых встреч! "),readchar(_),exit.
/*Обработка ошибки*/ process(Vibor):-
Vibor<1, error; Vibor>5, error. error:-
write("Пожалуйста выберите число от 1 до 4"), write("(Press the spase bar to continue)"),readchar(_).
Задача состоит в следующем:
Модифицируйте программу, добавив в меню пункты:
1) Вывод списка игроков.
2) Сохранение данных в файл.
3) Выборка данных по 1 из трех критериев.
У меня получилось сразу сделать охранение бд в файл.
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
Domains
  p_name, k_name, pos, college = string
  p_number, height, weight, nfl_exp = integer
Database
  dplayer(p_name, k_name, p_number, pos, height, weight, nfl_exp, college)
  
  Predicates
    repeat
    do_mbase
    assert_database
    menu
    process(integer)
    clear_database
    player(p_name, k_name, p_number,pos,height,weight,nfl_exp,college)
    error
  Goal   
  do_mbase.
Clauses
  repeat.
  repeat if repeat.
      player("Ivanov Ivan", "Spartak",13,"centerdf",205,90,3,"GGPI").
      player("Petrov Petr", "Dinamo",96,"dfright",185,78,4,"GTK").
      player("Sidorov Denis","Locomotiv",69,"V",190,88,2,"GTU").
      player("Vasechkin Ilya","Torpedo",5,"V",195,80,5,"GGPI").
      player("Alekseev Dima","CKA",1,"n",165,67,2,"GTK").
      player("Karpov Pavel","Zenit",12,"n",170,74,1,"GKK").
      
        assert_database if
        player(P_name,K_name,P_number,Pos,Height,Weight,Nfl_exp,College),
        assertz(dplayer(P_name,K_name,P_number,Pos,Height,Weight,Nfl_exp,College)),fail.
        assert_database if !.
        
         clear_database if !.
          do_mbase if
            assert_database,
            makewindow(1,7,7," FOOTBALL DATABASE ",0,0,25,80),
            menu,
            clear_database.
        menu if 
             repeat,clearwindow,nl,
             write(" *********************************** "),nl,
             write(" * 1. Add new player in database   * "),nl,
             write(" * 2. Delete player of database    * "),nl,
             write(" * 3. Watching database            * "),nl,
             write(" * 4. Save Database                * "),nl,
             write(" * 5. Exit programm                * "),nl,
             write(" *********************************** "),nl,
             write(" Please, make your choice 1, 2, 3,4 or 5 : "),
             readint(Vibor),nl,process(Vibor),Vibor = 5,!.
             
                process(1) if
                          makewindow(2,7,7,"Dobavlenie dannix",2,20,18,58),shiftwindow(2),
                          write("Write, please:"),nl,
                          write("Player name: "), readln(P_name),
                          write("Name of club: "), readln(K_name),
                          write("Player number: "), readint(P_num),
                          write("Position: "), readln(Pos),
                          write("Height: "), readint(Ht),
                          write("Weight: "), readint(Wt),
                          write("Game years: "), readint(Exp),
                          write("Name of college: "), readln(College),
                          assertz(dplayer(P_name, K_name, P_num,Pos,Ht,Wt,Exp,College)),
                          write(P_name," Added in database"), nl,!,
                          write("Press space bar. "), readchar(_),
                          removewindow, shiftwindow(1).
                              process(2) if
                                        makewindow(3,7,7,"Delete databaase",10,30,7,40),shiftwindow(3),
                                        write("Write a delete player name: "), readln(P_name),
                                        retract(dplayer(P_name,_,_,_,_,_,_,_)),
                                        write(P_name," Deleted in database "), nl, !,
                                        write("Press space bar."), readchar(_), removewindow,
                                        shiftwindow(1).
                                        
                process(3) if makewindow(4,7,7," Watching ",7,30,16,47), shiftwindow(4),
                write(" Name for wattching: "), readln(P_name),
                dplayer(P_name,T_name,P_number,Pos,Ht,Wt,Exp,College),nl,
                write(" Player name   : ",P_name),nl,
                write(" Name of club  : ",T_name),nl,
                write(" Player number : ",P_number),nl,
                write(" Position      : ",Pos),nl,
                write(" Height        : ",Ht),nl,
                write(" Weight        : ",Wt),nl,
                write(" Game years    : ",Exp),nl,
                write(" University    : ",College),nl,nl,!,
                write(" Press space bar"), readchar(_),
                removewindow, shiftwindow(1).                   
     process(3) if
       makewindow(5,7,7," Unluck ",14,7,5,60), shiftwindow(5),
       write("Nope Database "),nl,
       write("Goodbuy "),nl,!,
       write("Press the space bar,"),readchar(_),
       removewindow,shiftwindow(1).
     process(4) if
     write("Enter filename: "), readln(Fname), save(Fname),menu.
       
     process(5) if 
         write(" See comeback "), readchar(_),exit.
         
           process(Vibor) if
             Vibor < 1, error; Vibor>6, error.
      error if 
          write("Please take a nubmer 1 to 5"),
          write(" (Press the space bar to continue)"),readchar(_).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.11.2017, 01:10
Ответы с готовыми решениями:

Формат файла базы данных Turbo Prolog
Выношу из платного раздела, чтобы было в тематике

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

Создание файла (базы данных) на примере готового листинга. SWI-Prolog
В этом коде подключается файл &quot;db.txt&quot;. Как правильно заполнить этот файл, чтоб программа функционировала? Какие в нужно заполнить поля и...

12
0 / 0 / 0
Регистрация: 17.05.2017
Сообщений: 45
12.11.2017, 02:41  [ТС]
Далее, я начала работать с другими заданиями.
Поиск из по 1 из критериев, вывод списка игроков
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
Domains
  p_name, k_name, pos, college = string
  p_number, height, weight, nfl_exp = integer
  list = int*
  
Database
  dplayer(p_name, k_name, p_number, pos, height, weight, nfl_exp, college)
  
  Predicates
    repeat
    do_mbase
    assert_database
    menu
    process(integer)
    clear_database
    player(p_name, k_name, p_number,pos,height,weight,nfl_exp,college)
    error
    typerec(char)
    findquation4(char)
    
    
    find(string)
  Goal   
  do_mbase.
Clauses
  repeat.
  repeat if repeat.
      player("Ivanov Ivan", "Spartak",13,"centerdf",205,90,3,"GGPI").
      player("Petrov Petr", "Dinamo",96,"dfright",185,78,4,"GTK").
      player("Sidorov Denis","Locomotiv",69,"V",190,88,2,"GTU").
      player("Vasechkin Ilya","Torpedo",5,"V",195,80,5,"GGPI").
      player("Alekseev Dima","CKA",1,"n",165,67,2,"GTK").
      player("Karpov Pavel","Zenit",12,"n",170,74,1,"GKK").
      
        assert_database if
        player(P_name,K_name,P_number,Pos,Height,Weight,Nfl_exp,College),
        assertz(dplayer(P_name,K_name,P_number,Pos,Height,Weight,Nfl_exp,College)),fail.
        assert_database if !.
        
         clear_database if !.
          do_mbase if
            assert_database,
            makewindow(1,7,7," FOOTBALL DATABASE ",0,0,25,80),
            menu,
            clear_database.
        menu if 
             repeat,clearwindow,nl,
             write(" *********************************** "),nl,
             write(" * 1. Add new player in database   * "),nl,
             write(" * 2. Delete player of database    * "),nl,
             write(" * 3. Watching database            * "),nl,
             write(" * 4. Find player                  * "),nl,
             write(" * 5. All players list             * "),nl,
             write(" * 6. Save Database                * "),nl,
             write(" * 7. Exit programm                * "),nl,
             write(" *********************************** "),nl,
             write(" Please, make your choice 1, 2, 3, 4, 5, 6 or 7 : "),
             readint(Vibor),nl,process(Vibor),Vibor = 7,!.
             
                process(1) if
                          makewindow(2,7,7,"Dobavlenie dannix",2,20,18,58),shiftwindow(2),
                          write("Write, please:"),nl,
                          write("Player name: "), readln(P_name),
                          write("Name of club: "), readln(K_name),
                          write("Player number: "), readint(P_num),
                          write("Position: "), readln(Pos),
                          write("Height: "), readint(Ht),
                          write("Weight: "), readint(Wt),
                          write("Game years: "), readint(Exp),
                          write("Name of college: "), readln(College),
                          assertz(dplayer(P_name, K_name, P_num,Pos,Ht,Wt,Exp,College)),
                          write(P_name," Added in database"), nl,!,
                          write("Press space bar. "), readchar(_),
                          removewindow, shiftwindow(1).
                              process(2) if
                                        makewindow(3,7,7,"Delete databaase",10,30,7,40),shiftwindow(3),
                                        write("Write a delete player name: "), readln(P_name),
                                        retract(dplayer(P_name,_,_,_,_,_,_,_)),
                                        write(P_name," Deleted in database "), nl, !,
                                        write("Press space bar."), readchar(_), removewindow,
                                        shiftwindow(1).
                                        
                process(3) if makewindow(4,7,7," Watching ",7,30,16,47), shiftwindow(7),
                write(" Name for wattching: "), readln(P_name),
                dplayer(P_name,T_name,P_number,Pos,Ht,Wt,Exp,College),nl,
                write(" Player name   : ",P_name),nl,
                write(" Name of club  : ",T_name),nl,
                write(" Player number : ",P_number),nl,
                write(" Position      : ",Pos),nl,
                write(" Height        : ",Ht),nl,
                write(" Weight        : ",Wt),nl,
                write(" Game years    : ",Exp),nl,
                write(" University    : ",College),nl,nl,!,
                write(" Press space bar"), readchar(_),
                removewindow, shiftwindow(1).                   
     process(3) if
       makewindow(5,7,7," Unluck ",14,7,5,60), shiftwindow(5),
       write("Nope Database "),nl,
       write("Goodbuy "),nl,!,
       write("Press the space bar,"),readchar(_),
       removewindow,shiftwindow(1).
       process(4) if
       clearwindow, typerec(N),findquation4(N),menu.
       typerec(N):- clearwindow, write("Information about Football players"),nl,readint(N).
             findquation4('1'):-clearwindow, write(" 1- Find player on position"),nl,readint(N), find(N).
             
              find(1):- clearwindow, write("Write player position"), readchar(pos),
                dplayer(p_name, k_name, p_number, pos, height, weight, nfl_exp, college), write("Football player: "),
                write(P_name),nl, write(" Play in club: "),write(k_name),nl, write("Playing:"),write(Exp),nl,
                write("Height:"),write(Ht),nl,write("Weight:"),write(Wt),nl,write("Player number:"),write(P_number).
               find(1):- write("Not founded").
  
      process(5) if
     makewindow(2,7,7,"List of all players",2,20,18,58),shiftwindow(1),
    findall(_,player(_,_,_,_,_,_,_,_),_).
     readchar(_),removewindow,shiftwindow(1).
       
     process(6) if
     makewindow(2,7,7,"Save a database",2,20,18,59),shiftwindow(1),
     write("Enter filename: "), readln(Fname), save(Fname),removewindow,shiftwindow(7).
       
     process(7) if 
         write(" See comeback "), readchar(_),exit.
         
           process(Vibor) if
             Vibor < 1, error; Vibor>8, error.
      error if 
          write("Please take a nubmer 1 to 7"),
          write(" (Press the space bar to continue)"),readchar(_).
Копилятор вывел ошибку 415:Clauses for the same predicate should be grouped.
Плохо понимаю работу со списками. Делала по найденному примеру из интернета и лекций на ДСО. Пример взяла отсюда . Помогите,пожалуйста,сделать работу.

Добавлено через 1 час 30 минут
Добавила предикаты findPos,findUnik,findYear. Результат поиска для вывода по позициям, по университетам и по стажу. Добавила дополнительные выборки для *особого* поиска, но ошибка 415 также осталась и я думаю еще тут много ошибок...
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
Domains
  p_name, k_name, pos, college = string
  p_number, height, weight, nfl_exp = integer
  list = int*
  
Database
  dplayer(p_name, k_name, p_number, pos, height, weight, nfl_exp, college)
  
  Predicates
    repeat
    do_mbase
    assert_database
    menu
    process(integer)
    clear_database
    player(p_name, k_name, p_number,pos,height,weight,nfl_exp,college)
    error
    typerec(char)
    findquation4(char)
    findPos(symbol)
    findUnik(symbol)
    findYear(integer)
    
    
    
    find(string)
  Goal   
  do_mbase.
Clauses
  repeat.
  repeat if repeat.
      player("Ivanov Ivan", "Spartak",13,"centerdf",205,90,3,"GGPI").
      player("Petrov Petr", "Dinamo",96,"dfright",185,78,4,"GTK").
      player("Sidorov Denis","Locomotiv",69,"V",190,88,2,"GTU").
      player("Vasechkin Ilya","Torpedo",5,"V",195,80,5,"GGPI").
      player("Alekseev Dima","CKA",1,"n",165,67,2,"GTK").
      player("Karpov Pavel","Zenit",12,"n",170,74,1,"GKK").
      
        assert_database if
        player(P_name,K_name,P_number,Pos,Height,Weight,Nfl_exp,College),
        assertz(dplayer(P_name,K_name,P_number,Pos,Height,Weight,Nfl_exp,College)),fail.
        assert_database if !.
        
         clear_database if !.
          do_mbase if
            assert_database,
            makewindow(1,7,7," FOOTBALL DATABASE ",0,0,25,80),
            menu,
            clear_database.
        menu if 
             repeat,clearwindow,nl,
             write(" *********************************** "),nl,
             write(" * 1. Add new player in database   * "),nl,
             write(" * 2. Delete player of database    * "),nl,
             write(" * 3. Watching database            * "),nl,
             write(" * 4. Find player                  * "),nl,
             write(" * 5. All players list             * "),nl,
             write(" * 6. Save Database                * "),nl,
             write(" * 7. Exit programm                * "),nl,
             write(" *********************************** "),nl,
             write(" Please, make your choice 1, 2, 3, 4, 5, 6 or 7 : "),
             readint(Vibor),nl,process(Vibor),Vibor = 7,!.
             
                process(1) if
                          makewindow(2,7,7,"Dobavlenie dannix",2,20,18,58),shiftwindow(2),
                          write("Write, please:"),nl,
                          write("Player name: "), readln(P_name),
                          write("Name of club: "), readln(K_name),
                          write("Player number: "), readint(P_num),
                          write("Position: "), readln(Pos),
                          write("Height: "), readint(Ht),
                          write("Weight: "), readint(Wt),
                          write("Game years: "), readint(Exp),
                          write("Name of college: "), readln(College),
                          assertz(dplayer(P_name, K_name, P_num,Pos,Ht,Wt,Exp,College)),
                          write(P_name," Added in database"), nl,!,
                          write("Press space bar. "), readchar(_),
                          removewindow, shiftwindow(1).
                              process(2) if
                                        makewindow(3,7,7,"Delete databaase",10,30,7,40),shiftwindow(3),
                                        write("Write a delete player name: "), readln(P_name),
                                        retract(dplayer(P_name,_,_,_,_,_,_,_)),
                                        write(P_name," Deleted in database "), nl, !,
                                        write("Press space bar."), readchar(_), removewindow,
                                        shiftwindow(1).
                                        
                process(3) if makewindow(4,7,7," Watching ",7,30,16,47), shiftwindow(7),
                write(" Name for wattching: "), readln(P_name),
                dplayer(P_name,T_name,P_number,Pos,Ht,Wt,Exp,College),nl,
                write(" Player name   : ",P_name),nl,
                write(" Name of club  : ",T_name),nl,
                write(" Player number : ",P_number),nl,
                write(" Position      : ",Pos),nl,
                write(" Height        : ",Ht),nl,
                write(" Weight        : ",Wt),nl,
                write(" Game years    : ",Exp),nl,
                write(" University    : ",College),nl,nl,!,
                write(" Press space bar"), readchar(_),
                removewindow, shiftwindow(1).                   
     process(3) if
       makewindow(5,7,7," Unluck ",14,7,5,60), shiftwindow(5),
       write("Nope Database "),nl,
       write("Goodbuy "),nl,!,
       write("Press the space bar,"),readchar(_),
       removewindow,shiftwindow(1).
       process(4) if
       clearwindow, typerec(N),findquation4(N),menu.
       typerec(N):- clearwindow, write("Information about Football players"),nl,readint(N).
             findquation4('1'):-clearwindow, write(" 1- Find player on position"),nl,readint(N), find(N).
             
              find(1):- clearwindow, write("Write player position"), readchar(pos),
                dplayer(p_name, k_name, p_number, pos, height, weight, nfl_exp, college), write("Football player: "),
                write(P_name),nl, write(" Play in club: "),write(k_name),nl, write("Playing:"),write(Exp),nl,
                write("Height:"),write(Ht),nl,write("Weight:"),write(Wt),nl,write("Player number:"),write(P_number).
               find(1):- write("Not founded").
               find(2)if clearwindow,write(" Write game years for find player:"),readint(Exp),
               dplayer(p_name, k_name, p_number, pos, height, weight, nfl_exp, college), write("Football player: "),
                write(P_name),nl, write(" Play in club: "),write(k_name),nl,write("Position:"),write(Pos),nl,
                write("Height:"),write(Ht),nl,write("Weight:"),write(Wt),nl,write("Player number:"),write(P_number).
               find(2) if write("Not founded").
               find(3) if clearwindow, write(" Write University player:"),readchar(College),
               dplayer(p_name, k_name, p_number, pos, height, weight, nfl_exp, college),
                write("Football player: "),
                write(P_name),nl, write(" Play in club: "),write(k_name),nl,write("Position:"),write(Pos),nl,
                write("Height:"),write(Ht),nl,write("Weight:"),write(Wt),nl,write("Player number:"),write(P_number),nl
                write("University:"),write(college).
               find(3) if write("Not founded").
       findPos(pos) if dplayer(_,_,_,pos,_,_,_,_).
       findYear(Exp) if dplayer(_,_,_,_,_,_,Exp,_).
       findUnik(College) if dplayer(_,_,_,_,_,_,_,College).   
               
  
      process(5) if
     makewindow(2,7,7,"List of all players",2,20,18,58),shiftwindow(1),
    findall(_,player(_,_,_,_,_,_,_,_),_).
     readchar(_),removewindow,shiftwindow(1).
       
     process(6) if
     makewindow(2,7,7,"Save a database",2,20,18,59),shiftwindow(1),
     write("Enter filename: "), readln(Fname), save(Fname),removewindow,shiftwindow(7).
       
     process(7) if 
         write(" See comeback "), readchar(_),exit.
         
           process(Vibor) if
             Vibor < 1, error; Vibor>8, error.
      error if 
          write("Please take a nubmer 1 to 7"),
          write(" (Press the space bar to continue)"),readchar(_).
0
 Аватар для Case-Man
167 / 107 / 22
Регистрация: 02.01.2012
Сообщений: 596
12.11.2017, 10:44
Цитата Сообщение от Jumi17 Посмотреть сообщение
Копилятор вывел ошибку 415:Clauses for the same predicate should be grouped.
В данном случае это просто ошибка в синтаксисе. Что у Вас делает точка в конце строки 135 последнего кода?
0
0 / 0 / 0
Регистрация: 17.05.2017
Сообщений: 45
12.11.2017, 12:48  [ТС]
В 125 пропустила запятую
Prolog
1
write("Height:"),write(Ht),nl,write("Weight:"),write(Wt),nl,write("Player number:"),write(P_number),nl,
В 135 ошибочная точка.
Prolog
1
findall(_,player(_,_,_,_,_,_,_,_),_),
Ошибка осталась такая же,(Копилятор вывел ошибку 415:Clauses for the same predicate should be grouped.)
Доходит до 5 процесса, выводя ошибку выше.

Добавлено через 7 минут
Case-Man,
0
 Аватар для Case-Man
167 / 107 / 22
Регистрация: 02.01.2012
Сообщений: 596
12.11.2017, 18:03
Строки 127-130 у Вас задают отдельные предикаты, и они МЕЖДУ правилами предиката process.
Перенесите их куда-нибудь, например, в конец файла.

Добавлено через 23 минуты
Там на самом деле кусок побольше нужно перенести, начиная со строки 108
0
0 / 0 / 0
Регистрация: 17.05.2017
Сообщений: 45
12.11.2017, 18:08  [ТС]
Перенесла все между Process Вниз.
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
Domains
  p_name, k_name, pos, college = string
  p_number, height, weight, nfl_exp = integer
  list = int*
  
Database
  dplayer(p_name, k_name, p_number, pos, height, weight, nfl_exp, college)
  
  Predicates
    repeat
    do_mbase
    assert_database
    menu
    process(integer)
    clear_database
    player(p_name, k_name, p_number,pos,height,weight,nfl_exp,college)
    error
    typerec(char)
    findquation4(char)
    findPos(symbol)
    findUnik(symbol)
    findYear(integer)
    
    
    
    find(string)
  Goal   
  do_mbase.
Clauses
  repeat.
  repeat if repeat.
      player("Ivanov Ivan", "Spartak",13,"centerdf",205,90,3,"GGPI").
      player("Petrov Petr", "Dinamo",96,"dfright",185,78,4,"GTK").
      player("Sidorov Denis","Locomotiv",69,"V",190,88,2,"GTU").
      player("Vasechkin Ilya","Torpedo",5,"V",195,80,5,"GGPI").
      player("Alekseev Dima","CKA",1,"n",165,67,2,"GTK").
      player("Karpov Pavel","Zenit",12,"n",170,74,1,"GKK").
      
        assert_database if
        player(P_name,K_name,P_number,Pos,Height,Weight,Nfl_exp,College),
        assertz(dplayer(P_name,K_name,P_number,Pos,Height,Weight,Nfl_exp,College)),fail.
        assert_database if !.
        
         clear_database if !.
          do_mbase if
            assert_database,
            makewindow(1,7,7," FOOTBALL DATABASE ",0,0,25,80),
            menu,
            clear_database.
        menu if 
             repeat,clearwindow,nl,
             write(" *********************************** "),nl,
             write(" * 1. Add new player in database   * "),nl,
             write(" * 2. Delete player of database    * "),nl,
             write(" * 3. Watching database            * "),nl,
             write(" * 4. Find player                  * "),nl,
             write(" * 5. All players list             * "),nl,
             write(" * 6. Save Database                * "),nl,
             write(" * 7. Exit programm                * "),nl,
             write(" *********************************** "),nl,
             write(" Please, make your choice 1, 2, 3, 4, 5, 6 or 7 : "),
             readint(Vibor),nl,process(Vibor),Vibor = 7,!.
             
                process(1) if
                          makewindow(2,7,7,"Dobavlenie dannix",2,20,18,58),shiftwindow(2),
                          write("Write, please:"),nl,
                          write("Player name: "), readln(P_name),
                          write("Name of club: "), readln(K_name),
                          write("Player number: "), readint(P_num),
                          write("Position: "), readln(Pos),
                          write("Height: "), readint(Ht),
                          write("Weight: "), readint(Wt),
                          write("Game years: "), readint(Exp),
                          write("Name of college: "), readln(College),
                          assertz(dplayer(P_name, K_name, P_num,Pos,Ht,Wt,Exp,College)),
                          write(P_name," Added in database"), nl,!,
                          write("Press space bar. "), readchar(_),
                          removewindow, shiftwindow(1).
                              process(2) if
                                        makewindow(3,7,7,"Delete databaase",10,30,7,40),shiftwindow(3),
                                        write("Write a delete player name: "), readln(P_name),
                                        retract(dplayer(P_name,_,_,_,_,_,_,_)),
                                        write(P_name," Deleted in database "), nl, !,
                                        write("Press space bar."), readchar(_), removewindow,
                                        shiftwindow(1).
                                        
                process(3) if makewindow(4,7,7," Watching ",7,30,16,47), shiftwindow(7),
                write(" Name for wattching: "), readln(P_name),
                dplayer(P_name,T_name,P_number,Pos,Ht,Wt,Exp,College),nl,
                write(" Player name   : ",P_name),nl,
                write(" Name of club  : ",T_name),nl,
                write(" Player number : ",P_number),nl,
                write(" Position      : ",Pos),nl,
                write(" Height        : ",Ht),nl,
                write(" Weight        : ",Wt),nl,
                write(" Game years    : ",Exp),nl,
                write(" University    : ",College),nl,nl,!,
                write(" Press space bar"), readchar(_),
                removewindow, shiftwindow(1).                   
     process(3) if
       makewindow(5,7,7," Unluck ",14,7,5,60), shiftwindow(5),
       write("Nope Database "),nl,
       write("Goodbuy "),nl,!,
       write("Press the space bar,"),readchar(_),
       removewindow,shiftwindow(1).
       process(4) if
       clearwindow, typerec(N),findquation4(N),menu.
      
               
  
      process(5) if
     makewindow(2,7,7,"List of all players",2,20,18,58),shiftwindow(1),
    findall(_,player,(_,_,_,_,_,_,_,_),_),
     readchar(_),removewindow,shiftwindow(1).
       
     process(6) if
     makewindow(2,7,7,"Save a database",2,20,18,59),shiftwindow(1),
     write("Enter filename: "), readln(Fname), save(Fname),removewindow,shiftwindow(7).
       
     process(7) if 
         write(" See comeback "), readchar(_),exit.
         
           process(Vibor) if
             Vibor < 1, error; Vibor>8, error.
      error if 
          write("Please take a nubmer 1 to 7"),
          write(" (Press the space bar to continue)"),readchar(_).
            typerec(N):- clearwindow, write("Information about Football players"),nl,readint(N).
             findquation4('1'):-clearwindow, write(" 1- Find player on position"),nl,readint(N), find(N).
             
              find(1):- clearwindow, write("Write player position"), readchar(pos),
                dplayer(p_name, k_name, p_number, pos, height, weight, nfl_exp, college), write("Football player: "),
                write(P_name),nl, write(" Play in club: "),write(k_name),nl, write("Playing:"),write(Exp),nl,
                write("Height:"),write(Ht),nl,write("Weight:"),write(Wt),nl,write("Player number:"),write(P_number).
               find(1):- write("Not founded").
               find(2)if clearwindow,write(" Write game years for find player:"),readint(Exp),
               dplayer(p_name, k_name, p_number, pos, height, weight, nfl_exp, college), write("Football player: "),
                write(P_name),nl, write(" Play in club: "),write(k_name),nl,write("Position:"),write(Pos),nl,
                write("Height:"),write(Ht),nl,write("Weight:"),write(Wt),nl,write("Player number:"),write(P_number).
               find(2) if write("Not founded").
               find(3) if clearwindow, write(" Write University player:"),readchar(College),
               dplayer(p_name, k_name, p_number, pos, height, weight, nfl_exp, college),
                write("Football player: "),
                write(P_name),nl, write(" Play in club: "),write(k_name),nl,write("Position:"),write(Pos),nl,
                write("Height:"),write(Ht),nl,write("Weight:"),write(Wt),nl,write("Player number:"),write(P_number),nl,
                write("University:"),write(college).
               find(3) if write("Not founded").
       findPos(pos) if dplayer(_,_,_,pos,_,_,_,_).
       findYear(Exp) if dplayer(_,_,_,_,_,_,Exp,_).
       findUnik(College) if dplayer(_,_,_,_,_,_,_,College).
410 Variable expected. В строке
Prolog
1
findall(_,player,(_,_,_,_,_,_,_,_),_),
это 113 строка
0
 Аватар для Case-Man
167 / 107 / 22
Регистрация: 02.01.2012
Сообщений: 596
12.11.2017, 20:46
Простите, а что, по Вашему мнению, должен делать этот предикат?
0
3 / 3 / 1
Регистрация: 22.06.2016
Сообщений: 191
12.11.2017, 21:35
111
0
0 / 0 / 0
Регистрация: 17.05.2017
Сообщений: 45
12.11.2017, 23:58  [ТС]
Case-Man, Я хотела сделать автоматический поиск всех игроков, а потом вывести их списком в окне

Добавлено через 2 часа 8 минут
Сделала заново, помогите,пожалуйста с выводом списка игроков ( process(6) ). Я не знаю как правильно сделать вывод списка всех игроков. Получается,если я добавляю игроков и сохраняю через 4 процесс, то игроки сохраняются. А 6 процесс список внутри файла не обновляется. Очень прощу помочь с этим)
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
Domains
  p_name, k_name, pos, college = string
  p_number, height, weight, nfl_exp = integer
  file = f
Database
  dplayer(p_name, k_name, p_number, pos, height, weight, nfl_exp, college)
  
  Predicates
    repeat
    do_mbase
    assert_database
    menu
    process(integer)
    clear_database
    player(p_name, k_name, p_number,pos,height,weight,nfl_exp,college)
    error
  Goal   
  do_mbase.
Clauses
  repeat.
  repeat if repeat.
      player("Ivanov Ivan", "Spartak",13,"centerdf",205,90,3,"GGPI").
      player("Petrov Petr", "Dinamo",96,"dfright",185,78,4,"GTK").
      player("Sidorov Denis","Locomotiv",69,"V",190,88,2,"GTU").
      player("Vasechkin Ilya","Torpedo",5,"V",195,80,5,"GGPI").
      player("Alekseev Dima","CKA",1,"n",165,67,2,"GTK").
      player("Karpov Pavel","Zenit",12,"n",170,74,1,"GKK").
      
        assert_database if
        player(P_name,K_name,P_number,Pos,Height,Weight,Nfl_exp,College),
        assertz(dplayer(P_name,K_name,P_number,Pos,Height,Weight,Nfl_exp,College)),fail.
        assert_database if !.
        
         clear_database if !.
          do_mbase if
            assert_database,
            makewindow(1,7,7," FOOTBALL DATABASE ",0,0,25,80),
            menu,
            clear_database.
        menu if 
             repeat,clearwindow,nl,
             write(" *********************************** "),nl,
             write(" * 1. Add new player in database   * "),nl,
             write(" * 2. Delete player of database    * "),nl,
             write(" * 3. Watching database            * "),nl,
             write(" * 4. Save a database              * "),nl,
             write(" * 5. Find player on position      * "),nl,
             write(" * 6. Watchin list database        * "),nl,
             write(" * 7. Exit programm                * "),nl,
             write(" *********************************** "),nl,
             write(" Please, make your choice 1, 2, 3, 4, 5, 6, 7 :  "),
             readint(Vibor),nl,process(Vibor),Vibor = 7,!.
                
                process(1) if
                          makewindow(2,7,7,"Dobavlenie dannix",2,20,18,58),shiftwindow(2),
                          write("Write, please:"),nl,
                          write("Player name: "), readln(P_name),
                          write("Name of club: "), readln(K_name),
                          write("Player number: "), readint(P_num),
                          write("Position: "), readln(Pos),
                          write("Height: "), readint(Ht),
                          write("Weight: "), readint(Wt),
                          write("Game years: "), readint(Exp),
                          write("Name of college: "), readln(College),
                          assertz(dplayer(P_name, K_name, P_num,Pos,Ht,Wt,Exp,College)),
                          write(P_name," Added in database"), nl,!,
                          write("Press space bar. "), readchar(_),
                          removewindow, shiftwindow(1).
                              process(2) if
                                        makewindow(3,7,7,"Delete databaase",10,30,7,40),shiftwindow(3),
                                        write("Write a delete player name: "), readln(P_name),
                                        retract(dplayer(P_name,_,_,_,_,_,_,_)),
                                        write(P_name," Deleted in database "), nl, !,
                                        write("Press space bar."), readchar(_), removewindow,
                                        shiftwindow(1).
                                        
                process(3) if makewindow(4,7,7," Watching ",7,30,16,47), shiftwindow(4),
                write(" Name for wattching: "), readln(P_name),
                dplayer(P_name,K_name,P_number,Pos,Heightt,Weight,Nfl_exp,College),nl,
                write(" Player name   : ",P_name),nl,
                write(" Name of club  : ",K_name),nl,
                write(" Player number : ",P_number),nl,
                write(" Position      : ",Pos),nl,
                write(" Height        : ",height),nl,
                write(" Weight        : ",weight),nl,
                write(" Game years    : ",Nfl_exp),nl,
                write(" University    : ",College),nl,nl,!,
                write(" Press space bar"), readchar(_),
                removewindow, shiftwindow(1).                   
     process(3) if
       makewindow(5,7,7," Unluck ",14,7,5,60), shiftwindow(5),
       write("Nope Database "),nl,
       write("Goodbuy "),nl,!,
       write("Press the space bar."),readchar(_),
       removewindow,shiftwindow(1).
       
       process(4) if
       makewindow(4,7,7," Save database ",7,30,16,47),shiftwindow(4),
       write("Enter filename: "),readln(Fname), save(Fname),
       write(" Saved "),nl,
       write("Press the space bar."),readchar(_),removewindow,shiftwindow(1).
       
     process(5) if
     makewindow(2,7,7," Find player on position ",2,20,18,58),shiftwindow(2),
     write("Write a player position: "), readln(Pos),
     dplayer(P_name, K_name, P_number, Pos, Height, Weight, Nfl_exp, College),
     write("Player name: ",P_name),nl,
     write("Club igroka: ",K_name),nl,
     write("Player number: ",P_number),nl,
     write("Player position: ",Pos),nl,
     write("Height: ",Height),nl,
     write("Weight: ",Weight),nl,
     write("Staz: ",Nfl_exp),nl,
     write("University: ",College),nl,!,
     write("Press the space bar"),
     readchar(_),removewindow,shiftwindow(1).
      process(5) if 
      makewindow(5,7,7," Unluck ",14,7,5,60), shiftwindow(5),
       write("Nope Database "),nl,
       write("Goodbuy "),nl,!,
       write("Press the space bar."),readchar(_),
       removewindow,shiftwindow(1).
      
     process(6) if
    makewindow(2,7,7,"Spisok vsex igrokov",2,20,18,58),shiftwindow(2),
    existfile("database.ddb"),
    consult("database.ddb"),!,
    write("Spisok igrokov updated v DATABASE.DAT"),nl,
    write("Open file the Database.DAT"),
    readchar(_),removewindow,shiftwindow(2).
    
    process(6) if 
    makewindow(2,7,7,"Spisok vsex igrokov",2,20,18,58),shiftwindow(2),
       openwrite(f,"database.ddb"),
       closefile(f),!,
       write("Spisok igrokov soxhanen v DATABASE.DAT"),readchar(_),removewindow,shiftwindow(2).
       
     process(7) if 
         write(" See comeback "), readchar(_),exit.
         
           process(Vibor) if
             Vibor < 1, error; Vibor>8, error.
      error if 
          write("Please take a nubmer 1 to 7"),
          write(" (Press the space bar to continue)"),readchar(_).
0
 Аватар для Case-Man
167 / 107 / 22
Регистрация: 02.01.2012
Сообщений: 596
13.11.2017, 00:47
Вывод информации из базы делается двумя основными приёмами.

1) Прямая выборка из базы:
Prolog
1
2
3
4
5
6
printDatabase :-
  player(X,Y,Z...), % сколько их там у Вас, не знаю
  % потом можно сделать какие-то проверки
  write(X,Y,Z..), % выводим одну строку
  fail. % завершаем ветку неуспехом - переход по базе
printDatabase.  % вторая ветка выполнится, когда база кончится
2) Через список (на мой взгляд, сложнее)
Prolog
1
2
3
printDatabase :- 
  findal(X, collect(X), L), % собрать в список некоторую информацию из базы
  printList(L).  % напечатать полученный список
Я бы рекомендовал печатать "в лоб":
- выбрали
- напечатали
- сделали откат для перехода к новой записи
1
0 / 0 / 0
Регистрация: 17.05.2017
Сообщений: 45
13.11.2017, 17:45  [ТС]
Prolog
1
2
3
4
5
6
printDatabase :-
  player(X,Y,Z...), % сколько их там у Вас, не знаю
  % потом можно сделать какие-то проверки
  write(X,Y,Z..), % выводим одну строку
  fail. % завершаем ветку неуспехом - переход по базе
printDatabase.  % вторая ветка выполнится, когда база кончится

Case-Man, Player(X,Y,Z) Что такое X Y Z? Это просто буквенное присвоение свойства к признаку?

Добавлено через 2 минуты
Case-Man,
Prolog
1
2
3
4
5
6
printDatabase :-
  player(X,Y,Z...), % сколько их там у Вас, не знаю
  % потом можно сделать какие-то проверки
  write(X,Y,Z..), % выводим одну строку
  fail. % завершаем ветку неуспехом - переход по базе
printDatabase.  % вторая ветка выполнится, когда база кончится
Player(X,Y,Z) Что такое X Y Z? Это просто буквенное присвоение свойства к признаку?
0
 Аватар для Case-Man
167 / 107 / 22
Регистрация: 02.01.2012
Сообщений: 596
13.11.2017, 20:55
Цитата Сообщение от Jumi17 Посмотреть сообщение
Это просто буквенное присвоение свойства к признаку?
В Прологе нет присвоения, есть сопоставление и связывание.
Но фактически да: в результате перечисленные переменные по порядку сопоставятся с теми признаками, которые заданы в очередной записи базы. И потом их можно вывести в нужном порядке и формате
1
0 / 0 / 0
Регистрация: 17.05.2017
Сообщений: 45
13.11.2017, 22:08  [ТС]
Я все поняла, спасибо большое. Сделала через Findall и все заработало в конечном итоге.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.11.2017, 22:08
Помогаю со студенческими работами здесь

Как переделать программу написанную на Turbo-Prolog в SWI-Prolog?
Ребята подскажите пожалуйста как переделать эту программу написанную на Turbo-Prolog в SWI-Prolog? domains i=integer il=i* ...

Пожалуйста, помоите переделать программу с Turbo Prolog на Visual Prolog
DOMAINS l_i=integer* l_s=string* i=integer s=string c=char structura=str(i,s) %Структура Порода-Параметры и его список ...

Из Turbo Prolog в Visual Prolog - где будут отличия в коде?
ребята ,помогите. есть прога на турбо прологе,а нужно отредактировать под visual prolog 7.5. Что изменится? Где отличия?.. ниже...

В Turbo-Prolog есть возможность описать Goal. Как это реализовано в SWI-Prolog
Здравствуйте. в Turbo-Prolog есть возможность описать Goal: Goal father(X,_), write(X). И ответ мы получим сразу при запуске...

Поездная бригада состоит из кондуктора, проводника, машиниста и помощника машиниста
Может у кого есть исходни на Prolog ЗЫ заранее спаисбо)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru