Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4360_С++_мас.doc
Скачиваний:
8
Добавлен:
11.11.2019
Размер:
429.06 Кб
Скачать
  • Звільнення пам'яті

delete [] a;

Приклад

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

# include< iostream.h> # include<conio.h> # include<iomanip.h> int main () {int ryad, stovp; cin>>ryad>>stovp; int i, j;

int **a=new int *[ryad]; for (i=0; i<ryad; i++) a[i]= new int [stovp]; //уведення масиву for(i=0; i<ryad; i++) for (j=0; j<stovp; j++) cin>>a[i][j]

//виведення масиву for(i=0; i<ryad; i++) {for (j=0; j<stovp; j++) cout<<setw(4)<<a[i][j]<<“ “; cout<<endl;}

// аналіз масиву

int n=-1; bool dodat;

for (j=0; j<stovp; j++)

{ // перегляд по стовпцях

dodat=true;

for (i=0; i<ryad; i++)

if (a[i][j]<0)

{dodat=false; break;}

if (dodat)

{n=j; break;}

}

if (n==-1) cout<<“no”<<endl;

else cout<<“n=“<<n<<endl;

delete []a; //вивільнення пам'яті getch(); return 0; }

Завдання (Слайд № 13)

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

  2. Цілочисельний масив з 8 рядків та 15 стовпців заповнити випадковими одноцифровими числами. Скільки разів у масиві зустрічається число 5?

  3. Доповнити програму-розв'язок попередньої задачі виведенням таблиці кількості входжень у масив кожного з чисел (наприклад: 0->5 raz, 1->8 raz, …)

  4. Заданий одновимірний масив цілих чисел. Вивести значення елементів масиву:

    1. У зворотному порядку

    2. З парними індексами

    3. З непарними індексами

    4. Які є парними числами

    5. Які є непарними числами

Література

      1. Лєхан С.Ф. Інформатика С++. Спецкурс. 10-12 класи. – Шепетівка; Аспект, 2007.

      2. Глинський Я.М., Анохін В.Є., Ряжська В.А. С++ і С++ Builder. Навчальний посібник. – Львів: СПД Глинський, 2006.

      3. Глушаков С.В., Смирнов С.В., Коваль А.В. Практикум по С++. – Харьков: Фолио, 2006.

      4. Павловская Т.А. С/С++. Программирование на языке высокого уровня. – СПб.: Питер, 2003

      5. Лисенко Т.І. Поглиблене вивчення програмування в школі. – К.:ТОВ Редакція “Комп'ютер”, 2007.

Розв’язки завдань

Слайд № 13

Задача 2

#include <iostrem.h>

#include <conio.h>

#include <stdlib.h>

int main ()

{int a[8][15], int k=0;

randomize();

for (int I=0; I<8; I++)

for (int j=0; j<15; j++)

{a[I][j]=random(9);

if (a[I][j]==5) k++;}

cout<<k<<endl;

getch ();

return 0;

}

Задача 3

#include <iostrem.h>

#include <conio.h>

#include <stdlib.h>

int main ()

{int a[8][15], int k[10]={0};

randomize();

for (int I=0; I<8; I++)

for (int j=0; j<15; j++)

{a[I][j]=random(9);

k[a[i][j]]++;}

for (int i=0; i<10; i++) cout<<”k[“<<i<<”]=”<<k[i]<<” “;

cout<<endl;

getch ();

return 0;

}

Задача 4

#include <iostrem.h>

#include <conio.h>

#include <stdlib.h>

int main ()

{int a[100], int n; cin>>n;

randomize();

for (int I=0; I<n; I++)

a[I]=random(90);

//-----у зворотному порядку-------

for (I=n-1; I>=0; I--) cout<a[I]<<” “;

cout<<endl;

//-----у парними індексами-------

for (I=0; I<n; I+=2) cout<a[I]<<” “;

cout<<endl;

//-----у непарними індексами-------

for (I=1; I<n; I+=2) cout<a[I]<<” “;

cout<<endl;

//-----які є парними-------

for (I=0; I<n; I++)

if (a[I]%2==0) cout<a[I]<<” “;

cout<<endl;

//-----які є непарними-------

for (I=0; I<n; I++)

if (a[I]%2!=0) cout<a[I]<<” “;

cout<<endl;

getch ();

return 0;

}

