

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
pusha |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
помогите, пожалуйста, девушке-блондинке...
![]() ![]() |
мисс_граффити |
![]()
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
ну раз мало того, что девушке, так еще и блондинке....
если я правильно поняла задание - то что-то вроде такого: program blondi;
const n=10;
var a,b:array[1..n]of integer;
fl:boolean;
i,j,kol:integer;
begin
randomize;
kol:=0;
for i:=1 to n do
begin
a[i]:=random(10);
fl:=true;
write(a[i], ' ');
for j:=1 to kol do
if b[j]=a[i] then
fl:=false;
if fl then
begin
inc(kol);
b[kol]:=a[i];
end;
end;
writeln;
for i:=1 to kol do
write(b[i],' ');
readln;
end.
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
pusha |
![]() ![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
ОГРОМНОЕ СПАСИБО, МИСС_ГРАФФИТИ!!! очень тебе благодарна за помощь!!!
![]() |
pusha |
![]() ![]()
Сообщение
#4
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
ой... еще вопрос: здесь выводятся все члены последовательности без повторений, а как сделать, чтобы выводились только те, которые повторяются, но в единичном экземпляре(без тех, которые не повторяются в первоначальном массиве)?
![]() |
Lapp |
![]()
Сообщение
#5
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
как сделать, чтобы выводились только те, которые повторяются, но в единичном экземпляре(без тех, которые не повторяются в первоначальном массиве)? Если взять за основу код мисс_граффити, то нужно добавить еще один массив, который заполняется примерно так же. Я очень извиняюсь, но я изменил кое-какие названия переменных для большей корреляции с назначением. Так, выходной массив я назвал Dup (Duplication, дубли), а промежуточный - All (все различные элементы). Признак добавления элемента в массив я назвал Take (брать). {for pusha, by Miss_Graffity & Lapp}
{to delete all singles and duplications from array}
const
n=10;
var
a,All,Dup:array[1..n]of integer;
i,j,k,l,Count:integer;
Take:boolean;
begin
k:=0;
l:=0;
for i:=1 to n do begin
a[i]:=random(10);
write(a[i],' ');
Take:=true;
for j:=1 to k do if All[j]=a[i] then Take:=false;
if Take then begin
inc(k);
All[k]:=a[i];
end
else begin
Take:=true;
for j:=1 to l do if Dup[j]=a[i] then Take:=false;
if Take then begin
Inc(l);
Dup[l]:=a[i]
end
end
end;
writeln;
for i:=1 to l do write(Dup[i],' ');
readln;
end.
Ниже - другой вариант решения. Он основан на множествах, что несет в себе некие преимущества (проще и быстрее), но и недостатки тоже: - множества не могут содержать более 255 элементов; - возможно, вы еще просто не проходили множества.. {for pusha by Lapp}
{to delete singles and duplicates, uses sets}
const
n=20;
r=20; {range, must be < 256}
var
a,b:array[1..n]of integer;
All,Dup:set of byte;
i,j:integer;
begin
for i:=1 to n do a[i]:=Random(r ); {заполняем массив случайными числами}
All:=[]; {готовим множество всех элементов}
Dup:=[]; {готовим множество для дублей}
for i:=1 to n do begin
Write(a[i]:3);
if a[i] in All then Dup:=Dup+[a[i]]; {заполняем множество дублей}
All:=All+[a[i]] {заполняем множество всех}
end;
WriteLn;
j:=0; {готовим счетчик выходного массива}
for i:=1 to n do if a[i] in Dup then begin
Inc(j); {увеличиваем счетчик выходного массива}
b[j]:=a[i]; {заполняем выходной массив}
Dup:=Dup-[a[i]] {убираем элемент из множества дублей}
end;
for i:=1 to j do Write(b[i]:3);
WriteLn;
ReadLn
end.
PS не вижу доказательств в профиле, что ты блондинка.. ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
мисс_граффити |
![]()
Сообщение
#6
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
lapp, да имен переменных мне не жалко.
![]() но я не Цитата Miss_Graffity , а Miss_Graffitiсорри за офф. теперь по теме. если уж брать за основу мой код, то, продолжая следовать женской логике, новый массив создавать не будем. (переменные оставла, как были... ) program blondi;
const n=10;
var a,b:array[1..n]of integer;
fl:boolean;
i,j,kol:integer;
begin
randomize;
kol:=0;
{отделяем цикл с заполнением - потом будем работать только с готовым массивом}
for i:=1 to n do
begin
a[i]:=random(10);
write(a[i], ' ');
end;
for i:=1 to n do
begin
fl:=false;{изначально считаем, что элемент нам не нужен}
for j:=1 to n do
if (a[i]=a[j]) and (i<>j) then {первая проверка: если элемент повторяющийся...}
fl:=true;{если первый тест пройден, задумываемся о том, что его можно взять}
if fl then {если решили, что предварительно он подходящий}
for j:=1 to kol do
if b[j]=a[i] then {то проверяем - может, мы его уже взяли?}
fl:=false;{второй раз брать не будем}
if fl then {если по всем критериям подходит}
begin
inc(kol);
b[kol]:=a[i];{то берем}
end;
end;
writeln;
for i:=1 to kol do
write(b[i],' ');
readln;
end.
при желании, можно вывод не писать отдельным циклом, а делать сразу после принятия решения о том, что элемент нам подошел... имхо, не очень принципиальный вопрос. Сообщение отредактировано: мисс_граффити - -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
pusha |
![]() ![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
lapp и мисс_граффити еще раз огромное-преогромное спасибо за помощь!!! что не оставили на произвол... стыдно, конечно, но я вот стала разбираться в программах, вроде все поняла, кроме одного
![]() например, изначальный массив 1 2 4 5 2 5...., первый повторяющийся элемент 2, дойдя до него, получаем, что if (a[i]=a[j]) and (i<>j) это условие выполняется, а значит f1:=true; далее в этом случае выполняется условие if f1 then for j:=1 to kol do if b[j]=a[i] then f1:=false; здесь непонятна строка for j:=1 to kol , ведь kol пока еще =0, и тогда цикл for j:=1 to 0 не выполниться ни разу? так что ли...? |
Lapp |
![]()
Сообщение
#8
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Цитата непонятна строка for j:=1 to kol , ведь kol пока еще =0, и тогда цикл for j:=1 to 0 не выполниться ни разу? так что ли...? Да, именно так ![]() В этом дополнительное доказательство правильности совершаемых действий. Алгоритм внутрене согласован. Однако - WOW! Кажется, ты меня убедила, что это ты сказала не из вежливости: ни разу не работала с массивами, а здесь придется... Действительно, работаешь! ![]() Осталось убедить меня еще в одном пункте: PS не вижу доказательств в профиле, что ты блондинка.. ![]() Поспособствуешь? ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Lapp |
![]()
Сообщение
#9
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
но я не <...т-ссс!...> , а Miss_Graffiti 2 Miss_Graffiti: Извиняюсь... ![]() ![]() ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
мисс_граффити |
![]()
Сообщение
#10
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
самой, что ли, осветлиться?...
![]() lapp, я другой перевод встречала - царапать. Граффити (которое рисование) началось с выцарапывания картинок на стеклах в метро. Потом уже в ход пошли маркеры, баллончики и т.д. y или i - в разных источниках по-разному... но я выбрала i ![]() pusha, молодец, что стала разбираться, а не просто распечатала и пошла сдавать. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
pusha |
![]()
Сообщение
#11
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
Цитата Осталось убедить меня еще в одном пункте: PS не вижу доказательств в профиле, что ты блондинка.. ![]() если честно, то в профиле не хочу размещать свое фото...мне кажется,что здесь это не так принципиально, как, например, на сайте знакомств... ![]() Цитата Поспособствуешь? ![]() lapp, если тебе интересно (?), как я выгляжу, могу поспособствовать лично: выслать фото на e-mail... ![]() |
![]() ![]() |
![]() |
Текстовая версия | 22.04.2025 1:50 |