Für Vorlesungen, bitte die Webseite verwenden. https://flavigny.de/lecture
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

95 рядки
1.9KB

  1. #include<iostream>
  2. #include<string>
  3. #include<math.h>
  4. #include<stdio.h>
  5. #include<stdlib.h>
  6. // Die cond Funktion ist ein Makro
  7. #define cond(a,b,c) ( (a) ? (b) : (c) )
  8. // Drucke das Argument und gebe es zurueck
  9. template<typename T>
  10. T print (T x)
  11. {
  12. std::cout.precision(16);
  13. std::cout << x << std::endl;
  14. return x;
  15. }
  16. // Drucke Argument 1 und gebe das letzte Argument zurueck
  17. template<typename T1, typename T2>
  18. T2 print (T1 x1, T2 x2)
  19. {
  20. std::cout.precision(16);
  21. std::cout << x1 << std::endl;
  22. return x2;
  23. }
  24. // Drucke Argumente 1-2 und gebe das letzte Argument zurueck
  25. template<typename T1, typename T2, typename T3>
  26. T3 print (T1 x1, T2 x2, T3 x3)
  27. {
  28. std::cout.precision(16);
  29. std::cout << x1 << " " << x2 << std::endl;
  30. return x3;
  31. }
  32. // Drucke Argumente 1-3 und gebe das letzte Argument zurueck
  33. template<typename T1, typename T2, typename T3, typename T4>
  34. T4 print (T1 x1, T2 x2, T3 x3, T4 x4)
  35. {
  36. std::cout.precision(16);
  37. std::cout << x1 << " " << x2 << " " << x3 << std::endl;
  38. return x4;
  39. }
  40. // gebe einfach Null zurueck. Vorsicht: Koennte bei Optimierung dazu
  41. // fuehren, dass das Argument gar nicht berechnet wird.
  42. template<typename T>
  43. int dump (T x)
  44. {
  45. return 0;
  46. }
  47. // Gebe eine int Zahl ein und liefere diese als Ergebnis
  48. int enter_int ()
  49. {
  50. int x;
  51. std::cin >> x;
  52. return x;
  53. }
  54. // Gebe eine int Zahl ein und liefere diese als Ergebnis
  55. int enter_int (std::string s)
  56. {
  57. std::cout << s;
  58. int x;
  59. std::cin >> x;
  60. return x;
  61. }
  62. // Lese Argument i als int-Zahl ein
  63. int readarg_int (int argc, char** argv, int i)
  64. {
  65. if (argc<i+1) {
  66. std::cout << "Kann Argument " << i << " nicht lesen: zuwenig Argumente" << std::endl;
  67. exit(0);
  68. }
  69. int x;
  70. sscanf(argv[i],"%d",&x);
  71. return x;
  72. }
  73. // Lese Argument i als double-Zahl ein
  74. double readarg_double (int argc, char** argv, int i)
  75. {
  76. if (argc<i+1) {
  77. std::cout << "Kann Argument " << i << " nicht lesen: zuwenig Argumente" << std::endl;
  78. exit(0);
  79. }
  80. double x;
  81. sscanf(argv[i],"%lg",&x);
  82. return x;
  83. }