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

Вычисление среднего значения числа студентов

02.11.2016, 22:59. Показов 1141. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сам пытался подсчитать среднее значение, но расчёты не удаются.

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
% Copyright
 
implement main
    open core, console
 
 domains
           фамилия=string.
           номергруппы=integer.
           номерзачетки=integer.
           датарождения= string.
           адрес =string.
           язык=string.
           возраст =integer.
           количествостудентов=integer.
           среднееколичествостудентов= integer.
           количествогрупп=integer.
        студент:(номергруппы,номерзачетки,фамилия,датарождения,адрес,язык)nondeterm.
        возраст:(фамилия, возраст)nondeterm.
        изучение_языка:(номергруппы,фамилия,язык)nondeterm.
        сумма:(количествостудентов)determ.
          сумма1:(номергруппы,количествостудентов)determ.
         количество:(количествостудентов)nondeterm.
        группа:(номергруппы) nondeterm.
    class predicates
    информация_0_студенте:(номергруппы,номерзачетки,фамилия,возраст,адрес,язык)nondeterm anyflow.
      студенты_одной_группы:(номергруппы,фамилия)nondeterm anyflow.
      старшеВГруппе:(номергруппы, фамилия,фамилия)nondeterm anyflow.
        студентыизучающиеязыки:(номергруппы,фамилия,язык)nondeterm anyflow.
        список_студентов:(номергруппы)nondeterm anyflow.        количество_студентов_в_группе:(номергруппы,количествостудентов)nondeterm anyflow.
    количество_студентов_всех_групп:() nondeterm anyflow.
    среднее_количество_студентов:(номергруппы,среднееколичествостудентов)nondeterm anyflow.
    clauses
       студент(1,00001,"Кабанов","19","Пожаластина 21","Английский").
        студент(1,00002,"Петров","20","Пожаластина 21","Английский").
        студент(1,00003,"Иванов","19","Пожаластина 21","Английский").
        студент(1,00004,"Сидоров","18","Пожаластина 21","немецкий").
        студент(2,00005,"Кержаков","19","Пожаластина 21","Английский").
        студент(2,00006,"Аршавин","21","Пожаластина 21","немецкий").
        студент(3,00007,"Сычев","22","Пожаластина 21","Английский").
        студент(3,00008,"Дзюба","22","Пожаластина 21","немецкий").
        студент(4,00006,"Дзагоев","21","Пожаластина 21","немецкий").
        студент(4,00007,"Глушаков","22","Пожаластина 21","Английский").
        студент(4,00008,"Ребров","22","Пожаластина 21","немецкий").
          студент(4,00008,"Кутепов","22","Пожаластина 21","немецкий").
          студент(4,00009,"Иванов","22","Пожаластина 21","немецкий").
 
    группа(1).
    группа(2).
    группа(3).
 
   информация_0_студенте(Номергруппы,Номерзачетки,Фамилия,Датарождения,Адрес,Язык).
    clauses
 
    среднее_количество_студентов(Номергруппы,_):-
                                    assert(сумма1(0,0)),
                                    группа(_),
                                    количество_студентов_в_группе(_,Количествостудентов),
                                    retract(сумма1(Номергруппы,Количествостудентов)),
                                    Количествогрупп = Количествогрупп + 1,
                                    Количествостудентов = Количествостудентов+1,
                                    asserta(сумма1(Количествогрупп1,Количествостудентов)),
                                    fail.
 среднее_количество_студентов(Номергруппы,_):-
retract(сумма1(Номергруппы,Количествостудентов)),
Среднееколичествостудентов= Количествогрупп1/Количествостудентов.
среднее_количество_студентов(_,Среднееколичествостудентов).
    количество_студентов_в_группе(Номер_группы,_):-
            assert(сумма(0)),
            студент(Номер_группы,_,_,_,_,_),
            retract(сумма(Количествостудентов)),
            Количествостудентов1 = Количествостудентов + 1,
            asserta(сумма(Количествостудентов1)),
            fail.
    количество_студентов_в_группе(_,Количествостудентов):-
            retract(сумма(Количествостудентов)).
 
    количество_студентов_всех_групп():-
            группа(Номер_группы),
            количество_студентов_в_группе(Номер_группы,Количествостудентов),
            write(Номер_группы,"  кол-во ",Количествостудентов),nl,fail.
 
    студенты_одной_группы(Номер_группы, Фамилия):-
            студент(Номер_группы,_,Фамилия,_,_,_).
    старшеВГруппе( Номер_группы,Фамилия1,Фамилия2):-
            студент(Номер_группы,_,Фамилия1,Возраст1,_,_),
            студент(Номер_группы,_,Фамилия2,Возраст2,_,_),
            Фамилия1 <> Фамилия2,
            Возраст1> Возраст2.
 
            студентыизучающиеязыки(Номер_группы,Фамилия,"Английский"):-
            nl,write("Cтуденты изучающие английский язык  ",":"),nl,
            write("_____________________________________________"),nl,
                 студент(Номер_группы,_,Фамилия,_,_,"Английский"),
            write("_____________________________________________"),nl.
 
            список_студентов(Номер_группы):-
            nl,write("список_студентов группы  ",Номер_группы,":"),nl,
            студент(Номер_группы,_,Фамилия,_,_,_),
            write("_____________________________________________"),nl,
            write("                 ",Фамилия),nl,fail.
 
            clauses
 
            run():-
            console::init(),
            студентыизучающиеязыки(1,Фамилия,"Английский"),
            write(Фамилия),nl,fail.
 
            run() :- console::init(), количество_студентов_всех_групп(),fail..
            run():-console::init(),
            количество_студентов_в_группе(1,Количествостудентов),
            write(Количествостудентов),nl,fail.
     
end implement main
 
goal
    console::runUtf8(main::run).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.11.2016, 22:59
Ответы с готовыми решениями:

Вычисление среднего значения
Здравствуйте! структура: Пособия

Вычисление среднего значения
Добрый день!!! У меня такой вопрос. MS SQL 2008 Есть таблица с именем table и поле с именем value Нужно в поле value, в местах...

Вычисление среднего значения
нужна программа которая будет вычислять среднее значение

2
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
03.11.2016, 03:13
Valentin Murzae, что-то Вы намудрили с номером группы при подсчёте среднего количества студентов.
Объясните, для чего там вообще номер группы?

Добавлено через 13 минут
Да Вы там вообще намудрили..
В общем, примерно так:
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class predicates
    среднее_количество_студентов:(среднееколичествостудентов) procedure(o).
 
clauses
среднее_количество_студентов(Количество):-
    assert(сумма1(0, 0)),
    группа(Номергруппы),
    количество_студентов_в_группе(Номергруппы, Количествостудентоввгруппе),
    retract(сумма1(Количествогрупп, Количествостудентов)),
    НовоеКоличествогрупп = Количествогрупп + 1,
    НовоеКоличествостудентов = Количествостудентов + Количествостудентоввгруппе,
    assert(сумма1(НовоеКоличествогрупп, НовоеКоличествостудентов)),
    fail;
 
    retract(сумма1(Количествогрупп, Количествостудентов)),
    Количество = Количествостудентов / Количествогрупп.
Добавлено через 17 минут

Не по теме:

К сожалению, создаётся впечатление, что многие студенты раасматривают программирование как некоторое шаманство.

Вместо попыток разобраться в алгоритме и построить разумное решение обычно наблюдаю
какое-то странное жонглирование кусками совершенно неуместного кода, механически перенесённого из "похожих" задач..

"А давайте нарисуем на воротах курятника круг.." (С)



Добавлено через 5 минут

Не по теме:

А ещё совершенно непонятно, какая сила заставляет заводить отдельный домен на каждый чих..
Может быть, я чего-то не понимаю в этом мире?

0
0 / 0 / 0
Регистрация: 02.11.2016
Сообщений: 5
03.11.2016, 14:15  [ТС]
Спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.11.2016, 14:15
Помогаю со студенческими работами здесь

Вычисление среднего значения за час
Добрый день! Подскажите пожалуйста, как в IBExpert сделать процедуру в базе, которая возвращает среднее значение работы сотрудника за...

Вычисление среднего значения AVG
Дорогие друзья, я юный программист столкнулся с очень некрасивой проблемой, у меня есть курсовая, там куча заданий, но не об этом, у меня...

Вычисление среднего значения из коллекции
Здравствуйте. Такой вопрос, создаю List &lt;ushort&gt;, потом в него попадают 10 значений. После этого переменной ushort присваиваю среднее из...

Вычисление среднего значения с k по L элемент массива
Класс FloatArray. Тип элементов массива – float, функция (average) – вычисление среднего значения с k по l элемент массива....

Вычисление среднего значения части столбца
Здравствуйте! Задача: Имеется столбец (предположим А) с экспериментальными данными на много тысяч значений. Каждое измерение проводилось...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 23.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа в КА2. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru