Advertisement
hocikto19

3. cviko ZPrPr2

Mar 4th, 2014
464
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.96 KB | None | 0 0
  1. //1.priklad
  2. #include <stdio.h>
  3.  
  4. void nacitaj(double *a, double *b);
  5. double obsah(double a, double b);
  6. double obvod(double a, double b);
  7.  
  8. int main(){
  9.     double a, b, (*p_fn)();
  10.     char c;
  11.     nacitaj(&a, &b);
  12.     while (getchar() != '\n');
  13.     if ((c = getchar()) == 's')
  14.         p_fn = obsah;
  15.     else if (c == 'o')
  16.         p_fn = obvod;
  17.     else{
  18.         printf("Neplatna volba\n");
  19.         return 1;
  20.     }
  21.     printf("%g\n", (*p_fn)(a, b));
  22.     return 0;
  23. }
  24.  
  25. void nacitaj(double *a, double *b){
  26.     scanf("%lf %lf", a, b);
  27. }
  28.  
  29. double obsah(double a, double b){
  30.     return (a*b);
  31. }
  32.  
  33. double obvod(double a, double b){
  34.     return (2 * a + 2 * b);
  35. }
  36.  
  37. //2.priklad
  38. #include <stdio.h>
  39. #define NULL 0
  40.  
  41. int cislica(char c);
  42. int male_pismeno(char c);
  43. int biely(char c);
  44. int velke_pismeno(char c);
  45. int zisti(FILE *fr, int(*p_fn)());
  46. void otvor(void **p_fr);
  47.  
  48. int main(){
  49.     int n, i, (*p_fn)();
  50.     char volba;
  51.     FILE *fr=NULL;
  52.     otvor(&fr);
  53.     if (fr == NULL)
  54.         return 1;
  55.     scanf("%d", &n);
  56.     for (i = 0; i < n; i++){
  57.         scanf("\n%c", &volba);
  58.         switch (volba){
  59.             case 'b': p_fn = biely; break;
  60.             case 'v': p_fn = velke_pismeno; break;
  61.             case 'm': p_fn = male_pismeno; break;
  62.             case 'c': p_fn = cislica; break;
  63.             default:
  64.                 printf("Neznama volba\n");
  65.                 continue;
  66.         }
  67.         printf("%d\n", zisti(fr, (*p_fn)));
  68.     }
  69.     if (fclose(fr) == EOF){
  70.         printf("Subor sa nepodarilo zatvorit\n");
  71.         return 1;
  72.     }
  73.     return 0;
  74. }
  75.  
  76. void otvor(void **p_fr){
  77.     *p_fr = fopen("ZNAKY.TXT", "r");
  78. }
  79.  
  80. int zisti(FILE *fr, int(*p_fn)()){
  81.     int pocitadlo = 0;
  82.     char c;
  83.     while ((c = getc(fr)) != EOF){
  84.         pocitadlo += (*p_fn)(c);
  85.     }
  86.     rewind(fr);
  87.     return pocitadlo;
  88. }
  89.  
  90. int cislica(char c){
  91.     if (c >= '0' && c <= '9')
  92.         return 1;
  93.     return 0;
  94. }
  95.  
  96. int male_pismeno(char c){
  97.     if (c >= 'a' && c <= 'z')
  98.         return 1;
  99.     return 0;
  100. }
  101.  
  102. int biely(char c){
  103.     if (c == '\n' || c == '\t' || c == ' ')
  104.         return 1;
  105.     return 0;
  106. }
  107.  
  108. int velke_pismeno(char c){
  109.     if (c >= 'A' && c <= 'Z')
  110.         return 1;
  111.     return 0;
  112. }
  113.  
  114. //3.priklad
  115. #include <stdio.h>
  116.  
  117. int main(){
  118.     char *p_str;
  119.     int i, n;
  120.     scanf("%d\n", &n);
  121.     p_str = (char*)malloc(n*sizeof(char));
  122.     for (i = 0; i < n; i++)
  123.         *(p_str + i) = getchar();
  124.     for (--n; n >= 0; n--)
  125.         putchar(*(p_str + n));
  126.     putchar('\n');
  127.     return 0;
  128. }
  129.  
  130. //4.priklad
  131. #include <stdio.h>
  132.  
  133. int scitaj();
  134. int odcitaj();
  135. int nasob();
  136. int del();
  137.  
  138. int main(){
  139.     int(*p_fn)();
  140.     char volba;
  141.     while ((volba = getchar()) != 'e'){
  142.         while (getchar() != '\n');
  143.         switch (volba){
  144.         case 's': p_fn = scitaj; break;
  145.         case 'o': p_fn = odcitaj; break;
  146.         case 'n': p_fn = nasob; break;
  147.         case 'd': p_fn = del; break;
  148.         default:
  149.             printf("Operacia nie je podporovana\n");
  150.             continue;
  151.         }
  152.         printf("%d\n", (*p_fn)());
  153.         while (getchar() != '\n');
  154.     }
  155.     return 0;
  156. }
  157.  
  158. int scitaj(){
  159.     int a, b;
  160.     scanf("%d %d", &a, &b);
  161.     return a + b;
  162. }
  163.  
  164. int odcitaj(){
  165.     int a, b;
  166.     scanf("%d %d", &a, &b);
  167.     return a - b;
  168. }
  169.  
  170. int nasob(){
  171.     int a, b;
  172.     scanf("%d %d", &a, &b);
  173.     return a * b;
  174. }
  175.  
  176. int del(){
  177.     int a, b;
  178.     scanf("%d %d", &a, &b);
  179.     return a / b;
  180. }
  181.  
  182. //5.priklad
  183. #include <stdio.h>
  184.  
  185. int main(){
  186.     int *a, *b, c;
  187.     a = (int*)malloc(sizeof(int));
  188.     b = (int*)malloc(sizeof(int));
  189.     scanf("%d %d %d", a, b, &c);
  190.     printf("%d + %d + %d = %d\n", *a, *b, c, (*a) + (*b) + c);
  191.     return 0;
  192. }
  193.  
  194. //6.priklad
  195. #include <stdio.h>
  196. #include <math.h>
  197.  
  198. #define STEP 0.2
  199. #define PREC 0.01
  200. #define PRESNOST 0.000001
  201.  
  202. double f1(double x);
  203. double f2(double x);
  204. double deriv(double(*p_fn)(), double x);
  205.  
  206. int main(){
  207.     double r1, r2, (*p_f1)(), (*p_f2)();
  208.     p_f1 = f1;
  209.     p_f2 = f2;
  210.     scanf("%lf %lf", &r1, &r2);
  211.     printf("x f1(x) f1'(x) f2(x) f2'(x)\n");
  212.     while (r1 <= r2 + PRESNOST){
  213.         printf("%.2lf %.2lf %.2lf %.2lf %.2lf\n", r1, f1(r1), deriv((*p_f1), r1), f2(r1), deriv((*p_f2), r1));
  214.         r1 += STEP;
  215.     }
  216.     return 0;
  217. }
  218.  
  219. double f1(double x){
  220.     return (exp(x) / (fabs(x) + 1));
  221. }
  222.  
  223. double f2(double x){
  224.     return (x * sin(x));
  225. }
  226.  
  227. double deriv(double(*p_fn)(), double x){
  228.     return ((*p_fn)(x + PREC) - (*p_fn)(x))/PREC;
  229. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement