Формування навичок програмування з використанням алгоритмічної мови С++

Кодування і документування програми. Робота в інтегрованому середовищі програмування (IDE) MS Visual Studio C++. Програмна реалізація алгоритмів лінійної структури, розгалужених та циклічних структур. Аналіз програмної реалізації функцій користувача.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 09.07.2017
Размер файла 287,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

  • Зміст
  • 1. Технологія створення програм
  • 1.1 Кодування і документування програми
  • 1.2 Структурний підхід до програмування
  • 1.3 Етапи створення програм
  • 2. Робота в інтегрованому середовищі програмування (IDE) MS Visual Studio C++
  • 2.1 Склад і характеристика проектів IDE MS Visual Studio C++
  • 2.2 Створення програмного проекту
  • 2.3 Методика відладки програми
  • 3. Формування навичок програмування з використанням алгоритмічної мови С++
  • 3.1 Програмна реалізація алгоритмів лінійної структури
  • 3.2 Програмна реалізація алгоритмів розгалужених структур
  • 3.3 Програмна реалізація алгоритмів циклічних структур
  • 3.4 Програмування вкладених циклів
  • 3.5 Програмна реалізація функцій користувача
  • 3.6 Програмна обробка одновимірних масивів
  • 3.7 Програмна обробка двовимірних масивів
  • Список використаної літератури

1. Технологія створення програм

1.1 Кодування і документування програми

Робота кодувальника полягає в перекладі алгоритму в програму. Для створення повної, точної та зрозумілої програми необхідні відповідні методи запису програм. Наприклад, кулінарні рецепти зазвичай записуються на природних мовах, таких, як англійська, французька, російська або японська. Програми ж пишуться на мовах програмування. В даний час жоден з природних мов не можна використовувати в якості мови програмування, так як вони занадто складні, щоб їх могли «розуміти» машини. На відміну від природних, мови програмування створені спеціально для такого подання рішення завдання, яке може бути виконано комп'ютером.

Останньою складовою процесу програмування є документування. Воно включає широкий спектр описів, що полегшують процес програмування і збагачують результуючу програму. Постійне документування має становити невід'ємну частину кожного кроку програмування. Постановка завдання, проектні документи, алгоритми і програми - все це документи. Внутрішня документація, зазначена безпосередньо в програму, полегшує читання коду. Призначення навчального посібника (ще однієї форми документації) - навчити користувача застосовувати нову програму; довідкове керівництво дозволяє ознайомитися з описом команд програмного забезпечення.

1.2 Структурний підхід до програмування

Структурне програмування - підхід, при якому для передачі управління у програмі використовуються тільки три конструкції, що допускають послідовну, умовну й ітеративну передачі управління. При цьому безумовна передача управління, наприклад, оператором goto забороняється.

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

Структурне програмування є результатом застосування аплікативних методів до імперативних програм. Для цього використовуються процедурно-орієнтовані мови, в яких є можливість опису програми як сукупності процедур. Процедури можуть викликати одна одну, і кожна з них може бути викликана основною програмою, яку також можна розглядати як процедуру.

Структурний підхід до програмування являє собою методологію створення програм. Його впровадження забезпечує:

- підвищення продуктивності праці програмістів при написанні та контролі програм;

- отримання програм, які більш придатні для супроводу, оскільки складаються з окремих модулів;

- створення програм колективом розробників;

- закінчення створення програм у заданий термін.

У структурованих програмах зазвичай легко простежується основний алгоритм, вони зручніші в налагодженні й менш чутливі до помилок програмування. Ці властивості є наслідком важливої особливості підпрограм, кожна з яких є багато в чому самостійним фрагментом програми, пов'язаним з основною програмою лише за допомогою декількох параметрів. Така самостійність підпрограм дозволяє локалізувати в них усі деталі програмної реалізації тієї чи іншої алгоритмічної дії, і тому зміна цих деталей, наприклад, у процесі налагодження, зазвичай не призводить до змін основної програми.

1.3 Етапи створення програм

