Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

III. Етап проектування

Читайте также:
  1. Вимоги до проектування і розрахунку гідроізоляції фундаментів і заглиблених частин споруд
  2. Елементи проектування організації.
  3. Естетична цілісність проектування в дизайні
  4. ЗАВДАННЯ НА ПРОЕКТУВАННЯ.
  5. Загальні принципи проектування технологічних процесів складання
  6. КЛАСИФІКАЦІЯ ОСНОВ І ФУНДАМЕНТІВ ЗА ПРИНЦИПАМИ ПРОЕКТУВАННЯ

План уроку

  1. Поняття масиву.
  2. Оголошення одновимірного масиву.
  3. Індексація елементів масиву.
  4. Введення даних у масив та відображення його вмісту.
  5. Використання багаторядкових текстових полів для введення даних у масив та їх відображення.
  6. Пошук даних у масиві.
  7. Обчислення підсумкових показників для числового масиву.
  8. Обчислення підсумкових характеристик для елементів, що задовольняють певним властивостям.
  9. Вибирання елементів з масиву за певним критерієм.
  10. Сортування масивів.
  11. Пошук елементів у відсортованому масиві.

ІV. Етап навчальної діяльності

 

Масив (arrаy)– набір однотипних даних. Прикладами масиву можуть бути списки результатів контрольної роботи, змін температури, імен та ін..

Масив можна об’явити наступним чином:

іnt arrаy[5];

 


Запис іnt score[5] означає, що всі 5 елементів масиву(списку) мають тип іnt. До кожного з елементів масиву можна звернутися окремо score[0], score[1], …, score[4].

Зверніть увагу! Нумерація елементів масиву завжди починається не з 1, а з 0.

Змінні, які утворюють масив називаються індексовані або нумеровані змінні або елементи масиву.

Число в квадратних дужках називається індексом чи номером елемента масиву.

Кількість елементів масиву називається його об’явленим розміром або просто розміром.

ВСІ ЕЛЕМЕНТИ МАСИВУ ПОВИННІ БУТИ ОДНАКОВОГО ТИПУ ДАНИХ.

Тип даних масиву називають базовим типом масиву.

Записувати (зчитувати) дані в(з) масив(у) можна таким же чином, як і записувати дані в змінну.

cin >> score[2];

cout<< “Другий елемент масиву дорівнює ”<<score[2]<<endl;

Не потрібно плутати ситуації, коли ви об’являєте масив та коли ви його використовуєте. При об’яві масиву в дужках ставиться кількість елементів масиву, а при використанні – число в дужках означає який саме елемент масиву ви використовуєте.

 
 

 


Коли ви не знаєте скільки елементів буде містити масив можна використовувати змінну і, яка означає, що кількість елементів масиву і може бути будь-яка.

Listing

//Програма зчитує 5 значень і визначає наскільки кожне значення менше //максимального.

#include <iostream>

#include <conio.h> // Для функции getch()

using namespace std;

int main()

{

setlocale(LC_ALL, "rus"); // Вивід тексту на російській мові

int i, score[5], max;

cout<<”Введіть п’ять значень:”<<endl;

cin>>score[0];

max=score[0];

for (i=1; i<5; i++)

{

cin>>score[i];

if(score[i] > max)

max = score[i];

}

cout<<”Максимальне значення дорівнює ”<<max<<endl;

cout<<”Введені значення і різниця цих значень з максимальним значенням”<<endl;

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

{

cout<<score[i]<<”менше на”<<(max-score[i])<<endl;

}

getch(); // Задержка экрана до нажатия любой клавиши.

//По нажатию любой клавишы, программа закроется

return 0;

}

 

Приклад діалогу

Введіть п’ять значень:

5 9 2 10 6

Максимальне значення дорівнює 10

Введені значення і різниця цих значень з максимальним значенням

5 менше на 5

9 менше на 1

2 менше на 8

10 менше на 0

6 менше на 4

В прикладі продемонстровано використання масивів в циклі for. Цей цикл ідеально підходить для використання масивів. Наприклад, ось такий синтаксис використання:

