Разработка сайта для Вашего бизнеса. Веб дизайн. Дизайн логотипа, фирменного стиля, рекламная фотография . Комплексный рекламный креатив.

Ralex. We do the work.
На рынке с 1999го года. Средняя ценовая категория. Ориентация на эффективность решений.
Ознакомтесь с нашим портфолио
Узнайте больше о услугах
Свяжитесь с нами:
E-mail: [email protected]
Tel: (044) 587 - 84 - 78
Custom web design & дизайн и разработка сайта "под ключ"
Креативный, эффективный дизайн. Система управления сайтом (СУС).
Custom flexible разработка систем электронной коммерции
Система e-commerce разрабатывается под индивидуальные потребности. Гибкая функциональность.
Search Engine Optimzation & оптимизация под поисковые системы (SEO)
Постоянная оптимизация и мониторинг сайта в поисковых системах. Достигаем результата быстро и эффективно
Custom logo design & дизайн логотипа и фирменного стиля
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.
профессиональная рекламная фотография
креативно, смело, качественно
Custom logo design & рекламный креатив. дизайн рекламы
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.

Одномірні масиви в Паскалі і функція Random в Pascal

  1. оголошення масиву
  2. ініціалізація масиву
  3. Висновок елементів масиву
  4. Функція Random в Pascal
  5. Числа Фібоначчі в Паскалі
  6. Максимальний (мінімальний) елемент масиву
  7. Пошук в масиві
  8. циклічний зсув
  9. Перестановка елементів в масиві
  10. Вибір елементів і збереження в інший масив
  11. Сортування елементів масиву

Наша взаимовыгодная связь https://banwar.org/

На занятті пояснюється, як працювати з одновимірними масивами в Паскалі, як використовувати генератор випадкових чисел - функцію random в Паскалі. Розглядається приклад того, як вивести числа Фібоначчі

Матеріали сайту labs-org.ru спрямовані на практичне освоєння мови програмування Pascal. Короткі теоретичні відомості не претендують на повне висвітлення матеріалу по темі; необхідну інформацію можна знайти в мережі Інтернет у великій кількості. У наші ж завдання входить надання можливості отримання практичних навичок програмування на Паскалі. Вирішені наочні приклади і завдання викладені в міру збільшення їх складності, що дозволить з легкістю вивчити матеріал з нуля.

оголошення масиву

Масиви в Паскалі використовуються двох типів: одномірні і двовимірні.
Визначення одновимірного масиву в Паскалі звучить так: одновимірний масив - це певна кількість елементів, що відносяться до одного і того ж типу даних, які мають одне ім'я, і кожен елемент має свій індекс - порядковий номер.
Опис масиву в Паскалі (оголошення) і звернення до її елементів відбувається наступним чином:

Опис масиву в Паскалі (оголошення) і звернення до її елементів відбувається наступним чином:

оголошення масиву

var dlina: array [1 .. 3] of integer; begin dlina [1]: = 500; dlina [2]: = 400; dlina [3]: = 150; ...

