Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы 1 курс 2 семестр / ЛР 3 Информатика 2 сем 2020

.pdf
Скачиваний:
12
Добавлен:
15.01.2021
Размер:
657.01 Кб
Скачать

Начало

Целое неотрицательное число number Целое неотрицательное число digit Целое неотрицательное число quantity = 0

Ввод значений number и digit

 

 

нет

number >= 100 ||

да

 

 

 

 

 

 

 

number

<

10

 

нет

digit

>= 10

да

 

 

 

 

 

 

 

 

нет

да

 

 

 

 

 

digit == number % 10

 

 

 

 

 

 

 

quantity++

 

 

 

 

Вывод «некорректное значение number» number -= number % 10

number /= 10

Вывод «некорректное

 

 

значение digit»

нет

 

да

digit ==

number % 10

 

 

 

quantity++

 

 

Вывод quantity

Конец

Составим программу согласно полученой блок-схеме. Для реализации проверок на корректность введѐнных данных воспользуемся конструкцией

«try-throw-catch».

#include <conio.h> #include <iostream>

void main()

{

try

{

unsigned int number; unsigned int digit; unsigned int quantity = 0;

50

std::cout<<"Input number:"; std::cin>>number;

if(number < 10 || number >= 100)

{

throw 1; // Код ошибки, когда заданое число не двузначное

}

std::cout<<"\nInput digit:"; std::cin>>digit; std::cout<<"\n";

if(digit >= 10)

{

throw 2; // Код ошибки, когда задано число, а не

цифра

}

if(digit == number % 10) // если вторая цифра числа такая же, как и заданная цифра

{

quantity++; // считаем сопадение

}

number -= number % 10; number /= 10;

if(digit == number % 10) // если первая цифра числа такая же, как и заданная цифра

{

quantity++; // считаем сопадение

}

std::cout<<quantity; // выводим количество совпадений

}

catch(int errorcode)

{

switch(errorcode) // для обработки ошибок

{

case 1:

std::cout<<"incorrect value of number"; break;

51

case 2:

std::cout<<"incorrect value of digit"; break;

default:

std::cout<<"unknown error";

}

}

std::cout<<"\nPress any key to continue"; _getch();

}

Введѐнное число

23

57

65

33

277

4

38

Введѐнная цифра

2

8

5

3

 

 

27

Результат работы

 

 

 

 

incorrect

incorrect

incorrect

1

0

1

2

value of

value of

value of

программы

 

 

 

 

number

number

digit

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

4.4Задания (выполняются по вариантам)

Задача 3.1.1. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области.

Задача 3.1.2. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области.

52

Задача 3.1.3. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области.

Задача 3.1.4. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области.

Задача 3.1.5. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области.

Задача 3.1.6. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области.

53

Задача 3.1.7. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области

Задача 3.1.8. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области.

Задача 3.1.9. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области.

Задача 3.1.10. Ввести с клавиатуры числа x, y. Вычислить z = m + n, где

y, при x > 0;

x, при y > 0;

m = 0, при x == 0;

n = 0, при y == 0;

-y, при x < 0.

- x, при y < 0.

Результат вывести на экран

Задача 3.1.11. Ввести с клавиатуры числа x, y. Вычислить z = m - n, где

x, при x <= -8;

y, при y < -2;

m = x2, при -8 < x <= 8;

n = y2, при -2 <= y < 2;

x3, при x > 8.

y3, при y >= 2.

Результат вывести на экран

 

54

Задача 3.1.12. Ввести с клавиатуры целые числа i, k. Вычислить k, при i == 0, иначе

i, при k == 0, иначе

z = i - k, при k, кратном i, иначе k - i, при i, кратном k, иначе i + k

Результат вывести на экран

Задача 3.1.13. Ввести с клавиатуры целые числа i, k. Вычислить k - i, при k > 50, иначе

k + i, при k < 25, иначе

z= k * i, при i > 10, иначе k / i, при i < 0, иначе

i % k (остаток от деления) Результат вывести на экран

Задача 3.1.14. Ввести с клавиатуры числа x, y. Вычислить x + y, при x > 0 , y > 0;

z = x - y, при x < 0 , y < 0; 100, при x == 0 или y == 0; x * y, в остальных случаях

Результат вывести на экран

Задача 3.1.15. Ввести с клавиатуры числа x, y. Вычислить x3 + y3, при -1 < x < 1 и -1 < y < 1, иначе

z = x2 + y2, при -1 < x < 1 и y == ±1, иначе x + y, при -1 < y < 1 и x == ±1, иначе

2, в остальных случаях Результат вывести на экран

