IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Числа. Точки на плоскости., N точек на плоскости, перестановки N чис
zetsokol
сообщение 28.11.2005 1:43
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Вот дали задачи на контрольную. Помогите кто чем может. blink.gif

1. N точек на плоскости заданы своими координатами. Найти порядок, в котором можно соединить эти точки, чтобы получился N-угольник (т.е. не было бы пересечений сторон).

2.Построить алгоритм, выдающий без повторений все перестановки N чисел.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Altair
сообщение 28.11.2005 2:08
Сообщение #2


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


2. генерация всех перестановок элементов
отуда:
{ программа генерации перестановок N элементного 
множества в лексикографическом порядке }

Program perms;
var i,j,h,n,k:integer;
a:array[0..100] of integer; { массив для хранения перестановки }

{процедура вывода полученной перестановки}
procedure output;
var i:integer;
begin
writeln;
for i:=1 to n do write(a[i],' ');
end;

begin
readln(n); { ввод кол-ва элементов перестановки }
fillchar(a,sizeof(a),0); { инициализация массива }

{ ввод элементов начальной перестановки }
for i:=1 to n do a[i]:=i;

repeat
output; { ввод текущей перестановки }
i:=n;
while a[i-1]>a[i] do dec(i); { поиск скачка }
j:=i-1;
h:=a[j];
while a[i+1]>h do inc(i); { поиск первого меньшего элемента }
a[j]:=a[i]; a[i]:=h;
i:=j+1; k:=n;
while i<k do begin { перестановка ”хвоста” }
h:=a[i]; a[i]:=a[k]; a[k]:=h;
inc(i); dec(k)
end
until j=0; {}
end.



--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
zetsokol   Числа. Точки на плоскости.   28.11.2005 1:43
Altair   :wink: Представим множество точек на плоскости...   28.11.2005 2:04
Altair   2. генерация всех перестановок элементов отуда: { ...   28.11.2005 2:08
zetsokol   Огромное спасибо :good: и не спицца тебе в такую ...   28.11.2005 2:16
Altair   чувства не дают... Согласен, интересная задача.....   28.11.2005 2:41
virt   вариант решения первой задачи ::   28.11.2005 9:12
zetsokol   Altair огромное спасибо :) Virt или Altair помо...   2.12.2005 17:08
volvo   Я бы делал так: var X, i, n: Integer; begin R...   2.12.2005 17:14
zetsokol   Распишите (Код программы) Pleese 4 и 1 задачи ну о...   6.12.2005 10:20
volvo   zetsokol, ты что, сам думать совсем не хочешь? :d...   6.12.2005 10:31
zetsokol   Да просто я на VFoxPro работаю и времени нету все ...   6.12.2005 16:21
zetsokol   Кто-нибудь помогите с первой задачей горю :blink: ...   9.12.2005 10:05
volvo   Ну, например, так: Тестировалось на следующих к...   9.12.2005 15:54
zetsokol   Огромное тебе спасибо VOLVO :applause: :!tha...   18.12.2005 18:24


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 10:05
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"