double selectionswitchPower(double MEASUREMENT) { FunctionsParameters key; printf("Выберите величину, из которой Вы хотите произвести конвертирование:\n" "1 - Микроваты;\n" "2 - Милливаты;\n" "3 - Ваты;\n" "4 - Киловаты;\n" "5 - Мегаваты;\n" "6 - Килограмм-сил-метры в секунду;\n" "7 - Эрг в секунду;\n" "8 - Лошадиные силы(метрических);\n" "9 - Лошадиные силы(английских);\n\t"); scanf("%s", key.in); key.input_choice = parsing_id(key.in); while(key.input_choice >= 10 || key.input_choice == 0) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин. \nПожалуйста, сделайте корректный выбор\n\t"); scanf("%s", key.in); key.input_choice = parsing_id(key.in); } printf("Выберите величину, в которую Вы хотите конвертировать Вашу величину.\n" "Не нужно выбирать ту же величину, что Вы выбрали в качестве конвертируемой:\n" "1 - Микроваты;\n" "2 - Милливаты;\n" "3 - Ваты;\n" "4 - Киловаты;\n" "5 - Мегаваты;\n" "6 - Килограмм-сил-метры в секунду;\n" "7 - Эрг в секунду;\n" "8 - Лошадиные силы(метрических);\n" "9 - Лошадиные силы(английских);\n\t"); scanf("%s", key.out); key.input_choice = parsing_id(key.out); while(key.output_choice == key.input_choice || key.output_choice >= 10 || key.output_choice == 0 ) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин, \nили Вы пытаетесь конвертировать " "одну и ту же величину. \nПожалуйста, сделайте корректный выбор\n\t"); scanf("%s", key.out); key.input_choice = parsing_id(key.out); } key.id = key.input_choice * 10 + key.output_choice; switch(key.id) { case 12: key.gate = Vat2MlVat(MkVat2Vat(MEASUREMENT)); break; case 13: key.gate = MkVat2Vat(MEASUREMENT); break; case 14: key.gate = Vat2kVat(MkVat2Vat(MEASUREMENT)); break; case 15: key.gate = Vat2mVat(MkVat2Vat(MEASUREMENT)); break; case 16: key.gate = Vat2kgSilaMvS(MkVat2Vat(MEASUREMENT)); break; case 17: key.gate = Vat2ErgS(MkVat2Vat(MEASUREMENT)); break; case 18: key.gate = Vat2HorsePowMetr(MkVat2Vat(MEASUREMENT)); break; case 19: key.gate = Vat2HorsePowEng(MkVat2Vat(MEASUREMENT)); break; case 21: key.gate = Vat2MkVat(MlVat2Vat(MEASUREMENT)); break; case 23: key.gate = MlVat2Vat(MEASUREMENT); break; case 24: key.gate = Vat2kVat(MlVat2Vat(MEASUREMENT)); break; case 25: key.gate = Vat2mVat(MlVat2Vat(MEASUREMENT)); break; case 26: key.gate = Vat2kgSilaMvS(MlVat2Vat(MEASUREMENT)); break; case 27: key.gate = Vat2ErgS(MlVat2Vat(MEASUREMENT)); break; case 28: key.gate = Vat2HorsePowMetr(MlVat2Vat(MEASUREMENT)); break; case 29: key.gate = Vat2HorsePowEng(MlVat2Vat(MEASUREMENT)); break; case 31: key.gate = Vat2MkVat(MEASUREMENT); break; case 32: key.gate = Vat2MlVat(MEASUREMENT); break; case 34: key.gate = Vat2kVat(MEASUREMENT); break; case 35: key.gate = Vat2mVat(MEASUREMENT); break; case 36: key.gate = Vat2kgSilaMvS(MEASUREMENT); break; case 37: key.gate = Vat2ErgS(MEASUREMENT); break; case 38: key.gate = Vat2HorsePowMetr(MEASUREMENT); break; case 39: key.gate = Vat2HorsePowEng(MEASUREMENT); break; case 41: key.gate = Vat2MkVat(kVat2Vat(MEASUREMENT)); break; case 42: key.gate = Vat2MlVat(kVat2Vat(MEASUREMENT)); break; case 43: key.gate = kVat2Vat(MEASUREMENT); break; case 45: key.gate = Vat2mVat(kVat2Vat(MEASUREMENT)); break; case 46: key.gate = Vat2kgSilaMvS(kVat2Vat(MEASUREMENT)); break; case 47: key.gate = Vat2ErgS(kVat2Vat(MEASUREMENT)); break; case 48: key.gate = Vat2HorsePowMetr(kVat2Vat(MEASUREMENT)); break; case 49: key.gate = Vat2HorsePowEng(kVat2Vat(MEASUREMENT)); break; case 51: key.gate = Vat2MkVat(mVat2Vat(MEASUREMENT)); break; case 52: key.gate = Vat2MlVat(mVat2Vat(MEASUREMENT)); break; case 53: key.gate = mVat2Vat(MEASUREMENT); break; case 54: key.gate = Vat2kVat(mVat2Vat(MEASUREMENT)); break; case 56: key.gate = Vat2kgSilaMvS(mVat2Vat(MEASUREMENT)); break; case 57: key.gate = Vat2ErgS(mVat2Vat(MEASUREMENT)); break; case 58: key.gate = Vat2HorsePowMetr(mVat2Vat(MEASUREMENT)); break; case 59: key.gate = Vat2HorsePowEng(mVat2Vat(MEASUREMENT)); break; case 61: key.gate = Vat2MkVat(kgSilaMvS2Vat(MEASUREMENT)); break; case 62: key.gate = Vat2MlVat(kgSilaMvS2Vat(MEASUREMENT)); break; case 63: key.gate = kgSilaMvS2Vat(MEASUREMENT); break; case 64: key.gate = Vat2kVat(kgSilaMvS2Vat(MEASUREMENT)); break; case 65: key.gate = Vat2mVat(kgSilaMvS2Vat(MEASUREMENT)); break; case 67: key.gate = Vat2ErgS(kgSilaMvS2Vat(MEASUREMENT)); break; case 68: key.gate = Vat2HorsePowMetr(kgSilaMvS2Vat(MEASUREMENT)); break; case 69: key.gate = Vat2HorsePowEng(kgSilaMvS2Vat(MEASUREMENT)); break; case 71: key.gate = Vat2MkVat(ErgS2Vat(MEASUREMENT)); break; case 72: key.gate = Vat2MlVat(ErgS2Vat(MEASUREMENT)); break; case 73: key.gate = ErgS2Vat(MEASUREMENT); break; case 74: key.gate = Vat2kVat(ErgS2Vat(MEASUREMENT)); break; case 75: key.gate = Vat2mVat(ErgS2Vat(MEASUREMENT)); break; case 76: key.gate = Vat2kgSilaMvS(ErgS2Vat(MEASUREMENT)); break; case 78: key.gate = Vat2HorsePowMetr(ErgS2Vat(MEASUREMENT)); break; case 79: key.gate = Vat2HorsePowEng(ErgS2Vat(MEASUREMENT)); break; case 81: key.gate = Vat2MkVat(HorsePowMetr2Vat(MEASUREMENT)); break; case 82: key.gate = Vat2MlVat(HorsePowMetr2Vat(MEASUREMENT)); break; case 83: key.gate = HorsePowMetr2Vat(MEASUREMENT); break; case 84: key.gate = Vat2kVat(HorsePowMetr2Vat(MEASUREMENT)); break; case 85: key.gate = Vat2mVat(HorsePowMetr2Vat(MEASUREMENT)); break; case 86: key.gate = Vat2kgSilaMvS(HorsePowMetr2Vat(MEASUREMENT)); break; case 87: key.gate = Vat2ErgS(HorsePowMetr2Vat(MEASUREMENT)); break; case 89: key.gate = Vat2HorsePowEng(HorsePowMetr2Vat(MEASUREMENT)); break; case 91: key.gate = Vat2MkVat(HorsePowEng2Vat(MEASUREMENT)); break; case 92: key.gate = Vat2MlVat(HorsePowEng2Vat(MEASUREMENT)); break; case 93: key.gate = HorsePowEng2Vat(MEASUREMENT); break; case 94: key.gate = Vat2kVat(HorsePowEng2Vat(MEASUREMENT)); break; case 95: key.gate = Vat2mVat(HorsePowEng2Vat(MEASUREMENT)); break; case 96: key.gate = Vat2kgSilaMvS(HorsePowEng2Vat(MEASUREMENT)); break; case 97: key.gate = Vat2ErgS(HorsePowEng2Vat(MEASUREMENT)); break; case 98: key.gate = Vat2HorsePowMetr(HorsePowEng2Vat(MEASUREMENT)); break; default: printf("Не введено значение конвертируемой величины, " "или Вы пытаетесь конвертировать в величину, которую уже преобразуете\n"); break; } return key.gate; }
double selectionswitchTemperature(double MEASUREMENT) { FunctionsParameters key; printf("Выберите величину, из которой Вы хотите произвести конвертирование:\n" "1 - Градус Делиля;\n" "2 - Градус Кельвина;\n" "3 - Градус Ньтона;\n" "4 - Градус Ранкина;\n" "5 - Градус Реомюра;\n" "6 - Градус Рёмера;\n" "7 - Градус Цельсия;\n" "8 - Градус Фаренгейта;\n \t"); //scanf("%d", &key.input_choice); key.input_choice = parsing_id(key.in); while(key.input_choice >= 9 || key.input_choice == 0) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин. \nПожалуйста, сделайте корректный выбор\n\t"); scanf("%d", &key.input_choice); } printf("Выберите величину, из которой Вы хотите произвести конвертирование:\n" "1 - Градус Делиля;\n" "2 - Градус Кельвина;\n" "3 - Градус Ньтона;\n" "4 - Градус Ранкина;\n" "5 - Градус Реомюра;\n" "6 - Градус Рёмера;\n" "7 - Градус Цельсия;\n" "8 - Градус Фаренгейта;\n \t"); //scanf("%d", &key.output_choice); key.output_choice = parsing_id(key.out); while(key.output_choice == key.input_choice || key.output_choice >= 9 || key.input_choice == 0) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин, \nили Вы пытаетесь конвертировать " "одну и ту же величину. \nПожалуйста, сделайте корректный выбор\n\t"); scanf("%d", &key.output_choice); } key.id = key.input_choice * 10 + key.output_choice; switch(key.id) { case 12: key.gate = DelislesTOKelvins(MEASUREMENT); break; case 13: key.gate = DelislesTONewtons(MEASUREMENT); break; case 14: key.gate = DelislesTORankines(MEASUREMENT); break; case 15: key.gate = DelislesTOReaumurs(MEASUREMENT); break; case 16: key.gate = DelislesTORomers(MEASUREMENT); break; case 17: key.gate = DelislesTOCelsius(MEASUREMENT); break; case 18: key.gate = DelislesTOFahrenheits(MEASUREMENT); break; case 21: key.gate = KelvinsTODelisles(MEASUREMENT); break; case 23: key.gate = KelvinsTONewtons(MEASUREMENT); break; case 24: key.gate = KelvinsTORankines(MEASUREMENT); break; case 25: key.gate = KelvinsTOReaumurs(MEASUREMENT); break; case 26: key.gate = KelvinsTORomers(MEASUREMENT); break; case 27: key.gate = KelvinsTOCelsius(MEASUREMENT); break; case 28: key.gate = KelvinsTOFahrenheits(MEASUREMENT); break; case 31: key.gate = NewtonsTODelisles(MEASUREMENT); break; case 32: key.gate = NewtonsTOKelvins(MEASUREMENT); break; case 34: key.gate = NewtonsTORankines(MEASUREMENT); break; case 35: key.gate = NewtonsTOReaumurs(MEASUREMENT); break; case 36: key.gate = NewtonsTORomers(MEASUREMENT); break; case 37: key.gate = NewtonsTOCelsius(MEASUREMENT); break; case 38: key.gate = NewtonsTOFahrenheits(MEASUREMENT); break; case 41: key.gate = RankinesTODelisles(MEASUREMENT); break; case 42: key.gate = RankinesTOKelvins(MEASUREMENT); break; case 43: key.gate = RankinesTONewtons(MEASUREMENT); break; case 45: key.gate = RankinesTOReaumurs(MEASUREMENT); break; case 46: key.gate = RankinesTORomers(MEASUREMENT); break; case 47: key.gate = RankinesTOCelsius(MEASUREMENT); break; case 48: key.gate = RankinesTOFahrenheits(MEASUREMENT); break; case 51: key.gate = ReaumursTODelisles(MEASUREMENT); break; case 52: key.gate = ReaumursTOKelvins(MEASUREMENT); break; case 53: key.gate = ReaumursTONewtons(MEASUREMENT); break; case 54: key.gate = ReaumursTORankines(MEASUREMENT); break; case 56: key.gate = ReaumursTORomers(MEASUREMENT); break; case 57: key.gate = ReaumursTOCelsius(MEASUREMENT); break; case 58: key.gate = ReaumursTOFahrenheits(MEASUREMENT); break; case 61: key.gate = RomersTODelisles(MEASUREMENT); break; case 62: key.gate = RomersTOKelvins(MEASUREMENT); break; case 63: key.gate = RomersTONewtons(MEASUREMENT); break; case 64: key.gate = RomersTORankines(MEASUREMENT); break; case 65: key.gate = RomersTOReaumurs(MEASUREMENT); break; case 67: key.gate = RomersTOCelsius(MEASUREMENT); break; case 68: key.gate = RomersTOFahrenheits(MEASUREMENT); break; case 71: key.gate = CelsiusTODelisles(MEASUREMENT); break; case 72: key.gate = CelsiusTOKelvins(MEASUREMENT); break; case 73: key.gate = CelsiusTONewtons(MEASUREMENT); break; case 74: key.gate = CelsiusTORankines(MEASUREMENT); break; case 75: key.gate = CelsiusTOReaumurs(MEASUREMENT); break; case 76: key.gate = CelsiusTORomers(MEASUREMENT); break; case 78: key.gate = CelsiusTOFahrenheits(MEASUREMENT); break; case 81: key.gate = FahrenheitsTODelisles(MEASUREMENT); break; case 82: key.gate = FahrenheitsTOKelvins(MEASUREMENT); break; case 83: key.gate = FahrenheitsTONewtons(MEASUREMENT); break; case 84: key.gate = FahrenheitsTORankines(MEASUREMENT); break; case 85: key.gate = FahrenheitsTOReaumurs(MEASUREMENT); break; case 86: key.gate = FahrenheitsTORomers(MEASUREMENT); break; case 87: key.gate = FahrenheitsTOCelsius(MEASUREMENT); break; default: printf("Не введено значение конвертируемой величины, " "или Вы пытаетесь конвертировать в величину, которую уже преобразуете\n"); break; } return key.gate; }
double selectionswitchAmpere(double MEASUREMENT) { FunctionsParameters key; printf("Выберите величину, из которой Вы хотите произвести конвертирование:\n" "1 - Ампер;\n" "2 - Килоампер;\n" "3 - Миллиампер;\n" "4 - Микроампер;\n" "5 - Наноампер;\n"); key.input_choice = parsing_id(key.in); //scanf("%d", &key.input_choice); while(key.input_choice >= 8 || key.input_choice == 0) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин. \nПожалуйста, сделайте корректный выбор\n\t"); scanf("%d", &key.input_choice); } printf("Выберите величину, в которую Вы хотите конвертировать Вашу величину.\n" "Не нужно выбирать ту же величину, что Вы выбрали в качестве конвертируемой:\n" "1 - Ампер;\n" "2 - Килоампер;\n" "3 - Миллиапмер;\n" "4 - Микроампер;\n" "5 - Наноампер;\n"); key.output_choice = parsing_id(key.out); //scanf("%d", &key.output_choice); while(key.output_choice == key.input_choice || key.input_choice >= 8 || key.input_choice == 0 ) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин, \nили Вы пытаетесь конвертировать " "одну и ту же величину. \nПожалуйста, сделайте корректный выбор\n\t"); scanf("%d", &key.output_choice); } key.id = key.input_choice * 10 + key.output_choice; switch(key.id) { case 12: key.gate = Ampere2kAmpere(MEASUREMENT); break; case 13: key.gate = Ampere2mAmpere(MEASUREMENT); break; case 14: key.gate = Ampere2mcAmpere(MEASUREMENT); break; case 15: key.gate = Ampere2nAmpere(MEASUREMENT); break; case 21: key.gate = kAmpere2Ampere(MEASUREMENT); break; case 23: key.gate = Ampere2mAmpere(kAmpere2Ampere(MEASUREMENT)); break; case 24: key.gate = Ampere2mcAmpere(kAmpere2Ampere(MEASUREMENT)); break; case 25: key.gate = Ampere2nAmpere(kAmpere2Ampere(MEASUREMENT)); break; case 31: key.gate = mAmpere2Ampere(MEASUREMENT); break; case 32: key.gate = Ampere2kAmpere(mAmpere2Ampere(MEASUREMENT)); break; case 34: key.gate = Ampere2mcAmpere(mAmpere2Ampere(MEASUREMENT)); break; case 35: key.gate = Ampere2nAmpere(mAmpere2Ampere(MEASUREMENT)); break; case 41: key.gate = mcAmpere2Ampere(MEASUREMENT); break; case 42: key.gate = Ampere2kAmpere(mcAmpere2Ampere(MEASUREMENT)); break; case 43: key.gate = Ampere2mAmpere(mcAmpere2Ampere(MEASUREMENT)); break; case 45: key.gate = Ampere2nAmpere(mcAmpere2Ampere(MEASUREMENT)); break; case 51: key.gate = nAmpere2Ampere(MEASUREMENT); break; case 52: key.gate = Ampere2kAmpere(nAmpere2Ampere(MEASUREMENT)); break; case 53: key.gate = Ampere2mAmpere(nAmpere2Ampere(MEASUREMENT)); break; case 54: key.gate = Ampere2mcAmpere(nAmpere2Ampere(MEASUREMENT)); break; default: printf("Не введено значение конвертируемой величины, " "или Вы пытаетесь конвертировать в величину, которую уже преобразуете\n"); break; } return key.gate; }
double selectionswitchStrength(double MEASUREMENT) { FunctionsParameters key; printf("Выберите величину, из которой Вы хотите произвести конвертирование:\n" "1 - Ньютоны;\n" "2 - Килоньютоны;\n" "3 - Миллиньютоны;\n" "4 - Меганьютоны;\n" "5 - Микроньютоны;\n" "6 - Килограмм-силы;\n" "7 - Фунт-силы;\n\t"); key.input_choice = parsing_id(key.in); while(key.input_choice >= 8 || key.input_choice == 0) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин. \nПожалуйста, сделайте корректный выбор\n\t"); key.input_choice = parsing_id(key.in); } printf("Выберите величину, в которую Вы хотите конвертировать Вашу величину.\n" "Не нужно выбирать ту же величину, что Вы выбрали в качестве конвертируемой:\n" "1 - Ньютоны;\n" "2 - Килоньютоны;\n" "3 - Миллиньютоны;\n" "4 - Меганьютоны;\n" "5 - Микроньютоны;\n" "6 - Килограмм-силы;\n" "7 - Фунт-силы;\n\t"); key.output_choice = parsing_id(key.out); while(key.output_choice == key.input_choice || key.input_choice >= 8 || key.input_choice == 0 ) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин, \nили Вы пытаетесь конвертировать " "одну и ту же величину. \nПожалуйста, сделайте корректный выбор\n\t"); key.output_choice = parsing_id(key.out); } key.id = key.input_choice * 10 + key.output_choice; switch(key.id) { case 12: key.gate = Newton2kNewton(MEASUREMENT); break; case 13: key.gate = Newton2mNewton(MEASUREMENT); break; case 14: key.gate = Newton2MgNewton(MEASUREMENT); break; case 15: key.gate = Newton2MkNewton(MEASUREMENT); break; case 16: key.gate = Newton2kgsNewton(MEASUREMENT); break; case 17: key.gate = Newton2fsNewton(MEASUREMENT); break; case 21: key.gate = kNewton2Newton(MEASUREMENT); break; case 23: key.gate = Newton2mNewton(kNewton2Newton(MEASUREMENT)); break; case 24: key.gate = Newton2MgNewton(kNewton2Newton(MEASUREMENT)); break; case 25: key.gate = Newton2MkNewton(kNewton2Newton(MEASUREMENT)); break; case 26: key.gate = Newton2kgsNewton(kNewton2Newton(MEASUREMENT)); break; case 27: key.gate = Newton2fsNewton(kNewton2Newton(MEASUREMENT)); break; case 31: key.gate = mNewton2Newton(MEASUREMENT); break; case 32: key.gate = Newton2kNewton(mNewton2Newton(MEASUREMENT)); break; case 34: key.gate = Newton2MgNewton(mNewton2Newton(MEASUREMENT)); break; case 35: key.gate = Newton2MkNewton(mNewton2Newton(MEASUREMENT)); break; case 36: key.gate = Newton2kgsNewton(mNewton2Newton(MEASUREMENT)); break; case 37: key.gate = Newton2fsNewton(mNewton2Newton(MEASUREMENT)); break; case 41: key.gate = MgNewton2Newton(MEASUREMENT); break; case 42: key.gate = Newton2kNewton(MgNewton2Newton(MEASUREMENT)); break; case 43: key.gate = Newton2mNewton(MgNewton2Newton(MEASUREMENT)); break; case 45: key.gate = Newton2MkNewton(MgNewton2Newton(MEASUREMENT)); break; case 46: key.gate = Newton2kgsNewton(MgNewton2Newton(MEASUREMENT)); break; case 47: key.gate = Newton2fsNewton(MgNewton2Newton(MEASUREMENT)); break; case 51: key.gate = MkNewton2Newton(MEASUREMENT); break; case 52: key.gate = Newton2kNewton(MkNewton2Newton(MEASUREMENT)); break; case 53: key.gate = Newton2mNewton(MkNewton2Newton(MEASUREMENT)); break; case 54: key.gate = Newton2MgNewton(MkNewton2Newton(MEASUREMENT)); break; case 56: key.gate = Newton2kgsNewton(MkNewton2Newton(MEASUREMENT)); break; case 57: key.gate = Newton2fsNewton(MkNewton2Newton(MEASUREMENT)); break; case 61: key.gate = kgsNewton2Newton(MEASUREMENT); break; case 62: key.gate = Newton2kNewton(kgsNewton2Newton(MEASUREMENT)); break; case 63: key.gate = Newton2mNewton(kgsNewton2Newton(MEASUREMENT)); break; case 64: key.gate = Newton2MgNewton(kgsNewton2Newton(MEASUREMENT)); break; case 65: key.gate = Newton2MkNewton(kgsNewton2Newton(MEASUREMENT)); break; case 67: key.gate = Newton2fsNewton(kgsNewton2Newton(MEASUREMENT)); break; case 71: key.gate = fsNewton2Newton(MEASUREMENT); break; case 72: key.gate = Newton2kNewton(fsNewton2Newton(MEASUREMENT)); break; case 73: key.gate = Newton2mNewton(fsNewton2Newton(MEASUREMENT)); break; case 74: key.gate = Newton2MgNewton(fsNewton2Newton(MEASUREMENT)); break; case 75: key.gate = Newton2MkNewton(fsNewton2Newton(MEASUREMENT)); break; case 76: key.gate = Newton2kgsNewton(fsNewton2Newton(MEASUREMENT)); break; default: printf("Не введено значение конвертируемой величины, " "или Вы пытаетесь конвертировать в величину, которую уже преобразуете\n"); break; } return key.gate; }
double selectionswitchAmount(double MEASUREMENT) { FunctionsParameters key; printf("Выберите величину, из которой Вы хотите произвести конвертирование:\n" "1 - Кубический километр;\n" "2 - Кубический метр;\n" "3 - Кубический дециметр;\n" "4 - Кубический сантиметр;\n" "5 - Кубический миллиметр;\n" "6 - Литр;\n" "7 - Миллилитр;\n" "8 - Галлон;\n" "9 - Баррель;\n" "10 - Кварта;\n" "11 - Пинта;\n" "12 - Жидкая унция;\n\t"); //scanf("%d", &key.input_choice); scanf("%s", key.in); key.input_choice = parsing_id(key.in); while(key.input_choice > 12 || key.input_choice == 0) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин. \nПожалуйста, сделайте корректный выбор\n\t"); scanf("%s", key.in); key.input_choice = parsing_id(key.in); } printf("Выберите величину, в которую Вы хотите конвертировать Вашу величину.\n" "Не нужно выбирать ту же величину, что Вы выбрали в качестве конвертируемой:\n" "1 - Кубический километр;\n" "2 - Кубический метр;\n" "3 - Кубический дециметр;\n" "4 - Кубический сантиметр;\n" "5 - Кубический миллиметр;\n" "6 - Литр;\n" "7 - Миллилитр;\n" "8 - Галлон;\n" "9 - Баррель;\n" "10 - Кварта;\n " "11 - Пинта;\n" "12 - Жидкая унция;\n\t"); //scanf("%d", &key.output_choice); scanf("%s", key.out); key.output_choice = parsing_id(key.out); while(key.output_choice == key.input_choice || key.output_choice > 12 || key.output_choice == 0 ) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин, \nили Вы пытаетесь конвертировать " "одну и ту же величину. \nПожалуйста, сделайте корректный выбор\n\t"); scanf("%s", key.out); key.output_choice = parsing_id(key.out); } if(key.input_choice < 10 && key.output_choice < 10) key.id = key.input_choice * 10 + key.output_choice; if(key.input_choice == 10 && key.output_choice <= 10) key.id = key.input_choice * 100 + key.output_choice; if(key.input_choice < 10 && key.output_choice == 10) key.id = key.input_choice * 100 + key.output_choice; switch(key.id) { // Кубический километр case 12: key.gate = squaredkilometers_TO_squaredmeters(MEASUREMENT); break; case 13: key.gate = squaredmeters_TO_squareddecimeters(squaredkilometers_TO_squaredmeters(MEASUREMENT)); break; case 14: key.gate = squaredmeters_TO_squaredcentimeters(squaredkilometers_TO_squaredmeters(MEASUREMENT)); break; case 15: key.gate = squaredmeters_TO_squaredmillimeters(squaredkilometers_TO_squaredmeters(MEASUREMENT)); break; case 16: key.gate = squaredmeters_TO_liters(squaredkilometers_TO_squaredmeters(MEASUREMENT)); break; case 17: key.gate = squaredmeters_TO_mililiters(squaredkilometers_TO_squaredmeters(MEASUREMENT)); break; case 18: key.gate = squaredmeters_TO_gallons(squaredkilometers_TO_squaredmeters(MEASUREMENT)); break; case 19: key.gate = squaredmeters_TO_barrels(squaredkilometers_TO_squaredmeters(MEASUREMENT)); break; case 110: key.gate = squaredmeters_TO_quarts(squaredkilometers_TO_squaredmeters(MEASUREMENT)); break; case 111: key.gate = squaredmeters_TO_pints(squaredkilometers_TO_squaredmeters(MEASUREMENT)); break; case 112: key.gate = squaredmeters_TO_flozs(squaredkilometers_TO_squaredmeters(MEASUREMENT)); break; // Кубический метр case 21: key.gate = squaredmeters_TO_squaredkilometers(MEASUREMENT); break; case 23: key.gate = squaredmeters_TO_squareddecimeters(MEASUREMENT); break; case 24: key.gate = squaredmeters_TO_squaredcentimeters(MEASUREMENT); break; case 25: key.gate = squaredmeters_TO_squaredmillimeters(MEASUREMENT); break; case 26: key.gate = squaredmeters_TO_liters(MEASUREMENT); break; case 27: key.gate = squaredmeters_TO_mililiters(MEASUREMENT); break; case 28: key.gate = squaredmeters_TO_gallons(MEASUREMENT); break; case 29: key.gate = squaredmeters_TO_barrels(MEASUREMENT); break; case 210: key.gate = squaredmeters_TO_quarts(MEASUREMENT); break; case 211: key.gate = squaredmeters_TO_pints(MEASUREMENT); break; case 212: key.gate = squaredmeters_TO_flozs(MEASUREMENT); break; // Кубический дециметр case 32: key.gate = squareddecimeters_TO_squaredmeters(MEASUREMENT); break; case 31: key.gate = squaredmeters_TO_squaredkilometers(squareddecimeters_TO_squaredmeters(MEASUREMENT)); break; case 34: key.gate = squaredmeters_TO_squaredcentimeters(squareddecimeters_TO_squaredmeters(MEASUREMENT)); break; case 35: key.gate = squaredmeters_TO_squaredmillimeters(squareddecimeters_TO_squaredmeters(MEASUREMENT)); break; case 36: key.gate = squaredmeters_TO_liters(squareddecimeters_TO_squaredmeters(MEASUREMENT)); break; case 37: key.gate = squaredmeters_TO_mililiters(squareddecimeters_TO_squaredmeters(MEASUREMENT)); break; case 38: key.gate = squaredmeters_TO_gallons(squareddecimeters_TO_squaredmeters(MEASUREMENT)); break; case 39: key.gate = squaredmeters_TO_barrels(squareddecimeters_TO_squaredmeters(MEASUREMENT)); break; case 310: key.gate = squaredmeters_TO_quarts(squareddecimeters_TO_squaredmeters(MEASUREMENT)); break; case 311: key.gate = squaredmeters_TO_pints(squareddecimeters_TO_squaredmeters(MEASUREMENT)); break; case 312: key.gate = squaredmeters_TO_flozs(squareddecimeters_TO_squaredmeters(MEASUREMENT)); break; // Кубический сантиметр case 43: key.gate = squaredmeters_TO_squareddecimeters(squaredcentimeters_TO_squaredmeters(MEASUREMENT)); break; case 42: key.gate = squaredcentimeters_TO_squaredmeters(MEASUREMENT); break; case 41: key.gate = squaredmeters_TO_squaredkilometers(squaredcentimeters_TO_squaredmeters(MEASUREMENT)); break; case 45: key.gate = squaredmeters_TO_squaredmillimeters(squaredcentimeters_TO_squaredmeters(MEASUREMENT)); break; case 46: key.gate = squaredmeters_TO_liters(squaredcentimeters_TO_squaredmeters(MEASUREMENT)); break; case 47: key.gate = squaredmeters_TO_mililiters(squaredcentimeters_TO_squaredmeters(MEASUREMENT)); break; case 48: key.gate = squaredmeters_TO_gallons(squaredcentimeters_TO_squaredmeters(MEASUREMENT)); break; case 49: key.gate = squaredmeters_TO_barrels(squaredcentimeters_TO_squaredmeters(MEASUREMENT)); break; case 410: key.gate = squaredmeters_TO_quarts(squaredcentimeters_TO_squaredmeters(MEASUREMENT)); break; case 411: key.gate = squaredmeters_TO_pints(squaredcentimeters_TO_squaredmeters(MEASUREMENT)); break; case 412: key.gate = squaredmeters_TO_flozs(squaredcentimeters_TO_squaredmeters(MEASUREMENT)); break; // Кубический миллиметр case 54: key.gate = squaredmeters_TO_squaredcentimeters(squaredmillimeters_TO_squaredmeters(MEASUREMENT)); break; case 53: key.gate = squaredmeters_TO_squareddecimeters(squaredmillimeters_TO_squaredmeters(MEASUREMENT)); break; case 52: key.gate = squaredmillimeters_TO_squaredmeters(MEASUREMENT); break; case 51: key.gate = squaredmeters_TO_squaredkilometers(squaredmillimeters_TO_squaredmeters(MEASUREMENT)); break; case 56: key.gate = squaredmeters_TO_liters(squaredmillimeters_TO_squaredmeters(MEASUREMENT)); break; case 57: key.gate = squaredmeters_TO_mililiters(squaredmillimeters_TO_squaredmeters(MEASUREMENT)); break; case 58: key.gate = squaredmeters_TO_gallons(squaredmillimeters_TO_squaredmeters(MEASUREMENT)); break; case 59: key.gate = squaredmeters_TO_barrels(squaredmillimeters_TO_squaredmeters(MEASUREMENT)); break; case 510: key.gate = squaredmeters_TO_quarts(squaredmillimeters_TO_squaredmeters(MEASUREMENT)); break; case 511: key.gate = squaredmeters_TO_pints(squaredmillimeters_TO_squaredmeters(MEASUREMENT)); break; case 512: key.gate = squaredmeters_TO_flozs(squaredmillimeters_TO_squaredmeters(MEASUREMENT)); break; // Литр case 65: key.gate = squaredmeters_TO_squaredmillimeters(liters_TO_squaredmeters(MEASUREMENT)); break; case 64: key.gate = squaredmeters_TO_squaredcentimeters(liters_TO_squaredmeters(MEASUREMENT)); break; case 63: key.gate = squaredmeters_TO_squareddecimeters(liters_TO_squaredmeters(MEASUREMENT)); break; case 62: key.gate = liters_TO_squaredmeters(MEASUREMENT); break; case 61: key.gate = squaredmeters_TO_squaredkilometers(liters_TO_squaredmeters(MEASUREMENT)); break; case 67: key.gate = squaredmeters_TO_mililiters(liters_TO_squaredmeters(MEASUREMENT)); break; case 68: key.gate = squaredmeters_TO_gallons(liters_TO_squaredmeters(MEASUREMENT)); break; case 69: key.gate = squaredmeters_TO_barrels(liters_TO_squaredmeters(MEASUREMENT)); break; case 610: key.gate = squaredmeters_TO_quarts(liters_TO_squaredmeters(MEASUREMENT)); break; case 611: key.gate = squaredmeters_TO_pints(liters_TO_squaredmeters(MEASUREMENT)); break; case 612: key.gate = squaredmeters_TO_flozs(liters_TO_squaredmeters(MEASUREMENT)); break; // Миллилитр case 76: key.gate = squaredmeters_TO_liters(mililiters_TO_squaredmeters(MEASUREMENT)); break; case 75: key.gate = squaredmeters_TO_squaredmillimeters(mililiters_TO_squaredmeters(MEASUREMENT)); break; case 74: key.gate = squaredmeters_TO_squaredcentimeters(mililiters_TO_squaredmeters(MEASUREMENT)); break; case 73: key.gate = squaredmeters_TO_squareddecimeters(mililiters_TO_squaredmeters(MEASUREMENT)); break; case 72: key.gate = mililiters_TO_squaredmeters(MEASUREMENT); break; case 71: key.gate = squaredmeters_TO_squaredkilometers(mililiters_TO_squaredmeters(MEASUREMENT)); break; case 78: key.gate = squaredmeters_TO_gallons(mililiters_TO_squaredmeters(MEASUREMENT)); break; case 79: key.gate = squaredmeters_TO_barrels(mililiters_TO_squaredmeters(MEASUREMENT)); break; case 710: key.gate = squaredmeters_TO_quarts(mililiters_TO_squaredmeters(MEASUREMENT)); break; case 711: key.gate = squaredmeters_TO_pints(mililiters_TO_squaredmeters(MEASUREMENT)); break; case 712: key.gate = squaredmeters_TO_flozs(mililiters_TO_squaredmeters(MEASUREMENT)); break; // Галлон case 87: key.gate = squaredmeters_TO_mililiters(gallons_TO_squaredmeters(MEASUREMENT)); break; case 86: key.gate = squaredmeters_TO_liters(gallons_TO_squaredmeters(MEASUREMENT)); break; case 85: key.gate = squaredmeters_TO_squaredmillimeters(gallons_TO_squaredmeters(MEASUREMENT)); break; case 84: key.gate = squaredmeters_TO_squaredcentimeters(gallons_TO_squaredmeters(MEASUREMENT)); break; case 83: key.gate = squaredmeters_TO_squareddecimeters(gallons_TO_squaredmeters(MEASUREMENT)); break; case 82: key.gate = gallons_TO_squaredmeters(MEASUREMENT); break; case 81: key.gate = squaredmeters_TO_squaredkilometers(gallons_TO_squaredmeters(MEASUREMENT)); break; case 89: key.gate = squaredmeters_TO_barrels(gallons_TO_squaredmeters(MEASUREMENT)); break; case 810: key.gate = squaredmeters_TO_quarts(gallons_TO_squaredmeters(MEASUREMENT)); break; case 811: key.gate = squaredmeters_TO_pints(gallons_TO_squaredmeters(MEASUREMENT)); break; case 812: key.gate = squaredmeters_TO_flozs(gallons_TO_squaredmeters(MEASUREMENT)); break; //Баррель case 98: key.gate = squaredmeters_TO_gallons(barrels_TO_squaredmeters(MEASUREMENT)); break; case 97: key.gate = squaredmeters_TO_mililiters(barrels_TO_squaredmeters(MEASUREMENT)); break; case 96: key.gate = squaredmeters_TO_liters(barrels_TO_squaredmeters(MEASUREMENT)); break; case 95: key.gate = squaredmeters_TO_squaredmillimeters(barrels_TO_squaredmeters(MEASUREMENT)); break; case 94: key.gate = squaredmeters_TO_squaredcentimeters(barrels_TO_squaredmeters(MEASUREMENT)); break; case 93: key.gate = squaredmeters_TO_squareddecimeters(barrels_TO_squaredmeters(MEASUREMENT)); break; case 92: key.gate = barrels_TO_squaredmeters(MEASUREMENT); break; case 91: key.gate = squaredmeters_TO_squaredkilometers(barrels_TO_squaredmeters(MEASUREMENT)); break; case 910: key.gate = squaredmeters_TO_quarts(barrels_TO_squaredmeters(MEASUREMENT)); break; case 911: key.gate = squaredmeters_TO_pints(barrels_TO_squaredmeters(MEASUREMENT)); break; case 912: key.gate = squaredmeters_TO_flozs(barrels_TO_squaredmeters(MEASUREMENT)); break; // Êâàðòà case 1009: key.gate = squaredmeters_TO_barrels(quarts_TO_squaredmeters(MEASUREMENT)); break; case 1008: key.gate = squaredmeters_TO_gallons(quarts_TO_squaredmeters(MEASUREMENT)); break; case 1007: key.gate = squaredmeters_TO_mililiters(quarts_TO_squaredmeters(MEASUREMENT)); break; case 1006: key.gate = squaredmeters_TO_liters(quarts_TO_squaredmeters(MEASUREMENT)); break; case 1005: key.gate = squaredmeters_TO_squaredmillimeters(quarts_TO_squaredmeters(MEASUREMENT)); break; case 1004: key.gate = squaredmeters_TO_squaredcentimeters(quarts_TO_squaredmeters(MEASUREMENT)); break; case 1003: key.gate = squaredmeters_TO_squareddecimeters(quarts_TO_squaredmeters(MEASUREMENT)); break; case 1002: key.gate = quarts_TO_squaredmeters(MEASUREMENT); break; case 1001: key.gate = squaredmeters_TO_squaredkilometers(quarts_TO_squaredmeters(MEASUREMENT)); break; case 1011: key.gate = squaredmeters_TO_pints(quarts_TO_squaredmeters(MEASUREMENT)); break; case 1012: key.gate = squaredmeters_TO_flozs(quarts_TO_squaredmeters(MEASUREMENT)); break; // Пинта case 1110: key.gate = squaredmeters_TO_quarts(pints_TO_squaredmeters(MEASUREMENT)); break; case 1109: key.gate = squaredmeters_TO_barrels(pints_TO_squaredmeters(MEASUREMENT)); break; case 1108: key.gate = squaredmeters_TO_gallons(pints_TO_squaredmeters(MEASUREMENT)); break; case 1107: key.gate = squaredmeters_TO_mililiters(pints_TO_squaredmeters(MEASUREMENT)); break; case 1106: key.gate = squaredmeters_TO_liters(pints_TO_squaredmeters(MEASUREMENT)); break; case 1105: key.gate = squaredmeters_TO_squaredmillimeters(pints_TO_squaredmeters(MEASUREMENT)); break; case 1104: key.gate = squaredmeters_TO_squaredcentimeters(pints_TO_squaredmeters(MEASUREMENT)); break; case 1103: key.gate = squaredmeters_TO_squareddecimeters(pints_TO_squaredmeters(MEASUREMENT)); break; case 1102: key.gate = pints_TO_squaredmeters(MEASUREMENT); break; case 1101: key.gate = squaredmeters_TO_squaredkilometers(pints_TO_squaredmeters(MEASUREMENT)); break; case 1112: key.gate = squaredmeters_TO_flozs(pints_TO_squaredmeters(MEASUREMENT)); break; // Жидкая унция case 1211: key.gate = squaredmeters_TO_pints(flozs_TO_squaredmeters(MEASUREMENT)); break; case 1210: key.gate = squaredmeters_TO_quarts(flozs_TO_squaredmeters(MEASUREMENT)); break; case 1209: key.gate = squaredmeters_TO_barrels(flozs_TO_squaredmeters(MEASUREMENT)); break; case 1208: key.gate = squaredmeters_TO_gallons(flozs_TO_squaredmeters(MEASUREMENT)); break; case 1207: key.gate = squaredmeters_TO_mililiters(flozs_TO_squaredmeters(MEASUREMENT)); break; case 1206: key.gate = squaredmeters_TO_liters(flozs_TO_squaredmeters(MEASUREMENT)); break; case 1205: key.gate = squaredmeters_TO_squaredmillimeters(flozs_TO_squaredmeters(MEASUREMENT)); break; case 1204: key.gate = squaredmeters_TO_squaredcentimeters(flozs_TO_squaredmeters(MEASUREMENT)); break; case 1203: key.gate = squaredmeters_TO_squareddecimeters(flozs_TO_squaredmeters(MEASUREMENT)); break; case 1202: key.gate = flozs_TO_squaredmeters(MEASUREMENT); break; case 1201: key.gate = squaredmeters_TO_squaredkilometers(flozs_TO_squaredmeters(MEASUREMENT)); break; default: printf("Не введено значение конвертируемой величины, " "или Вы пытаетесь конвертировать в величину, которую уже преобразуете\n"); break; } return key.gate; }
double selectionswitchMass(double MEASUREMENT) { FunctionsParameters key; printf("Выберите величину, из которой Вы хотите произвести конвертирование:\n" "1 - Граммы;\n" "2 - Килограммы;\n" "3 - Центнеры;\n" "4 - Тонны;\n" "5 - Караты;\n" "6 - Стоуны;\n" "7 - Фунты;\n" "8 - Унции;\n" "9 - Драхмы;\n" "10 - Граны;\n \t"); key.input_choice = parsing_id(key.in); while(key.input_choice > 10 || key.input_choice == 0) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин. \nПожалуйста, сделайте корректный выбор\n\t"); key.input_choice = parsing_id(key.in); } printf("Выберите величину, в которую Вы хотите конвертировать Вашу величину.\n" "Не нужно выбирать ту же величину, что Вы выбрали в качестве конвертируемой:\n" "1 - Граммы;\n" "2 - Килограммы;\n" "3 - Центнеры;\n" "4 - Тонны;\n" "5 - Караты;\n" "6 - Стоуны;\n" "7 - Фунты;\n" "8 - Унции;\n" "9 - Драхмы;\n" "10 - Граны;\n \t"); key.output_choice = parsing_id(key.out); while(key.output_choice == key.input_choice || key.output_choice > 10 || key.output_choice == 0 ) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин, \nили Вы пытаетесь конвертировать " "одну и ту же величину. \nПожалуйста, сделайте корректный выбор\n\t"); key.output_choice = parsing_id(key.out); } if(key.input_choice < 10 && key.output_choice < 10) key.id = key.input_choice * 10 + key.output_choice; if(key.input_choice == 10 && key.output_choice <= 10) key.id = key.input_choice * 100 + key.output_choice; if(key.input_choice < 10 && key.output_choice == 10) key.id = key.input_choice * 100 + key.output_choice; switch(key.id) { //Грамм case 12: key.gate = Grams_TO_Kilograms(MEASUREMENT); break; case 13: key.gate = Kilograms_TO_Quintals(Grams_TO_Kilograms(MEASUREMENT)); break; case 14: key.gate = Kilograms_TO_Tonnes(Grams_TO_Kilograms(MEASUREMENT)); break; case 15: key.gate = Kilograms_TO_Carats(Grams_TO_Kilograms(MEASUREMENT)); break; case 16: key.gate = Kilograms_TO_Stones(Grams_TO_Kilograms(MEASUREMENT)); break; case 17: key.gate = Kilograms_TO_Funts(Grams_TO_Kilograms(MEASUREMENT)); break; case 18: key.gate = Kilograms_TO_Ounces(Grams_TO_Kilograms(MEASUREMENT)); break; case 19: key.gate = Kilograms_TO_Drachmas(Grams_TO_Kilograms(MEASUREMENT)); break; case 110: key.gate = Kilograms_TO_Grains(Grams_TO_Kilograms(MEASUREMENT)); break; //Килограмм case 21: key.gate = Kilograms_TO_Grams(MEASUREMENT); break; case 23: key.gate = Kilograms_TO_Quintals(MEASUREMENT); break; case 24: key.gate = Kilograms_TO_Tonnes(MEASUREMENT); break; case 25: key.gate = Kilograms_TO_Carats(MEASUREMENT); break; case 26: key.gate = Kilograms_TO_Stones(MEASUREMENT); break; case 27: key.gate = Kilograms_TO_Funts(MEASUREMENT); break; case 28: key.gate = Kilograms_TO_Ounces(MEASUREMENT); break; case 29: key.gate = Kilograms_TO_Drachmas(MEASUREMENT); break; case 210: key.gate = Kilograms_TO_Grains(MEASUREMENT); break; //Центнер case 32: key.gate = Quintals_TO_Kilograms(MEASUREMENT); break; case 31: key.gate = Kilograms_TO_Grams(Quintals_TO_Kilograms(MEASUREMENT)); break; case 34: key.gate = Kilograms_TO_Tonnes(Quintals_TO_Kilograms(MEASUREMENT)); break; case 35: key.gate = Kilograms_TO_Carats(Quintals_TO_Kilograms(MEASUREMENT)); break; case 36: key.gate = Kilograms_TO_Stones(Quintals_TO_Kilograms(MEASUREMENT)); break; case 37: key.gate = Kilograms_TO_Funts(Quintals_TO_Kilograms(MEASUREMENT)); break; case 38: key.gate = Kilograms_TO_Ounces(Quintals_TO_Kilograms(MEASUREMENT)); break; case 39: key.gate = Kilograms_TO_Drachmas(Quintals_TO_Kilograms(MEASUREMENT)); break; case 310: key.gate = Kilograms_TO_Grains(Quintals_TO_Kilograms(MEASUREMENT)); break; //Тонна case 43: key.gate = Kilograms_TO_Quintals(Tonnes_TO_Kilograms(MEASUREMENT)); break; case 42: key.gate = Tonnes_TO_Kilograms(MEASUREMENT); break; case 41: key.gate = Kilograms_TO_Grams(Tonnes_TO_Kilograms(MEASUREMENT)); break; case 45: key.gate = Kilograms_TO_Carats(Tonnes_TO_Kilograms(MEASUREMENT)); break; case 46: key.gate = Kilograms_TO_Stones(Tonnes_TO_Kilograms(MEASUREMENT)); break; case 47: key.gate = Kilograms_TO_Funts(Tonnes_TO_Kilograms(MEASUREMENT)); break; case 48: key.gate = Kilograms_TO_Ounces(Tonnes_TO_Kilograms(MEASUREMENT)); break; case 49: key.gate = Kilograms_TO_Drachmas(Tonnes_TO_Kilograms(MEASUREMENT)); break; case 410: key.gate = Kilograms_TO_Grains(Tonnes_TO_Kilograms(MEASUREMENT)); break; //Карат case 54: key.gate = Kilograms_TO_Tonnes(Carats_TO_Kilograms(MEASUREMENT)); break; case 53: key.gate = Kilograms_TO_Quintals(Carats_TO_Kilograms(MEASUREMENT)); break; case 52: key.gate = Carats_TO_Kilograms(MEASUREMENT); break; case 51: key.gate = Kilograms_TO_Grams(Carats_TO_Kilograms(MEASUREMENT)); break; case 56: key.gate = Kilograms_TO_Stones(Carats_TO_Kilograms(MEASUREMENT)); break; case 57: key.gate = Kilograms_TO_Funts(Carats_TO_Kilograms(MEASUREMENT)); break; case 58: key.gate = Kilograms_TO_Ounces(Carats_TO_Kilograms(MEASUREMENT)); break; case 59: key.gate = Kilograms_TO_Drachmas(Carats_TO_Kilograms(MEASUREMENT)); break; case 510: key.gate = Kilograms_TO_Grains(Carats_TO_Kilograms(MEASUREMENT)); break; //Стоун case 65: key.gate = Kilograms_TO_Carats(Stones_TO_Kilograms(MEASUREMENT)); break; case 64: key.gate = Kilograms_TO_Tonnes(Stones_TO_Kilograms(MEASUREMENT)); break; case 63: key.gate = Kilograms_TO_Quintals(Stones_TO_Kilograms(MEASUREMENT)); break; case 62: key.gate = Stones_TO_Kilograms(MEASUREMENT); break; case 61: key.gate = Kilograms_TO_Grams(Stones_TO_Kilograms(MEASUREMENT)); break; case 67: key.gate = Kilograms_TO_Funts(Stones_TO_Kilograms(MEASUREMENT)); break; case 68: key.gate = Kilograms_TO_Ounces(Stones_TO_Kilograms(MEASUREMENT)); break; case 69: key.gate = Kilograms_TO_Drachmas(Stones_TO_Kilograms(MEASUREMENT)); break; case 610: key.gate = Kilograms_TO_Grains(Stones_TO_Kilograms(MEASUREMENT)); break; //Фунт case 76: key.gate = Kilograms_TO_Stones(Funts_TO_Kilograms(MEASUREMENT)); break; case 75: key.gate = Kilograms_TO_Carats(Funts_TO_Kilograms(MEASUREMENT)); break; case 74: key.gate = Kilograms_TO_Tonnes(Funts_TO_Kilograms(MEASUREMENT)); break; case 73: key.gate = Kilograms_TO_Quintals(Funts_TO_Kilograms(MEASUREMENT)); break; case 72: key.gate = Funts_TO_Kilograms(MEASUREMENT); break; case 71: key.gate = Kilograms_TO_Grams(Funts_TO_Kilograms(MEASUREMENT)); break; case 78: key.gate = Kilograms_TO_Ounces(Funts_TO_Kilograms(MEASUREMENT)); break; case 79: key.gate = Kilograms_TO_Drachmas(Funts_TO_Kilograms(MEASUREMENT)); break; case 710: key.gate = Kilograms_TO_Grains(Funts_TO_Kilograms(MEASUREMENT)); break; //Унция case 87: key.gate = Kilograms_TO_Funts(Ounces_TO_Kilograms(MEASUREMENT)); break; case 86: key.gate = Kilograms_TO_Stones(Ounces_TO_Kilograms(MEASUREMENT)); break; case 85: key.gate = Kilograms_TO_Carats(Ounces_TO_Kilograms(MEASUREMENT)); break; case 84: key.gate = Kilograms_TO_Tonnes(Ounces_TO_Kilograms(MEASUREMENT)); break; case 83: key.gate = Kilograms_TO_Quintals(Ounces_TO_Kilograms(MEASUREMENT)); break; case 82: key.gate = Ounces_TO_Kilograms(MEASUREMENT); break; case 81: key.gate = Kilograms_TO_Grams(Ounces_TO_Kilograms(MEASUREMENT)); break; case 89: key.gate = Kilograms_TO_Drachmas(Ounces_TO_Kilograms(MEASUREMENT)); break; case 810: key.gate = Kilograms_TO_Grains(Ounces_TO_Kilograms(MEASUREMENT)); break; //Драхма case 98: key.gate = Kilograms_TO_Ounces(Drachmas_TO_Kilograms(MEASUREMENT)); break; case 97: key.gate = Kilograms_TO_Funts(Drachmas_TO_Kilograms(MEASUREMENT)); break; case 96: key.gate = Kilograms_TO_Stones(Drachmas_TO_Kilograms(MEASUREMENT)); break; case 95: key.gate = Kilograms_TO_Carats(Drachmas_TO_Kilograms(MEASUREMENT)); break; case 94: key.gate = Kilograms_TO_Tonnes(Drachmas_TO_Kilograms(MEASUREMENT)); break; case 93: key.gate = Kilograms_TO_Quintals(Drachmas_TO_Kilograms(MEASUREMENT)); break; case 92: key.gate = Drachmas_TO_Kilograms(MEASUREMENT); break; case 91: key.gate = Kilograms_TO_Grams(Drachmas_TO_Kilograms(MEASUREMENT)); break; case 910: key.gate = Kilograms_TO_Grains(Drachmas_TO_Kilograms(MEASUREMENT)); break; //Гран case 1009: key.gate = Kilograms_TO_Drachmas(Grains_TO_Kilograms(MEASUREMENT)); break; case 1008: key.gate = Kilograms_TO_Ounces(Grains_TO_Kilograms(MEASUREMENT)); break; case 1007: key.gate = Kilograms_TO_Funts(Grains_TO_Kilograms(MEASUREMENT)); break; case 1006: key.gate = Kilograms_TO_Stones(Grains_TO_Kilograms(MEASUREMENT)); break; case 1005: key.gate = Kilograms_TO_Carats(Grains_TO_Kilograms(MEASUREMENT)); break; case 1004: key.gate = Kilograms_TO_Tonnes(Grains_TO_Kilograms(MEASUREMENT)); break; case 1003: key.gate = Kilograms_TO_Quintals(Grains_TO_Kilograms(MEASUREMENT)); break; case 1002: key.gate = Grains_TO_Kilograms(MEASUREMENT); break; case 1001: key.gate = Kilograms_TO_Grams(Grains_TO_Kilograms(MEASUREMENT)); break; default: printf("Не введено значение конвертируемой величины, " "или Вы пытаетесь конвертировать в величину, которую уже преобразуете\n"); break; } return key.gate; }
double selectionswitchArea(double MEASUREMENT) { FunctionsParameters key; printf("Выберите величину, из которой Вы хотите произвести конвертирование:\n" "1 - Квадратные метры;\n" "2 - Гектары;\n" "3 - Ары;\n" "4 - Квадратные километры;\n" "5 - Акры;\n" "6 - Квадратный сантиметр;\n" "7 - Квадратный дюйм;\n" "8 - Квадратный миллиметр;\n\t"); scanf("%s", key.in); key.input_choice = parsing_id(key.in); while(key.input_choice > 8 || key.input_choice == 0) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин. \nПожалуйста, сделайте корректный выбор\n\t"); scanf("%s", key.in); key.input_choice = parsing_id(key.in); } printf("Выберите величину, в которую Вы хотите конвертировать Вашу величину.\n" "Не нужно выбирать ту же величину, что Вы выбрали в качестве конвертируемой:\n" "1 - Квадратные метры;\n" "2 - Гектары;\n" "3 - Ары;\n" "4 - Квадратные километры;\n" "5 - Акры;\n" "6 - Квадратный сантиметр;\n" "7 - Квадратный дюйм;\n" "8 - Квадратный миллиметр;\n\t"); scanf("%s", key.out); key.output_choice = parsing_id(key.out); while(key.output_choice == key.input_choice || key.output_choice > 8 || key.output_choice == 0 ) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин, \nили Вы пытаетесь конвертировать " "одну и ту же величину. \nПожалуйста, сделайте корректный выбор\n\t"); scanf("%s", key.out); key.output_choice = parsing_id(key.out); } key.id = key.input_choice * 10 + key.output_choice; switch(key.id) { case 12: key.gate = SquareMeter2Hectare(MEASUREMENT); break; case 13: key.gate = SquareMeter2Ar(MEASUREMENT); break; case 14: key.gate = SquareMeter2SquarekMeter(MEASUREMENT); break; case 15: key.gate = SquareMeter2Acr(MEASUREMENT); break; case 16: key.gate = SquareMeter2SquaresMeter(MEASUREMENT); break; case 17: key.gate = SquareMeter2SquareInch(MEASUREMENT); break; case 18: key.gate = SquareMeter2SquaremMeter(MEASUREMENT); break; case 21: key.gate = Hectare2SquareMeter(MEASUREMENT); break; case 23: key.gate = SquareMeter2Ar(Hectare2SquareMeter(MEASUREMENT)); break; case 24: key.gate = SquareMeter2SquarekMeter(Hectare2SquareMeter(MEASUREMENT)); break; case 25: key.gate = SquareMeter2Acr(Hectare2SquareMeter(MEASUREMENT)); break; case 26: key.gate = SquareMeter2SquaresMeter(Hectare2SquareMeter(MEASUREMENT)); break; case 27: key.gate = SquareMeter2SquareInch(Hectare2SquareMeter(MEASUREMENT)); break; case 28: key.gate = SquareMeter2SquaremMeter(Hectare2SquareMeter(MEASUREMENT)); break; case 31: key.gate = Ar2SquareMeter(MEASUREMENT); break; case 32: key.gate = SquareMeter2Hectare(Ar2SquareMeter(MEASUREMENT)); break; case 34: key.gate = SquareMeter2SquarekMeter(Ar2SquareMeter(MEASUREMENT)); break; case 35: key.gate = SquareMeter2Acr(Ar2SquareMeter(MEASUREMENT)); break; case 36: key.gate = SquareMeter2SquaresMeter(Ar2SquareMeter(MEASUREMENT)); break; case 37: key.gate = SquareMeter2SquareInch(Ar2SquareMeter(MEASUREMENT)); break; case 38: key.gate = SquareMeter2SquaremMeter(Ar2SquareMeter(MEASUREMENT)); break; case 41: key.gate = SquarekMeter2SquareMeter(MEASUREMENT); break; case 42: key.gate = SquareMeter2Hectare(SquarekMeter2SquareMeter(MEASUREMENT)); break; case 43: key.gate = SquareMeter2Ar(SquarekMeter2SquareMeter(MEASUREMENT)); break; case 45: key.gate = SquareMeter2Acr(SquarekMeter2SquareMeter(MEASUREMENT)); break; case 46: key.gate = SquareMeter2SquaresMeter(SquarekMeter2SquareMeter(MEASUREMENT)); break; case 47: key.gate = SquareMeter2SquareInch(SquarekMeter2SquareMeter(MEASUREMENT)); break; case 48: key.gate = SquareMeter2SquaremMeter(SquarekMeter2SquareMeter(MEASUREMENT)); break; case 51: key.gate = Acr2SquareMeter(MEASUREMENT); break; case 52: key.gate = SquareMeter2Hectare(Acr2SquareMeter(MEASUREMENT)); break; case 53: key.gate = SquareMeter2Ar(Acr2SquareMeter(MEASUREMENT)); break; case 54: key.gate = SquareMeter2SquarekMeter(Acr2SquareMeter(MEASUREMENT)); break; case 56: key.gate = SquareMeter2SquaresMeter(Acr2SquareMeter(MEASUREMENT)); break; case 57: key.gate = SquareMeter2SquareInch(Acr2SquareMeter(MEASUREMENT)); break; case 58: key.gate = SquareMeter2SquaremMeter(Acr2SquareMeter(MEASUREMENT)); break; case 61: key.gate = SquaresMeter2SquareMeter(MEASUREMENT); break; case 62: key.gate = SquareMeter2Hectare(SquaresMeter2SquareMeter(MEASUREMENT)); break; case 63: key.gate = SquareMeter2Ar(SquaresMeter2SquareMeter(MEASUREMENT)); break; case 64: key.gate = SquareMeter2SquarekMeter(SquaresMeter2SquareMeter(MEASUREMENT)); break; case 65: key.gate = SquareMeter2Acr(SquaresMeter2SquareMeter(MEASUREMENT)); break; case 67: key.gate = SquareMeter2SquareInch(SquaresMeter2SquareMeter(MEASUREMENT)); break; case 68: key.gate = SquareMeter2SquaremMeter(SquaresMeter2SquareMeter(MEASUREMENT)); break; case 71: key.gate = SquareInch2SquareMeter(MEASUREMENT); break; case 72: key.gate = SquareMeter2Hectare(SquareInch2SquareMeter(MEASUREMENT)); break; case 73: key.gate = SquareMeter2Ar(SquareInch2SquareMeter(MEASUREMENT)); break; case 74: key.gate = SquareMeter2SquarekMeter(SquareInch2SquareMeter(MEASUREMENT)); break; case 75: key.gate = SquareMeter2Acr(SquareInch2SquareMeter(MEASUREMENT)); break; case 76: key.gate = SquareMeter2SquaresMeter(SquareInch2SquareMeter(MEASUREMENT)); break; case 78: key.gate = SquareMeter2SquaremMeter(SquareInch2SquareMeter(MEASUREMENT)); break; case 81: key.gate = SquaremMeter2SquareMeter(MEASUREMENT); break; case 82: key.gate = SquareMeter2Hectare(SquaremMeter2SquareMeter(MEASUREMENT)); break; case 83: key.gate = SquareMeter2Ar(SquaremMeter2SquareMeter(MEASUREMENT)); break; case 84: key.gate = SquareMeter2SquarekMeter(SquaremMeter2SquareMeter(MEASUREMENT)); break; case 85: key.gate = SquareMeter2Acr(SquaremMeter2SquareMeter(MEASUREMENT)); break; case 86: key.gate = SquareMeter2SquaresMeter(SquaremMeter2SquareMeter(MEASUREMENT)); break; case 87: key.gate = SquareMeter2SquareInch(SquaremMeter2SquareMeter(MEASUREMENT)); break; default: printf("Не введено значение конвертируемой величины, " "или Вы пытаетесь конвертировать в величину, которую уже преобразуете\n"); break; } return key.gate; }
int main() { setlocale(LC_ALL, "Russian"); MainParameters head; head.version = 1.72; head.like_to_continue = 'y'; printf("Unit Converter. Версия %.2f \n\n", head.version); while(head.like_to_continue == 'y') { printf("Выберите, с величиной какого рода Вы хотели бы работать: \n" "1 - Время;\t\t\t11 - Плотность; \n" "2 - Давление;\t\t\t12 - Радиоактивность; \n" "3 - Данные;\t\t\t13 - Сила; \n" "4 - Длина;\t\t\t14 - Сила тока; \n" "5 - Заряд;\t\t\t15 - Скорость; \n" "6 - Количество вещества;\t16 - Сопротивление; \n" "7 - Масса;\t\t\t17 - Температура; \n" "8 - Мощность;\t\t\t18 - Угол; \n" "9 - Объём;\t\t\t19 - Частота; \n" "10 - Площадь;\t\t\t20 - Энергия; \n\t"); scanf("%s", head.measurement_id); int f = parsing_id(head.measurement_id); while(f >= 21 || f <= 0) { printf("\nРод величины вами не выбран. Сделайте корректный выбор: \n\t"); scanf("%s", head.measurement_id); f = parsing_id(head.measurement_id); } switch(f) { case 1: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchTime(head.VOLUME); break; case 2: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchPression(head.VOLUME); break; case 3: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchData(head.VOLUME); break; case 4: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchLength(head.VOLUME); break; case 5: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchElectric_charge(head.VOLUME); break; case 6: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchQuantityOfSubstance(head.VOLUME); break; case 7: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchMass(head.VOLUME); break; case 8: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchPower(head.VOLUME); break; case 9: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchAmount(head.VOLUME); break; case 10: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchArea(head.VOLUME); break; case 11: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchDensity(head.VOLUME); break; case 12: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchRadiation(head.VOLUME); break; case 13: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchStrength(head.VOLUME); break; case 14: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchAmpere(head.VOLUME); break; case 15: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchSpeed(head.VOLUME); break; case 16: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchResistance(head.VOLUME); break; case 17: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchTemperature(head.VOLUME); break; case 18: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchAngle(head.VOLUME); break; case 19: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchFrequency(head.VOLUME); break; case 20: printf("Введите число, которое Вы хотели были перевести. \n" "В качестве знака-разделителя для вещественных чисел используйте символ '.'.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); while(head.VOLUME == -1.111){ fprintf(stderr, "Вы ввели не коректные данные.\n\t"); scanf("%s", head.MEASUREMENT); head.VOLUME = parsing(head.MEASUREMENT); } head.result = selectionswitchEnergy(head.VOLUME); break; default: fprintf(stderr, "Вы пытаетесь выбрать род величины, которого не существует. Программа будет завершена;"); break; } //printf("result =%lf \n", head.result); convert(head.result); printf("Вам нравится?\n"); printf("Если хотите продолжить введите 'y', для выхода введите 'q'\n\t"); scanf("%s", &head.like_to_continue); if(head.like_to_continue == 'q'){ exit(EXIT_SUCCESS); } printf("\n"); } //system("pause"); system ("read -p \"Press any key to continue ...\" -n 1"); exit(EXIT_SUCCESS); }
double selectionswitchAngle(double MEASUREMENT) { FunctionsParameters key; printf("Выберите величину, из которой Вы хотите произвести конвертирование:\n" "1 - Секунды;\n" "2 - Минуты;\n" "3 - Градусы;\n" "4 - Радианы;\n" "5 - Грады;\n" "6 - Секстанты;\n" "7 - Румбы;\n\t"); key.input_choice = parsing_id(key.in); while(key.input_choice >= 8 || key.input_choice == 0) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин. \nПожалуйста, сделайте корректный выбор\n\t"); key.input_choice = parsing_id(key.in); } printf("Выберите величину, в которую Вы хотите конвертировать Вашу величину.\n" "Не нужно выбирать ту же величину, что Вы выбрали в качестве конвертируемой:\n" "1 - Секунды;\n" "2 - Минуты;\n" "3 - Градусы\n" "4 - Радианы;\n" "5 - Грады;\n" "6 - Секстанты;\n" "7 - Румбы;\n\t"); key.output_choice = parsing_id(key.out); while(key.output_choice == key.input_choice || key.output_choice >= 8 || key.output_choice == 0 ) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин, \nили Вы пытаетесь конвертировать " "одну и ту же величину. \nПожалуйста, сделайте корректный выбор\n\t"); key.output_choice = parsing_id(key.out); } key.id = key.input_choice * 10 + key.output_choice; switch(key.id) { case 12: key.gate = Degree2Min(Sec2Degree(MEASUREMENT)); break; case 13: key.gate = Sec2Degree(MEASUREMENT); break; case 14: key.gate = Degree2Radian(Sec2Degree(MEASUREMENT)); break; case 15: key.gate = Degree2Grad(Sec2Degree(MEASUREMENT)); break; case 16: key.gate = Degree2Sextant(Sec2Degree(MEASUREMENT)); break; case 17: key.gate = Degree2Rumb(Sec2Degree(MEASUREMENT)); break; case 21: key.gate = Degree2Sec(Min2Degree(MEASUREMENT)); break; case 23: key.gate = Min2Degree(MEASUREMENT); break; case 24: key.gate = Degree2Radian(Min2Degree(MEASUREMENT)); break; case 25: key.gate = Degree2Grad(Min2Degree(MEASUREMENT)); break; case 26: key.gate = Degree2Sextant(Min2Degree(MEASUREMENT)); break; case 27: key.gate = Degree2Rumb(Min2Degree(MEASUREMENT)); break; case 31: key.gate = Degree2Sec(MEASUREMENT); break; case 32: key.gate = Degree2Min(MEASUREMENT); break; case 34: key.gate = Degree2Radian(MEASUREMENT); break; case 35: key.gate = Degree2Grad(MEASUREMENT); break; case 36: key.gate = Degree2Sextant(MEASUREMENT); break; case 37: key.gate = Degree2Rumb(MEASUREMENT); break; case 41: key.gate = Degree2Sec(Radian2Degree(MEASUREMENT)); break; case 42: key.gate = Degree2Min(Radian2Degree(MEASUREMENT)); break; case 43: key.gate = Radian2Degree(MEASUREMENT); break; case 45: key.gate = Degree2Grad(Radian2Degree(MEASUREMENT)); break; case 46: key.gate = Degree2Sextant(Radian2Degree(MEASUREMENT)); break; case 47: key.gate = Degree2Rumb(Radian2Degree(MEASUREMENT)); break; case 51: key.gate = Degree2Sec(Grad2Degree(MEASUREMENT)); break; case 52: key.gate = Degree2Min(Grad2Degree(MEASUREMENT)); break; case 53: key.gate = Grad2Degree(MEASUREMENT); break; case 54: key.gate = Degree2Radian(Grad2Degree(MEASUREMENT)); break; case 56: key.gate = Degree2Sextant(Grad2Degree(MEASUREMENT)); break; case 57: key.gate = Degree2Rumb(Grad2Degree(MEASUREMENT)); break; case 61: key.gate = Degree2Sec(Sextant2Degree(MEASUREMENT)); break; case 62: key.gate = Degree2Min(Sextant2Degree(MEASUREMENT)); break; case 63: key.gate = Sextant2Degree(MEASUREMENT); break; case 64: key.gate = Degree2Radian(Sextant2Degree(MEASUREMENT)); break; case 65: key.gate = Degree2Grad(Sextant2Degree(MEASUREMENT)); break; case 67: key.gate = Degree2Rumb(Sextant2Degree(MEASUREMENT)); break; case 71: key.gate = Degree2Sec(Rumb2Degree(MEASUREMENT)); break; case 72: key.gate = Degree2Min(Rumb2Degree(MEASUREMENT)); break; case 73: key.gate = Rumb2Degree(MEASUREMENT); break; case 74: key.gate = Degree2Radian(Rumb2Degree(MEASUREMENT)); break; case 75: key.gate = Degree2Grad(Rumb2Degree(MEASUREMENT)); break; case 76: key.gate = Degree2Sextant(Rumb2Degree(MEASUREMENT)); break; default: printf("Не введено значение конвертируемой величины, " "или Вы пытаетесь конвертировать в величину, которую уже преобразуете\n"); break; } return key.gate; }
double selectionswitchTime(double MEASUREMENT) { FunctionsParameters key; printf("Выберите величину, из которой Вы хотите произвести конвертирование:\n" " 1 - Наносекунды;\n" " 2 - Микросекунды;\n" " 3 - Миллисекунды;\n" " 4 - Секунды;\n" " 5 - Минуты;\n" " 6 - Часы;\n" " 7 - Сутки;\n" " 8 - Недели;\n" " 9 - Года;\n" " 10 - Века;\n \t"); scanf("%s", key.in); key.input_choice = parsing_id(key.in); while(key.input_choice > 10 || key.input_choice == 0) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин. \nПожалуйста, сделайте корректный выбор\n\t"); scanf("%s", key.in); key.input_choice = parsing_id(key.in); } printf("Выберите величину, в которую Вы хотите конвертировать Вашу величину.\n" "Не нужно выбирать ту же величину, что Вы выбрали в качестве конвертируемой:\n" " 1 - Наносекунды;\n" " 2 - Микросекунды;\n" " 3 - Миллисекунды;\n" " 4 - Секунды;\n" " 5 - Минуты;\n" " 6 - Часы;\n" " 7 - Сутки;\n" " 8 - Недели;\n" " 9 - Года;\n" " 10 - Века;\n \t"); scanf("%s", key.out); key.output_choice = parsing_id(key.out); while(key.output_choice == key.input_choice || key.output_choice > 10 || key.output_choice == 0 ) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин, \nили Вы пытаетесь конвертировать " "одну и ту же величину. \nПожалуйста, сделайте корректный выбор\n\t"); scanf("%s", key.out); key.output_choice = parsing_id(key.out); } key.id = key.input_choice * 100 + key.output_choice; //printf("ID равно %d", key.id); switch(key.id) { case 102: key.gate = min_to_mksec(nsec_to_min(MEASUREMENT)); break; case 103: key.gate = min_to_msec(nsec_to_min(MEASUREMENT)); break; case 104: key.gate = min_to_sec(nsec_to_min(MEASUREMENT)); break; case 105: key.gate = nsec_to_min(MEASUREMENT); break; case 106: key.gate = min_to_chas(nsec_to_min(MEASUREMENT)); break; case 107: key.gate = min_to_sut(nsec_to_min(MEASUREMENT)); break; case 108: key.gate = min_to_week(nsec_to_min(MEASUREMENT)); break; case 109: key.gate = min_to_year(nsec_to_min(MEASUREMENT)); break; case 110: key.gate = min_to_vek(nsec_to_min(MEASUREMENT)); break; case 201: key.gate = min_to_nsec(mksec_to_min(MEASUREMENT)); break; case 203: key.gate = min_to_msec(mksec_to_min(MEASUREMENT)); break; case 204: key.gate = min_to_sec(mksec_to_min(MEASUREMENT)); break; case 205: key.gate = mksec_to_min(MEASUREMENT); break; case 206: key.gate = min_to_chas(mksec_to_min(MEASUREMENT)); break; case 207: key.gate = min_to_sut(mksec_to_min(MEASUREMENT)); break; case 208: key.gate = min_to_week(mksec_to_min(MEASUREMENT)); break; case 209: key.gate = min_to_year(mksec_to_min(MEASUREMENT)); break; case 210: key.gate = min_to_vek(mksec_to_min(MEASUREMENT)); break; case 301: key.gate = min_to_nsec(msec_to_min(MEASUREMENT)); break; case 302: key.gate = min_to_mksec(msec_to_min(MEASUREMENT)); break; case 304: key.gate = min_to_sec(msec_to_min(MEASUREMENT)); break; case 305: key.gate = msec_to_min(MEASUREMENT); break; case 306: key.gate = min_to_chas(msec_to_min(MEASUREMENT)); break; case 307: key.gate = min_to_sut(msec_to_min(MEASUREMENT)); break; case 308: key.gate = min_to_week(msec_to_min(MEASUREMENT)); break; case 309: key.gate = min_to_year(msec_to_min(MEASUREMENT)); break; case 310: key.gate = min_to_vek(msec_to_min(MEASUREMENT)); break; case 401: key.gate = min_to_nsec(sec_to_min(MEASUREMENT)); break; case 402: key.gate = min_to_mksec(sec_to_min(MEASUREMENT)); break; case 403: key.gate = min_to_msec(sec_to_min(MEASUREMENT)); break; case 405: key.gate = sec_to_min(MEASUREMENT); break; case 406: key.gate = min_to_chas(sec_to_min(MEASUREMENT)); break; case 407: key.gate = min_to_sut(sec_to_min(MEASUREMENT)); break; case 408: key.gate = min_to_week(sec_to_min(MEASUREMENT)); break; case 409: key.gate = min_to_year(sec_to_min(MEASUREMENT)); break; case 410: key.gate = min_to_vek(sec_to_min(MEASUREMENT)); break; case 501: key.gate = min_to_nsec(MEASUREMENT); break; case 502: key.gate = min_to_mksec(MEASUREMENT); break; case 503: key.gate = min_to_msec(MEASUREMENT); break; case 504: key.gate = min_to_sec(MEASUREMENT); break; case 506: key.gate = min_to_chas(MEASUREMENT); break; case 507: key.gate = min_to_sut(MEASUREMENT); break; case 508: key.gate = min_to_week(MEASUREMENT); break; case 509: key.gate = min_to_year(MEASUREMENT); break; case 510: key.gate = min_to_vek(MEASUREMENT); break; case 601: key.gate = min_to_nsec(chas_to_min(MEASUREMENT)); break; case 602: key.gate = min_to_mksec(chas_to_min(MEASUREMENT)); break; case 603: key.gate = min_to_msec(chas_to_min(MEASUREMENT)); break; case 604: key.gate = min_to_sec(chas_to_min(MEASUREMENT)); break; case 605: key.gate = chas_to_min(MEASUREMENT); break; case 607: key.gate = min_to_sut(chas_to_min(MEASUREMENT)); break; case 608: key.gate = min_to_week(chas_to_min(MEASUREMENT)); break; case 609: key.gate = min_to_year(chas_to_min(MEASUREMENT)); break; case 610: key.gate = min_to_vek(chas_to_min(MEASUREMENT)); break; case 701: key.gate = min_to_nsec(sut_to_min(MEASUREMENT)); break; case 702: key.gate = min_to_mksec(sut_to_min(MEASUREMENT)); break; case 703: key.gate = min_to_msec(sut_to_min(MEASUREMENT)); break; case 704: key.gate = min_to_sec(sut_to_min(MEASUREMENT)); break; case 705: key.gate = sut_to_min(MEASUREMENT); break; case 706: key.gate = min_to_chas(sut_to_min(MEASUREMENT)); break; case 708: key.gate = min_to_week(sut_to_min(MEASUREMENT)); break; case 709: key.gate = min_to_year(sut_to_min(MEASUREMENT)); break; case 710: key.gate = min_to_vek(sut_to_min(MEASUREMENT)); break; case 801: key.gate = min_to_nsec(week_to_min(MEASUREMENT)); break; case 802: key.gate = min_to_mksec(week_to_min(MEASUREMENT)); break; case 803: key.gate = min_to_msec(week_to_min(MEASUREMENT)); break; case 804: key.gate = min_to_sec(week_to_min(MEASUREMENT)); break; case 805: key.gate = week_to_min(MEASUREMENT); break; case 806: key.gate = min_to_chas(week_to_min(MEASUREMENT)); break; case 807: key.gate = min_to_sut(week_to_min(MEASUREMENT)); break; case 809: key.gate = min_to_year(week_to_min(MEASUREMENT)); break; case 810: key.gate = min_to_vek(week_to_min(MEASUREMENT)); break; case 901: key.gate = min_to_nsec(year_to_min(MEASUREMENT)); break; case 902: key.gate = min_to_mksec(year_to_min(MEASUREMENT)); break; case 903: key.gate = min_to_msec(year_to_min(MEASUREMENT)); break; case 904: key.gate = min_to_sec(year_to_min(MEASUREMENT)); break; case 905: key.gate = year_to_min(MEASUREMENT); break; case 906: key.gate = min_to_chas(year_to_min(MEASUREMENT)); break; case 907: key.gate = min_to_sut(year_to_min(MEASUREMENT)); break; case 908: key.gate = min_to_week(year_to_min(MEASUREMENT)); break; case 910: key.gate = min_to_vek(year_to_min(MEASUREMENT)); break; case 1001: key.gate = min_to_nsec(vek_to_min(MEASUREMENT)); break; case 1002: key.gate = min_to_mksec(vek_to_min(MEASUREMENT)); break; case 1003: key.gate = min_to_msec(vek_to_min(MEASUREMENT)); break; case 1004: key.gate = min_to_sec(vek_to_min(MEASUREMENT)); break; case 1005: key.gate = vek_to_min(MEASUREMENT); break; case 1006: key.gate = min_to_chas(vek_to_min(MEASUREMENT)); break; case 1007: key.gate = min_to_sut(vek_to_min(MEASUREMENT)); break; case 1008: key.gate = min_to_week(vek_to_min(MEASUREMENT)); break; case 1009: key.gate = min_to_year(vek_to_min(MEASUREMENT)); break; default: printf("Не введено значение конвертируемой величины, " "или Вы пытаетесь конвертировать в величину, которую уже преобразуете\n"); break; } return key.gate; }
double selectionswitchResistance(double MEASUREMENT) { FunctionsParameters key; printf("Выберите величину, из которой Вы хотите произвести конвертирование:\n" "1 - Сименс;\n" "2 - Микроом;\n" "3 - Миллиом;\n" "4 - Ом = Вольт на ампер;\n\t"); scanf("%s", key.in); key.input_choice = parsing_id(key.in); while(key.input_choice >= 4 || key.input_choice == 0) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин. \nПожалуйста, сделайте корректный выбор\n\t"); scanf("%s", key.in); key.input_choice = parsing_id(key.in); } printf("Выберите величину, в которую Вы хотите конвертировать Вашу величину.\n" "Не нужно выбирать ту же величину, что Вы выбрали в качестве конвертируемой:\n" "1 - Сименс;\n" "2 - Микроом;\n" "3 - Миллиом;\n" "4 - Ом = Вольт на ампер;\n\t"); scanf("%s", key.out); key.output_choice = parsing_id(key.out); while(key.output_choice == key.input_choice || key.input_choice >= 5 || key.input_choice == 0 ) { fprintf(stderr, "\nВы выбрали величину, которой нет в списке доступных величин, \nили Вы пытаетесь конвертировать " "одну и ту же величину. \nПожалуйста, сделайте корректный выбор\n\t"); scanf("%s", key.out); key.output_choice = parsing_id(key.out); } key.id = key.input_choice * 10 + key.output_choice; switch(key.id) { case 12: key.gate = OmTOuOm(SimensTOOm(MEASUREMENT)); break; case 13: key.gate = OmTOmOm(SimensTOOm(MEASUREMENT)); break; case 14: key.gate = SimensTOOm(MEASUREMENT); break; case 21: key.gate = OmTOSimens(uOmTOOm(MEASUREMENT)); break; case 23: key.gate = OmTOmOm(uOmTOOm(MEASUREMENT)); break; case 24: key.gate = uOmTOOm(MEASUREMENT); break; case 31: key.gate = OmTOSimens(mOmTOOm(MEASUREMENT)); break; case 32: key.gate = OmTOuOm(mOmTOOm(MEASUREMENT)); break; case 34: key.gate = mOmTOOm(MEASUREMENT); break; case 41: key.gate = OmTOSimens(MEASUREMENT); break; case 42: key.gate = OmTOuOm(MEASUREMENT); break; case 43: key.gate = OmTOmOm(MEASUREMENT); break; } return key.gate; }