Guest User

Untitled

a guest
May 26th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.17 KB | None | 0 0
  1. /*LINKY*/
  2.  
  3.  
  4. //main.c
  5. #include <stdio.h>
  6. #include "linka.h"
  7. #include "cestujici.h"
  8.  
  9. int main(int argc, char* argv[])
  10. {
  11. tZastavka *linka1 = NULL;
  12. tZastavka *linka2 = NULL;
  13. tZastavka *pomLinka = NULL;
  14. int volba,konec=1,pom;
  15. char nazev[20];
  16. FILE *f = NULL;
  17. tCestujici *cestujici = NULL;
  18. printf("\n");
  19. printf("\t |0| - Konec programu\n\n");
  20. printf("\t |1| - Nacti linky\n");
  21. printf("\t |2| - Vypis Zastavky\n");
  22. printf("\t |3| - Najdi Zastavku\n");
  23. printf("\t |4| - Vloz prestup\n");
  24. printf("\t |5| - Spocitej cestu\n");
  25. printf("\t |6| - Zrus linku\n\n");
  26. do{
  27. printf("\t Zadejte vasi volbu: ");
  28. scanf("%d",&volba);
  29. switch (volba){
  30. case 0:
  31. konec=0;
  32. break;
  33. case 1:
  34. f = fopen("linka1.txt","r");
  35. linka1 = NactiZastavkyDoLinky(f);
  36. fclose(f);
  37. f = fopen("linka2.txt","r");
  38. linka2 = NactiZastavkyDoLinky(f);
  39. fclose(f);
  40. printf("\n");
  41. printf("\t NACTENI PROBEHLO BEZ PROBLEMU\n\n");
  42. break;
  43. case 2:
  44. pom=0;
  45. printf("\n");
  46. printf("\t Jakou linku pozadujte vypsat? (1,2): ");
  47. scanf("%d",&pom);
  48.  
  49. if(pom==1){
  50. if(linka1!=NULL){
  51. VypisZastavky(linka1);
  52. }else {
  53. printf("\n");
  54. printf("\t NELZE VYPSAT\n");
  55. }
  56. }else if(pom==2){
  57. if(linka2!=NULL){
  58. VypisZastavky(linka2);
  59.  
  60. }else {
  61. printf("\n");
  62. printf("\t NELZE VYPSAT\n");
  63. }
  64. }else{
  65. printf("\n");
  66. printf("\t ZADALI JSTE SPATNE!!\n");
  67. }
  68. break;
  69. case 3:
  70. pom=0;
  71. printf("\n");
  72. printf("\t Na jake lince potrebujete najit zastavku ? (1,2): ");
  73. scanf("%d",&pom);
  74. printf("\t Jakou zastavku pozadujete najit na lince %d?: ",pom);
  75. scanf("%s",nazev);
  76. if(pom==1){
  77. pomLinka = NajdiZastavku(linka1,nazev);
  78. }else if(pom==2){
  79. pomLinka = NajdiZastavku(linka2,nazev);
  80. }else{
  81. printf("\n");
  82. printf("\t ZADALI JSTE SPATNE!!\n");
  83. }
  84. if(pomLinka!=NULL){
  85. printf("\n");
  86. printf("\t Nazev Zastavky: %s\n",pomLinka->nazevZastavky);
  87. printf("\t Dalsi Zastavka za: %.2f\n",pomLinka->casNaDalsiZastavku);
  88. if(pomLinka->prestupZastavku != NULL){
  89. printf("\t Prestupni Zastavka na zastavku %s \n",pomLinka->prestupZastavku->nazevZastavky);
  90. printf("\t Prestupni Zastavka s prestupem: %d\n",pomLinka->casNaPrest);
  91. }
  92. }else{
  93. printf("\n");
  94. printf("\t Dana zastavka nenalezena na lince %d ! \n",pom);
  95. }
  96. printf("\n");
  97. break;
  98. case 4:
  99. NactiPrestup(linka1,linka2);
  100. printf("\n");
  101. printf("\t NACTENI PRESTUPU PROBEHLO BEZ PROBLEMU\n\n");
  102. break;
  103. case 5:
  104. printf("\n");
  105. cestujici = vytvorCestujiciho();
  106. printf("\t Z jake zastavky pozadujte vyjet? ");
  107. scanf("%s",cestujici->zastavkaStart);
  108. printf("\t Do jake cilove zastavky pozadujte? ");
  109. scanf("%s",cestujici->zastavkaCil);
  110.  
  111. cestujici->casCesty = spocitejCestu(cestujici,linka1,linka2);
  112. printf("\n");
  113. printf("\t Cestujiciho bude trvat cesta %.2f \n\n",cestujici->casCesty);
  114. break;
  115.  
  116. case 6:
  117. pom=0;
  118. printf("\n");
  119. printf("\t Jakou linku pozadujte zrusit? (1,2):");
  120. scanf("%d",&pom);
  121. if(pom==1){
  122. zrusLinku(linka1);
  123. linka1 = NULL;
  124. printf("\t Byla zrusena linka 1\n!!");
  125. }else if(pom==2){
  126. zrusLinku(linka2);
  127. linka2 = NULL;
  128. printf("\t Byla zrusena linka 2\n!!");
  129. }else{
  130. printf("\t ZADALI JSTE SPATNE!!\n");
  131. }
  132. break;
  133. default:
  134. break;
  135. }
  136.  
  137.  
  138. }while(konec!=0);
  139.  
  140. //system("pause");
  141. return 0;
  142. }
  143.  
  144. ----------------------------------------------------------------------
  145. //linka.h
  146.  
  147. #include <stdio.h>
  148. #include <stdlib.h>
  149. #include <string.h>
  150. #include "cestujici.h"
  151.  
  152. typedef struct zastavka{
  153. char nazevZastavky[20];
  154. float casNaDalsiZastavku;
  155. float casNaPrest;
  156. struct zastavka *dalsiZastavku;
  157. struct zastavka *prestupZastavku;
  158. }tZastavka;
  159.  
  160. tZastavka* NactiZastavkyDoLinky(FILE *f);
  161. tZastavka* Crate(float casNaDalsiZastavku,char *nazev);
  162. void zrusLinku(tZastavka *linka);
  163. tZastavka* NajdiZastavku(tZastavka *linka1,char *nazev);
  164. void NactiPrestup(tZastavka *linka1,tZastavka *linka2);
  165. void VlozPrestup(tZastavka *linka1,tZastavka *linka2,float cas);
  166. float spocitejCestu(tCestujici *cestujici,tZastavka *linka1,tZastavka *linka2);
  167. void VypisZastavky(tZastavka *linka);
  168.  
  169. ------------------------------------------------------------------------------------
  170. //linka.c
  171.  
  172. #include "linka.h"
  173. #include "cestujici.h"
  174.  
  175.  
  176. tZastavka* NactiZastavkyDoLinky(FILE *f){ // ze vstupního parametru souboru nacte požadované udaje do nové linky(chtìl to pùvodnì jinak, ale toto øešení mu nevadilo)
  177. tZastavka *prvni= NULL;
  178. tZastavka *pomocna= NULL;
  179. tZastavka *akt = NULL;
  180. char nazev[20];
  181. float casNaDalsiZastavku = 0;
  182.  
  183. while(fscanf(f,"%s",nazev)!=-1){
  184. fscanf(f,"%f",&casNaDalsiZastavku);
  185. pomocna = Crate(casNaDalsiZastavku,nazev);
  186.  
  187. if(prvni==NULL){//zøetezení do linárního seznamu
  188. prvni = pomocna;
  189. }else{
  190. akt->dalsiZastavku = pomocna;
  191. }
  192.  
  193. akt = pomocna;
  194.  
  195.  
  196. }
  197.  
  198. akt->dalsiZastavku = prvni; // zøetìžení dokola
  199.  
  200. return prvni;
  201. }
  202. tZastavka* Crate(float casNaDalsiZastavku,char *nazev){// vytvoreni nove zastavky do linearniho seznamu
  203. tZastavka *novaLinka;
  204.  
  205. novaLinka = (tZastavka*)malloc(sizeof(tZastavka));
  206. novaLinka->casNaDalsiZastavku= casNaDalsiZastavku;
  207. novaLinka->prestupZastavku = 0;
  208. novaLinka->prestupZastavku = NULL;
  209. novaLinka->dalsiZastavku = NULL;
  210. strcpy(novaLinka->nazevZastavky,nazev);
  211. return novaLinka;
  212.  
  213. }
  214. void zrusLinku(tZastavka *linka){
  215.  
  216. tZastavka *tmp = NULL;
  217. tZastavka *pomocPriMazani = NULL;
  218.  
  219. tmp = linka;
  220. //zruseni zacyklení
  221. do{
  222. tmp=tmp->dalsiZastavku;
  223. }while(tmp->dalsiZastavku!=linka);
  224. tmp->dalsiZastavku=NULL;
  225.  
  226. tmp = linka;
  227. do{
  228. if(tmp->prestupZastavku != NULL){
  229. pomocPriMazani= tmp->prestupZastavku;
  230. pomocPriMazani->casNaPrest = 0;
  231. pomocPriMazani->prestupZastavku = NULL;
  232. }
  233. pomocPriMazani = tmp->dalsiZastavku;
  234. tmp->dalsiZastavku=NULL;
  235. free(tmp);
  236. tmp = pomocPriMazani;
  237.  
  238. }while(tmp != NULL);
  239.  
  240.  
  241.  
  242.  
  243. }
  244.  
  245. tZastavka* NajdiZastavku(tZastavka *linka1,char *nazev){
  246. tZastavka *tmp= NULL;
  247.  
  248. tmp = linka1;
  249. do{
  250. if(strcmp(tmp->nazevZastavky,nazev)==0){
  251. return tmp;
  252. }
  253. tmp = tmp->dalsiZastavku;
  254.  
  255. }while(tmp != linka1);
  256.  
  257. return NULL;
  258.  
  259. }
  260. void NactiPrestup(tZastavka *linka1,tZastavka *linka2){
  261. FILE *f;
  262. char nazev1[20];
  263. char nazev2[20];
  264. tZastavka *prestupniZastavka1 = NULL;
  265. tZastavka *prestupniZastavka2 = NULL;
  266. float prestupCas = 0;
  267.  
  268.  
  269. f = fopen("prest.txt","r");
  270.  
  271. while(fscanf(f,"%s",nazev1)!=-1){// kdyby bylo v souboru více prestupu
  272.  
  273. fscanf(f,"%s",nazev2);
  274. fscanf(f,"%f",&prestupCas);
  275.  
  276.  
  277. prestupniZastavka1 = NajdiZastavku(linka1,nazev1);
  278. if(prestupniZastavka1==NULL){
  279. prestupniZastavka1 = NajdiZastavku(linka2,nazev1);
  280. }
  281.  
  282. prestupniZastavka2 = NajdiZastavku(linka1,nazev2);
  283. if(prestupniZastavka2==NULL){
  284. prestupniZastavka2 = NajdiZastavku(linka2,nazev2);
  285. }
  286.  
  287. if(prestupniZastavka1!= NULL && prestupniZastavka2!= NULL){
  288. VlozPrestup(prestupniZastavka1,prestupniZastavka2,prestupCas);
  289. } else{
  290. printf("Nelze vlozit prestup");
  291. }
  292.  
  293. }
  294.  
  295.  
  296. fclose(f);
  297.  
  298.  
  299.  
  300.  
  301. }
  302. void VlozPrestup(tZastavka *linka1,tZastavka *linka2,float cas){
  303.  
  304. linka1->casNaPrest = cas;
  305. linka2->casNaPrest = cas;
  306. linka1->prestupZastavku = linka2;
  307. linka2->prestupZastavku = linka1;
  308.  
  309. }
  310.  
  311.  
  312. float spocitejCestu(tCestujici *cestujici,tZastavka *linka1,tZastavka *linka2){
  313. tZastavka *zacatek = NULL;
  314. tZastavka *konec = NULL;
  315. int zacinaNaLince=0,konciNaLince=0;
  316. float vyslednaCesta = 0;
  317.  
  318. zacatek = NajdiZastavku(linka1,cestujici->zastavkaStart);
  319. if(zacatek==NULL){
  320. zacatek = NajdiZastavku(linka2,cestujici->zastavkaStart);
  321. zacinaNaLince = 2;
  322. }else{
  323. zacinaNaLince = 1;
  324. }
  325.  
  326. konec = NajdiZastavku(linka1,cestujici->zastavkaCil);
  327.  
  328. if(konec==NULL){
  329. konec = NajdiZastavku(linka2,cestujici->zastavkaCil);
  330. konciNaLince = 2;
  331. }else{
  332. konciNaLince = 1;
  333. }
  334. if(zacatek==NULL && konec==NULL){
  335.  
  336. printf("\t Dane zastavky neexistuji\n");
  337. return 0;
  338. }
  339.  
  340. do{
  341. if(zacinaNaLince==1){
  342. if(konciNaLince==1){
  343. vyslednaCesta += zacatek->casNaDalsiZastavku;
  344. zacatek = zacatek->dalsiZastavku;
  345. }else{
  346. if(zacatek->prestupZastavku!=NULL){
  347. vyslednaCesta += zacatek->casNaPrest;
  348. zacatek = zacatek->prestupZastavku;
  349. vyslednaCesta += zacatek->casNaDalsiZastavku;
  350. zacatek = zacatek->dalsiZastavku;
  351. }else{
  352. vyslednaCesta += zacatek->casNaDalsiZastavku;
  353. zacatek = zacatek->dalsiZastavku;
  354. }
  355. }
  356.  
  357. }else {
  358. if(konciNaLince==2){
  359. vyslednaCesta += zacatek->casNaDalsiZastavku;
  360. zacatek = zacatek->dalsiZastavku;
  361. }else{
  362. if(zacatek->prestupZastavku!=NULL){
  363. vyslednaCesta += zacatek->casNaPrest;
  364. zacatek = zacatek->prestupZastavku;
  365. vyslednaCesta += zacatek->casNaDalsiZastavku;
  366. zacatek = zacatek->dalsiZastavku;
  367. }else{
  368. vyslednaCesta += zacatek->casNaDalsiZastavku;
  369. zacatek = zacatek->dalsiZastavku;
  370. }
  371.  
  372. }
  373. }
  374.  
  375. }while(zacatek!=konec);
  376.  
  377. return vyslednaCesta;
  378. }
  379. void VypisZastavky(tZastavka *linka){
  380. tZastavka *tmp;
  381. tmp = linka;
  382. do{
  383. printf("\n");
  384. printf("\t Nazev Zastavky: %s\n",tmp->nazevZastavky);
  385. printf("\t Dalsi Zastavka za: %.2f\n",tmp->casNaDalsiZastavku);
  386. if(tmp->prestupZastavku != NULL){
  387. printf("\n");
  388. printf("\t Prestupni Zastavka na zastavku %s \n",tmp->prestupZastavku->nazevZastavky);
  389. printf("\t Prestupni Zastavka s prestupem: %.2f\n",tmp->casNaPrest);
  390. }
  391. tmp = tmp->dalsiZastavku;
  392.  
  393. }while(tmp != linka);
  394. printf("\n");
  395. }
  396. ----------------------------------------------------------------------------------------
  397. //cestujici.h
  398.  
  399. #include <stdio.h>
  400. #include <stdlib.h>
  401. #include <string.h>
  402. #pragma once
  403.  
  404. typedef struct cestujici{
  405. char zastavkaStart[10];
  406. char zastavkaCil[10];
  407. float casCesty;
  408. }tCestujici;
  409.  
  410.  
  411. tCestujici* vytvorCestujiciho();
  412. ----------------------------------------------------------------------------------------
  413. //cestujici.c
  414.  
  415. #include "cestujici.h"
  416.  
  417. tCestujici* vytvorCestujiciho(){
  418.  
  419. tCestujici *novyCestujici;
  420. novyCestujici = (tCestujici*)malloc(sizeof(tCestujici));
  421. novyCestujici->casCesty = 0;
  422.  
  423. return novyCestujici;
  424.  
  425. }
  426.  
  427. -------------------------------------------------------
  428. -------------------------------------------------------
  429. -------------------------------------------------------
  430.  
  431. /*ZPRAVY*/
  432.  
  433. //main
  434. #include <stdio.h>
  435. #include "poleZprav.h"
  436.  
  437.  
  438. int main(int argc, char* argv[])
  439. {
  440. char text[60]; // pomocne pro tvorbu zprav
  441. int id; // -!!-
  442. int volnaPozice=0;
  443. int index=0;
  444. int volba=-1;
  445.  
  446. AlokujPoleZprav(100);
  447.  
  448. while(volba!=0) {
  449.  
  450. printf("-------\n1.Pridat zpravu\n2.Odebrat zpravu\n3.Sort dle id\n4.Vypis zprav\n0.Konec\n-------");
  451. printf("\nZadejte Vasi volbu:\n");
  452. scanf("%d",&volba);
  453. switch(volba) {
  454. case 1:
  455. fflush(stdin);
  456. printf("\nZadej text zpravy:");
  457. fflush(stdin);
  458. gets(text);
  459. printf("\nZadej id zpravy:");
  460. fflush(stdin);
  461. scanf("%d",&id);
  462. pridejZpravu(id,text,&volnaPozice);
  463.  
  464. break;
  465.  
  466. case 2:
  467. printf("\nZadejte index zpravy, kterou chcete odebrat:");
  468. scanf("%d",&index);
  469. free(odeberZpravu(index,&volnaPozice));
  470. break;
  471.  
  472. case 3:
  473. Setridit(volnaPozice);
  474. break;
  475.  
  476. case 4:
  477. vypisZpravy(volnaPozice);
  478. break;
  479.  
  480. default:
  481. if(volba!=0) {
  482. printf("\nSpatna volba");
  483. }
  484.  
  485. break;
  486.  
  487. }
  488.  
  489.  
  490. }
  491. }
  492.  
  493. ------------------------------------------------
  494. //polezprav.h
  495.  
  496. #ifndef struktura
  497. #include "zprava.h"
  498. #endif
  499. void AlokujPoleZprav(int kapacita);
  500. void PridejZpravu(int id, char text[60],int *volnaPozice);
  501. tZprava *odeberZpravu(int index);
  502. void vypisZpravy(int volnaPozice);
  503. void Setridit(int volnaPozice);
  504. ---------------------------------------------------
  505. //poleZprav.c
  506.  
  507. #include "zprava.h"
  508.  
  509.  
  510. tZprava **poleZprav;
  511.  
  512. void AlokujPoleZprav(int kapacita) {
  513. if((poleZprav=(tZprava**)calloc(kapacita,sizeof(tZprava*)))==NULL) {
  514. printf("problem pri praci s pameti\n");
  515. system("pause");
  516. return;
  517. }
  518. //printf("%d / %d = %d",sizeof(*poleZprav[99]),sizeof(tZprava),(sizeof(poleZprav)/sizeof(tZprava)));
  519. }
  520.  
  521. void pridejZpravu(int id,char zprava[60],int *volnaPozice) {
  522. //printf("%d ",*volnaPozice);
  523. poleZprav[(*volnaPozice)] = vytvorZpravu(id,zprava);
  524. (*volnaPozice)++;
  525. }
  526.  
  527. tZprava *odeberZpravu(int index,int *volnaPozice) {
  528. int k=0;
  529. for(k=index;k<(*volnaPozice)-1;k++) {
  530.  
  531. poleZprav[k] = poleZprav[k+1];
  532. }
  533.  
  534. (*volnaPozice)--;
  535.  
  536. return poleZprav[(*volnaPozice)+1];
  537. }
  538. void vypisZpravy(int volnaPozice) {
  539. int k=0;
  540. printf("\n==========Vypis zprav==========\n");
  541. do{
  542. if(volnaPozice>0) { //pokud v poli nejaka zprava je
  543. printf("%d. - ",k);
  544. vypisZpravu(poleZprav[k]);
  545. }
  546. k++;
  547. }while(k<volnaPozice);
  548. /*for(k=0;k<volnaPozice;k++) {
  549. if(volnaPozice>0) {
  550. vypisZpravu(poleZprav[k]);
  551. }*/
  552. printf("\n==========Konec vypisu zprav==========\n");
  553.  
  554. }
  555.  
  556. void Prohod(int co,int scim) {
  557. tZprava *p;
  558. p = poleZprav[co];
  559. poleZprav[co] = poleZprav[scim];
  560. poleZprav[scim] = p;
  561. }
  562.  
  563. //void Prohod(tZprava *zprava1,tZprava *zprava2) {
  564. // tZprava *p;
  565. // *p = *zprava1;
  566. // *zprava1 = *zprava2;
  567. // *zprava2 = *p;
  568. //}
  569.  
  570.  
  571. void Setridit(int volnaPozice) {
  572. int k=0;
  573. int l=0;
  574. int sorted=0;
  575. while(sorted!=1){
  576. sorted=1;
  577. for(l=0;l<volnaPozice-1;l++) {
  578. //do{ //rad bych, aby cykl prosel aspon 1x
  579.  
  580. /*if(poleZprav[l]->id>poleZprav[l+1]->id && volnaPozice>0) {*/
  581. if(poleZprav[l]->id>poleZprav[l+1]->id && volnaPozice>0) {
  582. Prohod(l,l+1);
  583. sorted=0;
  584. }
  585. /*}while(l<=(volnaPozice-2));*/
  586. }
  587. }
  588. }
  589.  
  590. -------------------------------------------------------------------------
  591. //Zprava.h
  592.  
  593. #include <stdio.h>
  594. #include <stdlib.h>
  595. #ifndef struktura
  596. #define struktura
  597. typedef struct zprava {
  598. int id;
  599. char text[60];
  600. }tZprava;
  601. void vypisZpravu(tZprava *zprava);
  602. tZprava *vytvorZpravu(int id, char text[60]);
  603. #endif
  604. -------------------------------------------------------------------------
  605. //Zprava.c
  606.  
  607. #include "zprava.h"
  608. void vypisZpravu(tZprava *zprava) {
  609. printf("%d. %s\n",zprava->id,zprava->text);
  610. }
  611.  
  612. tZprava *vytvorZpravu(int id,char text[60]) {
  613. tZprava *p_pom_zpr;
  614. if((p_pom_zpr=(tZprava *)calloc(1,sizeof(tZprava)))==NULL) {
  615. printf("\nProblem pri praci s pameti\n");
  616. system("pause");
  617. return 0;
  618. }
  619. p_pom_zpr->id = id;
  620. strcpy(p_pom_zpr->text,text);
  621. return p_pom_zpr;
  622. }
  623.  
  624. ------------------------------------------------------------------------------------------
  625. //Vektor
  626.  
  627. vektor.c
  628.  
  629. #include <stdio.h>
  630. #include <string.h>
  631. #include <stdlib.h>
  632. #include "vektor.h"
  633.  
  634. //incializace
  635. extern VEKTOR *init() {
  636. VEKTOR *s;
  637. s = (VEKTOR*)malloc(sizeof(VEKTOR));
  638. s->pole = (PrvekPole*)calloc(5, sizeof(PrvekPole)); //init. vychozi pocet
  639. s->dimenze = 5;
  640. s->aktPocetPrvku = 0;
  641. //pointery na fce
  642. s->ukVypis = vypis;
  643. s->ukPridej = pridej;
  644. s->ukOdeber = odeber;
  645. s->ukSetrid = setrid;
  646. //navratova hodnota
  647. return s;
  648. }
  649.  
  650. //pridani prvku
  651. void pridej(PrvekPole p){
  652. struktura->aktPocetPrvku++; //navyseni poctu prvku
  653. reallocPole(); //realokace pole, pokud je treba
  654. struktura->pole[struktura->aktPocetPrvku-1] = p; //pridani prvku
  655. }
  656.  
  657. //realkovani pole
  658. void reallocPole() {
  659. if (struktura->aktPocetPrvku > struktura->dimenze) { //potreba zvetsit
  660. struktura->dimenze = struktura->dimenze * 2;
  661. struktura->pole = (PrvekPole*)realloc(struktura->pole, struktura->dimenze * sizeof(PrvekPole));
  662. }
  663. }
  664.  
  665. //vypis hodnot
  666. void vypis(){
  667. int i;
  668. printf("Vypis prvku:\n\n");
  669. for(i=0; i< struktura->aktPocetPrvku;i++){
  670. printf("%d: ", i);
  671. printf(fznak, struktura->pole[i].hodnota);
  672. printf("; ");
  673. }
  674. printf("\n");
  675. }
  676.  
  677. //debrani prvku na indexu
  678. void odeber(int i){
  679. int j;
  680. struktura->aktPocetPrvku--;
  681. for (j = i; j < struktura->aktPocetPrvku; j++){
  682. struktura->pole[j] = struktura->pole[j+1];
  683. }
  684. reallocPole();
  685. }
  686.  
  687. //zamena prvku
  688. void prohod(int indexA, int indexB) {
  689. PrvekPole pom;
  690.  
  691. #ifdef string
  692. strcpy(pom.hodnota, struktura->pole[indexA].hodnota);
  693. strcpy(struktura->pole[indexA].hodnota, struktura->pole[indexB].hodnota);
  694. strcpy(struktura->pole[indexB].hodnota, pom.hodnota);
  695. #else
  696. pom.hodnota = struktura->pole[indexA].hodnota;
  697. struktura->pole[indexA].hodnota = struktura->pole[indexB].hodnota;
  698. struktura->pole[indexB].hodnota = pom.hodnota;
  699. #endif
  700. }
  701.  
  702.  
  703. //setrideni pole
  704. void setrid(){
  705. int i, j, poc;
  706.  
  707. for (i = 0; i < struktura->aktPocetPrvku; i++) {
  708. poc = i;
  709. for (j = i + 1; j < struktura->aktPocetPrvku; j++) {
  710. #ifdef string
  711. if (strcmp(strlwr(struktura->pole[poc].hodnota), strlwr(struktura->pole[j].hodnota)) == 1) {
  712. prohod(poc, j);
  713. }
  714. #else
  715. if (struktura->pole[poc].hodnota > struktura->pole[j].hodnota) {
  716. prohod(poc, j);
  717. }
  718. #endif
  719. }
  720. }
  721. }
Add Comment
Please, Sign In to add comment