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

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

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

> Задача на цыклы. Помогите, плизз!, Решение
Johnny
сообщение 30.11.2005 10:33
Сообщение #1


Гость






Пожалуйста помогите решить задачу:
Использовать только массивы

Даны целые числа а1,…, аn. Получить числа, которые входят в последователь-ность по одному разу.

Заранее Спасибо!

Сообщение отредактировано: Johnny - 30.11.2005 11:02
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
klem4
сообщение 30.11.2005 11:35
Сообщение #2


Perl. Just code it!
******

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

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


для любых чисел :

type
TArray = array[1..30] of integer;

...
procedure GetUnique(x : TArray; n : byte);
var
i,j,t : byte;
flag : boolean;
begin

i := 1;

for i := 1 to n-1 do begin
for j := i + 1 to n do
if x[i] <> x[j] then break;
if x[i] <> x[j] then break;
end;

if (i=n-1) and (j=n) then n := 0;

i := 1;

while(i<=n-1) do begin
j := i + 1;
flag := false;
while(j<=n) do
if x[i] = x[j] then begin
for t := j to n-1 do x[t] := x[t+1];
dec(n);
flag := true;
end else inc(j);

if flag then begin
for t :=i to n-1 do x[t] := x[t+1];
dec(n);
end else inc(i);
end;


for i := 1 to n do writeln(x[i]);
end;


во как unsure.gif

только для чиселл типа byte :

type
TArray = array[byte] of byte;
TSet = set of byte;
...

procedure GetUnique(x : TArray; n : byte);
var
i,j : byte;
s : TSet;
begin
for i := 1 to n-1 do
for j := i+1 to n do
if x[i] = x[j] then
include(s, x[i]);

for i := 1 to n do
if not(x[i] in s) then writeln(x[i]);
end;


Сообщение отредактировано: volvo - 6.11.2006 16:11


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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