Урок № 31

Тема: Підсумковий урок з теми “Масиви”.

Мета:

  1. Контроль отриманих знаннь та навичок

  2. Розвиток навичок раціонального використання часу

  3. Формування самостійності

Тип: Контроль отриманих знань та навичок

Обладнання:

  1. Тест “Масиви у С++”

  2. Картки “Масиви у С++”

Епіграф “Мы столько можем, сколько знаем” /Ф. Бекон/

Хід уроку

Етап уроку

Діяльність учителя

Діяльність учнів

1

Організаційний момент

Оголосити тему. мотивація

Критерії оцінювання:

  • Тестування - О1;

  • Самостійна робота, кожна задача – 4 бал; - О2

  • (О1+О2)/2

Оформити аркуші

2

Самостійна робота + тестування

Спостереження, забезпечення самостійності виконання завдань

По-черзі, тестування та самостійна робота (по варіантах)

3

Домашнє завдання

Розв’язати інший варіант

Записати в зошит

Тематична атестація з теми «Масиви у С++»

Варіант 1

Варіант 2

1. Увести масив цілих чисел. Перший елемент поміняти місцями з максимальним

#include<iostream.h>

#include<conio.h>

Int MaxEl(int a[], int n) { int max=a[0]; int L=0; for (int i=1; i<n; i++) if (a[i]>=max) {max=a[i]; L=i;} return L; } //-----------------------------------------

void _Input(int*, int); void _Print(int*, int);

//--------------------------------------------

int main() { int n, *a; //розмір та масив cout<<“n=”; cin>>n; a=new int [n]; _Input(a, n); cout<<“mas:\n”; _Print(a, n);

int L=MaxEl(a, n)

int tenp=a[1]; a[1]=a[L]; a[L]=temp;

_Print(a, n);

delete []a;

getch ();

retutn 0;

}

//--------функції------------------------ void _Input(int*a, int n); { for(int i=0; i<n; i++) cin>>a[i]; } //--------------------------------------- void _Print(int*a, int n); { for(int i=0; i<n; i++) cout<<a[i]<<“ “; cout<<endl; } //--------------------------------------

1 Увести масив цілих чисел. Останній елемент поміняти місцями з мінімальним #include<iostream.h>

#include<conio.h>

Int MinEl(int a[], int n) { int min=a[0]; int L=0; for (int i=1; i<n; i++) if (a[i]<=min) {min=a[i]; L=i;} return L; } //-----------------------------------------

void _Input(int*, int); void _Print(int*, int);

//--------------------------------------------

int main() { int n, *a; //розмір та масив cout<<“n=”; cin>>n; a=new int [n]; _Input(a, n); cout<<“mas:\n”; _Print(a, n);

int L=MinEl(a, n)

int tenp=a[n]; a[n]=a[L]; a[L]=temp;

_Print(a, n);

delete []a;

getch ();

retutn 0;

}

//--------функції------------------------ void _Input(int*a, int n); { for(int i=0; i<n; i++) cin>>a[i]; } //--------------------------------------- void _Print(int*a, int n); { for(int i=0; i<n; i++) cout<<a[i]<<“ “; cout<<endl; } //--------------------------------------

2. У підрозділі Y є 15 співробітників, а в G – 20. протягом місяця вони відпрацювали певну кількість днів, яка задана як випадкове число зі значенням від 0 до 31. Скільки осіб у кожному підрозділі працювали більше 15 днів?

#include<iostream.h>

#include<conio.h>

#include<stdlib.h>