Задача 3.1.16. Ввести с клавиатуры числа k, m, n. Вычислить k + 2m, при k < m < n,

z = k + 2n, при m < n < k, 2k + m, при n < k < m,

2k + n, в остальных случаях Результат вывести на экран

Задача 3.1.17. Ввести с клавиатуры числа x, y. Вычислить x + y/5, при |x| > 15, y < 0;

z = x/3 + y, при |y| > 6 , x < 0;

2x + 2y + 2, в остальных случаях Результат вывести на экран

55

Задача 3.1.18. Ввести с клавиатуры числа x, y, v. Если x>y, вывести на экран v. Иначе, если y>v, вывести на экран x. Иначе, если v>x, вывести на экран y. Если ни одно из вышеперечисленных условий не выполнено, вывести на экран соответствующее сообщение.

Задача 3.1.19. Ввести с клавиатуры символ. Вывести на экран «yes», если введѐнный символ обозначает строчную букву латинского алфавита или «YES», если заглавную. В остальных случаях вывести «No».

Задача 3.1.20. Ввести с клавиатуры символ. Вывести на экран «Number», если введѐнный символ обозначает цифру, «Letter» - если строчную или заглавную букву латинского алфавита и «Simbol» в остальных случаях.

Задача 3.2.1. Ввести с клавиатуры символ. Вывести «yes», если введѐнный символ обозначает строчную гласную букву латинского алфавита или «YES», если заглавную гласную. В остальных случаях вывести «No».

Задача 3.2.2. Ввести с клавиатуры символ. Вывести «Yes, Even», если введѐнный символ обозначает чѐтную цифру, «Yes, Odd», если нечѐтную цифру и «No» в остальных случаях.

Задача 3.2.3. Ввести с клавиатуры символ. Вывести «Yes», если введѐнный символ обозначает знак перепинания, и «No» в противном случае.

Задача 3.2.4. Ввести с клавиатуры символ. Вывести «yes», если введѐнный символ обозначает строчную латинскую букву «m», «n» или «k», «YES» - если заглавную букву «M», «N» или «K», и «No» в противном случае.

Задача 3.2.5. Ввести с клавиатуры символ. Вывести «Yes», если введѐнный символ обозначает строчную или заглавную букву «A», «B», «C» или «D» латинского алфавита, и «No» в противном случае.

Задача 3.2.6. Ввести с клавиатуры символ. Вывести «1», если этот символ обозначает первую или последнюю букву латинского алфавита, «2» - вторую или предпоследнюю, «3» - третью или третью с конца, «-» - в любом другом случае.

56

Задача 3.2.7. Ввести с клавиатуры целое число. Вывести символ «@», если вторая с конца цифра этого числа будет 5 или 0, «%» - если 1 или 9, «^» - если 2 или 8, «&» - в остальных случаях.

Задача 3.2.8. Ввести с клавиатуры целое число. Вывести «abc», если последняя цифра этого числа 2,4 или 6, «def» - если 1,3 или 5, «ghi» - если 8 или 9, «jkl» - в остальных случаях.

Задача 3.2.9. Ввести с клавиатуры целое число. Вывести «1», если остаток от деления на 25 этого числа будет 5, 10 или 20, «2» - если 2,12 или 22, «3» - если 13, 15 или 17, «4» - в остальных случаях.

Задача 3.2.10. Ввести с клавиатуры первую букву названия времени года, строчную или заглавную. Вывести название соответствующего времени года. Если введѐнный символ не является первой буквой названия, вывести «Unknown».

Задача 3.2.11. Ввести с клавиатуры первую букву названия осеннего месяца, строчную или заглавную. Вывести название соответствующего месяца. Если введѐнный символ не является первой буквой названия осеннего месяца, вывести «Unknown».

Задача 3.2.12. Ввести с клавиатуры порядковый номер дня в неделе, начиная с понедельника. Вывести название соответствующего дня недели. Если введѐнный символ не обозначает порядковый номер дня в неделе, вывести «Unknown».

Задача 3.2.13. Ввести с клавиатуры цифру. Вывести на экран еѐ название прописью. Если введѐнный символ не является цифрой вывести «Unknown».

Задача 3.2.14. Ввести с клавиатуры число. Если это число равно 27, вывести его на экран, если это число равно 72 - вывести на экран сумму его цифр, если это число равно 22 - возвести его в квадрат и результат вывести на экран, если это число равно 77 - вывести на экран символ с таким кодом ASCII, в остальных случаях вывести на экран «schislo».

Задача 3.2.15. Ввести с клавиатуры число. Если это число равно 1, 11 или 111 - вывести его на экран, если это число равно 10, 20 или 30 - вывести на экран число 0, если это число равно 100 или 200 - вывести на экран название числа прописью, в остальных случаях вывести на экран «schislo».

57

Задача 3.2.16. Ввести с клавиатуры целое число. Если это число делится нацело на 4 - вывести его на экран. В противном случае вывести на экран получающийся остаток прописью.

Задача 3.2.17. Ввести с клавиатуры два числа и символ, обозначающий арифметическое действие (сложение, вычитание, умножение или деление). Выполнить обозначенную операцию над введѐнными числами и вывести результат на экран. Если введѐнный символ не обозначает арифметичекое действие, вывести

«Unknown operation».

Задача 3.2.18. Ввести с клавиатуры два числа и цифру, обозначающую действие: 1 - сложить эти числа, 2 - вычесть из первого числа второе, 3 - вычесть из второго числа первое. Выполнить обозначенное действие над введѐнными числами и вывести результат на экран. Если введѐнный символ не обозначает вешеуказанное действие, вывести «Unknown operation».

Задача 3.2.19. Ввести число и символ, обозначающий действие: x - умножить число на 10, y - возвести число в квадрат, z - разделить введѐнное число на 50. Выполнить обозначенное действие над введѐнным числом и вывести результат на экран. Если введѐнный символ не обозначает вешеуказанное действие, вывести «Unknown operation».

Задача 3.2.20. Ввести с клавиатуры целое число. Если это число делится нацело на 3 - вывести на экран цифру «3». Если при делении на 3 в остатке получается 1 - вывести на экран цифру «3» и букву «f». Если при делении на 3 в остатке получается 2 - вывести на экран цифру «3», букву «f» и слово «privet».

Задача 3.3.1. Поле шахматной доски определяется парой натуральных чисел, первое из которых задаст номер вертикали, а второе - номер горизонтали. Определить, на сколько всего разных полей может переместиться конь, стоящий на поле (k, l) на пустой доске. Натуральные числа k и l вводятся с клавиатуры. Если пользователь введѐт некорректные данные – вывести соответствующее сообщение.

Задача 3.3.2. Поле шахматной доски определяется парой натуральных чисел, первое из которых задаст номер вертикали, а второе - номер горизонтали. Определить, на сколько всего разных полей может переместиться слон, стоящий на поле (k, l) на пустой

58

доске. Натуральные числа k и l вводятся с клавиатуры. Если пользователь введѐт некорректные данные – вывести соответствующее сообщение.

Задача 3.3.3. Поле шахматной доски определяется парой натуральных чисел, первое из которых задаст номер вертикали, а второе - номер горизонтали. Определить, за сколько (минимум) ходов король, стоящий на поле (k, l), сможет переместиться на поле (m, n). Натуральные числа k, l, n, m вводятся с клавиатуры. Если пользователь введѐт некорректные данные – вывести соответствующее сообщение.

Задача 3.3.4. Поле шахматной доски определяется парой натуральных чисел, первое из которых задаст номер вертикали, а второе - номер горизонтали. Определить, может ли конь, стоящий на поле (k, l), переместиться на поле (m, n) за один ход. Натуральные числа k, l, n, m вводятся с клавиатуры. Если пользователь введѐт некорректные данные – вывести соответствующее сообщение.

Задача 3.3.5. Поле шахматной доски определяется парой натуральных чисел, первое из которых задает номер вертикали, а второе - номер горизонтали. Определить, может ли ферзь, стоящий на поле (k, l), переместиться на поле (m, n) за один ход. Натуральные числа k, l, n, m вводятся с клавиатуры. Если пользователь введѐт некорректные данные – вывести соответствующее сообщение.

Задача 3.3.6. Поле шахматной доски определяется парой натуральных чисел, первое из которых задаст номер вертикали, а второе - номер горизонтали. Определить, являются ли поля (k, l) и (n, m) полями одного цвета. Натуральные числа k, l, n, m вводятся с клавиатуры. Если пользователь введѐт некорректные данные – вывести соответствующее сообщение.

Задача 3.3.7. Ввести с клавиатуры 3 цифры. Определить, сколько различных трѐхзначных чисел можно получить, используя по разу каждую из введѐнных цифр. Если пользователь введѐт некорректные данные (например, число, а не цифру) – вывести соответствующее сообщение.

Задача 3.3.8. Ввести с клавиатуры натуральное трѐхзначное число. Вывести на экран все возможные двузначные числа, которые можно получить, комбинируя цифры введѐнного числа. Если

59