Етап 1: Системний аналіз. У рамках цього етапу здійснюється аналіз вимог, що пред'являються до програмної системи. Він проводиться на основі первинного дослідження всіх потоків інформації при традиційному проведенні робіт і здійснюється в наступній послідовності:

- уточнення видів і послідовності всіх робіт;

- визначення цілей, які повинні бути досягнуті програмою, що розробляється;

- виявлення аналогів, що забезпечують досягнення подібних цілей, їх переваг та недоліків.

Етап 2: Зовнішнє специфікування. Полягає у визначенні зовнішніх специфікацій, тобто описів вхідної та вихідної інформації, форм її подання і способів обробки інформації. Реалізується у такій послідовності:

- постановка завдання на розробку нової програми;

- оцінка цілей розроблюваного програмного продукту.

Далі, при необхідності, етапи 1-2 можуть бути повторені до досягнення задовільного вигляду програмної системи з описом виконуваних нею функцій і деякої ясністю реалізації її функціонування.

Етап 3:

- Проектування програми. На цьому етапі проводиться комплекс робіт із формування опису програми. Вихідними даними для цієї фази є вимоги, викладені у специфікації, розробленої на попередньому етапі. Приймаються рішення, що стосуються способів задоволення вимогам специфікації. Цю фазу розробки програми поділяють на два етапи:

- архітектурне проектування;

- робоче проектування.

- Кодування і тестування. Ці види діяльності здійснюються для окремих модулів і сукупності готових модулів до отримання готової програми.

- Комплексне тестування.

- Розробка експлуатаційної документації.

- Прийомо-здавальні та інші види випробувань.

-Коригування програм. Проводиться за результатами попередніх випробувань.

- Здавання замовнику. Здійснюється остаточна здача програмного продукту замовнику.

- Тиражування.

- Супровід програми. До поняття "супровід" входять усі технічні операції, необхідні для використання даної програми у робочому режимі. Сюди входить не тільки виправлення помилок. На цьому етапі також здійснюється модифікація програми, внесення виправлень у робочу документацію, вдосконалення програми та інше. Внаслідок широких масштабів подібних операцій супровід є ітеративним процесом, який бажано здійснювати не стільки після, скільки до випуску програмного продукту для широкого використання. Роботи із супроводу часто поглинають більше половини витрат, що припадають на весь життєвий цикл програмної системи у вартісному вираженні.

2. Робота в інтегрованому середовищі програмування (IDE) MS Visual Studio C++

2.1 Склад і характеристика проектів IDE MS Visual Studio C++

Інтегроване середовище проектування програм (IDE) є комплектом програмних інструментів - Tools. Цей комплект інструментів - хороший, інструментів -- багато, але середовище не русифіковане (у ній використовується англійська мова). Проекти (Projects). Проекти IDE характеризуються наступними особливостями. 1. Одиницею роботи IDE є проект. Проект -- це комплект файлів. 2. Види файлів у складі проекту: * вихідні файли, написані програмістом {*.срр -- З Plus Plas -- тексти на мові 0++ і *./; -- Header -- заголовні файли), IDE містить інструменти, які дозволяють автоматизувати складання вихідних файлів; * службові файли, які автоматично створюються IDE, але по інструкціях програміста. 3. Каталог проекту. Службові файли обов'язково розташовуються в цьому каталозі. Вихідні файли хоча і можуть розташовуватися де завгодно, але, щоб не заплутатися, їх теж слід помістити в каталог проекту. 4. Проекти IDE і проекти програмного забезпечення. Прості програми є просто одним проектом IDE. Складне програмне забезпечення реалізується у вигляді деякої безлічі проектів IDE.

2.2 Створення програмного проекту

Для того, щоб створити нову програму, необхідно створити новий проект. Для нового проекту слід заздалегідь створити каталог. За допомогою вбудованого в IDE текстового редактора в каталозі проекту слід створити файли проекту з вихідним текстом з розширеннями *.срр, *.h або *.hpp. Після створення вихідних файлів треба створити файл проекту. Для цього треба вибрати в меню Project команду Open Project..., у вікні Open Project File, що з'явилося, ввести ім'я файлу проекту і натискувати кнопку [ОК].Для включення в проект файлів з розширеннями *.с/?р (у окремому випадку в проекті такий файл може бути єдиним) слід на робочому столі активізувати вікно Project, вибрати в меню Project команду Add Item..., у вікні Add to Project List, що з'явилося, "кликнути" по кожному з файлів з розширенням *.ср/7 і натискувати кнопку [Done]. В результаті цього буде створений необхідний програмний проект. Після створення програмного проекту необхідно перевірити і, при необхідності, скоректувати інформацію про місце розташування каталогів стандартних файлів, що включаються. З цією метою досить в меню Options виконати команду Directories, у вікні Directories, що з'явилося, вказати розташування каталогів стандартних файлів, що включаються, і натискувати кнопку [ОК]. Після цього програмний проект готовий до роботи. Відкриття для роботи існуючого проекту dos-додатка. Для існуючого проекту необхідно з меню Project виконати команду Open Project..., у вікні Open Project File, що з'явилося, в каталозі проекту вибрати ім'я файлу проекту і натискувати кнопку [ОК]. В результаті проект завантажується в IDE для подальшої роботи.

2.3 Методика відладки програми

Всі помилки, що виявляються в програмі, можна розділити на три великі категорії.

1. Синтаксичні помилки, які автоматично виявляються на етапі компіляції. З'ясувати сенс синтаксичних помилок і усунути їх досить легко, оскільки тут як достатньо хороший помічник виступає компілятор. Залежно від мови програмування, компілятор краще або гірше виявляє такі помилки. У ряді випадків синтаксична помилка в програмі спричиняє за собою неадекватну реакцію компілятора. Наприклад, відсутність дужки часто приводить до того, що компілятор виявляє помилку через десятки рядків коду. У останньому випадку можна рекомендувати одночасний набір відкриваючої і закриваючої дужок (наприклад { }) з подальшим введенням тексту між ними.

2. Логічні (часто їх також називають алгоритмічними) помилки. Їх буває найважче виявити і виправити. Частина з них виявляється на етапі відладки, частина на етапі супроводу, а деякі приводять до тяжких наслідків.

3. Інформаційні помилки. Зокрема, до Появи інформаційних помилок може привести відсутність обробки помилок введення-виводу, спроби ділення на нуль, переповнювання розрядної сітки комп'ютера і тому подібне. Для виключення і обробки інформаційних помилок у ряді випадків доводиться значну частину вихіднго коду програми відводити для всіляких перевірок.

3. Формування навичок програмування з використанням алгоритмічної мови С++

3.1 Програмна реалізація алгоритмів лінійної структури

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

Призначення може здійснюватися двома способами: за допомогою команди присвоювання і за допомогою команди введення. Розглянемо приклад. У шкільному підручнику математики правила поділу звичайних дробів описані так:

1. Чисельник першого дробу помножити на знаменник другого дробу.

2. Знаменник першого дробу помножити на чисельник другого дробу.

3. Записати дріб, чисельник якого є результат виконання пункту 1, а знаменник - результат виконання пункту 2. У алгебраїчній формі це виглядає так :

(b)/(c/d)=(a*d)/(b*c)=m/n

Побудуємо алгоритм розподілу дробів для ЕОМ. У цьому алгоритмі збережемо ті ж позначення для змінних, які використані в записаній вище формулі. Вихідними даними є цілочисельні змінні а, b, с, d. Блок-схему і текст алгоритму на навчальный алгоритмичній мовы наведені нижче (надалі для стислості позначатимемо навчальну алгоритмічну мову літерами АМ).

Мал. 3.1 (блок-схема алгоритму розподілу дробів для ЕОМ)

алг Ділення дробів

поч

цілі a,b,c,d,m,n

введення a , b , c ,d

m: = a*d

n:=b*c

виведення m,n

кін

Формат команди присвоювання наступний: змінна: = вираз. Знак «: =» потрібно читати як «привласнити». Команда присвоювання позначає наступні дії, що виконуються комп'ютером:

