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

Вывести фамилии сотрудников предприятия и их оклады, оклады которых меньше среднего.

27.04.2012, 02:24. Показов 1354. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста довести код до ума. Не могу понять как состыковать код нахождения среднего арифметического с зарплатой сотрудников.
Вот сам код:

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Domains
    list=symbol*
    imia=symbol
    im=integer
Predicates
    sotrudnic(imia,im)
    avg(list,real)
    summa(list,integer)
    length(list,integer)
    go(symbol)
Clauses
    sotrudnic(muhamed,7000).
    sotrudnic(cergei,4000).
    sotrudnic(maasha,2000).
    sotrudnic(marta,5000).
    sotrudnic(cemen,3000).
    sotrudnic(kolia,2500).
    avg([],0):- !.
    avg(L,A):-
        summa(L,S),
        length(L,K),
        A=S/K.
        go(F):-findall(X,sotrudnic(F,X),L),avg(L,A),sotrudnic(F,X),X>A,write("imena",F),nl.
Добавлено через 1 час 12 минут
Вот новый код вроде я переделал но программа все равно не работает

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
Domains
    list=symbol*
    imia=symbol
    list2=integer*
    im=integer
Predicates
    sotrudnic(imia,im)
    avg(list2,real)
    summa(list2,integer)
    length(list2,integer)
    go(symbol)
Clauses
    
    sotrudnic(7000,muhamed).
    sotrudnic(4000,cergei).
    sotrudnic(2000,maasha).
    sotrudnic(5000,marta).
    sotrudnic(3000,semen).
    sotrudnic(2500,kolia).
    summa([], 0). 
        summa([H|T], S) :-
           summa(T, S_T), S = S_T + H. 
    length([], 0).
    length([_|T], L) :- length(T, L_T), L = L_T + 1.  
                
    avg(L,A):-
        summa(L,S),
        length(L,K),
        A=S/K.
        go(F):-findall(X,sotrudnic(F,X),L),avg(L,A),sotrudnic(F,X),X>A,write("imena",F),nl.
Goal
 go(F).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2012, 02:24
Ответы с готовыми решениями:

Имеется список служащих и их оклады. Увеличить оклады, добавить к окладу премию
Имеется список служащих и их оклады. Составьте программу которая обеспечивает ввод этих данных в...

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

При помощи структуры ввести имена и оклады троих сотрудников
Суть задачи - при помощи структуры ввести имена и оклады троих сотрудников а потом вывести их...

Вывести на экран фамилии тех сотрудников, у которых выслуга лет меньше вводимого с клавиатуры
Информация о работниках фирмы хранится в следующем порядке: фамилия, имя (и отчество), пол,...

0
27.04.2012, 02:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2012, 02:24
Помогаю со студенческими работами здесь

Алгоритм. Оклады
Никак не могу придумать нормальный алгоритм. Постоянно ерунда какая-то получается. Не хочется...

Вывести фамилии сотрудников, имеющих оклад выше среднего
Ошибку выдает не понимаю в чем . #include <stdio.h> #include <string.h> main() { const int...

Найти среди сотрудников предприятия количество мужчин призывного возраста и вывести на экран их фамилии, имена
Найти среди сотрудников предприятия количество мужчин призывного возраста и вывести на экран их...

Вывести фамилии сотрудников, номера телефонов которых начинаются с цифр 361
Сведения состоят из фамилий сотрудников и их телефонов. Вывести фамилии сотрудников, номера...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru