Эксперт
Сергей
Сергей
Задать вопрос
Мы готовы помочь Вам.

ЗАДАЧА

 

  1. Условие задачи

 

Задана точка M с координатами (x, y).  Определить является ли эта точка началом координат или лежит на одной из координатных осей.

 

  1. Математическая модель

Точка М является началом координат если x и y = 0

Точка М лежит на одной из координатных осей если x или = 0

Точка M не лежит на координатных осях если не x не y не равны 0

 

  1. Таблица 1 – Внешние спецификации
Имя Назначение Тип Вх/Вых. Диапазон
1 x Значение координаты x Вещ. вход (3.4E-38; 3.4E+38)
2 y Значение координаты y Вещ. вход (3.4E-38; 3.4E+38)
3 C1 Сообщение Текст выход 1 вид
4 C2 Сообщение Текст выход 1 вид
5 C3 Сообщение Текст выход 1 вид

 

Таблица сообщений

C1: “Точка M является началом координат.”

C2: “Точка M лежит на одной из координатных осей.

C3: “Точка M не является началом координат и не лежит на координатных осях.”

 

4.Алгоритмизация

 

Блок-схема алгоритма представлена на рис. 1.

screenshot 23 13

Рисунок 1 – Блок-схема алгоритма

 

  1. Проектирование тестов

Таблица 2 – Таблица тестов

Номер теста Назначение

теста

Входные данные Выходные данные
1 Точка M является началом координат x=0

y=0

« Точка M является началом координат. »
2 Точка M лежит на одной из координатных осей x=2

y=0

 

« Точка M лежит на одной из координатных осей. »
3 Точка M не является началом координат и не лежит на координатных осях x=3

y=4

 

“ Точка M не является началом координат и не лежит на координатных осях ”

 

 

  1. Проверка правильности алгоритма с помощью таблицы

Тест 1: блоки 1,2,3,6

Тест 2: блоки 1,2,4,6

Тест 3: блоки 1,2,5,6

 

  1. Кодирование алгоритма или запись алгоритма на языке С++

 

#include <iostream>

using namespace std;

int main() {

double x, y;

// Введите координаты точки M

cin >> x;

cin >> y;

// Проверка, является ли точка началом координат

if (x == 0 && y == 0) {

cout << «Точка M является началом координат.» ;

}

// Проверка, лежит ли точка на одной из координатных осей

else if (x == 0 || y == 0) {

cout << «Точка M лежит на одной из координатных осей.» ;

}

else {

cout << «Точка M не является началом координат и не лежит на координатных осях.» ;

}

return 0;

}

ЗАДАЧА

 

  1. Условие задачи

Заданы действительные числа X и Y. Определить, принадлежит ли точка с координатами (X,Y) заштрихованной части плоскости.(см. рис. 2)

Рисунок 2-Ж

 

screenshot 24 14

Рисунок 2

 

 

  1. Математическая модель

Точка с заданными координатами может принадлежать и не принадлежать заштрихованной области.

Для того, чтобы точка принадлежала заданной области она должна удовлетворять следующим условиям:

  1. y<3x+2
  2. y<-3x+2
  3. y>-1

 

  1. Таблица 3 – Внешние спецификации
Имя Назначение Тип Вх/Вых. Диапазон
1 x Значение координаты x Вещ. вход (3.4E-38; 3.4E+38)
2 y Значение координаты y Вещ. вход (3.4E-38; 3.4E+38)
3 C1 Сообщение Текст выход 1 вид
4 C2 Сообщение Текст выход 1 вид

 

Таблица сообщений

C1: “Точка с координатами (x,y) принадлежит заштрихованной части плоскости.”

C2: “Точка с координатами (x,y) не принадлежит заштрихованной части плоскости.”

 

4.Алгоритмизация

Блок-схема алгоритма представлена на рис. 3.

screenshot 25 13

Рисунок 3 – Блок-схема алгоритма

 

 

  1. Проектирование тестов

Таблица 2 – Таблица тестов

Номер теста Назначение

теста

Входные данные Выходные данные
1 Координаты не удовлетворяют условиям x=2

y=-2

«Точка с координатами (x,y) не принадлежит заштрихованной части плоскости.»
2 Координаты не удовлетворяют условиям x=0

y=3

 

