Лабораторная работа №6

Оператор множественного выбора

Решение нулевого варианта

Задача. Реализовать простейший калькулятор, который выполняет 4 арифметические операции: сложение, вычитание, умножение и деление. Операнды и операция вводятся с клавиатуры. В случае ввода некорректной операции, вывести соответствующее сообщение. 

Входные данные: два числа (a и b), операция (op).

Выходные данные: результат выполнения операции (res)  или сообщение об ошибке, в случае некорректно введенной операции.

В начале вводим значение операндов и знак операции (типа char). Логическая переменная f принимает значение true, предполагая, что введенный с клавиатуры знак операции корректен. Далее идет сравнения значения со списком констант символов. При обнаружении совпадения выполняется оператор, ассоциированным с данным значением. Оператор default выполняется, если не найдено соответствий, т.е. пользователь ввел некорректную арифметическую операцию. Значение логической переменной f принимает значение false. Выводится сообщение об ошибке.

Если значение логической переменной f=true, то выводится значение переменной res.

Текст программы:

#include "stdafx.h"

#include <iostream>

#include <clocale>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{setlocale (LC_ALL, "Russian");

int a,b, res;

char op;

cout<<"\nВведите первый операнд ";

cin>>a;

cout<<"\nВведите знак операции ";

cin>>op;

cout<<"\nВведите второй операнд ";

cin>>b;

bool f=true;

switch(op) {

case '+': res=a+b; break;

       case '-': res=a-b; break;

                 case '*': res=a*b; break;

                          case '/': res=a/b; break;

                          default: cout<<"\nНеизвестная операция"; f=false;}

if (f) cout<<"\nРезультат: "<<res;

system("pause");

       return 0;}

Задания для самостоятельного выполнения

  1. Дано целое число K. Вывести строку — описание оценки, соответствующей числу K (1 — «плохо», 2 — «удовлетворительно», 3 — «удовлетворительно», 4 — «хорошо», 5 — «отлично»). Если K не лежит в диапазоне 1 — 5, то вывести строку «ошибка».
  2. Дан номер месяца — целое число в диапазон 1 — 12 (1 — январь, 2 — февраль и т.д.). Вывести название соответствующего времени года («зима», «весна», «лето», «осень»).
  3. Дан номер месяца — целое число в диапазон 1 — 12 (1 — январь, 2 — февраль и т.д.). Определить количество дней в этом месяце для невисокосного года.
  4. Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 — вычитание, 3 — умножение, 4 — деление. Дан номер действия N (целое число в диапазоне 1 — 4) и вещественные числа A и B (B не равно 0). Выполнить над числами указанное действие и вывести результат.
  5. Единицы длины пронумерованы следующим образом: 1 — дециметр, 2 — километр, 3 — метр, 4 — миллиметр, 5 — сантиметр. Дан номер единицы длины (целое число в диапазоне 1 — 5) и длина отрезка в этих единицах (вещественное число). Найти длину отрезка в метрах.
  6. Единицы массы пронумерованы следующим образом: 1 — килограмм, 2 —миллиграмм, 3 —грамм, 4 — тонна, 5 — центнер. Дан номер единицы массы (целое число в диапазоне 1 — 5) и масса тела в этих единицах (вещественное число). Найти массу тела в килограммах.
  7. Дано целое число в диапазоне 1 — 7. Ввести строку — название дня недели, соответствующего данному числу (1 — «понедельник», 2 — «вторник» и т.д.).
  8. Даны два целых числа: D (день) и M (месяц), определяющие правильную дату невисокосного года. Вывести значение D и M для даты, предшествующей указанной.
  9. Элементы окружности пронумерованы следующим образом: 1 — радиус R, 2 — диаметр D=2*R, 3 — длина L=2*π*R, 4 — площадь круга S=π*R2. Дан номер одного из этих элементов и его значение. вывести значения остальных элементов данной окружности ( в том же порядке).
  10. Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом: 1 — катет a, 2 — гипотенуза , 3 — высота h, опущенная на гипотенузу  , 4 — площадь . Дан номер одного их этих элементов и его значение. Вывести значения остальных элементов данного треугольника (в том же порядке).
  11. Элементы равностороннего треугольника пронумерованы следующим образом: 1 — сторона a, 2 — радиус R1  вписанной окружности , 3 — радиус R2 описанной окружности (R2=2*R1), 4 — площадь . Дан номер одного их этих элементов и его значение. Вывести значения остальных элементов данного треугольника (в том же порядке).
  12. Мастям игральных карт присвоены следующие порядковые номера: 1 — пики, 2 — трефы, 3 — бубны, 4 — червы. Достоинству карт, старших десятки, присвоены номера: 11 — валет, 12 — дама, 13 — король, 14 — туз. Даны два целых числа:  N— достоинство  и M — масть карты . Вывести название соответствующей карты вида «дама червей», «туз треф» и т.п.
  13. Дано целое число в диапазоне 100 — 999. вывести строку описание данного числа, например: 256 — «двести пятьдесят шесть», 814 — «восемьсот четырнадцать» и т.п.
  14. Дано целое число в диапазоне 10 — 40, определяющее количество учебных заданий по некоторой теме. Вывести строку — описание указанного количества заданий, обеспечив правильное согласование числа со словами «учебное задание», например: 18 — «восемнадцать учебных заданий», 23 — «двадцать три учебных задания».
  15. Дано целое число в диапазоне 20 — 69, определяющее возраст (в годах). Вывести строку — описание указанного возраста, обеспечив правильное согласование числа со словом «год», например: 20 — «двадцать лет», 32 — «тридцать два года», 41 — «сорок один год».

Вернуться к теории