for (i=0; і < розміру масиву; i++)

{

Дії з елементами масиву;

….

}

Ініціалізація(надання значення) масиву потрібна бути завжди! Вона може відбуватися двома способами:

І спосіб. Ініціалізація масиву відбувається так:

int child[3] = {2, 12, 1};

IІ спосіб. Ініціалізація масиву відбувається так:

int child[3];

child[0] = 2;

child[1] = 12;

child[2] = 1;

Масив можна використовувати в функціях, але ми з вами лише поверхово знайомимося з програмуванням, тому це ми вивчати не будемо.

 

Часто буває так, що точний розмір масиву невідомий та може змінюватися при кожному запуску програми. Найбільш вигідне рішення такої задачі – це масив з найбільшою кількістю індексів, які можуть знадобитися в програмі. У такому випадку програма можу використати весь масив або лише ту його частину, яка потрібна!

 

В наступній програмі ілюструється приклад часткового заповнення масиву. За кількістю заповнених елементів масиву слідкує змінна number_user, елементи зберігаються в масиві score, з нумерацією від 0 до (number_user – 1).

Listing 2

//Програма зчитує значення (менше 100) і визначає їх суму.

#include <iostream>

#include <conio.h> // Для функции getch()

using namespace std;

int main()

{

setlocale(LC_ALL, "rus"); // Вивід тексту на російській мові

const int number_score = 100;

int i(0), score [number_score], sum(0), number_user(0), next(0), index(0);

cout<<”Введіть значення не більше”<< number_score

<<”цілих чисел, кінець списку позначте від’ємним числом:”<<endl;

cin>>next;

while((next>=0) && (index< number_score))

{

score [index]=next;

index++;

cin>>next;

}

number_user = index;

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

{

sum=sum+score[i];

}

cout<<”Сума всіх значень дорівнює ”<<sum<<endl;

getch(); // затримка екрана до натискання будь-якої клавіши

return 0;

}

 

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

Змінна target – це елемент для пошуку в масиві

 

// Програма для пошуку в масиві числа

#include <iostream>

#include <conio.h>

using namespace std;

int main()

{

setlocale(LC_ALL, "rus");

int i(0), score[i], target(0), k(0), elem(-1);

cout<<" Введіть 5 значень "<<endl;

cin>>score[0]>>score[1]>>score[2]>>score[3]>>score[4];

cout<<endl;

cout<<"Введіть число для пошуку в масиві "<<endl;

cin>>target;

cout<<endl;

cout<<"Ви ввели "<<target<< " число"<<endl;

i=0;

while(i < 5)

{

if(target == score[i])

{

elem=i;

}

i++;

}

if(elem==-1)

{

cout<<target<<"Число не знайдено! ";

}

if(elem>-1)

{

cout<<" Число "<<target<< " знаходиться під елементом масиву " <<elem<<endl;

}

getch();

return 0;

}

 

 

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

 

#include <iostream>

#include <conio.h>

void fill_array(int a[], int size, int& number_user);

void sort(int a[], int number_user);

void values(int& v1,int& v2);

void index_small(const int a[],int start_index, int number_user);

int main()

{

using namespace std;

setlocale(LC_ALL, "rus");

int sample_array[10], number_user;

fill_array(sample_array, 10, number_user);

sort(sample_array,number_user);

cout<<"Sortirovanie Chasla: "<<endl;

for(int index=0; index<number_user; index++)

cout<<sample_array[index]<<" ";

cout<<endl;

getch();

return 0;

}

 

void fill_array(int a[], int size, int& number_user)

{

using namespace std;

cout<<"Vvedite nt bolee "<<size<<" polojitelnih celih chisel"<<endl;

cout<<"Konec spiska oboznachte otricatelnim chislom"<<endl;

int next, index=0;

cin>>next;

while((next>=0)&&(index < size))

{

a[index]=next;

index++;

cin>>next;

}

number_user=index;

}

 

void sort(int a[], int number_user)

{

int index_of_next_small;

for(int index=0;index<(number_user-1);index++)

index_of_next_small=index_small(a,index,number_user);

values(a[index],a[index_of_next_small]);

}

}

 