«Точка с координатами (x,y) не принадлежит заштрихованной части плоскости.»
3 Координаты не удовлетворяют условиям x=-2

y=0

 

«Точка с координатами (x,y) не принадлежит заштрихованной части плоскости.»
4 Координаты удовлетворяют условиям x=0

y=1

 

«Точка с координатами (x,y) принадлежит заштрихованной части плоскости.»

 

  1. Проверка правильности алгоритма с помощью таблицы

Тест 1,2,3: блоки 1,2,4,5

Тест 4: блоки 1,2,3,5

 

  1. Кодирование алгоритма или запись алгоритма на языке С++

 

#include <iostream>

using namespace std

int main() {

// Координаты точки

double x, y;

// Ввод координат точки

cin >> x;

cin >> y;

// Проверка условий

if (y <= 3 * x + 2 && y <= -3 * x + 2 && y >= -1) {

cout << «Точка (» << x << «, » << y << «) принадлежит заштрихованной части плоскости.» ;

} else {

cout << «Точка (» << x << «, » << y << «) не принадлежит заштрихованной части плоскости.»;

}

 

return 0;

}

Группа С вариант 10 в задании

 

  1. Условие задачи

Дано целое число в диапазоне 20–69, определяющее возраст (в годах). Вывести описание указанного возраста, обеспечив правильное согласование числа со словом «год», например, 20 — «двадцать лет», 32 — «тридцать два года», 41 — «сорок один год».

  1. Математическая модель

 

Найдем сколько десятков в числе и какая в нем последняя цифра

Количество десятков = введенное число /10

Последняя цифра = введенное число остаток от деления на 10

 

 

  1. Таблица 3 – Внешние спецификации
Имя Назначение Тип Вх/Вых. Диапазон
1 age Значение возраста Цел. вход [20-69]
2 C1 Сообщение Текст выход 1 вид
3 C2 Сообщение Текст выход 1 вид

 

Таблица сообщений

C1: “Возраст вне диапазона ”

C2: “Ваш возраст:”

 

4.Алгоритмизация

Блок-схема алгоритма представлена на рис. 3.

screenshot 26 12

Рисунок 3 – Блок-схема алгоритма

 

  1. Проектирование тестов

Таблица 2 – Таблица тестов

Номер теста Назначение

теста

Входные данные Выходные данные
1 Возраст вне диапазона 19 «Возраст вне диапазона.»
2 Возраст вне диапазона 70

 

«Возраст вне диапазона.»
3 Возраст входит в диапазон 25

 

«двадцать пять лет»
4 Возраст входит в диапазон 34

 

«тридцать четыре года»

 

  1. Проверка правильности алгоритма с помощью таблицы

Тест 1,2: блоки 1,2,3,18

Тест 3: блоки 1,2,4,5,6 ,16,18

Тест 4: блоки 1,2,4,5,7,15,18

 

  1. Кодирование алгоритма или запись алгоритма на языке С++

 

#include <iostream>

 

using namespace std;

 

int main() {

int age;

 

cin >> age;

 

if (age < 20 || age > 69) {

cout << «Возраст вне диапазона.»;

return 1;

}

cout << «Ваш возраст: «;

int lastDigit = age % 10;

int tensDigit = age / 10;

 

switch (tensDigit) {

case 2:

cout << «двадцать «;

break;

case 3:

cout << «тридцать «;

break;

case 4:

cout << «сорок «;

break;

case 5:

cout << «пятьдесят «;

break;

case 6:

cout << «шестьдесят «;

break;

}

 

switch (lastDigit) {

case 1:

cout << «один год»;

break;

case 2:

cout << «два года»;

break;

case 3:

cout << «три года»;

break;

case 4:

cout << «четыре года»;

break;

case 5:

cout << «пять лет»;

break;

case 6:

cout << «шесть лет»;

break;

case 7:

cout << «семь лет»;

break;

case 8:

cout << «восемь лет»;

break;

case 9:

cout << «девять лет»;

break;

default:

cout << «лет»;

break;

}

 

return 0;

}

Была ли полезна данная статья?
Да
61.19%
Нет
38.81%
Проголосовало: 1108

или напишите нам прямо сейчас:

⚠️ Пожалуйста, пишите в MAX или заполните форму выше.
В России Telegram и WhatsApp блокируют - сообщения могут не дойти.
Написать в MAXНаписать в TelegramНаписать в WhatsApp