var dlina: array [1..3] of integer; begin dlina [1]: = 500; dlina [2]: = 400; dlina [3]: = 150; ...

  • dlina - ідентифікатор (ім'я) масиву;
  • для оголошення використовується службове слово Array (в перекладі з англ. «масив» або «набір»);
  • [1..3] - в квадратних дужках ставиться номер (індекс) першого елемента, потім дві точки і індекс останнього елемента масиву, тобто по суті, вказується кількість елементів; кількість елементів масиву називається розмірністю масиву
  • of integer (з англ. «з цілих чисел») - вказує, до якого типу належить масив, of тут - службове слово.
  • Оголосити розмір можна через константу:

    Оголосити розмір можна через константу:

    ініціалізація масиву

    Крім того, масив може бути сам сталою, тобто всі його елементи в програмі заздалегідь визначені. Опис такого масиву виглядає наступним чином:

    const a: array [1 .. 4] of integer = (1, 3, 2, 5);

    const a: array [1..4] of integer = (1, 3, 2, 5);

    Заповнення послідовними числами:
    Заповнення послідовними числами:

    Введення з клавіатури:

    Приклад: Розглянемо, як відбувається введення масиву в Паскалі:

    writeln ( 'введіть кількість елементів'); readln (n); {Якщо кількість заздалегідь не відомо, - запитуємо його} for i: = 1 to n do write ( 'a [', i, '] ='); read (a [i]); ...

    writeln ( 'введіть кількість елементів'); readln (n); {Якщо кількість заздалегідь не відомо, - запитуємо його} for i: = 1 to n do write ( 'a [', i, '] ='); read (a [i]); ...

    writeln ( 'введіть кількість елементів');  readln (n);  {Якщо кількість заздалегідь не відомо, - запитуємо його} for i: = 1 to n do write ( 'a [', i, '] =');  read (a [i]);

    Висновок елементів масиву

    Приклад: Розглянемо, як вивести масив в Паскалі:

    1 2 3 4 5 6 7 8 9 10 11 12 13 var a: array [1 .. 5] of integer; {Масив з п'яти елементів} i: integer; begin a [1]: = 2; a [2]: = 4; a [3]: = 8; a [4]: ​​= 6; a [5]: = 3; writeln ( 'Масив A:'); for i: = 1 to 5 do write (a [i]: 4); {Висновок елементів масиву} end.

    var a: array [1..5] of integer; {Масив з п'яти елементів} i: integer; begin a [1]: = 2; a [2]: = 4; a [3]: = 8; a [4]: ​​= 6; a [5]: = 3; writeln ( 'Масив A:'); for i: = 1 to 5 do write (a [i]: 4); {Висновок елементів масиву} end.

    Для роботи з масивами найчастіше використовується в Паскалі цикл for з параметром, так як зазвичай відомо, скільки елементів в масиві, і можна використовувати лічильник циклу в якості індексів елементів.
    В даному прикладі роботи з одновимірним масивом є явне незручність: присвоювання значень елементам.

    Обробка масивів в Паскалі, так само як і заповнення масиву, відбувається зазвичай з використанням циклу for.

    Функція Random в Pascal

    Для того щоб постійно не запитувати значення елементів масиву використовується генератор випадкових чисел в Паскаль, який реалізується функцією Random. Насправді генеруються псевдовипадкові числа, але суть не в цьому.
    Для генерації чисел від 0 до n (не включаючи саме значення n, цілі числа в інтервалі [0, N)) використовується запис random (n).
    Перед використанням функції необхідно ініціалізувати датчик випадкових чисел за допомогою процедури randomize.
    Діапазон в Паскалі тих самих випадкових чисел від a до b задається формулою:

    Приклад: Заповнення масиву випадковими числами в Pascal:

    1 2 3 4 5 6 7 8 9 10 var f: array [1 .. 10] of integer; i: integer; begin randomize; for i: = 1 to 10 do begin f [i]: = random (10); {Інтервал [0,9]} write (f [i], ''); end; end.

    var f: array [1..10] of integer; i: integer; begin randomize; for i: = 1 to 10 do begin f [i]: = random (10); {Інтервал [0,9]} write (f [i], ''); end; end.

    Для дійсних чисел в інтервалі [0,1):

    var x: real; ... x: = random; {Інтервал [0,1)}

    var x: real; ... x: = random; {Інтервал [0,1)}

    Завдання Array 1. Необхідно задати масив розмірністю 5, заповнити масив випадковими числами в інтервалі [-1,1] і вивести елементи на екран: визначити три позиції для виведення кожного елемента.


    Числа Фібоначчі в Паскалі

    Найбільш поширеним прикладом роботи з масивом є висновок ряду чисел Фібоначчі в Паскаль. Розглянемо його.

    Приклад: Ряд чисел Фібоначчі: 1 1 2 3 5 8 13 ...

    f [0]: = 1; f [1]: = 1; f [2]: = 2; ...

    f [0]: = 1; f [1]: = 1; f [2]: = 2; ...

    або

    f [2]: = f [0] + f [1]; f [3]: = f [1] + f [2];

    f [2]: = f [0] + f [1]; f [3]: = f [1] + f [2];

    або

    Приклад: Обчислити і надрукувати перші 20 чисел Фібоначчі.

    1 2 3 4 5 6 7 8 9 10 11 var i: integer; f: array [0 .. 19] of integer; begin f [0]: = 1; f [1]: = 1; for i: = 2 to 19 do begin f [i]: = f [i - 1] + f [i - 2]; writeln (f [i]) end; end.

    var i: integer; f: array [0..19] of integer; begin f [0]: = 1; f [1]: = 1; for i: = 2 to 19 do begin f [i]: = f [i-1] + f [i-2]; writeln (f [i]) end; end.

    На даному прикладі, стає зрозумілий принцип роботи з числовими рядами. Зазвичай, для виведення числового ряду знаходиться формула визначення кожного елемента даного ряду. Так, у випадку з числами Фібоначчі, ця формула-правило виглядає як f [i]: = f [i-1] + f [i-2]. Тому її необхідно використовувати в циклі for при формуванні елементів масиву.

    Завдання Array 2. Дан ряд з 10 довільних чисел: a [1], a [2], ..., a [10]. Підрахувати і надрукувати суми трійок стоять поруч чисел: a [1] + a [2] + a [3], a [2] + a [3] + a [4], a [3] + a [4] + a [5], ......, a [8] + a [9] + a [10]


    Завдання Array 3.

    Написати програму вирішення задачі про друк ряду чисел 2 4 8 16 32 ... 512; для заповнення масиву використовувати цикл Repeat

    Максимальний (мінімальний) елемент масиву

    псевдокод:
    псевдокод:

    Пошук максимального елемента по його індексу:
    Пошук максимального елемента по його індексу:

    Завдання: Знайдіть мінімальний елемент масиву

    Завдання Array 4. Дан масив з 10 цілочисельних елементів. Знайти кількість негативних і вивести кількість на екран.

    Завдання Array 5. Знайти мінімальне і максимальне з n введених чисел (масиву) і їх індекси.

    Завдання Array 6. Дан цілочисельний масив розміру N. Вивести все що містяться в даному масиві парні числа в порядку убування їх індексів, а також їх кількість K.

    Завдання Array 7.

    Ввести з клавіатури масив з 5 елементів, знайти в ньому два максимальних елемента і їх номери.

    приклад:

    Вихідний масив: 4 -5 10 -10 5 максимальні A [3] = 10, A [5] = 5

    Пошук в масиві

    Розглянемо складніший приклад роботи з одновимірними масивами:

    Приклад: Дан масив з 10 чисел. Визначити, чи є в масиві число, введене користувачем. Якщо є - виводити «знайдено», якщо немає - "не знайдено».


    Для вирішення поставленого завдання знадобиться оператор break - вихід з циклу.
    Рішення Варіант 1: Показати рішення 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 var f: array [1 .. 10] of integer; flag: boolean; i, c: integer; begin randomize; for i: = 1 to 10 do begin f [i]: = random (10); write (f [i], ''); end; flag: = false; writeln ( 'введіть зразок'); readln (c); for i: = 1 to 10 do if f [i] = c then begin writeln ( 'знайдений'); flag: = true; break; end; if flag = false then writeln ( 'не найден'); end.

    var f: array [1..10] of integer; flag: boolean; i, c: integer; begin randomize; for i: = 1 to 10 do begin f [i]: = random (10); write (f [i], ''); end; flag: = false; writeln ( 'введіть зразок'); readln (c); for i: = 1 to 10 do if f [i] = c then begin writeln ( 'знайдений'); flag: = true; break; end; if flag = false then writeln ( 'не найден'); end.

    Розглянемо ефективне рішення:

    Завдання: знайти в масиві елемент, рівний X, або встановити, що його немає.

    алгоритм:

    • почати з 1-го елемента (i: = 1);
    • якщо черговий елемент (A [i]) дорівнює X, то закінчити пошук інакше перейти до наступного елементу.

    рішення на Паскалі:

    рішення на Паскалі:

    Пошук елемента в масиві

    Пропонуємо подивитися детальний відео розбір пошуку елемента в масиві (ефективний алгоритм):

    Завдання Array 8.

    Заповнити масив з 10 елементів випадковими числами в інтервалі [0..4] і вивести номери всіх елементів, рівних X.

    приклад:

    Вихідний масив: 4 0 1 2 0 1 3 4 1 0 Що шукаємо? 0 A [2], A [5], A [10]

    циклічний зсув


    Рішення:Алгоритм:

    A [1]: = A [2]; A [2]: = A [3]; ... A [N-1]: = A [N];

    програма:
    програма:

    Завдання Array 9.

    Заповнити масив з 10 елементів випадковими числами в інтервалі [-10..10] і виконати циклічний зсув вліво без першого елемента.
    Приклад: Вихідний масив: 4 -5 3 10 -4 -6 8 -10 1 0 Результат: 4 3 10 -4 -6 8 -10 1 0 -5

    Перестановка елементів в масиві

    Розглянемо, як відбувається перестановка або реверс масиву.

    Рішення:

    Завдання Array 10.

    Заповнити масив з 10 елементів випадковими числами в інтервалі [-10..10] і зробити реверс всіх елементів, крім останнього.
    Приклад: Вихідний масив: -5 3 10 -4 -6 8 -10 1 0 4 Результат: 0 1 -10 8 -6 -4 10 3 -5 4

    Вибір елементів і збереження в інший масив

    Рішення:

    Рішення:

    підраховувати кількість знайдених елементів за допомогою лічильника count, черговий елемент встановлювати на місце B [count]. Зміною count необхідно присвоїти 1.

    Висновок масиву B:
    Висновок масиву B:

    Висновок масиву B:

    Завдання Array 11.

    Заповнити масив випадковими числами в інтервалі [20,100] і записати в інший масив все числа, які закінчуються на 0.
    Приклад: Вихідний масив: 40 57 30 71 84 Закінчуються на 0: 40 30

    Сортування елементів масиву

    Сортування методом «Бульбашки»

    • У такому типі угруповань масив представляється у вигляді води, маленькі елементи - бульбашки у воді, які спливають наверх (найлегші).
    • При першій ітерації циклу елементи масиву попарно порівнюються між собою: передостанній з останнім, перед передостанній з передостаннім і т.д. Якщо попередній елемент виявляється більше подальшого, то проводиться їх обмін.
    • При другій ітерації циклу немає потреби порівнювати останній елемент з передостаннім. Останній елемент вже стоїть на своєму місці, він найбільший. Значить, число порівнянь буде на одне менше. Те ж саме стосується кожної наступної ітерації.

    Те ж саме стосується кожної наступної ітерації

    Виконання на Паскалі:

    1 2 3 4 5 6 7 8 for i: = 1 to N - 1 do begin for j: = N - 1 downto i do if A [j]> A [j + 1] then begin з: = A [j] ; A [j]: = A [j + 1]; A [j + 1]: = с; end; end;

    for i: = 1 to N-1 do begin for j: = N-1 downto i do if A [j]> A [j + 1] then begin з: = A [j]; A [j]: = A [j + 1]; A [j + 1]: = с; end; end;

    Завдання Array 112

    Заповнити масив з 10 елементів випадковими числами в інтервалі [0..50] і впорядкувати першу половину масиву по зростанню, а другу - по спадаючій. Приклад: Вихідний масив: 14 25 13 30 76 58 32 11 41 97 Результат: 13 14 25 30 76 97 58 41 32 11

    Сортування методом вибору

    • в масиві шукається мінімальний елемент і ставиться на перше місце (міняється місцями з A [1]);
    • серед решти елементів також проводиться пошук мінімального, який ставиться на друге місце (міняється місцями з A [2]) і т.д.

    д

    Виконання на Паскалі:

    1 2 3 4 5 6 7 8 9 10 for i: = 1 to N - 1 do begin min: = i; for j: = i + 1 to N do if A [j] <A [min] then min: = j; if min <> i then begin c: = A [i]; A [i]: = A [min]; A [min]: = c; end; end;

    for i: = 1 to N-1 do begin min: = i; for j: = i + 1 to N do if A [j] <A [min] then min: = j; if min <> i then begin c: = A [i]; A [i]: = A [min]; A [min]: = c; end; end;

    Завдання Array 13:

    Заповнити масив з 10 елементів випадковими числами в інтервалі [0..50] і впорядкувати його по зростанню суми цифр Приклад: Вихідний масив: 14 25 13 12 76 58 21 87 10 98 Результат: 10 21 12 13 14 25 76 58 87 98

    Швидке сортування або quick sort

    алгоритм:

    1. Вибирається і запам'ятовується середній елемент масиву (дамо X):
    2. Вибирається і запам'ятовується середній елемент масиву (дамо X):

    3. Ініціалізіруем дві змінні (майбутні індекси масиву): L: = 1, R: = N (N - кількість елементів).
    4. Збільшуємо L і шукаємо перший елемент A [L], який більше або дорівнює X (в результаті він повинен знаходитися праворуч).
    5. Зменшуємо R і шукаємо елемент A [R], який менше або дорівнює X (в результаті він повинен знаходитися зліва).
    6. Дивимося, якщо L

    Дивимося, якщо L

    Виконання на Паскалі:
    Виконання на Паскалі:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 procedure QSort (first, last: integer); var L, R, c, X: integer; begin if first <last then begin X: = A [(first + last) div 2]; L: = first; R: = last; while L <= R do begin while A [L] <X do L: = L + 1; while A [R]> X do R: = R - 1; if L <= R then begin c: = A [L]; A [L]: = A [R]; A [R]: = c; L: = L + 1; R: = R - 1; end; end; QSort (first, R); QSort (L, last); end; end.

    procedure QSort (first, last: integer); var L, R, c, X: integer; begin if first <last then begin X: = A [(first + last) div 2]; L: = first; R: = last; while L <= R do begin while A [L] <X do L: = L + 1; while A [R]> X do R: = R - 1; if L <= R then begin c: = A [L]; A [L]: = A [R]; A [R]: = c; L: = L + 1; R: = R - 1; end; end; QSort (first, R); QSort (L, last); end; end.

    Завдання Array 14:
    Заповнити масив з 10 елементів випадковими числами в інтервалі [-50..50] і впорядкувати його за допомогою алгоритму швидкого сортування.

    Категории
  • Биология
  • Математика
  • Краеведению
  • Лечебная
  • Наука
  • Физике
  • Природоведение
  • Информатика
  • Новости

  • Новости
    https://banwar.org/
    Наша взаимовыгодная связь https://banwar.org/. Запустив новый сайт, "Пари Матч" обещает своим клиентам незабываемый опыт и возможность выиграть крупные суммы.


    Наши клиенты
    Клиенты

    Быстрая связь

    Тел.: (044) 587-84-78
    E-mail: [email protected]

    Имя:
    E-mail:
    Телефон:
    Вопрос\Комментарий: