abC primeri - izzivi/graf.c

graf.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <stdio.h>
#include <math.h>

#define pi 3.14
#define e  2.718

float x1,x2,y1,y2;
int   funkcija;

void preberiParametre() {
  printf("Vpisi x1: ");scanf("%f",&x1);
  printf("Vpisi x2: ");scanf("%f",&x2);
  printf("Vpisi y1: ");scanf("%f",&y1);
  printf("Vpisi y2: ");scanf("%f",&y2);

  printf("0 .. sin, 1 ... cos, 2 ... tan, 3 ... e^x");
  scanf("%d", &funkcija);
}

main() {
  int i, j;
  float x, y;

  preberiParametre();

  // deklaracija in inicializacija tabele 
  char zaslon[80][25];
  for(i=0; i<80; i++) 
    for(j=0; j<25; j++) 
      zaslon[i][j]=' ';

  // koordinatni sistem
  for(i=0;i<80;i++) zaslon[i][12]='-';
  for(j=0;j<25;j++) zaslon[40][j]='|';

  // izracun funkcije
  for(i=0; i<80; i++) {
    x = (x2-x1)/79 * i + x1;

    switch (funkcija) {
        case 0:  y = sin(x); break;
        case 1:  y = cos(x); break;
        case 2:  y = tan(x); break;
        case 3:  y = pow(e, x); break;
        default: y = x;
    }

    j=24*(y-y1)/(y2-y1);
    if ((j>=0) && (j <25)) 
      zaslon[i][j]='*';
  }

  // izpis rezultata
  for(j=0; j<25; j++) {
    for(i=0; i<80; i++) 
      printf("%c", zaslon[i][j]);
    printf("\n");
  } 
}

    Nazaj...