Subversion Repositories svnkaklik

Rev

Rev 287 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log

Rev 287 Rev 313
Line 3... Line 3...
3
/////////////////////////////////////////////////////////////////
3
/////////////////////////////////////////////////////////////////
4
 
4
 
5
#include <stdlib.h>
5
#include <stdlib.h>
6
#include <stdio.h>
6
#include <stdio.h>
7
 
7
 
8
//#define TRUE 1
8
#define TRUE 1
9
//#define FALSE 0
9
#define FALSE 0
10
 
10
 
-
 
11
int rnd (int max)   // generuje nahodna cela cisla od 0 do zadane hodnoty max.
-
 
12
{
-
 
13
  return ( (int) (max * (rand()/(RAND_MAX+1.0))));
-
 
14
}
11
 
15
 
-
 
16
void init_rnd(void)  // inicializuje generator nahodnych cisel
-
 
17
{
-
 
18
  time_t t;
-
 
19
  unsigned int seed;
-
 
20
  time(&t);
-
 
21
  seed=(unsigned int) t;
-
 
22
  srand(seed);
-
 
23
}
-
 
24
 
-
 
25
 
12
int napln_pole(int *adresa,int velikost)
26
int napln_pole(int *adresa,int velikost)  // naplni pole hodnotami
13
{
27
{
14
int i;
28
int i;
15
  for(i=0;i<velikost;i++) adresa[i]=i;
29
  for(i=0;i<velikost;i++) adresa[i]=rnd('Z'-'A'+1)+'A';
16
}
30
}
17
 
31
 
18
int vypis_pole(int *adresa,int velikost,int strana)
32
int vypis_pole(int *adresa,int velikost,int strana)
19
{
33
{
20
int i;
34
int i;
21
  if(strana) for(i=0; i<velikost;i++) printf("%d   ",*(adresa+i));
35
  if(strana) for(i=0; i<velikost;i++) printf("%c",*(adresa+i));
22
  else  for(i=velikost;i>=0;i--) printf("%d   ",*(adresa+i));
36
  else  for(i=velikost;i>=0;i--) printf("%c",*(adresa+i));
-
 
37
}
-
 
38
 
-
 
39
int setrid_pole(int *adresa,int velikost)
-
 
40
{
-
 
41
int pismeno,vetsipismeno;
-
 
42
int a,b;
-
 
43
 
-
 
44
  for(a=0; a<velikost;a++)
-
 
45
  {
-
 
46
    pismeno = *(adresa+a);
-
 
47
 
-
 
48
    for(b=a; b<velikost;b++)
-
 
49
    {
-
 
50
      if (*(adresa+b) > pismeno)
-
 
51
      {
-
 
52
        vetsipismeno = *(adresa+b);
-
 
53
        break;
-
 
54
      }
-
 
55
    }
-
 
56
    adresa[a] = vetsipismeno;
-
 
57
    adresa[b] = pismeno;
-
 
58
  }
23
}
59
}
24
 
60
 
25
int main()
61
int main()
26
{
62
{
27
int *pole;
63
int *pole;
28
int velikost;
64
int velikost;
29
 
65
 
-
 
66
  init_rnd();  
-
 
67
 
30
  printf("Zadejte velikost pole:");
68
  printf("Zadejte velikost pole:");
31
  scanf("%d", &velikost);
69
  scanf("%d", &velikost);
32
 
70
 
33
  pole=(int*)malloc( sizeof(int) * velikost);
71
  pole=(int*)malloc( sizeof(int) * velikost);
34
  if (NULL==pole) printf("pamet nebyla pridelena");
72
  if (NULL==pole) printf("pamet nebyla pridelena");
35
 
73
 
36
  napln_pole(pole,velikost);
74
  napln_pole(pole,velikost);
37
  vypis_pole(pole,velikost,TRUE);
75
  vypis_pole(pole,velikost,TRUE);
-
 
76
  setrid_pole(pole,velikost);
38
  vypis_pole(pole,velikost,FALSE);
77
  vypis_pole(pole,velikost,FALSE);
39
  
78
  
40
  free (pole);
79
  free (pole);
41
}
80
}