
- •4. Краткие теоретические сведения
- •4.1. Условные операторы
- •4.2.1 Оператор if
- •4.2.2. Тернарный оператор “?”
- •4.2.3. Использование оператора switch
- •4.2.4. Использование оператора безусловного перехода
- •5. Методические указания
- •5.1. Пример решения задачи
- •1. Постановка задачи
- •3. Алгоритм
- •4. Разработка текста программы
- •5. Отладка программы
- •6. Тестирование
- •6. Задания для общего выполнения
- •6. Индивидуальные задания
5. Методические указания
Для выполнения лабораторной работы необходимо изучить теоретический материал модуля 2.3.
Лабораторная работа включает:
– общие задания для совместного выполнения под присмотром преподавателя;
– индивидуальные задания для самостоятельного выполнения.
При выполнении общих заданий необходимо разработать, отладить и продемонстрировать программу.
При выполнении индивидуальных заданий необходимо выполнить все этапы решения задачи на ЭВМ:
словесная постановка задачи;
анализ задачи и формальная постановка задачи;
проектирование (разработка алгоритма);
реализация (кодирование, отладка);
тестирование.
Результаты выполнения индивидуальных заданий оформить в виде отчета.
При выполнении задания на использование инструкции switch следует помнить, что:
– инструкция switch предназначена для выбора одного из нескольких возможных направлений дальнейшего хода программы;
– выбор последовательности инструкций осуществляется в зависимости от равенства значения переменной-селектора константе, указанной после слова case;
– если значение переменной-селектора не равно ни одной из констант, записанных после case, то выполняются инструкции, расположенные после слова default;
– в качестве переменной-селектора можно использовать переменную целого (int) или символьного (char) типа.
5.1. Пример решения задачи
1. Постановка задачи
Разработать программу, определяющую принадлежит ли точка заданной фигуре.
2. Анализ и разработка метода решения
Первым шагом алгоритма должен быть ввод координат точки: x и y. Для большего удобства при анализе результатов можно вывести введенные значения на экран. Из рисунка видно, что целевая область образуется пересечением: прямой с коэффициентом -1 и смещением +1 и окружности с центром в начале координат и радиусом 1, как показано на рисунке справа |
|
Уравнение этой прямой: y=-x+1.
Уравнение окружности: x2+y2=1.
Для проверки попадания точки в заданную область нужно проверить условия того, что:
1) Точка лежит выше прямой или на ней, т.е.: y>=-x+1
2) Точка лежит внутри окружности или на ней, т.е.: x2+y2<=1
Точка лежит в области, если выполняются оба условия: y>=-x+1 И x2+y2<=1 (1).
Формальная постановка задачи
Входные данные:
X, y – координаты точки.
Выходные данные: Сообщение «Точка попадает в область» или «Точка не попадает в область»
Схема алгоритма приведена на рисунке ниже.
3. Алгоритм
4. Разработка текста программы
Для реализации алгоритма нам будут нужны только переменные для хранения значений координат x и y. В условиях задания не приведены требования к точности вычислений, рисунок представлен с довольно невысокой точностью, поэтому для этих переменных было бы достаточно типа float. Но в соответствии с общим стилем программирования на C выберем для них тип double.
Текст программы начинается с включения фала:
#include <stdio.h>
т.к. нам обязательно понадобятся функции стандартного ввода-вывода, которые описаны в этом файле.
Далее идет заголовок и открытие главной функции:
int main(void) {
и объявление переменных, определенных в пункте 5.2.
double x, y;
Для каждой координаты выводится приглашение на ее ввод и вводится ее значение:
printf("Введите координату x >"); \\ или – cout
scanf("%lf",&x); \\ или – cin
printf("Введите координату y >");
scanf("%lf",&y);
Введенные значения координат выводятся на экран:
printf("x=%6.3lf; y=%6.3lf\n",x,y);
Далее идет проверка условий попадания точки в область. Оба условия проверяются одним выражением. Поскольку точка попадает в область, если выполняются оба условия вместе, условия в выражении соединены операцией "логическое И":
if ( (y>=1-x)&& (x*x+y*y<=1) )
Если значение логического выражения в условном операторе истинно, то выводится сообщение про попадание:
printf("Точка попадает в область\n");
В противном случае выводится сообщение про попадание:
еlse printf("Точка не попадает в область\n");
Полный текст программы приведен ниже.
/****************************************************/
/* Лабораторная работа 2 */
/* Условный оператор */
/* Пример выполнение. Вариант 30. */
/****************************************************/
#include <stdio.h>
int main(void) {
double x, y; /* координаты точки */
/* ввод координат */
printf("Введите координату x >");
scanf("%lf",&x);
printf("Введите координату y >");
scanf("%lf",&y);
/* вывод только что введенных значений */
printf("x=%6.3lf; y=%6.3lf\n",x,y);
/* проверка условий */
if ( (y>=1-x)
&& (x*x+y*y<=1) )
printf("Точка попадает в область\n");
else printf("Точка не попадает в область\n");
return 0;
}