Advertisement
Guest User

8,1 check comment

a guest
Dec 11th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.11 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include "stdlib.h"
  3. #include "stdio.h"
  4. #include "conio.h"
  5. #include "math.h"
  6. #include "string.h"
  7. #include "locale.h"
  8. #include "windows.h"
  9. #include "time.h"
  10.  
  11. float check(float fdiap, int bdiap);
  12. float resistance_detect(float first, float second, int type);
  13.  
  14. int main()
  15. {
  16.     float r1 //змінна для опору 1-го резистора
  17.         , r2 //змінна для опору 2 - го резистора  
  18.         , res; //змінна результуючого опору
  19.     int type; //змінна тиму з'єднання
  20.  
  21.     setlocale(LC_ALL, "RUS");
  22.     SetConsoleCP(1251);
  23.     SetConsoleOutputCP(1251);
  24.  
  25.     printf("Введіть опір першого резисору : \n");
  26.     r1 = check(0.00000000001, pow((3.4), 38)); //приймаємо значення 1-го резстору
  27.     printf("Введіть опір другого резисору : \n");
  28.     r2 = check(0.00000000001, pow((3.4), 38)); //приймаємо значення 2-го резистору
  29.     printf("Введіь тип з'єднання резисорів (тільки число) \n 1.Послідовно \n 2.Паралельно \n");
  30.     type = check(1, 2); //приймаєсо значення типу з'єднання
  31.     res = resistance_detect(r1, r2, type); //викликаємо функцію
  32.     printf("Сума опорів при обраному з'єднанні %.2f Ом \n ", res); //виводимо результат
  33.     system("pause");
  34.     return 0;
  35. }
  36.  
  37. //Функція перевірки введених даних
  38. float check(float fdiap //передній край необхідного діапазону значень
  39.           , float bdiap)//кінець діапазону
  40. {
  41.     char c[255]; float check;
  42.     do {
  43.         check = 0;
  44.         fgets(c, 255, stdin);
  45.         for (int i = 0; c[i] != '\n'; i++) {        //пошук у рядку зайвих символів
  46.             if ((c[i]<'0' || c[i]>'9') && c[i] != ',') {
  47.                 printf("Ви ввели помилкове значення, спробуйте ще раз\n");
  48.                 check++;
  49.                 break;
  50.             }
  51.         }
  52.         if ((atof(c) < fdiap) && (atof(c) > bdiap)) {       //перевірка на входження введеного значення в діапазон
  53.             printf("Ви ввели помилкове значення, спробуйте ще раз\n");
  54.             continue;
  55.         }
  56.     } while (check != 0);
  57.     return atof(c);
  58. }
  59.  
  60. //Функція що рахує опір двух резисторів
  61. float resistance_detect(float first //опір першого резистора
  62.                       , float second //опір другого резистора
  63.                       , int type) //тип з'єднання
  64. {
  65.     float main_r;
  66.     if (type == 1) //визначення типу з'єднання
  67.     {
  68.         main_r = first + second; //підрахунок суми за умови послідовного з'єднання
  69.         return main_r;  //повернення результату
  70.     }
  71.     else
  72.     {
  73.         main_r = ((first*second) / (first + second));   //підрахунок суми за умови паралельного з'єднання
  74.         return main_r; //повернення результату
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement