неділю, 28 вересня 2014 р.

Список задач для програмування

Список задач

 1 2 3 4 5 ... 199 200 201 202 203 

#ЗадачаСложность
1Простая задача?
4674 / 5172
2Цифры
2934 / 3663
3Спичечная модель
257 / 1517
4Две окружности
986 / 1689
5Два сомножителя
161 / 626
6Путёвки
123 / 206
7Римские числа
338 / 503
8Спички
575 / 860
9N-значные числа
414 / 640
10Садовник
432 / 625
11Большая точность
540 / 911
12Поврежденная картина
37 / 129
13Паук и муха
129 / 295
14Заяц-неудачник
236 / 342
15Мышка и зернышки
360 / 590
16Дракон
148 / 297
17Садовник-художник
679 / 836
18Paint2D
87 / 194
19Степень симметрии
860 / 966
20Сколько можно?
703 / 988
21Коррупция
12 / 177
22"Зеркально простые" числа
421 / 662
23Новогодняя елка
81 / 249
24Paint2D-Crack
8 / 43
25Paint3D
64 / 116
26Новогодние подарки
69 / 135
27Циклические сдвиги
538 / 636
28Произведение
51 / 202
29Уровень палиндромности
303 / 477
30Аттестация
28 / 60

 1 2 3 4 5 ... 199 200 201 202 203 

неділю, 14 вересня 2014 р.

Сортуванння елементів рядка













СОРТУВАННЯ  ЕЛЕМЕНТІВ  РЯДКА  МЕТОДОМ  БУЛЬБАШКИ
Цей метод ґрунтується на перестановці сусідніх чисел. Для впорядкування чисел в рядку здійснюємо повторні проходи по рядку, кожного разу переміщаючи найменший елемент частини масиву, що залишився, на початок.
Переміщення елементів рядка здійснюється таким чином: переглядаємо рядок справа на ліво, порівнюючи пари сусідніх чисел; якщо числа в парі розміщені в порядку зростання, то залишаємо їх без змін, а якщо в порядку спадання, то міняємо їх місцями.
В результаті першого проходу найменше число буде поставлене на початок масиву. У другому проході такі операції виконуються над елементами з останнього до другого, у третьому проході такі операції виконуються над елементами з останнього до третього, і так далі. Впорядкування рядка буде закінчено, якщо при проході рядка не виконуватиметься жодної перестановки елементів рядка. Факт перестановки фіксується за допомогою допоміжної змінної prap, яка на початку має значення 0 і  набуває значення 1 тоді, коли  виконуватиметься перестановка в якій-небудь парі. Прапорець prap, ще використовується з метою економії часу в тому випадку, коли частина рядка наперед впорядкована.
Програмa  на мові PASCAL для розташування 10-ти чисел в порядку зростання, від найменшого числа до найбільшого числа методом бульбашки.
 Program Bubblesort;
  CONST {оголошується перелік усіх постійних величин}
      n=10; {оголошується постійна величина, це кількість чисел у рядку, їх буде рівно 10}
 TYPE {оголошується  тип (MASSIV)рядок  цілих чисел  і кількість місць для них від 1 до n в діапазоні  integer }
     MASSIV=array[1..n] of  integer;
 VAR  {оголошується перелік усіх змінних величин, що використовуються у програмі}
i, j, adop, prap: longint; {оголошуються довгі цілі змінні величини, що будуть використовуватися у програмі}
      A: Massiv; {оголошується рядок із змінних величин, що будуть використовуватися у програмі}
BEGIN  {оголошується рядок  початок виконання  алгоритмічних дії програми}
writeln('Введіть елементи рядка');
for i:=1  to n do {цикл з лічильником у зростаючому порядку для присвоєння усім десяти елементам рядка  А[i]  довільних чисел }
begin
writeln;
write('À[',i,'] = '); {попереджає і записує на моніторі чергове місце  для введення  з клавіатури поточного числа рядка}
read (A[i]);  { виконується 10 разове введення з клавіатури на поточне місце рядка  нового числа }
end;  {оголошується  кінець виконання циклу для введення рядка із десяти цілих чисел  }
writeln('Рядок чисел до сортування'); {оголошується  про запис на моніторі рядка із десяти цілих чисел  }
writeln;
for i:=1  to n do writeln(a[i]:5);
   i:=2;
   repeat  {оголошується  про цикл з після умовою  для сортування рядка із десяти цілих чисел  }
   prap:=0;
   for j:=n downto i do  {оголошується  про цикл з лічильником у зворотному напрямі  для сортування рядка цілих чисел  }
    begin
   if  A[j]<A[j-1] then {оголошується  неповне розгалуження   для порівняння двох сусідніх цілих чисел  }
        begin
  adop:=A[j-1];  {якщо вірне порівняння(для порядку зростання) двох сусідніх цілих чисел , то відбувається їх обмін}
            A[j-1]:=A[j];
            A[j]:=adop;
            prap:=1;  {якщо фіксується, що відбувався обмін чисел}
        end;
   end;
   i:=1+ i; {це параметр циклу з лічильником у зворотному напрямі,   потрібний  для  обмеження  несортованої кількості  цілих чисел  }
    until prap=0;  {якщо виконується умова  prap=0,  не було обміну двох чисел, то цикл завершується}
writeln; {оголошується  про запис на моніторі рядка із десяти цілих чисел, що розташовані в порядку зростання  }
writeln('Рядок чисел після сортування');
writeln;
for i:=1  to n do writeln('A[',i,'] = ', A[i],';  '); {цикл з лічильником у зростаючому порядку для виводу на монітор  усіх десяти елементів рядка  А[iв порядку зростання }
writeln;
end.