//Funckia na skladanie vody void bond(char prvok,unsigned ID) { //Vypis hlasky begin bonding sem_wait(&premenne->sem); vypis("%u\t: %c %u\t:begin bonding\n",prvok,ID); sem_post(&premenne->sem); //Simulacia trvania skladania go_to_sleep(Bond_max_wait); //Samotne bondovanie sem_wait(&premenne->sem); //Pripoji sa na premenne premenne->bonding--; if(premenne->bonding==3) { vypis("%u\t: %c %u\t:bonded\n",prvok,ID); premenne->bonding--; sem_post(&semafory->Bonding); sem_post(&semafory->Bonding); } else { sem_post(&premenne->sem); sem_wait(&semafory->Bonding); sem_wait(&premenne->sem); vypis("%u\t: %c %u\t:bonded\n",prvok,ID); premenne->bonding--; } if(premenne->bonding==0) { sem_post(&semafory->Next_Create_Bond); } sem_post(&premenne->sem); }
int main() { char **obdlznik, *buf, *empty; int i, pocet = 0; POLIA *novy_polia, *prvy_polia = NULL, *aktualny_polia, *predchadzajuci_polia; buf = (char*)malloc(1000 * sizeof(char)); while (scanf("%100[^\n\r]", buf) > 0) { getchar(); //kym nemam cislo if (!strtol(buf, &empty, 10)) { pocet++; //ukladanie prveho if (!prvy_polia) { prvy_polia = (POLIA*)malloc(sizeof(POLIA)); prvy_polia->dalsi = NULL; strcpy(prvy_polia->meno, buf); } //ukladanie dalsieho else { novy_polia = (POLIA*)malloc(sizeof(POLIA)); novy_polia->dalsi = NULL; strcpy(novy_polia->meno, buf); aktualny_polia = prvy_polia; predchadzajuci_polia = prvy_polia; //insert sort //prechadzam zoznam kym nenajdem kam pridat dalsiu polozku while (aktualny_polia != NULL && strcmp(aktualny_polia->meno, novy_polia->meno)<0) { aktualny_polia = aktualny_polia->dalsi; //skipnem prvy presun aktualneho, aby som bol o krok pozadu if (predchadzajuci_polia->dalsi != aktualny_polia) { predchadzajuci_polia = predchadzajuci_polia->dalsi; } } //ak pridavam na prve miesto if (aktualny_polia == prvy_polia) { novy_polia->dalsi = prvy_polia; prvy_polia = novy_polia; } else { novy_polia->dalsi = predchadzajuci_polia->dalsi; predchadzajuci_polia->dalsi = novy_polia; } } } //ked mam cislo else { //prekopirujem zoznam do obdlznika obdlznik = nahraj(prvy_polia, pocet); break; } } //vycistim posledný nacitany riadok s cislami while ((i = strtol(buf, &buf, 10)) != 0) { vypis(obdlznik, pocet, i); } //uz len scanfujem do konca while (scanf("%d", &i) > 0) { vypis(obdlznik, pocet, i); } return 0; }
//Proces prvku int atom(unsigned ID,char prvok) { //Vypis hlasky started //moze sa vypisat prakticky kedykolvek, preto je pred semaforom sem_wait(&premenne->sem); vypis("%u\t: %c %u\t:started\n",prvok,ID); sem_post(&premenne->sem); //Semafor aby sme nenarusili proces bondovania sem_wait(&semafory->Next_Create_Bond); //Ziskame si pristup do zdielanej pamate sem_wait(&premenne->sem); //Zapiseme si do zdielanej premennej ze mame proces vhodny na bondovanie, danej kategorie if ( prvok == 'H' ) premenne->amount_H++; else premenne->amount_O++; //Zistenie ci sa da viazat if( premenne->amount_H >= 2 && premenne->amount_O >= 1 ) //Ak je dost atomov na viazanie { vypis("%u\t: %c %u\t:ready\n",prvok,ID); premenne->bonding=6; sem_post(&semafory->H_queue); //Podla toho ci bond spustil vodik alebo kyslik sa prebudzaju procesi s ktorimi sa budeme bondovat if ( prvok == 'O' ) sem_post(&semafory->H_queue); else sem_post(&semafory->O_queue); premenne->amount_H-=2; premenne->amount_O--; sem_post(&premenne->sem); //Koniec kritickej sekcie ak je dost na viazanie } else { vypis("%u\t: %c %u\t:waiting\n",prvok,ID); sem_post(&premenne->sem); //Koniec kritickej sekcie ak nie je dost na viazanie sem_post(&semafory->Next_Create_Bond); if ( prvok == 'O' ) sem_wait(&semafory->O_queue); else sem_wait(&semafory->H_queue); } //Proces bondovania bond(prvok,ID); //Vypis hlasky finished finished(prvok,ID); exit(EXIT_SUCCESS); }
void vypis(char x) { if(x <= 'z'){ printf("%c",x); vypis(++x); } }
void vypis (int * c, int size) { if (size > 0){ printf ("%i ", *c); vypis (c+1, size-1); } }
int main() { char pismeno; scanf("%c",&pismeno); if (pismeno=='v') vypis(); return 0; }
double vypis_soubor(void) { FILE *fr; char jmeno[100]; printf("Zadej jmeno souboru: "); scanf("%s", jmeno); /* vycisteni klavesnicoveho bufferu */ while (getchar() != '\n') ; if (toupper(jmeno[0]) == 'K') return 2.2; if ((fr = fopen(jmeno, "r")) == NULL) { printf("Soubor %s nebyl otevren.\n", jmeno); return 1.1; } vypis(fr); if (fclose(fr) == EOF) printf("Soubor %s nebyl zavren.\n", jmeno); return 0.5; }
//Funkcia zabezpecuju aby sa ukoncili vsetky procesi az ked su vsetky zviazane vo vode void finished(char prvok,unsigned ID) { //Najprv je potreba zistit ci uz su zviazane vsetky procesi sem_wait(&premenne->sem); //Ak uz su zviazane vsetky procesi vody //3*n je procesov prvkov //-1 lebo ked sme zbondovali vsetky prvky tak sa ten posledny nepripocita ale spusti vypis finished if(premenne->finish!=(3*n-1)) { premenne->finish++; sem_post(&premenne->sem); sem_wait(&semafory->Finished); } else { sem_post(&premenne->sem); } //Vypis hlasky finished sem_wait(&premenne->sem); vypis("%u\t: %c %u\t:finished\n",prvok,ID); sem_post(&premenne->sem); sem_post(&semafory->Finished); //Pusti dalsi proces na vypis }
void vypis(int i) { int a = i; if(*(str + i)){ printf("%c",*(str + i)); vypis(i+1); } }
int main() { int size = 10; int c[size]; nacti(c, size); vypis(c, size); return 0; }
int main(int argc, char **argv) { char *v = "In the C++ programming language, the string class is a standard representation for a class of text." "The class provides some typical string operations like comparsion, concatenation, find and replace."; char *s[] = {"string", "class"}; int pocet_slov = sizeof(s)/sizeof(s[0]); int i; for(i=0; i<pocet_slov; i++) { vypis(s[i]); printf(": "); printf("%i\n", pocetVyskytu(v, s[i])); } }
int main() { int *pi; int max, i; max = maximum(pole3x4, NELEM(pole3x4)); vypis(pole3x4, NELEM(pole3x4)); printf("pole 3x4 ma maximum: %d\n", max); printf("\n \n"); pi = suma_radku(pole3x4, NELEM(pole3x4)); printf("suma radku je: "); for (i=0; i<NELEM(pole3x4); i++){ printf("%c %d", i==0?' ':',',pi[i]); } return 0; }
int main() { int velikost; printf("Program na pole... \n"); printf("Zadejte velikost pole: "); scanf("%d", &velikost); int pole[velikost]; char znak = 'A'; while(znak!='X') { odsazeni(); napoveda(); scanf(" %c", &znak); switch(znak){ case 'X': break; case 'I': clear(); inicializuj(pole, velikost); break; case 'V': clear(); vypis(pole, velikost); break; case 'Z': clear(); zadani(pole, velikost); clear(); break; case '+': clear(); navyseni(pole, velikost); break; case 'C': clear(); break; default: printf("Zadal jsi spatny znak. \n"); break; } } return 0; }
int main(void) { FILE *fr; char jmeno[100]; int c; printf("Zadej jmeno souboru: "); scanf("%s", jmeno); if ((fr = fopen(jmeno, "r")) == NULL) { printf("Soubor %s nebyl otevren.\n", jmeno); return 1; } vypis(fr); if (fclose(fr) == EOF) printf("Soubor %s nebyl zavren.\n", jmeno); return 0; }
int main() { char katalog[100][3][51]; int i = 0; int volba; char hledanyStr[51]; while(1) { volba = 0; vypis(); scanf("%d",&volba); getchar(); switch(volba) { case 1: zadani(&i,katalog); break; case 2: coHledat(hledanyStr); vypisHledani(katalog,hledani(1,hledanyStr,katalog)); break; case 3: coHledat(hledanyStr); vypisHledani(katalog,hledani(0,hledanyStr,katalog)); break; case 4: vypisKat(katalog); break; case 5: exit(0); break; default: puts("prosím o správný znak!"); } } return 0; }
int main() { vypis('a'); printf("\n"); return 0; }
void tah(MUINT pocetmiest) { initZreby(); zrebuj(pocetmiest); vypis(pocetmiest); }