:- initialization(main).
main :- write('Hello, World!').

grade(102,'Петров','Логическое программирование',4).
grade(102,'Петров','Математический анализ',2).
grade(102,'Петров','Функциональное программирование',3).
grade(102,'Петров','Информатика',5).
grade(102,'Петров','Английский язык',5).
grade(102,'Петров','Психология',4).
grade(101,'Петровский','Логическое программирование',3).
grade(101,'Петровский','Математический анализ',2).
grade(101,'Петровский','Функциональное программирование',3).
grade(101,'Петровский','Информатика',4).
grade(101,'Петровский','Английский язык',5).
grade(101,'Петровский','Психология',4).
grade(104,'Иванов','Логическое программирование',3).
grade(104,'Иванов','Математический анализ',4).
grade(104,'Иванов','Функциональное программирование',4).
grade(104,'Иванов','Информатика',5).
grade(104,'Иванов','Английский язык',3).
grade(104,'Иванов','Психология',4).
grade(102,'Ивановский','Логическое программирование',4).
grade(102,'Ивановский','Математический анализ',3).
grade(102,'Ивановский','Функциональное программирование',4).
grade(102,'Ивановский','Информатика',4).
grade(102,'Ивановский','Английский язык',4).
grade(102,'Ивановский','Психология',2).
grade(104,'Запорожцев','Логическое программирование',4).
grade(104,'Запорожцев','Математический анализ',5).
grade(104,'Запорожцев','Функциональное программирование',4).
grade(104,'Запорожцев','Информатика',4).
grade(104,'Запорожцев','Английский язык',3).
grade(104,'Запорожцев','Психология',4).
grade(101,'Сидоров','Логическое программирование',2).
grade(101,'Сидоров','Математический анализ',3).
grade(101,'Сидоров','Функциональное программирование',4).
grade(101,'Сидоров','Информатика',4).
grade(101,'Сидоров','Английский язык',4).
grade(101,'Сидоров','Психология',3).
grade(103,'Сидоркин','Логическое программирование',4).
grade(103,'Сидоркин','Математический анализ',3).
grade(103,'Сидоркин','Функциональное программирование',5).
grade(103,'Сидоркин','Информатика',4).
grade(103,'Сидоркин','Английский язык',4).
grade(103,'Сидоркин','Психология',3).
grade(102,'Биткоинов','Логическое программирование',3).
grade(102,'Биткоинов','Математический анализ',3).
grade(102,'Биткоинов','Функциональное программирование',3).
grade(102,'Биткоинов','Информатика',3).
grade(102,'Биткоинов','Английский язык',4).
grade(102,'Биткоинов','Психология',4).
grade(103,'Эфиркина','Логическое программирование',5).
grade(103,'Эфиркина','Математический анализ',5).
grade(103,'Эфиркина','Функциональное программирование',2).
grade(103,'Эфиркина','Информатика',4).
grade(103,'Эфиркина','Английский язык',5).
grade(103,'Эфиркина','Психология',4).
grade(103,'Сиплюсплюсов','Логическое программирование',5).
grade(103,'Сиплюсплюсов','Математический анализ',2).
grade(103,'Сиплюсплюсов','Функциональное программирование',3).
grade(103,'Сиплюсплюсов','Информатика',2).
grade(103,'Сиплюсплюсов','Английский язык',4).
grade(103,'Сиплюсплюсов','Психология',5).
grade(103,'Программиро','Логическое программирование',3).
grade(103,'Программиро','Математический анализ',5).
grade(103,'Программиро','Функциональное программирование',5).
grade(103,'Программиро','Информатика',4).
grade(103,'Программиро','Английский язык',4).
grade(103,'Программиро','Психология',5).
grade(104,'Джаво','Логическое программирование',5).
grade(104,'Джаво','Математический анализ',4).
grade(104,'Джаво','Функциональное программирование',4).
grade(104,'Джаво','Информатика',4).
grade(104,'Джаво','Английский язык',4).
grade(104,'Джаво','Психология',3).
grade(103,'Клавиатурникова','Логическое программирование',4).
grade(103,'Клавиатурникова','Математический анализ',5).
grade(103,'Клавиатурникова','Функциональное программирование',5).
grade(103,'Клавиатурникова','Информатика',4).
grade(103,'Клавиатурникова','Английский язык',4).
grade(103,'Клавиатурникова','Психология',4).
grade(101,'Мышин','Логическое программирование',5).
grade(101,'Мышин','Математический анализ',4).
grade(101,'Мышин','Функциональное программирование',4).
grade(101,'Мышин','Информатика',5).
grade(101,'Мышин','Английский язык',4).
grade(101,'Мышин','Психология',3).
grade(104,'Фулл','Логическое программирование',4).
grade(104,'Фулл','Математический анализ',4).
grade(104,'Фулл','Функциональное программирование',3).
grade(104,'Фулл','Информатика',3).
grade(104,'Фулл','Английский язык',4).
grade(104,'Фулл','Психология',4).
grade(101,'Безумников','Логическое программирование',5).
grade(101,'Безумников','Математический анализ',4).
grade(101,'Безумников','Функциональное программирование',4).
grade(101,'Безумников','Информатика',5).
grade(101,'Безумников','Английский язык',4).
grade(101,'Безумников','Психология',4).
grade(102,'Шарпин','Логическое программирование',4).
grade(102,'Шарпин','Математический анализ',4).
grade(102,'Шарпин','Функциональное программирование',4).
grade(102,'Шарпин','Информатика',3).
grade(102,'Шарпин','Английский язык',4).
grade(102,'Шарпин','Психология',4).
grade(104,'Круглосчиталкин','Логическое программирование',5).
grade(104,'Круглосчиталкин','Математический анализ',4).
grade(104,'Круглосчиталкин','Функциональное программирование',4).
grade(104,'Круглосчиталкин','Информатика',5).
grade(104,'Круглосчиталкин','Английский язык',2).
grade(104,'Круглосчиталкин','Психология',5).
grade(103,'Решетников','Логическое программирование',4).
grade(103,'Решетников','Математический анализ',4).
grade(103,'Решетников','Функциональное программирование',4).
grade(103,'Решетников','Информатика',5).
grade(103,'Решетников','Английский язык',3).
grade(103,'Решетников','Психология',3).
grade(102,'Эксель','Логическое программирование',4).
grade(102,'Эксель','Математический анализ',4).
grade(102,'Эксель','Функциональное программирование',4).
grade(102,'Эксель','Информатика',4).
grade(102,'Эксель','Английский язык',2).
grade(102,'Эксель','Психология',3).
grade(102,'Текстописов','Логическое программирование',4).
grade(102,'Текстописов','Математический анализ',4).
grade(102,'Текстописов','Функциональное программирование',5).
grade(102,'Текстописов','Информатика',2).
grade(102,'Текстописов','Английский язык',4).
grade(102,'Текстописов','Психология',5).
grade(103,'Текстописова','Логическое программирование',4).
grade(103,'Текстописова','Математический анализ',4).
grade(103,'Текстописова','Функциональное программирование',4).
grade(103,'Текстописова','Информатика',4).
grade(103,'Текстописова','Английский язык',2).
grade(103,'Текстописова','Психология',5).
grade(101,'Густобуквенникова','Логическое программирование',5).
grade(101,'Густобуквенникова','Математический анализ',4).
grade(101,'Густобуквенникова','Функциональное программирование',5).
grade(101,'Густобуквенникова','Информатика',5).
grade(101,'Густобуквенникова','Английский язык',5).
grade(101,'Густобуквенникова','Психология',5).
grade(102,'Криптовалютников','Логическое программирование',5).
grade(102,'Криптовалютников','Математический анализ',4).
grade(102,'Криптовалютников','Функциональное программирование',4).
grade(102,'Криптовалютников','Информатика',3).
grade(102,'Криптовалютников','Английский язык',4).
grade(102,'Криптовалютников','Психология',3).
grade(104,'Блокчейнис','Логическое программирование',2).
grade(104,'Блокчейнис','Математический анализ',5).
grade(104,'Блокчейнис','Функциональное программирование',4).
grade(104,'Блокчейнис','Информатика',4).
grade(104,'Блокчейнис','Английский язык',4).
grade(104,'Блокчейнис','Психология',5).
grade(102,'Азурин','Логическое программирование',3).
grade(102,'Азурин','Математический анализ',5).
grade(102,'Азурин','Функциональное программирование',4).
grade(102,'Азурин','Информатика',3).
grade(102,'Азурин','Английский язык',4).
grade(102,'Азурин','Психология',4).
grade(103,'Вебсервисов','Логическое программирование',4).
grade(103,'Вебсервисов','Математический анализ',5).
grade(103,'Вебсервисов','Функциональное программирование',5).
grade(103,'Вебсервисов','Информатика',4).
grade(103,'Вебсервисов','Английский язык',4).
grade(103,'Вебсервисов','Психология',4).
grade(102,'Круглотличников','Логическое программирование',4).
grade(102,'Круглотличников','Математический анализ',4).
grade(102,'Круглотличников','Функциональное программирование',4).
grade(102,'Круглотличников','Информатика',4).
grade(102,'Круглотличников','Английский язык',2).
grade(102,'Круглотличников','Психология',4).


summandlenght([X|L],R,Len):-
    summandlenght(L,Rprev,Lenprev),
    R is Rprev + X,
    Len is Lenprev.
summandlenght([],0,0):- !.

countaveragemark(Subject, Result):-
    findall(X,grade(_,_,_,Subject,X),Marks),
    summandlenght(Marks,S,N),
    Result is S/N. 

Prolog Online Compiler

Write, Run & Share Prolog code online using OneCompiler's Prolog online compiler for free. It's one of the robust, feature-rich online compilers for Prolog language. Getting started with the OneCompiler's Prolog editor is easy and fast. The editor shows sample boilerplate code when you choose language as Prolog and start coding.