Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Масиви

Содержание

Що є масив?Масив являє собою сукупність даних, що організована певним чином. Тобто масив – це структура даних.
Масиви Що є масив?Масив являє собою сукупність даних, що організована певним чином. Тобто Властивості масивів(1)масив складається з елементів, які мають однаковий тип;елементи масиву послідовно, без Властивості масивів(2)масив може бути одновимірним, або багатовимірним, У двовимірному масиві кожний з Оголошення одновимірного масиву Приклади оголошень масивів:int arr [10] ;int A [10] ={2,5,10}; Доступ до елементів масивуДля доступу до елементів масиву використовується синтаксична конструкція, що Доступ до елементів масивуint arr[ ] ={2, 5, 10, 3, 6, 0, 9, 4, 5, 7}; Масиви символівУ мові С символьний рядок розглядається як масив символів.Для масиву символів Оголошення рядка символівПриклад:char str[80] ;char str[10] ={‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘!’, Особливості роботи з масивами  в С, С++Ніякого контролю за значеннями індексів, Масиви і функціїУ мовах С, С++не існує такого типу як «масив». Не Масиви, як параметри функцій Масив, як формальний параметр функції, оголошується майже так Масиви, як параметри функційМасиви у функції завжди передаються за посиланням.Але символ & Масиви, як параметри функційМасив «не знає», скільки у нього елементів. Передаючи масив Приклад функції  для створення масиву  чисел Фібоначіvoid fibo(int ar[], int Виклик функції з масивом#define MAX 100 void fibo(int ar[], int size); int ФУНКЦІЇ ОБРОБКИ МАСИВІВ ЧИСЕЛ Формування масиву  випадкових чиселvoid createRndAr(int ar[], int size, int mod){	for(int i=0; i Операції над масивамиформування масиву випадкових чисел;введення/виведення масиву чисел;пошук суми елементів масиву;пошук максимального Введення чисел з консолі(1)void } getArFromConByStep(int ar[], int &n){ 	coutn; 	for(int i=0; i Введення чисел з консолі (2)void } void getArFromConAsLine(int ar[], int &size){	char s[80]; 	cout Перетворення рядка у масивvoid strToArr(char s[], int ar[], int &size){	int i(0); size=0; Осбливості використання cin.getline() та gets() forever{	system( Виведення масиву на консольvoid arToConsole(int ar[], int size){ 	for(int i=0; i Обчислення  суми елементів масивуint sumAr(int ar[ ],int n) { 	int sum=0; Пошук найбільшого елементу  у масивіint maxInAr(int m[], int size){ 	int mx=INT_MIN; Ще раз про виклик функціїvoid getArFromConAsLine(int m[], int &size);int maxInAr(int m[], int Пошук найменшого елементу  у масиві та його індексуvoid idxMn(int m[], int І знов про виклик функціїvoid idxMn(int m[], int sz, int &mn, int Визначення позиції елементу у масивіint findPos(int x, int m[], int size){	for(int i=0; i ПЕРЕСТАНОВКИ ЕЛЕМЕНТІВ МАСИВІВ Вилучення елементу із масивуvoid delElement(int element, int ar[], int &size){ 	int i=0; Вставка елементу до масивуvoid insert(int x,int pos, int ar[], int &size){ 	if(possize)return; Переворот масивуvoid transArray(int ar[], int size){ 	for(int i=0; i Циклічний зсув масиву праворучvoid shiftRight(int ar[], int size){ 	int buf=ar[size-1];	for(int i=size-1;i>0;i--) 		ar[i]=ar[i-1]; 	ar[0]=buf; } Інші задачі Масив у ролі лічильника// Тут ми підраховуємо скільки разів з'явиться // кожне Масив накопичених значень (інтеграл по індексу)void accumAr(int ar[], int size){	 for(int i=1; i Обробка рядків символів Операції над рядками символівПошук позиції символу у рядку;пошук позиції під рядка у Пошук позиції символу у рядкуint posChar(char str[], char ch){ 	for(uint i=0; str[i] Пошук позиції під рядка  у рядкуint posSubstr(char str[], char sub[]){	for(uint i=0; i Копіювання частини рядкаvoid subStr(char str[], char sub[], 					uint pos, uint n){	//Якщо позиція Вилучення частини рядкаvoid del(char str[], uint pos, uint n){	//Якщо позиція за межами Вставка під рядка у рядокvoid insert(char str[],char sub[], uint pos){	//Якщо позиція за Ціле число у рядок символівvoid intToStr(int x, char str[]){	int i=0, z=abs(x); str[0]='\0'; Перетворення рядка символів у числоint strToInt(char s[]){	int x=0, i=0; 	if(s[0] == '-')
Слайды презентации

Слайд 2 Що є масив?

Масив являє собою сукупність даних,
що

Що є масив?Масив являє собою сукупність даних, що організована певним чином.

організована певним чином.

Тобто масив – це структура даних.


Слайд 3 Властивості масивів(1)
масив складається з елементів, які мають однаковий

Властивості масивів(1)масив складається з елементів, які мають однаковий тип;елементи масиву послідовно,

тип;
елементи масиву послідовно, без проміжків, розташовані в одній ділянці

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

Слайд 4 Властивості масивів(2)
масив може бути одновимірним, або багатовимірним,
У

Властивості масивів(2)масив може бути одновимірним, або багатовимірним, У двовимірному масиві кожний

двовимірному масиві кожний з елементів є одновимірним масивом;
У тривимірному

масиві кожний з елементів є двовимірним масивом;

Слайд 5 Оголошення одновимірного масиву
Приклади оголошень масивів:
int arr [10]

Оголошення одновимірного масиву Приклади оголошень масивів:int arr [10] ;int A [10]

;
int A [10] ={2,5,10};
int A [] ={2, 5,

10, 3, 6, 0, 9, 4, 5, 7};



Слайд 6 Доступ до елементів масиву
Для доступу до елементів масиву

Доступ до елементів масивуДля доступу до елементів масиву використовується синтаксична конструкція,

використовується синтаксична конструкція, що складається з імені масиву та

індексу, який записується у квадратних дужках.
Наприклад, A[i], A [0], A [9].
Індексовані елементи масиву можуть бути використані так само, як і прості змінні. Вони можуть бути операндами у виразах, їм можна присвоювати значення, відповідні їх типу.

Слайд 7 Доступ до елементів масиву

int arr[ ] ={2, 5,

Доступ до елементів масивуint arr[ ] ={2, 5, 10, 3, 6, 0, 9, 4, 5, 7};

10, 3, 6, 0, 9, 4, 5, 7};


Слайд 8 Масиви символів
У мові С символьний рядок розглядається як

Масиви символівУ мові С символьний рядок розглядається як масив символів.Для масиву

масив символів.
Для масиву символів у пам’яті виділяється ділянка, розмір

якої на один байт більше, ніж кількість символів у рядку.
У цей додатковий байт записується ознака кінця рядка - символ ‘\0’.


Слайд 9 Оголошення рядка символів
Приклад:
char str[80] ;
char str[10] ={‘H’, ‘e’,

Оголошення рядка символівПриклад:char str[80] ;char str[10] ={‘H’, ‘e’, ‘l’, ‘l’, ‘o’,

‘l’, ‘l’, ‘o’, ‘!’, ‘\0’} ;
char str[10] =”Hello!”;
char str[]

=”Hello!”;



Слайд 10 Особливості роботи з масивами в С, С++
Ніякого контролю

Особливості роботи з масивами в С, С++Ніякого контролю за значеннями індексів,

за значеннями індексів, що використовуються для доступу до елементів

масиву, нема.
Ви можете звернутися до «елементу масиву» з номером, який більше максимального, але отримаєте невідомо що.
Ще гірше, якщо ви щось напишете за цим номером

Слайд 11 Масиви і функції
У мовах С, С++не існує такого

Масиви і функціїУ мовах С, С++не існує такого типу як «масив».

типу як «масив». Не можна написати, наприклад, int[ ],

як тип.
З цієї причини у функції не можна вказати масив, як тип того, що повертається функцією.
Але масив можна повернути через параметри функції.

Слайд 12 Масиви, як параметри функцій
Масив, як формальний параметр

Масиви, як параметри функцій Масив, як формальний параметр функції, оголошується майже

функції, оголошується майже так само, як і проста змінна,

але після імені параметру слід поставити пусті квадратні дужки. Тип цього параметру має співпадати з типом елементів масиву.

Слайд 13 Масиви, як параметри функцій
Масиви у функції завжди передаються

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

за посиланням.
Але символ & ставити не потрібно, бо ім’я

масиву і так є адресом першого елементу масиву.

Слайд 14 Масиви, як параметри функцій
Масив «не знає», скільки у

Масиви, як параметри функційМасив «не знає», скільки у нього елементів. Передаючи

нього елементів.
Передаючи масив до функції слід передавати і

кількість елементів масиву, що має бути оброблена.
Це число не повинно перевищувати кількість елементів під які виділено пам’ять під час оголошення масиву.


Слайд 15 Приклад функції для створення масиву чисел Фібоначі
void fibo(int

Приклад функції для створення масиву чисел Фібоначіvoid fibo(int ar[], int size){

ar[], int size){
ar[0] = 0;

ar[1] = 1;
for (int i=2 ; i ar[i] = ar[i - 2] + ar[ i - 1 ];
}

Слайд 16 Виклик функції з масивом
#define MAX 100
void fibo(int

Виклик функції з масивом#define MAX 100 void fibo(int ar[], int size);

ar[], int size);
int main() {
int fiboArray[MAX];
cout

сформувати: ";
int n; cin>>n;
fibo(fiboArray,n);
for(int i = 0; i < n; i++)
cout<}

Слайд 17 ФУНКЦІЇ ОБРОБКИ МАСИВІВ ЧИСЕЛ

ФУНКЦІЇ ОБРОБКИ МАСИВІВ ЧИСЕЛ

Слайд 18 Формування масиву випадкових чисел
void createRndAr(int ar[], int size,

Формування масиву випадкових чиселvoid createRndAr(int ar[], int size, int mod){	for(int i=0; i

int mod){
for(int i=0; i


Слайд 19 Операції над масивами
формування масиву випадкових чисел;
введення/виведення масиву чисел;
пошук

Операції над масивамиформування масиву випадкових чисел;введення/виведення масиву чисел;пошук суми елементів масиву;пошук

суми елементів масиву;
пошук максимального та мінімального елементів масиву та

їх індексів;
пошук індексу елементу масиву за його значенням;

Слайд 20 Введення чисел з консолі(1)
void }
getArFromConByStep(int ar[], int

Введення чисел з консолі(1)void } getArFromConByStep(int ar[], int &n){ 	coutn; 	for(int i=0; i

&n){ coutn;
for(int i=0; i

i++){ cout<<"Введіть число № “
< ";
cin>>ar[i];
}
}

Слайд 21 Введення чисел з консолі (2)
void }

void getArFromConAsLine(int

Введення чисел з консолі (2)void } void getArFromConAsLine(int ar[], int &size){	char s[80]; 	cout

ar[], int &size){
char s[80];
cout


cin.getline(s,80); //gets(s);
strToArr(s,ar,size);
}

Слайд 22 Перетворення рядка у масив
void strToArr(char s[], int ar[],

Перетворення рядка у масивvoid strToArr(char s[], int ar[], int &size){	int i(0);

int &size){
int i(0); size=0;
forever{
//Цикл пошуку цифри
while(

s[i] != '\0‘ && !isdigit(s[i])) i++;
if(s[i]=='\0') return;
//Формуємо наступне число
for(ar[size]=0; isdigit(s[i]); i++ )
ar[size]=ar[size]*10+(s[i]-48);
size++;
}
}

Слайд 23 Осбливості використання cin.getline() та gets()
forever{
system("cls");
cout

Осбливості використання cin.getline() та gets() forever{	system(


cout

getchar();
switch(v){

case 2: getArFromConAsLine(arr, size);
arToConsole(arr,size);
break;


Слайд 24 Виведення масиву на консоль
void arToConsole(int ar[], int size){

Виведення масиву на консольvoid arToConsole(int ar[], int size){ 	for(int i=0; i

for(int i=0; i


}

Слайд 25 Обчислення суми елементів масиву
int sumAr(int ar[ ],int n)

Обчислення суми елементів масивуint sumAr(int ar[ ],int n) { 	int sum=0;

{
int sum=0;
for (int i = 0; i

< n; ++i) {
sum+=ar[ i ];
}
return sum;
}

Слайд 26 Пошук найбільшого елементу у масиві
int maxInAr(int m[], int

Пошук найбільшого елементу у масивіint maxInAr(int m[], int size){ 	int mx=INT_MIN;

size){
int mx=INT_MIN;
for(int i=0; imx) mx=m[i];


return mx;
}

Слайд 27 Ще раз про виклик функції
void getArFromConAsLine(int m[], int

Ще раз про виклик функціїvoid getArFromConAsLine(int m[], int &size);int maxInAr(int m[],

&size);
int maxInAr(int m[], int size);
int main(){
int arr[100], sizeArr;
getArFromConAsLine(arr, sizeArr);

cout<<“Найбільше число у масивi: “
< return 0;
}

Слайд 28 Пошук найменшого елементу у масиві та його індексу
void

Пошук найменшого елементу у масиві та його індексуvoid idxMn(int m[], int

idxMn(int m[], int size, int &mn, int &idx){
mn=INT_MAX;

idx= -1;
for(int i=0; i if (m[i] mn=m[i];
idx = i;
}
}
}

Слайд 29 І знов про виклик функції
void idxMn(int m[], int

І знов про виклик функціїvoid idxMn(int m[], int sz, int &mn,

sz, int &mn, int &idx);
int main(){
int arr[100], sizeArr;
getArFromConAsLine(arr, sizeArr);

int mn, idx;
idxMn(arr, sizeArr, mn, idx);
cout<<"min="< <<"; index="< return 0;
}

Слайд 30 Визначення позиції елементу у масиві
int findPos(int x, int

Визначення позиції елементу у масивіint findPos(int x, int m[], int size){	for(int i=0; i

m[], int size){
for(int i=0; i


return -1;
}

Слайд 31 ПЕРЕСТАНОВКИ ЕЛЕМЕНТІВ МАСИВІВ

ПЕРЕСТАНОВКИ ЕЛЕМЕНТІВ МАСИВІВ

Слайд 32 Вилучення елементу із масиву
void delElement(int element, int ar[],

Вилучення елементу із масивуvoid delElement(int element, int ar[], int &size){ 	int

int &size){
int i=0;
while(i < size){
if(ar[i] ==

element) {
size = size - 1;
for(int j = i; j ar[ j ] = ar[ j+1 ];
}
else i++;
}
}

Слайд 33 Вставка елементу до масиву
void insert(int x,int pos, int

Вставка елементу до масивуvoid insert(int x,int pos, int ar[], int &size){

ar[], int &size){
if(possize)return;
for(int i=size;i>pos;i--)
ar[i]=ar[i-1];


ar[pos]=x;
size++;
}

Слайд 34 Переворот масиву
void transArray(int ar[], int size){
for(int i=0;

Переворот масивуvoid transArray(int ar[], int size){ 	for(int i=0; i

i

= tmp;
}
}

Слайд 35 Циклічний зсув масиву праворуч
void shiftRight(int ar[], int size){

Циклічний зсув масиву праворучvoid shiftRight(int ar[], int size){ 	int buf=ar[size-1];	for(int i=size-1;i>0;i--) 		ar[i]=ar[i-1]; 	ar[0]=buf; }

int buf=ar[size-1];
for(int i=size-1;i>0;i--)
ar[i]=ar[i-1];
ar[0]=buf;
}


Слайд 36 Інші задачі

Інші задачі

Слайд 37 Масив у ролі лічильника
// Тут ми підраховуємо скільки

Масив у ролі лічильника// Тут ми підраховуємо скільки разів з'явиться //

разів з'явиться // кожне з10 (від 0 до 9)

випадкових чисел
//у вибірці обсягом v
void arrayAsCount(int ar[], int v){
for(int i=0;i<10;i++)
ar[i]=0;
for(int i=0;i ar[rand()%10]++;
}

Слайд 38 Масив накопичених значень (інтеграл по індексу)
void accumAr(int ar[], int

Масив накопичених значень (інтеграл по індексу)void accumAr(int ar[], int size){	 for(int i=1; i

size){
for(int i=1; i


Слайд 39 Обробка рядків символів

Обробка рядків символів

Слайд 40 Операції над рядками символів
Пошук позиції символу у рядку;
пошук

Операції над рядками символівПошук позиції символу у рядку;пошук позиції під рядка

позиції під рядка у рядку;
копіювання частини рядка;
вилучення частини рядка;
вставка

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

Слайд 41 Пошук позиції символу у рядку
int posChar(char str[], char

Пошук позиції символу у рядкуint posChar(char str[], char ch){ 	for(uint i=0;

ch){
for(uint i=0; str[i] != '\0'; i++)
if(str[i]==ch) return

i;
return -1;
}

Слайд 42 Пошук позиції під рядка у рядку
int posSubstr(char str[],

Пошук позиції під рядка у рядкуint posSubstr(char str[], char sub[]){	for(uint i=0; i

char sub[]){
for(uint i=0; i


if (j==strlen(sub))return i;
}
return -1;
}

Слайд 43 Копіювання частини рядка
void subStr(char str[], char sub[],
uint

Копіювання частини рядкаvoid subStr(char str[], char sub[], 					uint pos, uint n){	//Якщо

pos, uint n){
//Якщо позиція за межами рядка
if (pos>strlen(str)) n=0;
//Якщо

кількість більша за можливе
else if(pos+n > strlen(str))
n=strlen(str)- pos;
for(uint i=0; i sub[i]=str[pos+i];
sub[n] = '\0';
}

Слайд 44 Вилучення частини рядка
void del(char str[], uint pos, uint

Вилучення частини рядкаvoid del(char str[], uint pos, uint n){	//Якщо позиція за

n){
//Якщо позиція за межами рядка
if (pos>=strlen(str)) return;
//Якщо кількість більша

за можливе
if(pos+n > strlen(str))
n = strlen(str) - pos;
for(uint i=pos+n; i<=strlen(str); i++)
str[i-n]=str[i];
}

Слайд 45 Вставка під рядка у рядок
void insert(char str[],char sub[],

Вставка під рядка у рядокvoid insert(char str[],char sub[], uint pos){	//Якщо позиція

uint pos){
//Якщо позиція за межами рядка
if (pos>strlen(str)) return;


//Зсув праворуч частини рядка
for(uint i=strlen(str); i>=pos ;i--)
str[i+strlen(sub)]=str[i];
//Вставка
for(uint i=0; i str[pos+i]=sub[i];
}

Слайд 46 Ціле число у рядок символів
void intToStr(int x, char

Ціле число у рядок символівvoid intToStr(int x, char str[]){	int i=0, z=abs(x);

str[]){
int i=0, z=abs(x); str[0]='\0';
do{ //Звільняємо місце для цифри
for(int

j=i++; j>=0; j--) str[j+1]=str[j];
str[0]=z%10+48; //Наступна цифра
}while(z/=10);
if(x<0){
for(int j=i; j>=0; j--) str[j+1]=str[j];
str[0]='-';
}
}

  • Имя файла: masivi.pptx
  • Количество просмотров: 193
  • Количество скачиваний: 0