Розробка програми-кодувальника

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

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

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

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

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

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

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. Блок-схему і текст алгоритму на навчальный алгоритмичній мовы наведені нижче (надалі для стислості позначатимемо навчальну алгоритмічну мову літерами АМ).

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

поч

цілі 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) змінна, що стоїть праворуч (У), зберігає своє значення. Алгоритм для поділу дробів має лінійну структуру. У ньому всі команди виконуються в строго однозначної послідовності, кожна по одному разу.

Лінійний алгоритм складається з команд присвоювання, вводу, виводу та звернення до допоміжних алгоритмів. При описі алгоритмів в блок-схемах типи, як правило, не вказуються (але маються на увазі). В алгоритмах на АМ для всіх змінних типи вказуються явно. Опис типів змінних виконується відразу після заголовка алгоритму. У них використовуються такі позначення типів: цілий - цілий тип, дійсний - дійсний тип, літерний - символьний (літерний) тип, логічний - логічний тип. В алгоритмі для поділу дробів для всіх змінних вказаний цілий тип.

Задача 3.1.1

1. Постановка задачі.

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

Вхідні дані:

тризначне число - змінна цілого типу - int n;

Вихідні дані:

кінцевий результат у вигляді зміненої змінної цілого типу - int n;

2. Схема алгоритму рішення задачі.

3. Лістинг програми.

#include <iostream>

#include <iomanip>

#include<windows.h>

using namespace std;

void main ()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

int n;

cout<< «Введите трехзначное число:»;

cin>>n;

cout<<«Изменённое число: «<<(n-n/100*100)*10+n/100<<endl;

system («pause»);

}

4. Тестування програми.

Результат тестування задачі 3.1.1.

Задача 3.1.2

1. Постановка задачі.

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

Вхідні дані:

тризначне число - змінна цілого типу - int n;

Вихідні дані:

кінцевий результат у вигляді зміненої змінної цілого типу - int х;

2. Лістинг програми.

#include <iostream>

#include <iomanip>

#include<windows.h>

using namespace std;

void main ()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

int n, x;

cout<< «Введите трехзначное число:»;

cin>>n;

cout<<«Вывести найденное число x: «<<n/100*100+n % 10*10+n/10% 10<<endl;

system («pause»);

}

3. Тестування програми.

Результат тестування задачі 3.1.2

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

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

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

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

Спочатку обчислюється вираз, який може мати арифметичний тип або

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

Одна з гілок може бути відсутньою, логічніше опускати Друга гілка разом

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

операторів, їх необхідно укласти в блок, інакше компілятор не зможе

зрозуміти, де закінчується розгалуження. Блок може містити будь-які оператори, в тому числі опису та інші умовні оператори (але не може складатися з одних описів).

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

Синтаксичної помилки немає, так як операція присвоювання формує результат, який оцінюється на рівність / нерівність нулю. У даному прикладі присвоювання змінної b буде виконано незалежно від значення змінної а. Тому у виразах перевірки змінної на рівність константі константу рекомендується записувати зліва від операції порівняння: if (1 == а) b = 0;.

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

Задача 3.2.1

1. Постановка задачі.

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

Вхідні дані:

дві швидкості: перша в кілометрах в годину, друга - в метрах в секунду - змінні типу з плаваючою точкою - double v1, double v2;

Вихідні дані:

кінцевий результат швидкостей - змінних типу з плаваючою точкою - double v1, double v2;

2. Лістинг програми.

#include <iostream>

#include <iomanip>

#include<windows.h>

using namespace std;

void main ()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

double v1, v2;

cout<< «Введите первую скорость в км/ч:»;

cin>>v1;

cout<< «Введите вторую скорость м/с:»;

cin>>v2;

v2=(v2*3600)/1000;

if (v1>v2) cout<< «Первая скорость больше второй»<<endl;

else cout<< «Вторая скорость больше первой»<<endl;

system («pause»);

}

3. Тестування програми.

Результат тестування задачі 3.2.1

Задача 3.2.2

1. Постановка задачі.

Дано чотиризначне число. Визначити:

А) чи дорівнює сума двох перших його цифр сумі двох його останніх цифр;

Б) чи входять в нього цифри 2, 6 або 7.

Вхідні дані:

чотиризначне число цілого типу - int n;

Вихідні дані:

кінцевий результат у вигляді зміненої змінної цілого типу - int n.

2. Лістинг програми.

#include <iostream>

#include<iomanip>

#include<windows.h>

