- •2. Основні елементи мови с
- •3.1 Алфавіт мови програмування
- •3.2Лексеми
- •3.3Ключові слова
- •3.4Ідентифікатори
- •3.5 Класифікація типів даних
- •3.6 Літерали
- •3.7 Оператори
- •3.8 Коментарі
- •3.9 Директиви препроцесора
- •3.10 Організація програми
- •3. Операції та вирази
- •4.1 Загальні відомості
- •4.2 Арифметичні операції
- •4.3 Операції приведення типів
- •(Тип) ідентифікатор,
- •4.4 Операції присвоєння
- •4.5 Операції інкремента і декремента
- •4.6 Операції порівняння
- •4.7 Операції зсуву
- •4.8 Порозрядні операції
- •4.9 Логічні операції
- •4.10 Операція sizeof
- •Sizeof ( Вираз ),
- •4.11 Операція послідовного обчислення
- •4.12 Операція умови (?:)
- •Операнд-1 ? Операнд-2 : Операнд-3
- •4.13 Адресні операції
- •Тип * ім'я_покажчика;
- •4. Прості типи даних
- •5.1 Оголошення змінних
- •[ Модифікатори ] тип ім’я_змінної;
- •5.2 Час існування та область видимості змінних
- •5.3 Цілі типи даних
- •5.4 Дійсні типи даних
- •5. Оператори керування
- •5.1 Оператор розгалуження if
- •If ( Вираз ) true-оператор;
- •5.2 Оператор розгалуження if-else
- •If ( Вираз ) true-оператор; else false-оператор;
- •5.3 Оператор множинного розгалуження switch
- •5.4 Оператор циклу for
- •For ( Вираз 1 ; Вираз 2 ; Вираз 3 ) тіло циклу
- •5.5 Оператор циклу while
- •While ( Вираз ) тіло циклу
- •5.6 Оператор циклу do while
- •Тіло циклу while ( Вираз ) ;
- •5.7 Оператор break
- •5.8 Оператор continue
- •6 Введення та виведення даних
- •7.1 Функція виведення printf
- •Int printf( стрічка форматування, змінна1, змінна2, ... );
- •7.2Функція введення scanf
- •Int scanf (стрічка форматування, адреса змінної1, адреса змінної2, ... );
- •9.1 Введення та виведення у файл
- •7 Масиви
- •7.1 Загальні поняття
- •7.2 Одновимірні масиви
- •Тип даних ім’я змінної [n];
- •7.3 Багатовимірні масиви
- •6. Функції
- •6.1 Основні поняття
- •{Тіло функції}
- •6.2 Область видимості
- •6.3 Порожній тип void
- •6.4 Передача аргументів у функцію
- •6.5 Рекурсивні функції
- •6.6 Прототипи функцій
- •8. Рядки в с
- •4.1 Прототипи
- •4.2 Функції перетворення буферів
- •4.3 Функції перевірки літер
- •4.4 Рядок символів
- •4.5 Операції з рядками:
- •4.6 Символьні константи
- •9. Покажчики
- •5.1 Визначення та ініціалізація покажчиків
- •5.2 Визначення покажчиків:
- •5.3 Масиви
- •5.6 Копіювання рядка
- •5.7 Посилання та оператор &
- •5.9 Посилання в якості результатів функції
- •5.10 Покажчики на функцію
- •Тип_функціі (* імя_покажчика) (специфікація_параметрів);
- •5.11 Покажчики на void
- •5.12 Арифметика покажчиків
- •10. Структури, об’єднання, перерахування
- •7.1 Структури
- •7.2 Ключове слово typedef
- •7.3 Об’єднання
- •7.4Перераховуваний тип (Enum)
- •Enum dataType
- •Enum day
- •11 Динамічне виділення пам'яті
7 Масиви
7.1 Загальні поняття
Масив – це впорядкована за індексом сукупність однотипних даних. Являє собою набір послідовних комірок.
У програмі масив – це змінна структурованого типу. Масиву присвоюється ім’я, за допомогою якого можна посилатися як на весь масив, так і на будь-який його елемент. Тут змінні мають індекси, що можуть бути сталими, змінними або виразами порядкового типу.
Переваги використання масивів безперечно полягають у зручності звертання до довільного елемента, у можливості компактного збереження послідовності у локальній області пам’яті та їх економності по відношенню до використання пам’яті.
Масиви є ефективні для використання у нескладних задачах, доки не з’являється потреба ефективного додавання та видалення елементів масиву. Масив може бути одновимірним та багатовимірним.
7.2 Одновимірні масиви
Одновимірний масив можна уявити як таблицю n×1. Індексом масиву є одне число. Тобто, за кожним елементом закріплений лише один його порядковий номер. Нумерація елементів масиву починається з 0 (0, 1, … ,n). Цей масив також називається лінійним. Прототип одновимірного масиву має такий вигляд:
Синтаксис одновимірного масиву.
Тип даних ім’я змінної [n];
Посилання на кожен елемент складається з назви змінної та індексу (номера елемента). Уявимо послідовність цілих чисел: 3, 2, 6, 9, 8. Маємо такі його елементи: A[0]=3,A[1]=2,A[2]=6,A[3]=9,A[4]=8.
Зобразимо графічно одновимірний массив (нумерація іде від 0 до деякого числаn, кожне значення комірки відповідає номеру елемента) (рис. 7.1)
Рисунок 7.1 – Зображення одновимірного масиву.
Для посилання на будь-який елемент цього масиву вкажемо ім’я послідовності (в нашому випадку це array) та значення індексу. Звернемося до нульового елемента даного масиву:array[0]. Значення цього елемента0.
Існує декілька можливостей заповнення масиву. Розглянемо їх на прикладі масиву з 10 елементів:
1) Можна присвоїти значення окремим коміркам за допомогою оператора присвоювання.
Приклад 1.Заповнимо усі комірки другим способом. Останні три заповнимо числом 7 окремо.
int array[10]={5,5,5,5,5,5,5,5,5,5};
array[7]=array[8]=array[9]=7;
for (int i=0; i<10; i++){
printf("%i ",array[i]);
}
Результат роботи програми:
2) Ефективним способом заповнення масиву є заповнення його у циклі.
Приклад 2. Заповнимо кожну комірку масиву числом 5 і виведемо результат.
for (int i=0; i<9; i++){
array[i]=5;
printf("%i ",array[i]);
}
Результат роботи програми:
3) Можна присвоїти деякі значення елементам масиву при його оголошенні.
Приклад 3. Присвоєння елементів в масиві.
int array[10]={5,5,5,5,5,5,5,5,5,5};
4) Також можна заповнювати масив числами, введеними з клавіатури. Тоді у текст програми додається рядок зчитуваня зі стандартного пристрою.
Приклад 4. Заповнення масиву з клавіатури.
for (int i=0; i<9; i++){
scanf(“%i”, &array[i]);
printf("%i ",array[i]);
}
5) На екрані ми побачимо аналогічну картину до попередніх. Буде виведений рядок чисел, попередньо нам заданих.
Приклад 5. Знайти максимальний елемент масиву.
Для вирішення цієї задачі створимо змінну max найменшого можливого значення. У циклі будемо почергово порівнювати значення елементів із максимальним. Коли воно виявиться більшим – максимальному значенню присвоїмо дане значення. В кінці виведемо max.
#include <stdlib.h>
#include <iostream.h>
int main()
{
int max= - 999999999;
int array[5]={1,3,5,3,0};
for(int i=0; i<5; i++){
if(array[i]>max){
max=array[i];
}}
printf("Max = %i\n", max);
system("PAUSE");
return 0;
}
Результат роботи програми: