| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Другие языки > Prolog, база данных |
| Автор: svs888 19.5.2011, 10:51 |
| Задача: Составить базу данных об учащихся, предусмотрев поля: Ф.И.О., предметы по выбору, экзаменационные оценки по каждому из них. Составить программу, позволяющую -вывести полный список учащихся, -список учащихся, выбравших данный предмет, -список учащихся, сдавших все экзамены на 4 и 5. domains name,predm,marks=string file=f database stud(name,predm,marks) predicates subj(string) qua(string) m(char) srch(string,string) vse_stud menu start clauses vse_stud:-stud(S,SS,_),srch(S,SS),write(S),nl,fail. srch(S,SS):-stud(S,N,_),!,N=SS,!. qua(S):-stud(S,_,N),str_int(N,M),M<>4,M<>5,!. subj(SS) :-stud(S,SS,_),write(S," "),nl,fail. subj(_):-!. menu:-clearwindow, write("1-sdali na 4 i 5"),nl, write ("2-vivod po predmety"),nl, write("3-dobavlenie novoi zapisi"),nl, write("4-izmenenie dannyx"),nl, write("5-ydalit stud is basy"),nl, write("6-vivod vsex stud"),nl, write("0-vihod"),nl,readchar©,m©. m('1'):-clearwindow, stud(S,SS,_),srch(S,SS),NOT(qua(S)), write(S),nl,fail,menu. m('2'):-clearwindow, write("write predmet: "),readln(SS),!, stud(S,SS,_),srch(S,SS), subj(SS),menu,!. m('3'):-clearwindow, write("Vvedite famil stud"),nl,readln(name), write("Vvedite ego predmet"),nl,readln(predm), write("Vvedite ocenky"),nl,readln(marks), assert(stud(name,predm,marks)),menu. m('4'):-clearwindow, write("Vvedite famil stud"),nl,readln(name), write("Vvedite ego predm"),nl,readln(predm), write("Vvedite novuy ocenky"),nl,readln(marks), assert(stud(name,predm,marks)),menu. m('5'):-clearwindow, write("Ykazite styd, kotor nado delete"),nl, readln(name),retract(stud(_,_,_)),menu. m('6'):-clearwindow,vse_stud;readchar(_),menu. m('0'):-save("Stud.ddb"),retractall(_). m(_):-menu. start:-existfile("Stud.ddb"),!,consult("Stud.ddb"),menu. start:-openwrite(f,"Stud.ddb"),closefile(f),menu. Goal start выдает ошибку здесь: m('3'):-clearwindow, write("Vvedite famil stud"),nl,readln(name), говорит: 703 This flow pattern doesn’t exist. В чем ошибка? подскажите, пожалуйста. Ошибку нашла: переменные с заглавной буквы должны быть....исправила, но все равно не работает, выводит меню и зависает((( |