using namespace std;

void main ()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

int n;

cout<< «ВВести четырехзначное число:»;

cin>>n;

if (n/1000+n/100% 10==n/10% 10+n % 10)

cout<<«сумма двух первых цыфр = сумме двух последних цыфр «<<endl;

else cout<< «сумма двух первых цыфр не = сумме двух последних цыфр»<<endl;

if (n/1000==2||n/1000==6||n/1000==7||n/100% 10==2||n/100% 10==6||n/100% 10==7||n/10% 10==2||n/10% 10==6||n/10% 10==7||n % 10==2||n % 10==6||n % 10==7)

cout<< «Входят цыфры 2 или 6 или 7»<<endl;

else cout<<«Не входит цыфры 2 или 6 или 7 «<<endl;

system («pause»);

}

3. Тестування програми.

Результат тестування задачі 3.2.2

Задача 3.2.3

1. Постановка задачі.

Обчислити у при різних значеннях х:

y = a = 1.5,

Вхідні дані:

задане значення а - змінна типу з плаваючою точкою - double a, значення х, яке вводиться з клавіатури - змінна типу з плаваючою точкою - double x;

Вихідні дані:

значення у при значенні х - зміннa типу з плаваючою точкою - double y;

2. Лістинг програми.

#include<math.h>

#include <iostream>

#include <iomanip>

#include<windows.h>

using namespace std;

void main ()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

double a, x, y;

a=1.5;

cout<< «Введите х:»;

cin>>x;

if (a*x<1) y= a*x-log10 (a*x);

else if (a*x==1) y= 1;

else y=a*x+log10 (a*x);

cout<<«Результат равен «<<y<<endl;

system («pause»);

}

3. Тестування програми.

Результат тестування задачі 3.2.3

Задача 3.2.4

1. Постановка задачі.

Дано два дійсні додатні числа х та у. Арифметичні дії над числами пронумеровані (1 - складання, 2 - віднімання, 3 - множення, 4 - ділення). Скласти програму, яка по введеному номеру виконує ту або іншу дію над числами.

Вхідні дані:

два дійсні додатні числа типу з плаваючою точкою: float х, у; номер дії над числами - змінна цілого типу - int res.

Вихідні дані:

результат введеної дії над заданими числами - змінна типу з плаваючою точкою float s.

2. Лістинг програми.

#include <iostream>

#include<iomanip>

#include<windows.h>

using namespace std;

void main ()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

float x, y, s; int res;

cout<< «Введите х:»;

cin>>x;

cout<< «Введите у:»;

cin>>y;

cout<< «Введите номер действия над числами:»;

cin>>res;

switch (res)

{

case 1:

s=x+y;

break;

case 2:

s=x-y;

break;

case 3:

s=x*y;

break;

case 4:

s=x/y;

break;

default: cout<< «Неправильный номер действия»;

}

cout<<s<<endl;

system («pause»);

}

3. Тестування програми.

Результат тестування задачі 3.2.4

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

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

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

Цикл з передумовою: while(вираз) оператор

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

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

Вираз обчислюється перед кожною ітерацією циклу.

Цикл з післяумовою: do оператор while вираз:

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

Задача 3.3.1

1. Постановка задачі.

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

1 галон (брит.)=1.2 галон (США)=4.546 л.

Вхідні дані:

початкове значення міри - змінна типу з плаваючою точкою - double galon, змінене значення міри - змінна типу з плаваючою точкою - double galons; крок зміни заданого значення міри - змінна цілого типу - int krok, кількість рядків у таблиці - змінна цілого типу int kil;

Вихідні дані:

кінцеві результати значень міри - змінні типу з плаваючою точкою - double galon, double galons, double litr;

2. Лістинг програми.

#include <iostream>

#include <iomanip>

#include<windows.h>

using namespace std;

const int N = 20;

void main ()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

double galon, galons, litr;

int krok, kil;

cout<< «Ввести количество галонов:»;

cin>>galon;

cout<< «Ввести шаг изменения:»;

cin>>krok;

cout<< «Ввести количество строк таблицы:»;

cin>>kil;

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

{

galons=galon*1.2;

litr=galon*4.546;

cout<<setw(N)<<«Количество галонов «<<setw(N)<<«Количесвто галонов (США) «<<setw(N)<< «Количество литров»<<endl;

cout<<setw (N-5)<<galon<<setw(N)<<galons<<setw(N)<<litr<<endl;

galon+=krok;

}

system («pause»);

}

