Как разделить программу на 2 файла? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дана программа простой калькулятор. Нужно разделить ее на 2 файла. То есть операции "+ - * /" должны быть в другом файле. Вот как это можно реализовать?(В С я новичок) Вот сам исходный код
#include<stdio.h>
#include<math.h>
 
int main()
{
  int x,y,ans,i;
  int choice;
  float div;
  char loop;
  ans=0;

  do
  {
      printf("\n prodolzhit? (Y/N) : ");
      scanf("%s",&loop);
 
      if (loop=='y' || loop=='Y')/*Если пользователь вводит "y" или "Y"*/
      {

      printf("\n Vvedite 1 chislo: ");
      scanf("%d",&x);
 
     printf("\n Vvedite 2 chislo: ");
     scanf("%d",&y);

     printf("\n Viberite operaciu ");
     printf("\n -------------------------------------- ");
 
     printf("\n 1. '+' ");
     printf("\n 2. '-' ");
     printf("\n 3. '*' ");
     printf("\n 4. '/' ");
 
     printf("\n Vash vibor : ");
     scanf("%d",&choice);
 
  switch(choice)
  {
     case 1 :
     {
       ans = x+y;
       printf("\n result = %d",ans);
       break;
     }
     case 2 :
     {
          ans = x-y;
          printf("\n result = %d", ans);
          break;
     }
     case 3 :
     {
          ans = x*y;
          printf("\n result = %d", ans);
          break;
     }
     case 4:
     {
          div = x/y;
          printf("\n result = %.2f", div);
          break;
     }
   default:
       printf("\n\n zapresheno!");
       break;
   }
  }
  else
      printf("\n conec");
      
 }while(loop=='y' || loop=='Y');  
}

Решение задачи: «Как разделить программу на 2 файла?»

textual
Листинг программы
#include<stdio.h>
#include<math.h>
double operation(int x,int y,int choice)
 {
  double ans=0;
   switch(choice)
   {
     case 1 :
           ans = x+y;
           break;
     case 2 :
           ans = x-y;
           break;
     case 3 :
           ans = x*y;
           break;
     case 4:
           ans = (double)x/y;
           break;
     default:
         ;
   }
   
   return ans;
 }

Объяснение кода листинга программы

  1. В данном коде функция operation выполняет арифметические операции над числами.
  2. При вызове функции operation передаются три аргумента: x, y, choice.
  3. В зависимости от значения переменной choice выполняется одна из пяти операций: сложение, вычитание, умножение, деление или ничего не происходит (возможно, это лишняя ветвь в switch-case операторе).
  4. Результат операции сохраняется в переменной ans.
  5. Возвращаемое значение функции — это ans.
  6. В случае, если значение choice не попадает ни под один из пяти вариантов в switch-case операторе, ничего не происходит (возможно, это лишняя ветвь в switch-case операторе).
  7. Прервать выполнение программы или выдать сообщение об ошибке при неправильном вводе не предусмотрено (возможно, это намеренное упрощение).
  8. При делении на ноль не происходит ошибки или исключения (возможно, это намеренное упрощение).
  9. В данном коде не используются массивы и динамическое выделение памяти.
  10. Данный код не содержит компонентов ввода-вывода, помимо функции printf.
  11. Данный код не обрабатывает исключительные ситуации, помимо возможного деления на ноль.
  12. Данный код не содержит вложенных функций.
  13. Данный код не содержит комментариев.
  14. В данном коде используется тип данных double для переменной ans, что позволяет ей хранить дробные числа с плавающей точкой.
  15. В данном коде используется оператор break для выхода из switch-case оператора.
  16. В данном коде используется оператор return для возврата значения из функции.
  17. В данном коде используется оператор default для обработки непредвиденных значений переменной choice.
  18. В данном коде используется оператор ; для завершения выражения.
  19. В данном коде используется оператор * для приведения типа данных x к типу double.
  20. В данном коде используется оператор / для деления x на y.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы