- •Технологія створення програм
- •Кодування і документування програми
- •Структурний підхід до програмування
- •Етапи створення програм
- •Створення програмного проекту
- •Методика відладки програми
- •Програмна реалізація алгоритмів лінійної структури
- •Програмна реалізація алгоритмів розгалужених структур
- •Програмна реалізація алгоритмів циклічних структур
- •Програмування вкладених циклів
- •Програмна реалізація функцій користувача
- •Програмна обробка одновимірних масивів
- •Список використаної літератури
Програмна обробка одновимірних масивів
Одновимірний масив — це послідовність однотипних даних. Уважно проаналізувавши це означення, можна зробити висновок, що масив фактично поєднує в собі дві структури: множину елементів і заданий на цій множині порядок.
Усі елементи масиву мають один і той самий тип, що називається базовим. З іншого боку, порядок теж визначається набором значень одного й того самого типу, що називається індексним, а самі ці значення називаються індексами. Кожному елементу масиву відповідає певний індекс. Індексний тип має бути простим порядковим типом даних. Кількість елементів в одновимір-ному масиві називається його розмірністю, або довжиною.З точки зору математики одновимірний масив — це вектор. Наприклад, масив або вектор А, що має п'ять елементів, які записують у математиці у вигляді індексованих змінних а1 и а2, а3, а4, а5, можна зобразити значеннями цих змінних у сусідніх ділянках оперативної пам'яті.
а1 |
а2 |
а3 |
а4 |
а5 |
Задача 3.6.1
Постановка задачі.
Зріст кожного з 22 учнів класу представлений у вигляді масиву. Визначити кількість учнів,зріст яких не перевищує значення s .
Вхідні дані :
значення s – змінна цілого типу - int s, одновимірний масив цілого типу - int A[N];
Вихідні дані :
кількість учнів,зріст яких не перевищує значення s – змінна цілого типу – int k;
Схема алгоритму рішення задачі.
А[i] k,s
1 0
Рис. 29 Схема алгоритму задачі 3.6.1
Лістинг програми.
#include <iostream>
#include <iomanip>
#include<windows.h>
using namespace std;
const int N=22;
void main ()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int A[N],s,k=0;
cout<<"Введите значение s :";
cin>>s;
for(int i=1;i<=N;i++)
{
cout<<"Введите рост ученика "<<i<<" :";
cin>>A[i];
}
for(int i=0;i<N;i++)
if(A[i]>s)k++;
cout<<"Количество учеников,рост которых не превышает значение s : "<<k<<endl;
system("pause");
}
Тестування програми.
Рис.30. Результат тестування задачі 3.6.1
3.7 Програмна обробка двовимірних масивів
Двовимірний масив - це масив, де кожному елементу ставиться у відповідність два індекси. Для початку роботи з масивом готуємо місце в пам'яті у вигляді прямокутника, що має задану кількість рядків і стовпчиків. Для цього описуємо його в розділі оголошень, використовуючи зарезервоване слово Аrray, після якого в квадратних дужках вказуємо розмірність масиву, причому враховуємо, що на першому місці вказуються індекси рядків, а на другому - стовпчиків, і обов'язково тип елементів.).
Задача 3.7.1
Постановка задачі.
Нехай 6 населених пунктів позначені номерами від 1 до 6 (величина k), а 5 кандидатів – номерами від1 до 5 (величина n). Кількість голосів,набраних кандидатами у кожному пункті визначити за допомогою генератора випадкових чисел. Вивести на екран таблицю результатів голосування, де у рядках є дані з населених пунктів, а у стовпцях – дані щодо конкретних кандидатів. Хто з кандидатів набрав максимальну. А хто – мінімальну кількість голосів у четвертому населеному пункті?
Вхідні дані :
двовимірний масив цілого типу - int A[k][n];
Вихідні дані :
мінімальна кількість голосів у четвертому населеному пункті – змінна цілого типу – int min, максимальна кількість голосів у четвертому населеному пункті – змінна цілого типу – int mах;
Схема алгоритму рішення задачі.
A[i;j]
min=A[3][j];
max=A[3][j]
Рис. 31 Схема алгоритму задачі 3.7.1
Лістинг програми.
#include <iostream>
#include <iomanip>
#include<windows.h>
#include <math.h>
using namespace std;
const int n=5,k=6;
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int A[k][n],max,min;
for(int i=0;i<k;i++)
for(int j=0;j<n;j++)
A[i][j]=rand()%10;
for(int i=0;i<k;i++)
{
cout<<endl<<"Номер населённого пункта "<<i+1<<":";
for(int j=0;j<n;j++)
{
cout<<'\t';
cout<<A[i][j];
}
}
min=max=A[3][0];
for(int j=0;j<n;j++)
{
if(A[3][j]<min)min=A[3][j];
}
cout<<endl<<"Минимальное количество голосов в четвёртом населённом пункте:"<<min;
for(int j=0;j<n;j++)
{
if(A[3][j]>max)max=A[3][j];
}
cout<<endl<<"Максимальное количество голосов в четвёртом населённом пункте:"<<max;
cout<<endl;
system("pause");
}
Тестування програми.
Рис.32 Результат тестування задачі 3.7.1
|