|
||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Задача. I. етап. Постановка задачі
I. етап. Постановка задачі. a. опис початкових|вихідних| даних і|та| результатів (типи, формати, точність, спосіб передачі, обмеження); b. опис задачі; c. опис можливих аварійних ситуацій і|та| помилок користувача. II. етап. Розробка внутрішніх структур даних. Проектування програми починається з розробки структур, необхідних для представлення вхідних, вихідних і|та| проміжних даних. При цьому враховуються обмеження на розмір даних, необхідна точність, вимоги до швидкодії програми. III. етап. Проектування (визначення загальної|спільної| структури і|та| взаємодії модулів). Застосовується технологія низхідного проектування програми: розбиття завдання|задачі| на підзадачі меншої складності, які можна розглядати|розглядувати| окремо. Дуже важливою|поважною| є специфікація інтерфейсів, тобто|цебто| способів взаємодії підзадач. На етапі проектування слід враховувати можливість|спроможність| майбутніх модифікацій програми і|та| прагнути проектувати програму так, щоб вносити зміни було можливо простіше. IV. етап. Структурне програмування. Процес програмування організовується за принципом зверху "вниз": спочатку кодуються модулі самого верхнього рівня і|та| складаються тестові приклади|зразки| для їх відладки, при цьому на місці ще не написаних модулів наступного|такого| рівня ставляться "заглушки" - тимчасові програми. "Заглушки" в простому випадку просто видають повідомлення про те, що їм передано управління, а потім повертають його в зухвалий модуль. У інших випадках "заглушка" може видавати значення, задані заздалегідь|наперед| або вичислені по спрощеному алгоритму. V. етап. Низхідне тестування. Написанням набору тестів - перевірочних початкових|вихідних| даних і|та| відповідних їм наборів еталонних реакцій. Задача. Обчислити значення виразу а + b – c, де а, b, c - цілі числа. 1. Постановка задачі. Програма повинна здійснити введення декількох цілих чисел, обчислити значення виразу і|та| вивести його на екран. Вхідні дані: цілі числа а, b, c. Вихідні дані: значення виразу. 2. Проектування (визначення загальної структури та взаємодії модулів). Запишемо послідовність виконуваних програмою дій на псевдокоді. Це дозволить нам побачити, з|із| яких процедур складатиметься наша програма: Комплекс програм повинен виконувати наступні дії: 1. Введення даних в пам'ять. 2. Обчислення суми перших двох чисел. 3. Обчислення різниці отриманої|одержувати| суми і третього числа. 4. Виведення даних на екран. Воно здійснюватиметься на шкірному етапі (після формування результату кожної з функцій). Для цього створимо перевантажувану функцію, яка виводитиме на екран ті дані, які ми передаватимемо їй як параметри. Для організації очищення|очистки| буфера екрану, скористаємося готовою функцією system ("cls"). Тепер присвоїмо|привласнимо| імена усім функціям: Main //головна|чільна| функція ClrScr //очищення|очистка| екрану In_Digits //Введення вхідних даних out_Digits //Виведення даних на екран AddDigit //Вичислити суму чисел SubDigit //Вичислити різницю Структурна схема програми.
Функції будуть розташовуватися в різних модулях в залежності від тих дій, які вони виконують:
Основний модуль програми Prog_01_main.cpp Створимо робочу версію програми - програмну|програмовою| заглушку. Поки|доки| вона складатиметься з|із| порожніх|пустих| процедур. Програма-заглушка
// Програма обчислення|підрахунку| вираження|виразу| а1+в1-с2 (Add_Sub.asm) // головна|чільна| процедура, що управляє усіма виконуваними діями. // #include <iostream.h> //------------------------------------------------------------- // прототипи функцій //------------------------------------------------------------- int main () { int a1, b1, c2; //Вхідні дані // // очищення|очистка| екрану // введення даних // виведення введених|запроваджувати| значень на екран // а1+в1 // виведення суми на екран // (a1+b1)- c2 // вивод на екран остаточного результату return 0; } Ця заглушка дозволяє прослідити виклики усіх процедур, зрозуміти існуючі|наявні| між ними залежності і|та|, можливо, оптимізувати загальну|спільну| структуру програми перед тим, як ви почнете|зачинатимете| писати програмний|програмовий| код конкретних процедур. Реалізація основного модуля програми Так як використовувані функції розташовані|схильні| в різних модулях, необхідно|треба| задати для кожної з них прототип, який дозволяють викликати|спричиняти| процедуру до того, як вона буде формально визначена.
Прототипи бібліотечних функцій знаходяться в заголовних файлах iostream.h (для організації вводу-виводу|висновку|) і|та| windows.h для функції ClrScr. Для прототипів функцій користувача створимо свій заголовний файл (headerfile) з|із| ім'ям AddSub.h. Можна сказати, що заголовний файл ххх.h містить|утримує| інтерфейс для деякого набору функцій, а початковий|вихідний| файл ххх.срр містить|утримує| реалізацію цього набору. Файл AddSub.h:
//Заголовний файл програми AddSub(AddSub.h) #include <iostream.h> #include <windows.h> //------------------------------------------------------------- //прототипи використовуваних функцій void In_Digits (int &, int &, int &); void Out_Digits (int, int, int); void Out_Digits (int, int); void Out_Digits (int); int AddDigit (int, int); int SubDigit (int, int);
Створюється в Visual Studio в папці Header Files також, як і cpp файли. Для створення загальних|спільних| відступів при виведенні інформації додамо|добавлятимемо| в заголовний файл AddSub.h наступні|такі| константи і|та| заголовні файли: const int h_0=2; // 0 - рівень const int h_1=10; // 1 – рівень const int h_2=15; // 2 – рівень Додамо ці інструкції до файлу AddSub.h. Тепер програма заглушка має вигляд. Програма-заглушка
//Програма обчислення|підрахунку| вираження|виразу| а1+в1-с2 (Prog_01_main.cpp) //головна|чільна| процедура, що управляє усіма виконуваними діями. // //-----------------------------------------------------------------
#include "AddSub.h" int main () { SetConsoleCP(1251); SetConsoleOutputCP(1251); //----------------------------------------------------------------- int a, b, c; //Вхідні дані //----------------------------------------------------------------- system ("cls"); // In_Digits(a, b, c); // Out_Digits (a, b, c); // (a1+b1)- c2 // вивод на екран остаточного результату return 0; } Помістимо цей код у файл Prog_01_main.cpp Модуль Prog_02_operation.cpp Функція AddDigit
//Функція AddDigit Модуль proc_02_operation.cpp //Обчислює|вичисляє| суму двох цілих чисел //------------------------------------------------------------- //Вхідні дані: цілі числа а і|та| b //Повертає: суму чисел //------------------------------------------------------------- #include <C:\C_WORK\AddSum\AddSub.h>
int Add_Digit(int a, int b) { cout<<setw(h_0)<<' '<<"!!! Працює програма складання двох чисел\n\n"; cout<<setw(h_1)<<' '<<"Вхідні дані:"; Out_Digits (a, b); return a+b; } Функція SubDigit // Процедура віднімає від суми чисел a і b число c
// Функція AddDigit Модуль proc_03_add.cpp //Обчислює різницю двох цілих чисел //------------------------------------------------------------- //Вхідні дані: два цілі числа //Повертає: різницю чисел //------------------------------------------------------------- #include <C:\C_WORK\AddSum\AddSub.h>
int Sub_Digit(int s, int c) { cout<<setw(h_0)<<' '<<"!!! Працює програма віднімання двох чисел\n\n"; cout<<setw(h_1)<<' '<<"Вхідні дані:"; Out_Digits (s, c); return s - c; }
Модуль Prog_03_in_out.cpp Він складатиметься з|із| двох функцій: In_Digits та Out_Digits. Функція In_Digits
//Функція In_Digits Модуль proc_02_In_Out_Digits.cpp. //------------------------------------------------------------- //Вводить|запроваджує| три цілі числа //Повертає: три цілі числа (передача параметрів по посиланню|засланню|) //------------------------------------------------------------- #include <C:\C_WORK\AddSum\AddSub.h>
void In_Digits (int &a, int &b, int &c){
cout<<setw(h_0)<<' '<<"!!! Працює програма введення цілих чисел\n\n"; cout<<setw(h_1)<<' '<<"Введіть|запроваджуйте| число a:"; cin>>a; cout<<setw(h_1)<<' '<<"Введіть|запроваджуйте| число b:"; cin>>b; cout<<setw(h_1)<<' '<<"Введіть|запроваджуйте| число c:"; cin>>c; return; } Функція Out_Digits з одним параметром
//Функція Out_Digits Модуль proc_02_In_Out_Digits.cpp. //------------------------------------------------------------- ////Вхідні параметри: три цілі числа ////Повертає: нічого //------------------------------------------------------------- void Out_Digits(int a, int b, int c) { cout<<setw(h_0)<<' '<<a; cout<<'\t'<<b; cout<<'\t'<<c; cout<<endl<<endl; return; } Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.014 сек.) |