Int F(int a[], int n) { int K=0; for (int i=0; i<n; i++) if (a[i]>=15) K++ return K; } //-----------------------------------------

void _Input(int*, int); void _Print(int*, int);

//--------------------------------------------

int main() {randomize();

int *y; //розмір та масив y=new int [15]; _Input(y, 15); cout<<“mas:\n”; _Print(y, 15);

int L=F(y, 15)

cout<<”y=”<<L<<endl;

delete []y;

int *g; //розмір та масив g=new int [20]; _Input(g, 20); cout<<“mas:\n”; _Print(g, 20);

int L=F(g, 20)

cout<<”g=”<<L<<endl;

delete []g;

getch ();

retutn 0;

}

//--------функції------------------------ void _Input(int*a, int n); { for(int i=0; i<n; i++) a[i]=random(31); } //--------------------------------------- void _Print(int*a, int n); { for(int i=0; i<n; i++) cout<<a[i]<<“ “; cout<<endl; } //--------------------------------------

2. У підрозділі Y є 15 співробітників, а в G – 20. протягом місяця вони відпрацювали певну кількість днів, яка задана як випадкове число зі значенням від 0 до 31. Скільки осіб у кожному підрозділі працювали менше, ніж 10 днів?

#include<iostream.h>

#include<conio.h>

#include<stdlib.h>

Int F(int a[], int n) { int K=0; for (int i=0; i<n; i++) if (a[i]<=10) K++ return K; } //-----------------------------------------

void _Input(int*, int); void _Print(int*, int);

//--------------------------------------------

int main() {randomize();

int *y; //розмір та масив y=new int [15]; _Input(y, 15); cout<<“mas:\n”; _Print(y, 15);

int L=F(y, 15)

cout<<”y=”<<L<<endl;

delete []y;

int *g; //розмір та масив g=new int [20]; _Input(g, 20); cout<<“mas:\n”; _Print(g, 20);

int L=F(g, 20)

cout<<”g=”<<L<<endl;

delete []g;

getch ();

retutn 0;

}

//--------функції------------------------ void _Input(int*a, int n); { for(int i=0; i<n; i++) a[i]=random(31); } //--------------------------------------- void _Print(int*a, int n); { for(int i=0; i<n; i++) cout<<a[i]<<“ “; cout<<endl;} //--------------------------

3. Утворити двовимірний масив y[2][3]. Вивести його на екран у вигляді таблиці. Обчислити добуток його від’ємних елементів

#include<iostream.h>

#include<conio.h>

#include<stdlib.h>

int main() {randomize();

int y[2][3]; //розмір та масив for (int i=0; i<2; i++)

{

for (int j=0; j<3; j++)

{y[i][j]=random(100)-50;

cout<<y[i][j]<<” “;}

cout<<endl;

}

int p=1; for (int i=0; i<2; i++)

for (int j=0; j<3; j++)

if (y[i][j]<0) p*=y[i][j];

cout<<”p=”<<p<<endl;

getch ();

retutn 0;

}

3. Утворити двовимірний масив y[3][2]. Вивести його на екран у вигляді таблиці. Обчислити суму його додатних елементів

#include<iostream.h>

#include<conio.h>

#include<stdlib.h>

