Баранецька Оксана Георгіївна, вчитель інформатики Чернівецького ліцею №3 медичного профілю одномірні масиви icon

Баранецька Оксана Георгіївна, вчитель інформатики Чернівецького ліцею №3 медичного профілю одномірні масиви




Скачати 45.02 Kb.
НазваБаранецька Оксана Георгіївна, вчитель інформатики Чернівецького ліцею №3 медичного профілю одномірні масиви
Дата29.09.2012
Розмір45.02 Kb.
ТипДокументи

Баранецька Оксана Георгіївна, вчитель інформатики Чернівецького ліцею №3 медичного профілю

ОДНОМІРНІ МАСИВИ

Для зберігання та обробки в програмах складних видів даних використовують структуровані типи. Вони утворюються об’єднанням простих елементів даних одного або різних типів. У першому випадку тип даних визначається як тип-масив, у другому – як тип-запис.

Необхідність в масивах виникає, коли в пам’яті треба зберігати скінчену кількість впорядкованих даних одного типу. Масив – це скінчений впорядкований набір елементів одного типу. Тип елементів масиву називається базовим типом масиву. Використовуючи раніше описаний тип, як базовий, матимемо масив масивів, масив записів, масив рядків , масив множин і т.д. Найпростіша форма – одномірний масив. Він має індивідуальне ім’я, а для позначення окремого елемента до імені масиву додається індекс. Число елементів – розмір масиву – визначається при описі масиву і не змінюється під час виконання програми. Тип індексу може бути простим перелічувальним або обмеженим. Наприклад:

  1. A: Array [-5..5] of Integer;

  2. Type Day = (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);
    Var Temperature: Array [Day] of Real;

У розглянутих прикладах задаються масиви, що складаються із 11 цілих та 7 дійсних чисел.

Якщо межі масиву точно не відомі, то їх вибирають із запасом, проте слід пам’ятати, що добуток кількості елементів масиву на розмір елемента в байтах не повинен перевищувати 65520 байт.

Якщо ^ А і В – два сумісні масиви, тоді до них можна застосувати тільки:

  • операцію присвоювання (А := В), яка копіює поелементно масив В у масив А;

  • операції відношень (А = В, А <> В).

Існує багато різноманітних задач на одномірні масиви. Їх умовно можна поділити на три види:

  • найпростіші задачі;

  • стандартні задачі;

  • задачі, для розв’язання яких потрібно знати допоміжні алгоритми, спеціальні методи та прийоми.

Спочатку розглянемо декілька прикладів задач першого типу:

    1. У масиві А кожен елемент дорівнює 0 чи 1. Замінити всі нулі на одиниці і навпаки.
      Достатньо одного оператора присвоювання А[i]:=1-A[i] у тілі циклу.

    2. У масиві кожен елемент дорівнює 0, 1 чи 2. Переставити елементи масиву так, щоб спочатку розмістити всі нулі, потім всі одиниці, а потім всі двійки. Допоміжного масиву не використовувати.
      Можна не переставляти елементи масиву, а підрахувати кількість 0, 1, 2 та заповнити масив заново потрібним чином.

Перерахуємо стандартні (типові) задачі на одномірні масиви:

  1. знаходження найбільшого (найменшого) елемента;

  2. знаходження суми елементів (з умовою та без умови);

  3. підрахунок (заміна) елементів, що задовольняють певній умові;

  4. пошук заданого елементу:

    1. у невпорядкованому масиві;

    2. у впорядкованому масиві;

  5. визначення заданого розміщення елементів;

  6. видалення елемента, включення елемента на задану позицію;

  7. перестановка (інвертування, циклічний зсув) елементів;

  8. випадкова вибірка елементів (з повтореннями та без повторень);

  9. злиття двох впорядкованих масивів у впорядкований масив;

  10. сортування масиву (прості методи).

Ці задачі є обов’язковими, оскільки вони формують основні навички та деякі прийоми обробки масивів.

Побудуємо та проаналізуємо алгоритми розв’язання деяких стандартних задач.

Приклад 1:

Дано натуральне число n та цілі числа a1, a2, …, an. Визначити найбільшу кількість однакових, розташованих підряд чисел.
^ Послідовність рівних елементів масиву назвемо серією. Довжину серії позначимо як k, шукане число позначимо як q. За один перегляд масиву зафіксуємо початок кожної нової серії і в цей момент (a[i] <> a[i–1]) скоректуємо значення q, врахувавши довжину серії, що скінчилась. Щоб почати підрахунок довжини нової серії, скинемо накопичене значення змінної k (k:=1). Щоб врахувати довжину останньої серії, необхідне ще одне порівняння величин q і k після виходу з циклу. Матимемо програму:

const n =10;

a: array [1..n] of integer = (5, 1, 1, 1, 12, 19, 0, 0, 2, 2);

var i, k, q: 1..n;

begin

k:=1; q:=1;

for i:=2 to n do

if a[i]=a[i-1] then inc(k) {початок або продовження серії}

else {кінець серії однакових елементів}

begin

if q
k:=1 {нова ініціалізація лічильника k}

end;

if q
writeln(q);

readln

end.

Приклад 2:

Дано дійсні числа a1, a2, …, an. Переставити члени послідовності так, щоб спочатку розміщувались всі її невід’ємні члени, а потім – всі від’ємні. Порядок розміщення невід’ємних та від’ємних членів повинен зберігатися.
^ Для того щоб не змінювався порядок елементів, замінимо обмін зсувом підмасиву від a[i+1] до a[n] на одну позицію вліво. Зсув виконуватимемо до записання від’ємного елемента a[i] в кінець масиву, попередньо запам’ятавши його значення. Перший від’ємний елемент спочатку займе останнє місце, а в подальшому при появі кожного нового від’ємного елемента буде зсуватися на одну позицію вліво. Одержимо програму:

const n=16;

var a: array [1..n] of real;

x: real;

i, j, k : 1..n;

begin

{ініціалізація масиву та вивід на екран}

for i:=1 to n do

begin a[i]:=sin(i); write (a[i]:8:2) end;

writeln;

i:=1;

for k:=1 to n do

if a[i]>0 then

{перегляд наступного елемента справа}

inc(i)

else

{циклічний зсув під масиву на 1 елемент вліво}

begin

x:=a[i];

for j:=i+1 to n do a[j-1]:=a[j];

a[n]:=x

end;

{вивід шуканого масиву}

for i:=1 to n do write(a[i]:8:2);

readln end.

Насамкінець зауважимо, що для розв’язання нестандартних задач потрібно вчитися придумувати нові алгоритми. Досягається це тренуваннями побудови алгоритмів, а також аналізом та запам’ятовуванням побудованих алгоритмів.


Список використаної та рекомендованої літератури:

  1. Жалдак М.І., Рамський Ю.С. Інформатика – Київ: «Вища школа», 1991

  2. Зеленяк О.П. Практикум программирования на Turbo Pascal. Задачи, алгоритмы и решения. – СПб.: ООО «ДиаСофтЮП», 2001.

  3. Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию. – М.: Наука,1988.







Схожі:

Баранецька Оксана Георгіївна, вчитель інформатики Чернівецького ліцею №3 медичного профілю одномірні масиви iconУроки з інформатики та математики у знз
Зелінська Олена Петрівна, вчитель інформатики Кельменецького ліцею, спеціаліст вищої категорії, вчитель-методист
Баранецька Оксана Георгіївна, вчитель інформатики Чернівецького ліцею №3 медичного профілю одномірні масиви iconІнститут інформатики пропонує вступ у 2014 році на державну і контрактну форми навчання
Спеціаліст інформатики, вчитель інформатики, адміністратор навчальних комп’ютерних систем, вчитель математики, економіки, фізики,...
Баранецька Оксана Георгіївна, вчитель інформатики Чернівецького ліцею №3 медичного профілю одномірні масиви iconДеркач Надія Йосипівна, вчитель інформатики Чернівецького ліцею №1 математичного та економічного профілів Використання символьних множин при розв’язуванні олімпіадних задач
Якщо рядкова величина містить не більше, ніж 256 символів, то для розв’язування таких задач зручно працювати із символьними множинами....
Баранецька Оксана Георгіївна, вчитель інформатики Чернівецького ліцею №3 медичного профілю одномірні масиви iconГеном людини столярова О. О., вчитель біології Чернівецького ліцею №3
Геном (нім. Genom від гр. Genos походження) – сукупність генів гаплоїдного набору хромосом певного виду; основний гаплоїдний набір...
Баранецька Оксана Георгіївна, вчитель інформатики Чернівецького ліцею №3 медичного профілю одномірні масиви iconЗ теорії літератури та загальні тенденції розвитку літературного процесу Тренер – Гончарук Оксана Іванівна, вчитель української мови та літератури, «спеціаліст вищої категорії»
Тренер – Гончарук Оксана Іванівна, вчитель української мови та літератури, «спеціаліст вищої категорії», «вчитель-методист» Кіцманської...
Баранецька Оксана Георгіївна, вчитель інформатики Чернівецького ліцею №3 медичного профілю одномірні масиви iconУкраїнського медичного ліцею національного медичного університету імені о. О. Богомольця (10-11 класи) Київ 2011 Рецензенти
Програма з «Української літератури» Українського медичного ліцею Національного медичного університету імені О. О. Богомольця (10-11...
Баранецька Оксана Георгіївна, вчитель інформатики Чернівецького ліцею №3 медичного профілю одномірні масиви iconКруглого столу
Чернівці та науковці Чернівецького державного медичного університету, Чернівецького медичного коледжу та лікарі-практики. Заслухали...
Баранецька Оксана Георгіївна, вчитель інформатики Чернівецького ліцею №3 медичного профілю одномірні масиви iconІнформація про проведення ІІ етапу Всеукраїнської учнівської олімпіади з інформаційних технологій у 2011/2012 н р. 10 грудня 2011 року
Чернівецького вищого ліцею сфери послуг проведено ІІ етап першої Всеукраїнської олімпіади інформатики серед професійно-технічних...
Баранецька Оксана Георгіївна, вчитель інформатики Чернівецького ліцею №3 медичного профілю одномірні масиви iconАвтори: вчитель-методист Пілявська О. Д
Хх ст. І разом з питаннями з історії медицини ХХ ст поч. ХХІ ст., включеними до робочих програм Українського медичного ліцею з Всесвітньої...
Баранецька Оксана Георгіївна, вчитель інформатики Чернівецького ліцею №3 медичного профілю одномірні масиви iconАкадемія логіки Логіка 5-9 кл
Буковська О. І. кандидат педагогічних наук, заступник директора з науково-методичної роботи ліцею «Престиж» м. Києва, вчитель-методист...
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи