Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Перегляд масиву по два елементи





68.Обробка масивів по одному елементу зліва направо

Елементи масиву можна переглядати:

1) Зліва направо із кроком 1, використовуючи цикл із параметром

for(int I=0;I<n;I++){обробка a[I];}

2) Зліва направо з кроком відмінним від 1, використовуючи цикл із параметром

for (int I=0;I<n;I+=step){обробка a[I];}

69.Обробка масивів по кілька елементів зліва направо

 

 

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

int I=0, J=N-1;

while(I<J)

{обробка a[I] й a[J];I++;J--;}

2. Елементи масиву можна обробляти по два елементи, рухаючись від початку до кінця із кроком 1(тобто обробляються пари елементів a[1]й a[2], a[2]й a[3] і т.д.):

for (I=1;I<N;I++)
{обробка a[I] й a[I+1]}

3. Елементи масиву можна обробляти по два елементи, рухаючись від початку до кінця із кроком 2 (тобто обробляються пари елементів a[1]й a[2], a[3]й

70. Обробка масивів по одному елементу справа наліво

3) З права наліво із кроком 1, використовуючи цикл із параметром

for(int I=n-1;I>=0;I--){обробка a[I];}

4) З права наліво із кроком відмінним від 1, використовуючи цикл із параметром

for (int I=n-1;I>=0;I-=step){обробка a[I];}

 

71. Обробка масивів по кілька елементів елементів справа наліво

72.Сортування масивів

Сортування - це процес перегрупування заданої множини об'єктів у деякому встановленому порядку.

Сортування масивів розподіляються за швидкодією. Існують прості методи сортувань, які вимагають n*n порівнянь, де n - кількість елементів масиву й швидкі сортування, які вимагають n*ln(n) порівнянь. Прості методи зручні для пояснення принципів сортувань, тому що мають прості й короткі алгоритми. Ускладнені методи вимагають меншої кількості операцій, але самі операції більш складні, тому для невеликих масивів прості методи більш ефективні.

Прості методи поділяють на три основні категорії:

- сортування методом простого включення;

- сортування методом простого вибору;

- сортування методом простого обміну;

73.Сортування масивів методом простого вибору

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

74.Сортування масивів методом простого обміну

Порівнюються й міняються місцями пари елементів, починаючи з останнього. У результаті перейменування елемент масиву виявляється най лівішим елементом масиву. Процес повторюється з елементами, які залишились.

75.Сортування масивів методом простого включення (вставки)

76.Означення вказівника

Вказівник – це змінна, яка містить адрес іншої змінної. Вказівники призначені для зберігання адрес пам'яті. Використання вказівників допомагає гнучко керувати даними в програмах..

Переваги вказівників включають:

1. Операції, які з допомогою вказівників виконуються легше і зручніше.

2. Операції, які без вказівників взагалі виконати неможливо.

77.Опис вказівників

Вказівники є числовими змінними, тому їх треба описати перед використанням. Імена вказівників повинні задовольняти ті умови, що і інші змінні і бути унікальними.

Синтаксис опису. Тип може бути будь-яким,

Ім’я типу *ім’я вказівника

Вказівник може бути константою або змінною, а також вказувати на константу або змінну.

78.Задання вказівників (операція взяття адреси)

Адреса в вказівнику сама не з’явиться, її треба там помістити з допомогою операції взяття адреси, яка позначається амперсанд (&). Операція поєднання & і імені змінної, перед якою він стоїть, повертає адресу даної змінної. Тому вказівник можна ініціалізувати таким оператором присвоєння.

Вказівник = & змінна;

Після ініціалізації вказівник вказує на змінну.

 

79.Операція посилання по вказівнику

Тип вказівника- це тип змінної, на яку вказує вказівник. Зірочка (*) це знак операції посилання по вказівнику і в даному випадку він означає, що ім’я вказівника є вказівником на змінну типу ім’я типу. Вказівники можна описувати разом зі звичайними змінними.

80.Вказівник на перший елемент масиву

Вказівники і масиви тісно пов’язані. Ім’я масиву без квадратних дужок є вказівником на перший елемент масиву. Якщо а ім’я масиву, то а – це адреса першого елементу масиву, тобто еквівалентне співвідношення.

&a[0] = = a

Ім’я масиву є постійним вказівником (адресною константою, яку не можна міняти, тому заборонена операція а++ або а--, якщо а – ім’я масиву), його не можна змінити і воно (ім’я) є фіксованим протягом виконання програми.

81.Адресна арифметика

Адресу першого елементу масиву легко одержати по його вказівнику- його імені. Щоб звернутися до будь-якого елементу масиву, вказівник має одержати приріст, кратний розміру елементів масиву. Для звертання до елементів масиву з допомогою вказівників використовується адресна арифметика. Адресна арифметика проста в використанні і з її допомогою легко працювати з вказівниками. Тут використовується дві унарні операції: ін кременту і декременту.

82.Інкрементування вказівників

Інкрементування вказівників. Інкрементувати вказівник – це значить збільшити його значення. Якщо значення вказівника інкрементувати на одиницю, то адресна арифметика автоматично адресу, яку він зберігає, так, щоб він вказував на наступний елемент масиву. Іншими словами, компілятор знає тип вказівника (з його опису) і збільшує збережувану в ньому адресу на довжину елемента даних.

83.Декрементування вказівників

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

84.Звернення до елементів масиву через вказівники

85.Індексний запис і вказівники

Ім’я масиву без квадратних дужок – це вказівник на перший елемент масиву. Тому до першого елементу можна звертатися з допомогою операції посилання по вказівнику. Нехай описаний масив array[]. Тоді вираз *array дасть його перший елемент, *(array +1) - другий і т. д.. Тоді можна записати такі співвідношення.

*(array)== array[0]

*(array +1) == array[1]

*(array +2) == array[2]

………………………………

*(array +n) == array[n]

Це зв’язок між зверненням до масиву по індексу і через операції з вказівниками.

Не можна використовувати не заданого (не ініціалізованого) вказівника в лівій частині оператора присвоєння.

86.Операції порівняння вказівників

Вказівники можна також порівнювати. Порівняння має сенс тільки для вказівників на один і той масив. При цьому виконуються операції порівняння = =,!=, <, >, >+, <+.

Молодші елементи масиву, тобто елементи з меншими індексами мають і менші адреси. Якщо ptr1 i ptr2 вказують на елементи одного і того масиву, то співвідношення ptr1 < ptr2 істинне, коли ptr1 вказує на елемент з меншим індексом, ніж ptr2

Операції множення і ділення над вказівниками не виконуються.

87.Обчислення зміщення вказівників

Зміщення – це фактичне віднімання двох вказівників, Якщо є два вказівники на різні елементи одного масиву, то їх можна відняти один від одного і вияснити, на якій відстані вони знаходяться Адресна арифметика забезпечує автоматичне масштабування результату, і в підсумку відстань виражається в кількості елементів. Якщо ptr1 i ptr2 вказують на елементи одного і того масиву, то вираз ptr1-ptr2 дає відстань між цими елементами.

88.Операція для визначення кількості байтів змінної даного типу

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

sizeof(int) =4

sizeof(short) =2

sizeof(float) =4

sizeof(char) =1

sizeof(double) =8

 

 

Date: 2015-05-23; view: 502; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию