ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 22.11.2019
Просмотров: 782
Скачиваний: 1
СОДЕРЖАНИЕ
Розділ 1Технологія створення програм
1.1Кодування і документування програми
1.2Структурний підхід до програмування
Розділ 2Робота в інтегрованому середовищі програмування (IDE) MS Visual Studio C++
2.1Склад і характеристика проектів IDE MS Visual Studio C++
2.2Створення програмного проекту
Розділ 3Формування навичок програмування з використанням алгоритмічної мови С++
3.1Програмна реалізація алгоритмів лінійної структури
3.2Програмна реалізація алгоритмів розгалужених структур
3.3Програмна реалізація алгоритмів циклічних структур
3.4Програмування вкладених циклів
3.5Програмна реалізація функцій користувача
3.6Програмна обробка одновимірних масивів
3.5Програмна реалізація функцій користувача
Більшість функцій сучасних комп'ютерних систем реалізовані у вигляді програм, підтримку цілісності яких в процесі запуску системи і особливо в процесі функціонування є важким завданням. Для порушення цілісності програми немає необхідності в додатковому обладнанні. Велика кількість користувачів в тій чи іншій мірі вміють програмувати і розбираються в операційних системах, знають їх помилки. Тому ймовірність атаки на програмне забезпечення досить висока. Перевірка цілісності програм програмним чином (за допомогою інших програм) не є надійною. Необхідно чітко уявляти, як забезпечується цілісність самої програми перевірки цілісності. Якщо вона знаходиться на тих же місцях, що й перевіряються програми, то довіряти результатам перевірки роботи такої програми не можна.
3.6Програмна обробка одновимірних масивів
Одновимірний
масив — це послідовність однотипних
даних.
Уважно проаналізувавши це
означення, можна зробити висновок, що
масив фактично поєднує в собі дві
структури: множину елементів і заданий
на цій множині порядок. Усі елементи
масиву мають один і той самий тип, що
називається базовим. З іншого боку,
порядок теж визначається набором значень
одного й того самого типу, що називається
індексним, а самі ці значення називаються
індексами. Кожному елементу масиву
відповідає певний індекс. Індексний
тип має бути простим порядковим типом
даних. Кількість елементів в одновимір-ному
масиві називається його розмірністю,
або довжиною.З точки зору математики
одновимірний масив — це вектор. Наприклад,
масив або вектор А, що має п'ять елементів,
які записують у математиці у вигляді
індексованих змінних а1 и а2, а3, а4, а5,
можна зобразити значеннями цих змінних
у сусідніх ділянках оперативної пам'яті.
|
а1 |
а2 |
а3 |
а4 |
а5 |
Ідентифікатор типу масиву можна оголосити в розділі type з використанням такого синтаксису:
<ім'я типу масиву> = array[<нижній індекс>..<верхній індекс>] of <тип елементів>;
У цьому оголошенні array, of — зарезервовані слова, що перекладаються як «масив», «з»; <ім'я типу масиву> — деякий ідентифікатор; <тип елементів> — будь-який тип даних, окрім файлового типу; <нижній індекс> і <верхній індекс> — константи, що визначають межі діапазону допустимих значень індексу. Розмірність масиву дорівнює величині оrd(<верхній індeкс>)-оrd(<нижній індекс>)+1.
У розділі var оголошується змінна, що матиме раніше оголошений тип масиву:
<ім'я масиву> : <ім'я типу масиву>;
Синтаксис мови Pascal дає можливість поєднати у розділі var оголошення змінної-масиву із визначенням її типу. При цьому ідентифікатор типу масиву не оголошується:
<ім'я масиву> : array[<нижній індекс>..<верхній індекс>] of <тип елементів>;
Нагадаємо, що обсяг пам'яті, яка виділена для зберігання всіх оголошених у розділах var змінних, не повинен перевищувати 64 Кбайт. Тому є обмеження на максимальну кількість елементів у масиві. Так, максимальна кількість елементів типу integer не може перевищувати 32 767, а елементів типу real — 10 922.Оголосити змінну типу масиву можна і з використанням такого синтаксису:<ім'я масиву> : array[<тип індексів>] of <тип елементів>;
Тут <тип індексів> — цілі типи shortint або byte, для яких кількість допустимих значень становить 256, або оголошений в розділі type перелічуваний тип. Як типи індексів не дозволяється вказувати типи integer, word і longint, оскільки розмір оголошеного в такий спосіб масиву становив би не менш ніж 64 Кбайт.
Задача 3.6.1
#include <iostream>
using namespace std;
int main()
{
int point[5];
for(int i = 0; i < 5; i++)
{
cout << "Vvedite ocenku: ";
cin >> point[i];
}
cout << endl << "Byli vvedeny sleduyuschie ocenki" << endl;
for(int i = 0; i < 5; i++)
cout << point[i] << "\t";
return 0;
}
3.7Програмна обробка двовимірних масивів
Двовимірний
масив -
це масив, де кожному елементу ставиться
у відповідність два індекси. Для початку
роботи з масивом готуємо місце в пам'яті
у вигляді прямокутника, що має задану
кількість рядків і стовпчиків. Для цього
описуємо його в розділі оголошень,
використовуючи зарезервоване слово
Аrray,
після якого в квадратних дужках вказуємо
розмірність масиву, причому враховуємо,
що на першому місці вказуються індекси
рядків, а на другому - стовпчиків, і
обов'язково тип елементів.
Опис
двовимірного масиву
<Ім'я_масиву>
: array[<поч_інд_рядків>..<кін_інд_рядків>,
<поч_інд_стовп>. .<кін_інд_стовп>]
of <базовий_тип_елементів> ;
Приклад
опису:
Var A:array[1..8,1..3] of real;
D:array[1..10,1.100] of integer;
Зверніть
увагу на те, що значень у рядках або
стовпчиках масиву не обов'язково буде
стільки, скільки ми оголосили, але не
більше.
Звертання до елементу
двовимірного масиву:
Ім'я_масиву[<індекс_рядка>,
<інд_стовпчика>]
Елементи двовимірного масиву (дані можуть бути подані у вигляді таблиці) визначаються іменем масиву та двома індексами: перший індекс означає номер рядка, а другий — номер стовпця, на перетині яких стоїть елемент, наприклад р[1,2], Розглянемо приклади оголошення масиву-константи bal, що має 2 рядки і 4 стовпці елементів, деякого масиву doba, який міститиме 24* 60 елементів цілого типу, двовимірного масиву р розміру 9 на 9 (тут буде 9* 9=81 елемент).
const bal: array [1..2,1..4] of integer=((4,3,5,3),(4,4,5,3));
var doba: array [0..23] of array [0..59] of integer;
p : array [l..9, l..9] of integer;
Тут bal[l,l]=4, bal[l,2]=3, .... bal[2,3]=5, bal[2,4]=3. Значення елементам масивів doba і р можна надати командою присвоєння двома способами,наприклад, так: doba[16,30]:=5.
Задача 3.7.1
#include <iostream>
#include <iomanip>
#include <stdlib.h>
#include <time.h>
using namespace std;
void initMatrix(int[][7], const int, const int);
void replaceColumn(int[][7], const int, int, int);
void printMatrix(int[][7], const int, const int);
int main()
{
const int column = 5, row = 7;
int matrix[column][row];
int counter, result, columnMin;
srand(time(NULL));
initMatrix(matrix, column, row);
cout << "\nNoSorted array" << endl << endl;
printMatrix(matrix, column, row);
for(int N = 0; N < column - 1; N++)
{ result = row * 30;
for(int i = N; i < column; i++)
{ counter = 0;
for(int j = 0; j < row; j++)
counter += matrix[i][j];
if(result > counter)
{ result = counter;
columnMin = i;
}
}
replaceColumn(matrix, row, N, columnMin);
}
cout << "\nSorted array" << endl << endl;
printMatrix(matrix, column, row);
return 0;
}
void initMatrix(int matrix[][7], const int column, const int row)
{ for(int i = 0; i < column; i++)
69. for(int j = 0; j < row; j++)
70. matrix[i][j] = rand() % 30;
}
void replaceColumn(int matrix[][7], const int row, int N, int columnMin)
{
int buffer[row];
for(int j = 0; j < row; j++)
{ buffer[j] = matrix[columnMin][j];
matrix[columnMin][j] = matrix[N][j];
matrix[N][j] = buffer[j];
}
}
void printMatrix(int matrix[][7], const int column, const int row)
{ for(int i = 0; i < column; i++)
{
for(int j = 0; j < row; j++)
cout << setw(3) << matrix[i][j];
cout << endl;
}
}
|
|
Список використаної літератури
-
C/C++. Программирование на языке высокого уровня / Т. А. Павловская. — СПб. : Питер, 2003. —461 с: ил.
-
Программирование и основы алгоритмизации: Учеб. пособие/В.Г. Давыдов. — М.: Высш. шк., 2003. — 447 е.: ил.
-
Основы программирования: Учебник. — М.: Мастерство,2002. - 432 с.