- •1. Кроки для створення виконання програми
- •2. Змінні та константи
- •3. Символьні масиви і рядки
- •4. Директиви препроцесора
- •Тема 2: введення-виведення даних план
- •Аргументи для setiosflags і resetiosflags
- •2. Функція printf
- •2. Операції відношення
- •3. Логічні операції
- •4. Додаткові операції
- •5. Порозрядні операції
- •Тема 4: організація циклів план
- •1. Організація циклів за допомогою while і do...While
- •2. Організація циклів із використанням оператора for
- •3. Оператори switch і goto
- •Тема 5: створення функцій план
- •1. Створення функцій
- •2. Видимість змінних
- •3. Передача значень
- •4. Повертаємі значення і прототипи функцій
- •Тема 6: зовнішні пристрої і символьне введення/виведення план
- •1. Загальна концепція
- •2. Функції символьного введення-виведення
- •3. Символьні функції
- •4. Рядкові функції
- •5. Числові функції
- •6. Функції роботи з датою та часом
- •Тема 7: масиви план
- •1. Одномірні масиви, їхня ініціалізація
- •2. Сортування масивів
- •3. Розміщення одномірного масиву в пам’яті
- •4. Багатомірні масиви і їхнє розміщення в пам’яті
- •Тема 8. Вказівки і посилання план
- •1. Вказівки
- •2. Масиви і вказівки
- •Тема 9: робота з файлами план
- •1. Загальна характеристика роботи з файлами
- •2. Послідовні файли
- •Можливі режими доступу
- •3. Файли довільного доступу (із випадковим доступом)
- •Тема 10. Структури план
- •1. Загальна характеристика структури
- •2. Масиви структур
- •3. Використання масивів, як елементів структур
- •2. Робота зі структурами є універсальною, передбачено додавання записів до файлу (флаг ios:app). Для підрахунку кількості структур на диску приведемо наступні рядки програми:
- •Список літератури
Тема 7: масиви план
Одномірні масиви, їхня ініціалізація.
Сортування масивів.
Розміщення одномірного масиву в пам’яті.
Багатомірні масиви і їхнє розміщення в пам’яті.
1. Одномірні масиви, їхня ініціалізація
Нагадаємо опис символьних масивів
char name[]="Привіт";
аналогічно
char name[7]="Привіт";
7-му елементу привласнене значення ’\0’;
Всі індекси починаються з нуля
Виведення 1-го і 6-го елементів
cout << name[0]<<" "<< name[5];
Приклади визначення (описи) масивів інших типів:
int a[10],ss[20];
double cc[15],k[4];
Функція sizeof() – повертає число байтів, необхідне для розміщення в пам’яті її аргументу.
Наприклад:
int ss[10];
n=sizeof(s); // результат 20 байтів
n=sizeof(s[3]); // результат 2
Ініціалізація масивів може бути під час оголошення або програмним шляхом.
С++ автоматично ініціалізує глобальні масиви двійковим нулем. Всі символи рівні нулю, а елементи масивів, що містять число, також рівні нулю.
Ініціалізація під час оголошення.
char t[5]="Маша";
char k[5]={’М’, ’а’, ’ш’, ’а’};
t – рядок, k – не рядок – немає двійкового нуля наприкінці.
int m[5]={2,3,4,5,6};
або
int m[]={2,3,4,5,6};
double s[3]={1.23,4.57,8. 675};
Для ініціалізації всіх елементів великого масиву нулями під час оголошення, проініціалізуйте його перший елемент, інші автоматично заповняться нулями.
Ви повинні виводити масив по одному елементу. Немає можливості роздрукувати масив за допомогою одного елемента cout. (Виняток складає символьний масив, у якому є обмежувач рядка.)
Приклад 1. Знаходження в масиві найбільшого значення.
#include <iostream.h>
#define SIZE 10
void main()
{
//Ініціалізація під час оголошення
int ara[SIZE]={5,2,7,9,34,56,6,4,285,17};
int max,i;
max=ara[0];
for(i = 1; i < SIZE; i++)
if (ara[i] > max) max = ara[i];
cout << max;
}
Приклад 2. Знаходження max і min значення, заповнюючи масив довільними значеннями від 0-99.
#include <iostream.h>
#include <time.h>
#include <stdlib.h>
#define SIZE 15
void main()
{
int ara[SIZE];
int i, max, min;
randomize();//(не має місця у Visual C++)
for (i = 0;i < SIZE;i++)
ara[i] = rand()%100;
//Виведення масиву на екран
for (i = 0; i < SIZE; i++)
cout << ara[i] <<"\n";
max = min = ara[0];
for (i = 1; i < SIZE; i++)
{
if (ara[i] > max) max = ara[i];
if (ara[i] < min) min = ara[i];
}
cout <<max<<" "<<min;
}
Приклад 3. Пошук числа в масиві, яке дорівнює введеному значенню. Якщо такого немає, то воно добавляється в масив. Передбачається, що число введених значень, що не повторюються, не перевищує 100.
#include <iostream.h>
#define MAX 100
void main()
{
int i,num = 0;
long int ss,pt[MAX];
do
{
cout << "Введи число ->";
cin >> ss;
if (ss == -1) break; //Вихід за бажанням
//користувача
for (i = 0; i < num; i++)
if (ss == pt[i]) break;
if (i == num)
{
pt[num] = ss;
num++;
}
}
while (num < MAX);
cout << "Результат: \n";
for (i = 0; i < num; i++)
cout << pt[i] << "\n";
}