1. Обчислюється вираз.

2. Отримане значення привласнюється змінный.

У наведеному вище алгоритмі присутні дві команди присвоювання. У блок-схемах команда присвоювання записується в прямокутнику. Такий блок називається обчислювальним блоком. В описах алгоритмів необов'язково дотримуватися строгих правила в запису виразів. Їх можна писати в звичайній математичній формі. Це ще не мова програмування з суворим синтаксисом. У наведеному алгоритмі присутня команда введення: введення a, b, c, d.

У блок-схемі команда введення записується в паралелограмі - блоці введення-виведення. При виконанні цієї команди процесор перериває роботу і чекає дій користувача. Користувач повинен набрати на пристрої введення (клавіатурі) значення змінних і натиснути на клавішу вводу Enter. Значення слід вводити в тому ж порядку, в якому відповідні змінні розташовані в списку введення. Звичайно за допомогою команди введення присвоюються значення вихідних даних, а команда присвоювання використовується для отримання проміжних і кінцевих величин. Отримані комп'ютером результати рішення задачі повинні бути повідомлені користувачеві. Для цих цілей призначена команда виводу: висновок m, n За допомогою цієї команди результати виводяться на екран або на пристрій друку на папір. Розглянемо один дуже корисний алгоритм, який доводиться часто використовувати при програмуванні. Дано дві величини: Х, Y. Потрібно провести між ними обмін значеннями. Наприклад, якщо спочатку було Х = 1, Y = 2, то після обміну має стати: Х = 2, У = 1.

Гарною моделлю для вирішення цього завдання є наступна ситуація: є дві склянки - одна з молоком, інша з водою. Потрібно зробити обмін їх вмістом. Кожному ясно, що в цьому випадку потрібен додатковий третій порожній стакан. Послідовність дій буде наступною: 1) перелити з першої склянки в третю; 2) перелити з другої в першу; 3) перелити з третьої до другу. Мета досягнута! За аналогією для обміну значеннями двох змінних потрібна третя додаткова змінна. Аналогія зі склянками не зовсім точна у тому сенсі, що при переливанні з однієї склянки в іншу перша стає порожньою. У результаті ж присвоювання (Х: = Y) змінна, що стоїть праворуч (У), зберігає своє значення. Алгоритм для поділу дробів має лінійну структуру. У ньому всі команди виконуються в строго однозначної послідовності, кожна по одному разу. Лінійний алгоритм складається з команд присвоювання, вводу, виводу та звернення до допоміжних алгоритмів. При описі алгоритмів в блок-схемах типи, як правило, не вказуються (але маються на увазі). В алгоритмах на АМ для всіх змінних типи вказуються явно. Опис типів змінних виконується відразу після заголовка алгоритму. У них використовуються такі позначення типів: цілий - цілий тип, дійсний - дійсний тип, літерний - символьний (літерний) тип, логічний - логічний тип. В алгоритмі для поділу дробів для всіх змінних вказаний цілий тип.

Приклад 1.

Дано тризначне число. Знайти число, отримане при перестановці другої і третьої цифр заданого числа.

#include<iostream.h>

int main()

{

int n, m;

cout<<”Введіть значення n: “;

cin>>n;

m=(n/100)*100+(n%10)*10+(n%100/10);

cout<<”Отримане число m: “<<m<<endl;

retnrn o;

}

Мал. 3.1.2

Приклад 2.

У тризначному числі х закреслити його останню цифру. Коли в двозначному числі, що залишилось, переставили цифри, а потім приписали до них зліва останню цифру числа х, то вийшло число n. По заданому n знайти число х (значення n вводиться з клавіатури, 1<=n<=999 і при цьому число одиниць в n не дорівнює нулю).

#include<iostream.h>

int main()

{

int n, x, a, b, c;

cout<<”Введіть значення n: “;

cin>>n;

a=n%10;

b=n/10%10;

c=/100;

x=a*100+b*10+c;

cout<<”x= “<<x<<endl;

return 0;

}

Мал. 3.1.3

Приклад 3.

Обчислити вирази при заданих значеннях констант, використовуючи відповідні математичні функції.

#include<iostream.h>

#include<math.h>

int main()

{

const float a = 4.4;

const float b = 0.57;

const float c = 6;

const float z = 5.4E-2;

float x, y;

x = pow(c + pow(fabs(a-b),2) + 3, 1/3.)/(pow(a, 2) + pow(b, 2));

y = exp(fabs(a-b))*(pow(tan(z), 2) + 1);

cout<<”x = “<<x<<endl;

cout<<”y = “<<y<<endl;

return 0;

}

Мал. 3.1.4

3.2 Програмна реалізація алгоритмів розгалужених структур

Умовний оператор if використовується для розгалуження процесу обчислень на два напрямки.

Формат оператора:

if (вираз) оператор_1; [else оператор_2;]

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

Одна з гілок може бути відсутнім, логічніше опускати Друга гілка разом з ключовим словом етse. Якщо у якої гілки потрібно виконати кілька операторів, їх необхідно укласти в блок, інакше компілятор не зможе зрозуміти, де закінчується розгалуження. Блок може містити будь-які оператори, в тому числі опису та інші умовні оператори (але не може складатися з однихописів). Необхідно враховувати, що змінна, описана в блоці, поза блоку не існує. програма visual циклічний кодування

Увага! Поширена помилка при записі умовних операторів - використання у виразах замість перевірки на рівність ('== ^ простого присвоювання (='), наприклад, 1f (a=l) b=0;

Синтаксичної помилки немає, так як операція присвоювання формує результат, який оцінюється на рівність / нерівність нулю. У даному прикладі присвоювання змінної b буде виконано незалежно від значення змінної а.

Тому у виразах перевірки змінної на рівність константі константу рекомендується записувати зліва від операції порівняння: if (1 == а) b = 0;. Друга помилка - невірний запис перевірки на приналежність діапазону. Наприклад, щоб перевірити умову 0 <х <1, можна записати його в умовному операторі безпосередньо ,так як буде виконано спочатку порівняння 0 <х, а йогорезультат(true або false,перетворене в int) буде порівнюватися з 1. Правильний спосіб запису: 1f (0 <x && x <1) .

Приклад 1.

Відомо дві швидкості: одна в кілометрах за годину, інша -- в метрах за секунду. Яка зі швидкостей більша?

#include<iostream.h>

int main()

{

int v1, v2;

cout<<”Введіть швидкості: v1 (км/год), v2(м/с) “;

cin>>v1>>v2;

v1 = v1*1000/3600;

if (v1>v2)

cout<<”v1>v2”<<endl;

else

cout<<”v1<v2”<<endl;

return 0;

}

Мал. 3.2.1

Приклад 2.

Обчислити y при різних значеннях x/

include<iostream.h>

include<math.h>

int main()

{

double x, y;

const float a = 1.8;

const float pi = 3.14;

cout<<” x = “;

cin>>x;

if(x<=0)

y = 0;

else

if(x<=1)

y = x*x - x/a;

else

y = pow(x, 3) - sin(x*x*pi)-1;

cout<<”y = “<<y<<endl;

return 0;

}

Мал. 3.2.2

Приклад 3.

Нехай елементами круга є радіус(перший елемент), діаметр(другий елемент) і довжина кола(третій елемент). Скласти програму, яка по номеру елемента запрошувала б його відповідне значення і обчислювала б площу круга.

#include<iostream.h>

int main()

{

int s;

float r, d, l;

const float p = 3.14;

cout<<”Введіть номер елемента круга(1, 2, 3)”;

cin>>s;

switch(s)

{

case 1: cout<<”r = “;

cin>>r;

s = p*r*r;

cout<<”Площа круга:»<<s<<endl;break;

case 2: cout<<”d = “;

cin>>d;

s = p*(d/2)*(d/2);

cout<<”Площа круга:»<<s<<endl;break;

case 3: cout<<”l = “;

cin>>l;

r =l/(2*p);

s = p*r*r;

cout<<”Площа круга:»<<s<<endl;break;

default:cout<<”Помилка введення!”<<endl;

}

return 0;

}