void values(int& v1,int& v2)//

{

int temp;

temp=v1;

v1=v2;

v2=temp;

}

 

void index_small(const int a[],int start_index, int number_user)

{

int min = a[start_index], index_of_min=start_index;

for(index=start_index+1;index<number_user;index++)

if(a[index]<min)

{

min=a[index];

index_of_min=index;

}

return index_of_min;

}

 

Приклад діалога

 

Введіть не більше 10 додатніх цілих чисел

Кінець списку помітьте від’ємним числом

80 30 50 70 60 90 20 30 40 -1

Відсортовані числа:

20 30 40 50 60 70 80 90

 

 

Багатомірний масив – це масив, який містить декілька індексів. Багатомірний масив можна використовувати для створення речень та тексту. Бувають строки двох типів – С-строки та просто строки.

Строкова змінна – це той же масив символів. Наприклад, масив char f [10]; може зберігати строку в 9 символів. 10 символів вона зберігати не може, так як останній символ строкової змінної – це нуль-символ. Позначається нуль-символ ‘\0’. Цей символ служить сигнальною міткою, яка означає кінець строки. Наприклад, слово «Привіт!» збережене в масиві виглядатиме так:

 

f[0] f[1] f[2] f[3] f[4] f[5] f[6] f[7] f[8] f[9]
П р и в і т ! \0    

 

 

Строкову змінну можна ініціювати (надати їй значення) під час об’яви. Наприклад,

char f [10]= ”Привіт!”;

 

Запам’ятайте, що char f [10]= ”Привіт!”; і char f [10]= {П,р,и,в,і,т,!}; це не одне і теж!

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

 

Строкові значення не схожі на числові і звичайні операції присвоєння(=) та прирівняння (= =) з ними не працюють. Тому слід звернути увагу на такі нюанси:

1. Присвоювати значення можна тільки при об’яві строкової змінної за допомогою оператора присвоєння(=). В інших місцях програми це буде помилка!

2. Для того, щоб присвоїти значення строковій змінній в програмі потрібно використовувати функцію strcpy(Назва_масиву, ”значення”); Наприклад,

strcpy(score,”Hello!”);

3. Для перевірки рівності двух строк використовується функція strcmp(строка 1, строка2); Наприклад,

if(strcmp(csting1,cstring2))

cout<<”Строчки різні”;

else

cout<<”Строчки однакові”;

4. Для використання функцій роботи зі строками існує бібліотека #include <cstring>

5. Деякі функції бібліотеки cstring

 

 

Функція Опис функції Застереження
strcpy(Цільова строка, Строка, що копіюється) Копіює строкове значення Строка, що копіюється в строкову змінну Цільова строка Не перевіряє, чи досить довжини строкової змінної Цільова строка для того, щоб помістити значення Копіюємої строки
strcat(Цільова строка, Строка, що приєднується) Приєднує строкове значення Строка, що копіюється в кінець значення строкової змінної Цільова строка Не перевіряє, чи досить довжини строкової змінної Цільова строка для того, щоб помістити результат об’єднання
strlen(Вимірювальна строка) Повертає ціле число, яке дорівнює довжині строки без урахування нуль-символу Немає
strcmp(Строка1, Строка2) Якщо Строка1 і Строка2 співпадають, повертає 0. Якщо Строка1 менше за Строку2 повертає від’ємне число. Якщо Строка1 більша за Строку2, повертає додатне число. Якщо строки співпадають, функція повертає 0, який переходить у логічний вираз false. Якщо не співпадають, то видає число, яке сприймається як True.

 

char a[80],b[80];

cout<<”Введіть будь-що: ”<<endl;

cin>>a>>b;

cout<<a<<b<<”—Кінець виводу”<<endl;

 

Приклад діалогу

Введіть будь-що:


Дата добавления: 2015-07-12; просмотров: 195 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Структура уроку| Шла Саша по шоссе и сосала сушку

mybiblioteka.su - 2015-2024 год. (0.026 сек.)