3. Тестування програми.

Результат тестування задачі 3.3.1

Задача 3.3.2

1. Постановка задачі.

Розрахувати суму перших 10 членів ряду:

S = 1

Вхідні дані:

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

Вихідні дані:

кінцевий результат суми перших 10 членів ряду - зміннa типу з плаваючою точкою - double s;

2. Лістинг програми.

#include<math.h>

#include <iostream>

#include <iomanip>

#include<windows.h>

using namespace std;

void main ()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

int d=-1;

double s=1, c=1, x, a=3, b=2, xs;

cout<< «Введите значение х:»;

cin>>x;

xs=x;

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

{

s+=d+a/b*xs*c;

c*=a/b;

a+=2;

b+=2;

d*=-1;

xs*=x;

}

cout<<«Результат равен «<<s<<endl;

system («pause»);

}

3. Тестування програми.

Результат тестування задачі 3.3.2

Задача 3.3.3

1. Постановка задачі.

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

У=

a=1.65, x, ?х=0.2

Вхідні дані: змінна типу з плаваючою точкою - double xp, що означає початок діапазону х;

Зміна типу з плаваючою точкою - double xk, шо позначає кінець діапазону х;

Зміна типу з плаваючою точкою - double dx, що позначає крок зміни х;

Вихідні дані: результат у вигляді змінної типу з плаваючою точкою - double у, що підраховує значення у;

2. Лістинг програми.

#include<math.h>

#include <iostream>

#include <iomanip>

#include<windows.h>

using namespace std;

const double pi=3.14;

void main ()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

double x, y, a=1.65, dx, xp, xk;

cout<< «Введите начальное значение х:»;

cin>>xp;

cout<< «Введите конечное значение х:»;

cin>>xk;

cout<< «Введите шаг изменения х:»;

cin>>dx;

for (x=xp; x<=xk+dx; x+=dx)

{

if (x<1.4) y=x*x*pi - (7/(x*x));

else if (x==1.4) y=a*x*x*x+(8/sqrt(x));

else y= log (x+9*sqrt (abs(x+a)));

cout<<«Значение х «<<x<<'\t'<<«Результат «<<y<<endl;

}

system («pause»);

}

3. Тестування програми.

Результат тестування задачі 3.3.3

Задача 3.3.4

1. Постановка задачі.

Підрахувати суму членів ряду, які обчислюються за формулою, з точністю до e=0.000001 (||>e).

Визначити кількість доданків.

S= ?1 + +++… |x|<1

Вхідні дані:

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

Вихідні дані:

Кінцевий результат суми членів ряду - змінна типу з плаваючою точкою - double s, кількість доданків - змінна цілого типу - int i;

2. Лістинг програми.

#include <iostream>

#include<math.h>

#include<windows.h>

using namespace std;

void main ()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

double s=1, e, x, k=1;

cout « «Введите точность e:»;

cin» e;

cout « «Введите х:»;

cin» x;

int i = 1, f=1;

do {

k*=x;

f*=i;

s+=1./(f*k);

i++;

} while (1./(f*k)>e);

cout ««Сумма ряда = ««s «endl;

cout ««количество слогаемых = ««i «endl;

system («pause»);

}

3. Тестування програми.

Результат тестування задачі 3.3.4

Задача 3.3.5.

1. Постановка задачі.

Відомі дані про масу (у кг) ш об'єм (у см3) 30-ти тіл, виготовлених з різних матеріалів. Визначити максимальну щільність матеріалу.

Вхідні дані:

змінні типу з плаваючою точкою - double m - що позначає масу тіла, v - що позначає об'єм тіла;

Вихідні дані:

змінні типу з плаваючою точкою - double max - максимальна щільність матеріалу;

2. Лістинг програми

#include<math.h>

#include <iostream>

#include <iomanip>

#include<windows.h>

using namespace std;

void main ()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

double m, v, max;

cout<< «Ведите массу 1 го тела:»;

cin>>m;

cout<< «Введите объём 1 го тела:»;

cin>>v;

max=m/v;

for (int i=2; i<=30; i++)

{

cout<<«Ведите массу «<<i<< «го тела:»;

cin>>m;

cout<<«Введите объём «<<i<< «го тела:»;

cin>>v;

if (m/v>max) max=m/v;

}

cout<<«Максимальная плотность материала = «<<max<<endl;

system («pause»);

}

3. Тестування програми.

Результат тестування задачі 3.3.5.

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

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

Другий елемент треба порівнювати з третім, четвертим, п'ятим і т.д. Якщо значення j-го елемента виявиться менше, ніж i-го, ці елементи треба поміняти місцями в масиві. Для цього вводиться проміжна змінна amin. Спочатку змінної amin присвоюється значення j-го елемента, потім j-му еле-менту присвоюється значення i-го елемента, і потім i-му елементу присвоюється-ється значення змінної amin.

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

Задача 3.4.1

1. Постановка задачі.

Надрукувати числа у вигляді наступної таблиці:

1

2 2

3 3 3

4 4 4 4

5 5 5 5 5

2. Лістинг програми.

#include <iostream>

#include <iomanip>

using namespace std;

int main ()

{

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

{

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

cout << i << «»;

cout << endl;

}

cout << endl;

system («pause»);

return 0;

}

3. Тестування програми.

Результат тестування задачі 3.4.1

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

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

Перед викликом функції її потрібно оголосити, для цього:

<Тип функції> <назва функції> (<список формальних параметрів>);

Тип функції - тип значення, якщо функція не вертає результат, то вона оголошується типом void.

У списку формальних параметрів для кожної змінної потрібно окремо вказувати тип. Вказувати імена змінних не обов'язково (наприклад, (float, float, int);). Змінним при їх перерахуванні можна відразу присвоювати початкові значення.

Опис функції користувача

<Тип функції> <назва функції> (<список формальних параметрів>)

{

<Тіло функції>;

Return (<назва змінної, значення якої потрібно повернути>):

}

Функцію можна описати і до основної функції, тоді оголошувати її не обов'язково

Виклик функції

<Назва функції> (<список фактичних параметрів>);

Типи фактичних змінних повинні збігатися з типами формальних змінних.

Прототипи функції

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

Задача 3.5.1

1. Постановка задачі.

Дані сторони двох трикутників. Знайти суму їх периметрів і суму їх площ. (Визначити функцію для розрахунку периметра і площі трикутника по його сторонах.)

Вхідні дані.

Цілого типу

Вихідні дані.

Цілого типу

2. Лістинг програми.

#include <iostream>

#include <iomanip>

using namespace std;

int fact(int);

int main()

{

cout << (2*fact(5)+3*fact(8))/(fact(6)+fact(4)) << endl;

return 0;

}

int fact (int n)

{

int f=1;

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

f=f*i;

return f;

}

3. Тестування програми

Результат тестування задачі 3.5.1

Задача 3.5.2

1. Постановка задачі.

Розрахувати значення y, визначивши і використавши необхідну функцію

Вхідні дані.

Цілого типу

Вихідні дані.

Цілого типу

2. Лістинг програми.

#include <iostream>

#include <iomanip>

#include <math.h>

using namespace std;

double a (int, int);

int main()

{

cout << a (1, 4)+ a (7, 5) + a (3, 2) << endl;

return 0;

}

double a (int n1, int n2)

{

return ((n1+sin(n2))/(n2+sin(n1)));

}

3. Тестування програми

Результат тестування задачі 3.5.2

3.6 Програмна обробка одновимірних масивів

Одновимірний масив - це послідовність однотипних даних.

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

Усі елементи масиву мають один і той самий тип, що називається базовим. З іншого боку, порядок теж визначається набором значень одного й того самого типу, що називається індексним, а самі ці значення називаються індексами. Кожному елементу масиву відповідає певний індекс. Індексний тип має бути простим порядковим типом даних. Кількість елементів в одновимір-ному масиві називається його розмірністю, або довжиною. З точки зору математики одновимірний масив - це вектор. Наприклад, масив або вектор А, що має п'ять елементів, які записують у математиці у вигляді індексованих змінних а1 и а2, а3, а4, а5, можна зобразити значеннями цих змінних у сусідніх ділянках оперативної пам'яті.

а1

а2

а3

а4

а5

Задача 3.6.1

1. Постановка задачі.

Зріст кожного з 22 учнів класу представлений у вигляді масиву. Визначити кількість учнів, зріст яких не перевищує значення s.

Вхідні дані:

значення s - змінна цілого типу - int s, одновимірний масив цілого типу - int A[N];

Вихідні дані:

кількість учнів, зріст яких не перевищує значення s - змінна цілого типу - int k;

2. Лістинг програми.

#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»);

}

3. Тестування програми.

Результат тестування задачі 3.6.1

3.7 Програмна обробка двовимірних масивів

