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

Поменять местами в списке 1 и M-ый элементы.

25.05.2012, 13:53. Показов 2084. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте, нужна помощ завтро экзамен нужно написать 2 прог.

1.подготовить программно файл f компонентами которого будут действительные числа. Записать в текстовый файл g компоненты файла f в обратном порядке.

2.Ввести с клавиатуры список целых чисел и № элемента m. Поменять местами в списке первый член и член с номером m.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2012, 13:53
Ответы с готовыми решениями:

Поменять в списке местами наибольший и наименьший элементы
Ввести с клавиатуры список целых чисел. Поменять в списке местами наибольший и наименьший члены. Я...

Поменять в списке максимальный и минимальный элемент местами
1. Простая программа: поменять в списке максимальный и минимальный элемент местами. Для начала я их...

Поменять элементы местами
Здравствуйте, помоги решить данную задачку:

Поменять местами элементы списка
В списке нечетной длины поменять местами элементы,которые находятся рядом со средним элементом....

17
magirus
25.05.2012, 13:59
  #2
 Комментарий администратора 
язык форума - Русский. впредь трудитесь переводить.
0
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
25.05.2012, 14:05 3
1я задача была - в поиск.
По 2й предоставьте наработки.

Добавлено через 59 секунд
Хотя и по 2й в поиск можно, встречалась задача замены местами любого I-го и J-го элементов.
1
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 6
25.05.2012, 19:03  [ТС] 4
Нароботка по второй..

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
include "312.inc"
 
Domains
List=integer*
Predicates
 
 nondeterm Do(list, integer,integer,integer)
 %Zamena()
Goal
Readterm(list,L),L=[H|T],readint(M), do(L,M,1, E).
 
Clauses
Do([H|T],M,Q,E):- M=Q,E=H;
                  Q1=Q+1,write (Q1),nl,!, Do(T,M,Q1,E).
Добавлено через 15 минут
дальше немогу понять..
0
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
25.05.2012, 19:12 5
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Domains
list=integer*
 
Predicates
nondeterm do(list, integer,integer,list)
nondeterm do(list, integer,list)
 
Goal
readterm(list,L),readint(M), do(L,M,Ans).
 
Clauses
do(L,1,L):-!.
do([H|Tail],M,Ans):-do(Tail,M,H,Ans).
 
do([H|Tail],2,E,[H,E|Tail]):-!.
do([H|Tail],N,E,[H1,H|Tail1]):-N1=N-1,do(Tail,N1,E,[H1|Tail1]).
1
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 6
25.05.2012, 19:20  [ТС] 6
Классно, спасибо большое я очень вам благодарен. Немоглибы вы помоч еще с 1 заданием..
0
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
25.05.2012, 19:32 7
Не, оно уже было.
0
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 6
26.05.2012, 00:25  [ТС] 8
а как, где его найти. Я просто в первый раз пользуюсь форумом..

Добавлено через 4 часа 50 минут
ооууу, уважемые помогите..
0
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
26.05.2012, 12:42 9
Как можно не уметь пользоваться поиском? Вывод элементов файла в обратном порядке
0
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 6
26.05.2012, 21:11  [ТС] 10
Спасиб большое..
0
1 / 1 / 0
Регистрация: 27.02.2012
Сообщений: 61
27.05.2012, 01:09 11
Добрый вечер!
А действительно как наиболее грамотно и рационально это сделать.
Боюсь, что моя программка далека от идеала, подскажите наиболее правильное решение

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
main([H|Tail],M,L1):-
    zamena(Tail,2,M,H,El,L),
    zamena1(L,El,L1).
    
 
zamena([H|Tail],I,M,First,El,[H|Tail1]):-
    I<M,
    I1 is I+1,
    zamena(Tail,I1,M,First,El,Tail1).
zamena([H|Tail],I,M,First,H,[First|Tail1]):-
    I=:=M,
    I1 is I+1,
    zamena(Tail1,I1,M,First,H,Tail1).
zamena([H|Tail],_,_,_,_,[H|Tail1]):-
       zamena(Tail,_,_,_,_,Tail1).
zamena([],_,_,_,El,[]).
 
zamena1([H|Tail],El,[El|Tail]).
0
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
27.05.2012, 13:49 12
И это Вы стремитесь к рациональности?
Поменять местами в списке 1 и M-ый элементы.
1
1 / 1 / 0
Регистрация: 27.02.2012
Сообщений: 61
27.05.2012, 15:47 13
Я учусь, да и стремлюсь к рациональности, пока не все получается, поэтому и задаю вопросы.

Добавлено через 4 минуты
Напишите, пожалуйста, свой вариант этой программки - очень интересно!!!

Добавлено через 1 минуту
И там в примере какая-то не такая версия Prologa.
0
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
27.05.2012, 15:52 14
Да, не та, но что бы перевести в ту, надо всего 1 символ изменить.
1
1 / 1 / 0
Регистрация: 27.02.2012
Сообщений: 61
27.05.2012, 16:16 15
какой символ объясните для малограмотных!
0
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
27.05.2012, 17:09 16
Prolog
1
2
3
4
5
6
do(L,1,L):-!.
do([H|Tail],M,Ans):-do(Tail,M,H,Ans).
 
do([H|Tail],2,E,[H,E|Tail]):-!.
do([H|Tail],N,E,[H1,H|Tail1]):-N1 is N-1,%вместо N1=N-1,
     do(Tail,N1,E,[H1|Tail1]).
Это вот после месяцев изучения языка сложно было самостоятельно понять и сделать?
1
1 / 1 / 0
Регистрация: 27.02.2012
Сообщений: 61
27.05.2012, 18:37 17
Спасибо !!!
Прогресс, конечно, есть в изучении языка, но сложности тоже есть, язык ведь особенный!
А почему во второй строчке сначала в do 3 параметра, а потом везде 4?

Добавлено через 2 минуты
А у меня еще такой вариант программы получился
Prolog
1
2
3
4
5
6
7
8
main([H|Tail],M,[El|L1]):-
    zamena(Tail,2,M,H,El,L1).
 
zamena([X|Tail],I,M,First,El,[X|Tail1]):-
    I<M,
    I1 is I+1,
    zamena(Tail,I1,M,First,El,Tail1).
zamena([X|Tail],M,M,First,X,[First|Tail]).
0
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
27.05.2012, 20:23 18
Цитата Сообщение от vikkov7 Посмотреть сообщение
А почему во второй строчке сначала в do 3 параметра, а потом везде 4?
Потому что это разные предикаты, я же их пустой строкой разделила для наглядности. Их можно и по-разному назвать.
1
27.05.2012, 20:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2012, 20:23
Помогаю со студенческими работами здесь

Поменять местами элементы списка
Задан список непарной длины. Нужно поменять местами елемент, что стоит перед &quot;средним&quot; елементом с...

Поменять местами нужны элементы дерева.
Добрый вечер! Помогите, пожалуйста! Сделала половину задания только,дальше ну никак не...

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

Поменять местами максимальный четный и минимальный элементы массива
Добрый вечер! Помогите пожалуйста с задачей по прологу. Нашла максимальный четный и минимальный...


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

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