int main() {randomize();

int y[3][2]; //розмір та масив for (int i=0; i<3; i++)

{

for (int j=0; j<2; j++)

{y[i][j]=random(100)-50;

cout<<y[i][j]<<” “;}

cout<<endl;

}

int s=0; for (int i=0; i<3; i++)

for (int j=0; j<2; j++)

if (y[i][j]<0) s+=y[i][j];

cout<<”s=”<<s<<endl;

getch ();

retutn 0;

ТЕСТ «МАСИВИ У С++»

  1. ОБЕРІТЬ СКЛАДОВІ ЧАСТИНИ ВИЗНАЧЕННЯ МАСИВУ:

    1. сукупність змінних одного типу

    2. змінні зберігаються в послідовно розташованих комірках оперативної пам'яті

    3. послідовність змінних, які мають однакове ім'я

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

  1. ВКАЖІТЬ, ЩО МОЖЕ БУТИ ІНДЕКСОМ ЕЛЕМЕНТУ МАСИВА

    1. Символ

    2. Ціле число

    3. Ціле додатне число

    4. Математичний вираз, результат обчислення якого є ціле додатне число

  2. ОБЕРІТЬ ВІРНІ ТВЕРДЖЕННЯ, ЩО МАЮТЬ ВІДНОШЕННЯ ДО ІМЕНІ МАСИВУ:

    1. Назва масиву – ключове слово array та будь-яка латинська літера

    2. Назва масиву є вказівником на його перший елемент

    3. Назва масиву є вказівником на його елемент з індексом [1]

    4. Ім’я масиву створюється за правилами створення ідентифікатора

  3. ОБЕРІТЬ ВІРНІ ТВЕРДЖЕННЯ, ЩО МАЮТЬ ВІДНОШЕННЯ ДО РОЗМІРУ МАСИВУ:

    1. Розміром може бути змінні цілого типу

    2. Розміром може бути змінні дійсного типу

    3. Розмір – це кількість елементів масиву

    4. Розмір – це індекс останнього елементу масиву

  4. ВКАЖІТЬ ОПИСИ МАСИВІВ, ЯКІ НЕ МОЖНА ВИКОРИСТОВУВАТИ НІ В ЯКОЇ ЧАСТИНІ ПРОГРАМИ

    1. int a[3];

    2. int a[‘f’];

    3. int a[]

    4. int a[3]={1}

  5. НЕХАЙ int а[5]={10, 11, 12, 13, 14} ЧОМУ ДОРІВНЮЄ ЗНАЧЕННЯ ЕЛЕМЕНТУ a[3]

    1. 3

    2. 12

    3. 13

    4. 14

  6. НЕХАЙ int а[5]={10, 11, 12, 13} ЧОМУ ДОРІВНЮЄ ЗНАЧЕННЯ ЕЛЕМЕНТУ a[4]

    1. 0

    2. 12

    3. 13

    4. Визначити неможливо

  7. НЕХАЙ float r[]={1.5, 3, 4.2}; ВКАЖІТЬ РОЗМІР МАСИВУ

    1. 3

    2. 4

    3. 4.2

    4. 5

  8. НЕХАЙ int а[5]; int і,j; float c; ВИБЕРІТЬ ПОМИЛКОВІ ЗВЕРНЕННЯ ДО ЕЛЕМЕНТІВ МАСИВУ

    1. a[i+j]

    2. a[i/j]

    3. a[c]

    4. a[‘I’]

  9. ОБЕРІТЬ ВІРНЕ ОФОРМЛЕННЕ ПЕРЕДАВАННЯ МАСИВУ В ФУНКЦІЮ

    1. void fun(int A[], int n);

    2. void fun(int A[void], int n);

    3. void fun(int A[n], int n);

    4. void fun(int A[100], int n);

  10. ВКАЖІТЬ, ЩО ПЕРЕДАЄТЬСЯ В ФУНКЦІЮ fun(a[2], 5);

    1. Масив, розмір якого 2 та значення його нового розміру

    2. Елементи масиву від 2 до 5 номерів

    3. 2-й елемент масиву та числове значення для змінної 5

    4. Масив, розмір якого 2 та числове значення для змінної 5

  11. ВКАЖІТЬ ПРАВИЛЬНО ОРГАНІЗОВАНИЙ ЦИКЛ ДЛЯ ОПРАЦЮВАННЯ ВСІХ ЕЛЕМЕНТІВ МАСИВУ, РОЗМІРНІСТЬ ЯКОГО n

    1. for (int i=1; i<=n; i++)

    2. for (int i=0; i<=n; i++)

    3. for (int i=1; i<n; i++)

    4. for (int i=0; i<n; i++)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]