Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DocsToProg1112.doc
Скачиваний:
6
Добавлен:
19.03.2015
Размер:
80.38 Кб
Скачать

Проект програми

Підключимо бібліотеку <iostream>. У головній функції оголосимо змінні short abдля доданків, зміннуint sum — для суми. Діалог з користувачем реалізуємо засобами бібліотеки.

Реалізація програми

На основі алгоритму розв’язання та проекту програми запишемо її мовою С++.

Програма

#include <iostream>

using namespace std;

int main()

{ short a, b; // короткі доданки

intsum; // довга сума

cout << "Two integers sum calculation\n";

cout << "Enter two integersin[-32768...32767]\n";

cin >> a >> b; // увести доданки

sum=a+b; // обчислити суму

cout << sum<< '\n'; // вивести суму

/*Повідомитипро зупинку й очікування вказівки щодо

продовження та отримати цю вказівку. */

system("pause");

return 0;

}

Перевірка програми

Запустимо програму п’ять разів (це кількість тестів) і запишемо результати перевірки.

Результати перевірки

Доданки

Отримана сума

1 1

2

1 0

1

32767 32767

65534

-32768 -32768

-65536

32767 -32768

1

Ще один приклад

Умова задачі

Треба визначити, чи лежить точка площини всередині контуру, на контурі, або зовні його. Контур визначається параметром (додатним дійсним значенням a), точка — парою дійсних координат (xy). Вхідні дані задаються користувачем за допомогою клавіатури (спочатку контур, потім точка). Якщо параметр контуру не є допустимим, тобто додатним, програма виводить повідомленняWRONG PARAMETERі закінчує роботу.

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

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

Якщо користувач задав недодатне (недопустиме) значення, вивести повідомлення WRONG PARAMETER.

Інакше вивести запрошення до введення координат точки. Отримати два значення. Визначити розташування точки відносно контуру. Вивести відповідне повідомлення IN_C, ON_C, OUT_C.

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

Алгоритм розв’язання задачі

Нехай контур утворено точками (–a,–a), (a,–a), (a,a), (–a,a). Відразу помітимо, що контур є симетричним відносно початку координат, тому замість точок у другій, третій або четвертій четвертях можна розглядати точку (xy) у першій чверті, тобтоx≥0,y≥0.

Якщо обидві координати точки менше a, точка всередині контуру.

Якщо хоча б одна з координат більше a, точка зовні контуру.

Інакше точка на контурі.

Проект програми

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

Головна. Вивести повідомленняPoint and Contour. Далі потрібні змінніdouble a;(параметр контуру) таdouble x, y;(координати точки). Викликати функцію введення параметра, яка повертає ознаку правильності параметра (істина, якщо параметр додатний, інакше хибність). Отримано хибність — вивести повідомленняWRONG PARAMETERй закінчити роботу. Інакше викликати функцію введення координат точки, далі викликати функцію визначення, як розташована точка відносно контуру. Потрібна ціла зміннаwhereдля зберігання ознаки розташування точки (0 — всередині, 1 — на контурі, 2 — зовні). Викликати функцію виведення повідомлення про розташування. Далі вивести повідомлення, що програма відпрацювала й чекає дій користувача для закінчення. Після вказівки користувача закінчити роботу.

Введення параметра контуру. Заголовок функції:

bool inPar(double &a).

Вивести запрошення input parameter(real>0).Отримати дійсне значення від клавіатури. Якщо воно додатне, повернути 1, інакше повернути 0.

Введення точки. Заголовок функції:

void inPoint(double &x, double &y).

Вивести запрошення input point (real coordinates x y).Отримати два дійсних значення від клавіатури.

Функція визначення, як розташована точка відносно контуру. Заголовок функції:

int whereIsPoint(double a, double x, double y).

Якщо якась із координат точки від’ємна, змінити її на протилежну. Якщо обидві точки менше a, повернути 0. Якщо хоча б одна з координат більше a, повернути 2. Інакше повернути 1.

Функція виведення повідомлення. Заголовок функції:

void outMessage(int where).

Якщо where має значення 0, вивести IN, інакше, якщо 1, вивести CONTOUR, інакше вивести OUT.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]