Мал. 3.2.3

3.3 Програмна реалізація алгоритмів циклічних структур

Оператори циклу використовуються для організації багаторазово повторюваних обчислень. Будь-який цикл складається з тіла циклу, тобто тих операторів, які виконуються декілька разів, початкових установок, модифікації параметра циклу і перевірки умови продовження виконання циклу. Один прохід циклу називається ітерацією. Перевірка умови виконується на кожній ітерації або до тіла циклу (тоді говорять про цикл з передумовою), або після тіла циклу (цикл з постусловіем). Різниця між ними полягає в тому, що тіло циклу з постусловіем завжди виконується хоча б один раз, після чого перевіряється, чи треба його виконувати ще раз. Перевірка необхідності виконання циклу з передумовою робиться до тіла циклу, тому можливо, що він не виконається жодного разу.Змінні, що змінюються в тілі циклу і використовувані при перевірці умови продовження, називаються параметрами циклу. Цілочисельні параметри циклу, змінюються з постійним кроком на кожній ітерації, називаються лічильниками циклу.

Цикл з передумовою:

while(вираз)оператор Вираз визначає умова повторення тіла циклу, представленого простимілі складовим оператором. Виконання оператора починається з ви числення виразу.

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

Цикл з післяумовою:

do оператор while вираз:

Спочатку виконується простий або складений оператор, що становить тіло циклу, а потім обчислюється вираз. Якщо воно істинне (не дорівнює fаlse), тіло ціклавиполняется ще раз. Цикл завершується, коли вираз стане рівним false або в тілі циклу буде виконаний небудь оператор передачі керування.

Приклад 1.

Скласти програму піднесення натурального числа до третьої степені, враховуючи дану закономірність.

#include<iostream.h>

int main()

{

float n, s, sum = 0;

cin>>n;

s = n*(n-1)+1;

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

{

sum+=s;

s+=2;

}

cout<<sum<<endl;

return 0;

}

Мал. 3.3.1

Приклад 2.

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

1 морська миля = 1.852 км = 6076 футів.

#include<iostream.h>

int main()

{

int krok, kil;

float milay, km, fut;

const float km1 = 1.852;

const float fut1 = 6076;

cout<<”Введіть значення міри, крок зміни значення міри, кількість рядків таблиці:”;

cin>>milay>>krok>>kil;

for(int i=0;i<=kil;i++)

{

km = milay*km1;

fut = milay*fut1;

cout<<”Кілометри:”<<km<<endl;

cout<<”Фути:”<<fut<<endl;

cout<<”Милі:”<<milay<<endl;

milay+=krok;

}

return o;

}

Мал. 3.3.2

Приклад 3.

#include<iostream.h>

#include<math.h>

int main()

{

const int a = 4;

float x, y;

float b = -2, c = 2=h/2, h = 0.4;

const float pi = 3.14;

cout<<”x”<<'/t'<<”y”<<endl;

for(x=b;x<=c;x+=h)

{

if(x<1.2)

y = exp((x*x)/2)+log(a);

else

if(x==1.2)

y = a*pow(cos(pi*(x/2.7)),3);

else

y = x*x+a*x+5;

cout<<x<<'/t'<<y<<endl;

}

return 0;

}

Мал. 3.3.3

Приклад 1.

#include<iostream.h>

#include<math.h>

int main()

{

const int a = 4;

float x, y;

float b = -2, c = 2=h/2, h = 0.4;

const float pi = 3.14;

cout<<”x”<<'/t'<<”y”<<endl;

for(x=b;x<=c;x+=h)

{

if(x<1.2)

y = exp((x*x)/2)+log(a);

else

if(x==1.2)

y = a*pow(cos(pi*(x/2.7)),3);

else

y = x*x+a*x+5;

cout<<x<<'/t'<<y<<endl;

}

return 0;

}

Мал. 3.3.4

3.4 Програмування вкладених циклів