Двовимірний масив - це масив, де кожному елементу ставиться у відповідність два індекси. Для початку роботи з масивом готуємо місце в пам'яті у вигляді прямокутника, що має задану кількість рядків і стовпчиків. Для цього описуємо його в розділі оголошень, використовуючи зарезервоване слово Аrray, після якого в квадратних дужках вказуємо розмірність масиву, причому враховуємо, що на першому місці вказуються індекси рядків, а на другому - стовпчиків, і обов'язково тип елементів.).

Задача 3.7.1

1. Постановка задачі.

Нехай 6 населених пунктів позначені номерами від 1 до 6 (величина k), а 5 кандидатів - номерами від1 до 5 (величина n). Кількість голосів, набраних кандидатами у кожному пункті визначити за допомогою генератора випадкових чисел. Вивести на екран таблицю результатів голосування, де у рядках є дані з населених пунктів, а у стовпцях - дані щодо конкретних кандидатів. Хто з кандидатів набрав максимальну. А хто - мінімальну кількість голосів у четвертому населеному пункті?

Вхідні дані:

двовимірний масив цілого типу - int A[k] [n];

Вихідні дані:

мінімальна кількість голосів у четвертому населеному пункті - змінна цілого типу - int min, максимальна кількість голосів у четвертому населеному пункті - змінна цілого типу - int mах;

2. Лістинг програми.

#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»);

}

3. Тестування програми.

Результат тестування задачі 3.7.1

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

1. Давыдов В.Г. / Программирование и основы алгоритмизации: Учеб. пособие/ - М.: Высш. шк., 2003. - 447 е.: ил.

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

3. Семакин И.Г., Шестаков А.П./С12 Основы программирования: Учебник. - М.: Мастерство, 2002. - 432 с.

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

...

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

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

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

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

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

  • Генезис програмувальних логічних інтегральних схем, їх класифікація та архітектура. Призначення системи автоматизованого проектування MAX+PLUS II. Теоретичні відомості про тригери. Програми реалізації тригерів в інтегрованому середовищі MAX+PLUS II.

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

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

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

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

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

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

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

  • Розробка та схема алгоритму проектованої гри. Особливості мови програмування та середовища "Microsoft Visual Studio C++ 2008 Express Edition". Лістинг програми та загальний опис її роботи, аналіз отриманих результатів та оцінка практичної ефективності.

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

  • Класифікація існуючих інформаційних систем. Особливості створення інформаційної системи роботи меблевого магазину. Розробка програми, що забезпечує роботу торгівельної организації, в середовищі Microsoft Visual Studio 2008 на мові програмування Vb.NEt.

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

  • Розробка програми для вирішення графічної задачі. При вирішенні задачі необхідно cтворювати програму у середовищі програмування Turbo Pascal. Розробка алгоритму функціонування програми і надання блок-схеми алгоритму. Демонстрація роботи програми.

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

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

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

  • Проектування бази даних (БД). Проектування логічної моделі БД. Реалізація БД та створення таблиць. Встановлення зв’язків, вибір мови та середовища програмування. Опис функціональних елементів та реалізація програми. Опис та тестовий приклад програми.

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

  • Поняття черги в програмуванні, основні операції з чергою і їх реалізація. Опис алгоритму й специфікація програми. Розробка додатку з використанням задачі Ларсона по опису зв'язного неорієнтованого графа. Алгоритм розв’язку і результати виконання програми.

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

  • Створення програми розв’язку розгалужених прикладів. Типи комп'ютерів та пристроїв, що використовуються при роботі програми. Попередня підготовка вхідних даних. Формат, описання та спосіб їх кодування. Опис і тестування програми, її виклик і завантаження.

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

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

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

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

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

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

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

  • Дослідження середовища візуального програмування Delphi. Вивчення процесу створення навчальної програми "Електронний словник". Опис графічного інтерфейсу. Характеристика структури та основних процедур даної програми. Аналіз роботи з програмним кодом.

    курсовая работа [831,2 K], добавлен 01.03.2014

  • Основні розрахунки резисторів мікросхеми. Розробка алгоритму рішення задачі методом блок-схем. Характеристика та розробка програми на мові С++ з використанням принципів модульного і структурного програмування. План тестування і налагоджування програми.

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

  • Розробка програми для управління навчальним процесом студентської групи вищого навчального закладу. Об’єктно-орієнтоване проектування об’єктів групи. Створення мови програмування Java. Побудова графічного інтерфейсу. Робота з невеликими базами даних.

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

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

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

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