Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2010, 19:24   #1
Zevsnet
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 10
По умолчанию дан целочисленный массив N. Удалить из массива все элементы,встречающиеся [менее двух раз]1

дан целочисленный массив N. Удалить из массива все элементы,встречающиеся [менее двух раз]1[более двух раз]2[ровно два раза]3[ровно трри раза]4.
Zevsnet вне форума Ответить с цитированием
Старый 14.09.2010, 19:42   #2
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

хотябы пожалуйста сказали
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Старый 15.09.2010, 04:21   #3
Zevsnet
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 10
По умолчанию

Прошу прощения.. Будьте так любезны помочь с данной задачей.. ...заранее спасибо!
Zevsnet вне форума Ответить с цитированием
Старый 15.09.2010, 05:59   #4
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Код:
const N=100;

procedure DeleteOneFromMassiv(var mass:array of integer;var size: integer;index : integer);
var i, temp:integer;
begin
     dec(index);
     for i:=index to size-1 do
     begin
          mass[i]:=mass[i+1];
     end;
     dec(size);
end;

procedure DeleteManyFromMassiv(var mass : array of integer;var size: integer; del : integer);
var i : integer;
begin
     i:=0;
     while i<=size-1 do
     begin
          if mass[i]=del then
          begin
               DeleteOneFromMassiv(mass,size,i+1);
               dec(i);
          end;
          inc(i);
     end;
end;

var massiv : array [1..N] of integer;
    choice, i, j, SizeOfMass, count, temp : integer;
begin
     Randomize;
     SizeOfMass:=N;
     WriteLn('Random array:');
     for i:=1 to N do
     begin
          massiv[i] := random(100);
          Write(massiv[i]);
          if i<N then Write(',');
     end;

     WriteLn;
     WriteLn;
     WriteLn('Choice the action:');
     WriteLn('1 - to remove from array all elements meeting less of two times;');
     WriteLn('2 - to remove from array all elements meeting more of two times;');
     WriteLn('3 - to remove from array all elements meeting exactly two times;');
     WriteLn('4 - to remove from array all elements meeting exactly three times.');
     WriteLn;
     Write('Your choice: ');
     ReadLn(choice);
     i:=1;
     case choice of
     1:while i<=SizeOfMass do
       begin
            count:=1;
            for j:=1 to SizeOfMass do
            if (i<>j)and(massiv[i]=massiv[j]) then inc(count);
            if count<2 then
            begin
                 DeleteOneFromMassiv(massiv,SizeOfMass,i);
                 dec(i);
            end;
            inc(i);
       end;
     2:while i<=SizeOfMass do
       begin
            count:=1;
            for j:=1 to SizeOfMass do
            if (i<>j)and(massiv[i]=massiv[j]) then inc(count);
            if count>2 then
            begin
                 DeleteManyFromMassiv(massiv,SizeOfMass,massiv[i]);
                 dec(i);
            end;
            inc(i);
       end;
     3:while i<=SizeOfMass do
       begin
            count:=1;
            for j:=1 to SizeOfMass do
            if (i<>j)and(massiv[i]=massiv[j]) then inc(count);
            if count=2 then 
            begin
                 DeleteManyFromMassiv(massiv,SizeOfMass,massiv[i]);
                 dec(i);
            end;
            inc(i);
       end;
     4:while i<=SizeOfMass do
       begin
            count:=1;
            for j:=1 to SizeOfMass do
            if (i<>j)and(massiv[i]=massiv[j]) then inc(count);
            if count=3 then 
            begin
                 DeleteManyFromMassiv(massiv,SizeOfMass,massiv[i]);
                 dec(i);
            end;
            inc(i);
       end;
     else WriteLn('Error.Wrong choice.');
     end;
     WriteLn;
     WriteLn('Result:');
     for i:=1 to SizeOfMass do
     begin
          Write(massiv[i]);
          if i<SizeOfMass then Write(',');
     end;
     WriteLn;
     WriteLn;
     WriteLn('Press "Enter" to exit.');
     readln;
end.
ПС: в наказание за ловлю "халявы" не буду код объяснять , если сами разберетесь, то потом будет полегче, потому как, чем дальше в лес, тем больше дров. Поверьте, на специальности "ПОВТАС" не легко учиться, постоянно списывать не получится.
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Старый 15.09.2010, 09:17   #5
Zevsnet
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 10
По умолчанию

ДА , спасибо.. разбираться буду!!... А списываю я сейчас первый раз... до этого ломал голову с помощью товарища писал... но всё-же нужно учиться.. не спорю))...
Zevsnet вне форума Ответить с цитированием
Старый 15.09.2010, 09:25   #6
Zevsnet
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 10
По умолчанию

Хочу добавить!.. что в программе переменная (Temp) лишняя.. .. но ошибкой не является
Zevsnet вне форума Ответить с цитированием
Старый 16.01.2011, 18:01   #7
ensoleille
Пользователь
 
Регистрация: 16.01.2011
Сообщений: 25
По умолчанию

ох,если бы еще было тоже самое,но только в си^^
ensoleille вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить все слова, встречающиеся более 2 раз kat297 Общие вопросы Delphi 3 11.06.2010 16:27
дан двумерный массив и натуральные числа k и p,поменять местами элементы k и p столбцов массива np9Huk Помощь студентам 4 19.04.2010 12:59
Удалить из вещественного массива все элементы, отличающиеся от его максимального элемента не более чем на bingooo Паскаль, Turbo Pascal, PascalABC.NET 1 05.04.2010 20:15
Удалить из вещественного массива все элементы, отличающиеся от его максимального элемента не более чем на bingooo Помощь студентам 6 05.04.2010 18:42