Цикл -- різновид керуючої конструкції у високорівневих мовах програмування, призначена для організації багаторазового виконання набору інструкцій (команд). Також циклом може називатися будь-яка багатократно виконувана послідовність команд, організована будь-яким чином. Цикли можуть бути вкладені один в одний. Приклад: Скласти програму для упорядкування елементів масиву (а 1, а 2,... а 100), розташувавши їх по зростанню в тому ж масиві. Алгоритм рішення: кожен i-й елемент масиву з першого по 99-й необхідно порівнювати з усіма j-ми елементами, що мають більш високий порядковий номер. Наприклад, перший елемент треба порівнювати з другим, третім, четвер-тим і т.д. Другий елемент треба порівнювати з третім, четвертим, п'ятим і т. д. Якщо значення j-го елемента виявиться менше, ніж i-го, ці елементи треба поміняти місцями в масиві. Для цього вводиться проміжна змінна amin. Спочатку змінної amin присвоюється значення j-го елемента, потім j-му еле-менту присвоюється значення i-го елемента, і потім i-му елементу присвоюється-ється значення змінної amin. У внутрішньому циклі відбувається порівнювання та обмін значень елементів, у зовнішньому циклі змінюється номер i-го елемента. При вирішенні ряду задач необхідно повторювати одні й ті ж дії при різних значеннях параметрів у різних частинах програми. Для цього використо- вують підпрограми - процедури та функції.

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 Кбайт.

Приклад 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.

Приклад 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;

}

Список використаної літератури

http://iguania.ru/uchebnik-po-osnovam-programmirovaniya-dlya-nachinaiuschich/

“Програмування і основи алгоритмізації” В.Г.Давидов.2003р.,-449с

“С/С++.Програмування на мові високого рівня” Т.А.Павловська.2003.,-462с

Размещено на Allbest.ru

...

Подобные документы

  • Аналіз особливостей мови програмування Java та середовища Android Studio. Розробка програмного забезпечення для якісного та ефективного вивчення іноземних слів. Побудова базових алгоритмів і структури даних. Вибір мови програмування, реалізація програми.

    курсовая работа [335,3 K], добавлен 11.01.2015

  • Історія створення мови С#. Аналіз алгоритмів кодування даних. Розробка системи в середовищі Visual Studio 2008 Express. Схема шифрування алгоритму DES. Дослідження алгоритму RC2. Приклади хешів RIPEMD-160. Програмна реалізація основних процедур системи.

    дипломная работа [1,7 M], добавлен 25.10.2012

  • Розв'язання задач мовою програмування VBA з використанням алгоритмів лінійної, розгалуженої та ітераційної циклічної структури. Розробка блок-схеми алгоритму, таблиці ідентифікаторів та тексту програми. Створення власної панелі інструментів користувача.

    практическая работа [1012,6 K], добавлен 19.02.2010

  • Розробка таблиці для збереження даних у текстовому файлі про фільми в середовищі програмування Visual Studio C++ та їх сортування за країною виробництва. Реалізація таблиці за допомогою компонента dataGridView. Опис і контрольний приклад роботи програми.

    курсовая работа [1,4 M], добавлен 02.11.2016

  • Відомості про мови програмування та методи програмування. Системні вимоги програми. Керівництво програміста та керівництво користувача. Використання консольного додатку візуального середовища Visual Studio 2010. Запуск програми "Толковый словарь".

    курсовая работа [791,1 K], добавлен 18.01.2015

  • Постановка задачі: створення списку співробітників інституту. Аналіз мов програмування та вибір мови PascalABC.Net - 32-розрядної програми, яка може працювати на сучасних версіях Windows. Опис функцій та процедур, реалізації інтерфейсу користувача.

    курсовая работа [277,8 K], добавлен 25.06.2015

  • Характеристика формування навичок розробки додатків із використанням кнопкових компонентів у середовищі програмування Visual Studio. Створення програми, що переводить числа з однієї системи числення до іншої. Особливість застосування додатку Converter.

    практическая работа [249,7 K], добавлен 01.12.2022

  • Розробка програми для моделювання роботи алгоритму Дейкстри мовою C# з використанням об’єктно-орієнтованих принципів програмування. Алгоритм побудови робочого поля. Програмування графічного інтерфейсу користувача. Тестування програмного забезпечення.

    курсовая работа [991,4 K], добавлен 06.08.2013

  • Базові конструкції мови програмування С++ з позиції об’єктного програмування. Розробка програми для автоматизації обліку товарів на складі магазину парфумів. Реалізація програми в середовищі Visual Studio C++. Розробка інтерфейсу і тестування програми.

    дипломная работа [907,9 K], добавлен 01.04.2016

  • Визначення поняття автоматизації та інформаційної технології. Вибір мови програмування, аналіз бібліотеки класів та системи масового обслуговування. Реалізація інтерфейсу програми Visual C# 2010 Express. Діаграма класів до основних функцій программи.

    курсовая работа [1,5 M], добавлен 28.04.2012

  • Розробка програми на мові програмування С++ з використанням об'єктно-орієнтованого програмування. Робота з файлами, графікою, класами, обробка числової інформації. Графічні засоби мови програмування. Алгоритм задачі та допоміжні програмні засоби.

    курсовая работа [102,5 K], добавлен 14.03.2013

  • Проектування архітектури гри "Тетріс". Аналіз вимог до неї. Вивчення особливостей реалізації, кодування та тестування програми. Алгоритм побудови робочого поля. Вибір мови програмування. Розробка і налагодження тексту програми. Інструкції з експлуатації.

    курсовая работа [460,9 K], добавлен 04.03.2014

  • Аналіз предметної області та відомих реалізацій гри 2048. Універсальна мова моделювання UML в процесі проектування гри. Розробка алгоритмів функціонування модулів гри "2048". Оператори мови програмування Python. Особливості середовища Visual Studio.

    курсовая работа [1,2 M], добавлен 17.02.2021

  • Концепції об'єктно-орієнтованого програмування. Конструктори та деструктори. Успадкування класів. Побудова об’єктної моделі. Визначення об'єктів та класів і зв’язків між ними. Реалізація програми в середовищі Visual Studio C++. Інтерфейс програми.

    курсовая работа [743,7 K], добавлен 25.01.2016

  • Методика та порядок програмування алгоритмів циклічної структури із заданим числом повторень за допомогою мови програмування VAB. Алгоритм роботи з одновимірними масивами. Програмування алгоритмів із структурою вкладених циклів, обробка матриць.

    курсовая работа [27,7 K], добавлен 03.04.2009

  • Модель в об’єктно-орієнтованих мовах програмування. Програмна модель створена на мові програмування С++, в середовищі програмування Borland С++ Builder 6.0. Вибір засобів реалізації програми. Види інструментів для об'єктно-орієнтованої розробки.

    курсовая работа [116,9 K], добавлен 06.06.2010

  • Програми лінійної та розгалуженої структури. Програмна реалізація функцій для роботи з датою та часом. Робота з візуальними компонентами керування. Створення інтерфейсу користувача стандартними подіями. Глобальні ідентифікатори Screen, Mouse, Application.

    отчет по практике [1,3 M], добавлен 24.02.2015

  • Програма на мові програмування С++. Аналіз стану технологій програмування та обґрунтування теми. Розробка програми виконання завдання, методу вирішення задачі. Робота з файлами, обробка числової інформації і робота з графікою. Розробка програми меню.

    курсовая работа [41,0 K], добавлен 17.02.2009

  • Розробка програми в візуальному середовищі С++. Визначення значення функцій в середовищі Builder мовою програмування С++. Обчислення елементів квадратної матриці згідно заданного алгоритму. Бібліотека візуальних компонентів і середовище програмування.

    курсовая работа [451,5 K], добавлен 15.01.2012

  • Редагування за допомогою текстового редактора NotePad вхідного файлу даних. Програмна реалізація основного алгоритму з використанням засобів об'єктно-орієнтованого програмування. Об’ява та опис класів і об'єктів. Розробка допоміжних програмних засобів.

    курсовая работа [69,4 K], добавлен 14.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.