int main(void) { int k, l, n, rep, total, wariant; float p, p1, p2, p3; t2 A; t4 PR; t5 Q; clock_t czas1, czas2; srand((unsigned) time(NULL)); do { printf("Wariant: (0/1/2/3/4) "); scanf("%d", &wariant); switch (wariant) { case 0: exit(EXIT_SUCCESS); case 1: //Gnp czyt(&n, &rep, &p); druk1(n, rep, p); for (int i = 1; i <= rep; i++) { Gnp(n, p, A, &k); drukA(n, k, A); } break; case 2: // czas kraw czyt1(&n, &rep, &p1, &p2, &p3, &total); czas1 = pomiar(); kraw(n, rep, total, p1, p2, p3, PR); czas2 = pomiar(); printf("czas: %f [s]\n", (float)(czas2 - czas1) / (float)CLOCKS_PER_SEC); break; case 3: czyt1(&n, &rep, &p1, &p2, &p3, &total); druk(n, p1, p2, p3, &l); //naglowek kraw(n, rep, total, p1, p2, p3, PR); drukPR(l, total, rep, PR); //rozklad break; case 4: // n = 4 czyt(&n, &rep, &p); n = 4; strukt(n, rep, p, Q); drukQ(n, rep, p, Q); break; default: printf("Taki wariant nie istnieje!\n"); exit(EXIT_FAILURE); } } while (true); }
int main(void) { int n, z, rep, wariant; t a, b; clock_t czas1, czas2; srand((unsigned) time(NULL)); printf("Info INT_MAX: %d\n", INT_MAX); do { printf("Wariant: (0/1/2) "); scanf("%d", &wariant); switch (wariant) { case 0: exit(EXIT_SUCCESS); case 1: //sort i sort1 czyt(&n, &z); generacja(n, z, a); kopiuj_tablice(n, b, a); druk1(n, z, a); sort(n, a); druk2(n, a); sort1(n, b); druk2(n, b); break; case 2: //czas czyt1(&n, &z, &rep); czas1 = pomiar(); for (int i = 0; i < rep; i++) { generacja(n, z, a); sort(n, a); } czas2 = pomiar(); printf("czas: %lf\n", (double) (czas2 - czas1) / (double) CLOCKS_PER_SEC); break; default: printf("Taki wariant nie istnieje!\n"); } } while (1); }
int main(void) { lcd_init(); init_adc(); while(1) { if(czujnik_dymu_ON) { lcd_locate(0,0); lcd_str("WYKRYTO DYM"); } else { lcd_locate(0,0); lcd_str("BRAK DYMU "); } wartosc_pomiaru = pomiar(czujnik_dymu_ktory); lcd_locate(1,0); lcd_int(wartosc_pomiaru); lcd_str(" "); _delay_ms(500); } }
//=========================================================================================== int main() { DDRB = 0b11111111; DDRD = 0b01111111; //PD7 jako przycisk PORTD = (1 << PD7); DDRC = (0 << PD7); pusto(); //wygaszenie ekranu ADMUX = (0 << REFS1) | (1 << REFS0); //wybor napiecia referencyjnego do ADC (Vcc) MCUCR = (1 << SE) | (1 << SM1); //konfiguracja sleep mode int czas=pomiar(); losuj(); //liczba prawdziwie losowa srand(liczba_RND); //bedzie naszym seedem do randomizera zeruj(); while (1) { do { liczba_RND = rand() % (iloscUczniow); } while (czyWylosowana(liczba_RND) == 1); //losowanie bez powtórzeń eeprom_update_byte((uint8_t *) liczba_RND, 1); //zapisywanie wylosowanej liczby do pamięci EEPROM eeprom_busy_wait(); //oczekiwanie na zakończenie procesu zapisywania show(liczba_RND + 1); //wyświetlanie wylosowanej liczby na ekran. for (int i = 0; i <czas + 100; i++) //wyświetlanie liczby przez określony czas _delay_ms(10); pusto(); //wygaszenie ekranu sleep_cpu(); //przejście w tryb uśpienia } }
int main(void){ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ USTAWIENIA WSTÊPNE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //ustawienie ADC ADCSRA |= (1<<ADEN); // w³¹cz ADC ADCSRA |= (1<<ADPS2); // preskaler = 16 ADMUX = REF_VCC; // ustawiamy wewn Ÿród³o odniesienia //koniec ustawieñ ADC //przygotowanie przycisku na PD2 do u¿ycia DDRD &= ~(1<<PD2); PORTD |= (1<<PD2); //koniec przygotowania przycisku //inicjalizacja UART UART_Init( __UBRR ); // inicjalizacja UART //koniec inicjalizacji UART sei(); // zgoda na przerwania char zezwolenie = 0; //zmienna zezwolenie jest na potrzeby przycisku, po wciœniêciu ustawia siê na 0 i blokuje ponowne wciœniêcie, //natomiast po puszczeniu ustawia siê na 1 i pozwala na ponowne u¿ycie przycisku //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ KONIEC USTAWIEÑ WSTÊPNYCH ~~~~~~~~~~~~~~~~~~~~~~~~ while(1){ if(pomiar(5)>18){ //minimalne napiêcie z czujnika to oko³o 91mV, ten if zabezpiecza przed pikami poni¿ej tej wartoœci licznik2=pomiar(5);//wykonanie pomiaru i nadpisanie zmiennej licznik2 for(int juuu=1; juuu<=10; juuu++){ //ta pêtla sprawdza czy wykonany pomiar jest wiêkszy od którejœ wartoœci w tablicy i zastêpuje j¹ if(licznik2>tablica[juuu]){ tablica[juuu]=licznik2; juuu=10; // jak wejdzie do tego ifa, to wyskakuje z pêtli, nie przeszukuje jej dalej czyli wybiera pierwsz¹ napotkan¹ } } SUMA=0; //zerowanie SUMY z poprzedniego pomiaru for(int juuu=0; juuu<=10; juuu++){ // sumowanie ca³ej tablicy SUMA=SUMA+tablica[juuu]; } SUMA=SUMA/10; // podzielenie ca³ej tablicy przez iloœ elementów (œrednia) SUMA_pomoc=SUMA*5/1023; // przeliczenie uœrednionego ADC na V SUMAmV=SUMA_pomoc*1000; // przejscie na mV SUMA_pomoc=SUMAmV*26.91 - 2449; // przeliczenie tego wszystkiego si³ê //obs³uga UARTA, wypisanie wyników uart_puts("POMIAR F = "); uart_putint(SUMA_pomoc, 10); uart_puts("mN, czyli: "); uart_putint(SUMA_pomoc/1000, 10); uart_puts(" N | POMIAR ADC = "); uart_putint(SUMA, 10); uart_puts(", czyli: "); uart_putint(SUMAmV, 10); uart_puts("mV"); uart_putc('\r'); uart_putc('\n'); } else{ uart_puts("Napiecie ponizej 91mV. Podlacz czujnik"); uart_putc('\r'); uart_putc('\n'); } if(!( PIND & (1<<PD2) )){//obs³uga przycisku, po naciœniêciu mozna wykonac kolejny pomiar _delay_ms(20); // opóŸnienie, a po nim kolejne sprawdzenie przycisku, w celu wyeliminowania drgañ if(!(PIND & (1<<PD2)) && zezwolenie==1){ // sprawdza czy przycisk jest wciœniêty i czy jest zezwolenie for(int juuu=0; juuu<=10; juuu++){ tablica[juuu]=0; licznik2=0; SUMA=0; zezwolenie = 0; // ustawienie braku zezwolenia na kolejne wejœcie do tego ifa } } }//koniec obs³ugi przycisku if(PIND & (1<<PD2)){ //gdy przyciski nie s¹ aktywne, ustawiane jest zezwolenie zezwolenie = 1; //ma to na celu wyeliminowanie efektu podwójnego klikniêcia } }// koniec g³ównej pêtli while }//koniec main()
int main () { int g,i,k,l,n,sc,rep,total,wariant; t1 E; TGraph G1, G2; nazwa_pliku devW; FILE *W; // wszystkie wygenerowane sc-grafy nazwa_pliku devZ; FILE *Z; // przesiane sc-grafy clock_t czas1, czas2; randomize(); do { printf("Wariant: (1/2/3/4)"); scanf("%d",&wariant); switch(wariant) { case 1: { //czy G1 = Gnk i G2 = dopelnienie G1 sa izomorficzne? czyt(&n, &k, &rep); init(n, E, &total); Gnk(k, total, E); transEGr(n, k, total, E, &G1); jeden(n, &G1); complement(n, &G1, &G2); jeden(n, &G2); drukE(k, total, E); printf("G1:"); drukGr(n, &G1); printf("G2:"); drukGr(n, &G2); if (EqualGraphs(n+1, &G1, &G2)) printf("G1, G2: izomorficzne\n"); else printf("G1, G2: nieizomorficzne\n"); break; } // 1 case 2: { // konstr pliku W zawierajacego sc-grafy printf("nazwa pliku W:"); scanf("%s",devW); W=fopen(devW,"wt"); //przygotowanie pliku W do zapisu czyt(&n, &k, &rep); konstr(n, k, rep, W, &g); // plik W o dlugosci g printf("n= %d, rep= %d, liczba sc-grafow= %d",n,rep,g); break; } //2 case 3: { //konstr pliku W i przesiewanie do pliku Z printf("nazwa pliku W:"); scanf("%s",devW); W=fopen(devW,"wb"); //przygotowanie pliku W do zapisu czyt(&n, &k, &rep); konstr(n, k, rep, W, &g); // plik W o dlugosci g printf("n= %d, rep= %d, liczba sc-grafow= %d\n",n,rep,g); W=fopen(devW,"rb"); printf("nazwa pliku Z:"); scanf("%s",devZ); Z=fopen(devZ,"wb"); przesiewanie(g, W, Z, devZ, &sc,n); // plik Z o dlugosci sc printf("cs= %d\n",sc); break; } //3 case 4: { //czas Gnk + ISO613 czyt(&n, &k, &rep); init(n, E, &total); k=total / 2; l=0; czas1=pomiar(); for(i=1; i<=rep; i++) { Gnk(k, total, E); transEGr(n, k, total, E, &G1); jeden(n, &G1); Gnk(k, total, E); transEGr(n, k, total, E, &G2); jeden(n, &G2); if (EqualGraphs(n+1, &G1, &G2)) l++; } czas2=pomiar(); printf("czas: %f [s]\n", (float)(czas2 - czas1) / (float)CLK_TCK); printf("Gnk: n= %d, rep= %d", n,rep); printf(", liczba par grafow izomorf.= %d\n",l); break; } //4 default: { printf("Taki wariant nie istnieje!\n"); } } // switch printf("koniec? 0/1\n"); } while (getch()!='1'); return 0; }
int main(void) { int k, n, rep, total, wariant; float p; t2 A; t1 E; clock_t czas1, czas2; FILE *plik; char dev1[15], dev2[50]; srand((unsigned) time(NULL)); do { printf("Wariant: (0/1/2/3/6) "); scanf("%d", &wariant); switch (wariant) { case 0: exit(EXIT_SUCCESS); case 1: //Gnp czyt(&n, &rep, &p); druk1(n, rep, p); for (int i = 0; i < rep; i++) { Gnp(n, p, A); drukA(n, A); } break; case 2: //czas Gnp czyt(&n, &rep, &p); czas1 = pomiar(); for (int i = 0; i < rep; i++) Gnp(n, p, A); czas2 = pomiar(); printf("czas: %f [s]\n", (float)(czas2 - czas1) / (float)CLOCKS_PER_SEC); break; case 3: //Gnk, transEA czyt1(&n, &k, &rep); druk1a(n, k, rep); init(n, E, &total); for (int i = 0; i < rep; i++) { Gnk(k, total, E); drukE(k, total, E); transEA(n, k, total, E, A); drukA(n, A); } break; /*case 4: //czas Gnk break; case 5: //czas Gnp w E break; */ case 6: // rysowanie Gnp printf("Nazwa pliku (np.: c:/grafy.poz):"); scanf("%s", dev1); plik = fopen(dev1, "w"); if (plik == NULL) { fprintf(stderr, "Nie udało się otworzyć pliku %s.\n", dev1); exit(EXIT_FAILURE); } czyt(&n, &rep, &p); druk1(n, rep, p); for (int i = 0; i < rep; i++) { Gnp(n, p, A); //drukA(n,A); pdrukAPOZ(plik, n, A); } fclose(plik); strcpy(dev2, VIEWER); strcat(dev2, " "); strcat(dev2, dev1); system(dev2); break; /*case 7: // rysowanie Gnk break; case 8: // rysowanie Gnp w SVG // pdrukASVG(plik,n,A); break; */ default: printf("Taki wariant nie istnieje!\n"); exit(EXIT_FAILURE); } } while (true); }
int main(void) { int c, n, rep, total, wariant; float p; t1 E; ts S; t2 A; clock_t czas1, czas2; srand((unsigned) (time(NULL))); do { printf("Wariant: (0/1/2/3/4/5) "); scanf("%d", &wariant); switch (wariant) { case 0: exit(EXIT_SUCCESS); case 1: // Gnp w E, transES czyt(&n, &rep, &p); druk1(n, rep, p); init(n, E, &total); for (int i = 1; i <= rep; i++) { GnpE(total, p, E); drukE(total, E); transES(n, total, E, S); drukS(n, S); drukS1(n, S); } break; case 2: // Gnp w A, transAS czyt(&n, &rep, &p); druk1(n, rep, p); for (int i = 1; i <= rep; i++) { Gnp(n, p, A); drukA(n, A); transAS(n, A, S); drukS(n, S); drukS1(n, S); break; } case 3: //Gnp w A, czy spojny? czyt(&n, &rep, &p); c = 0; for (int i = 1; i <= rep; i++) { Gnp(n, p, A); drukA(n, A); if (spojny(n, A)) { c++; printf(" spojny"); } } printf("\n\nliczba grafow spojnych w probce, c=%d\n", c); break; case 4: // czas Gnp + spojnosc czyt(&n, &rep, &p); czas1 = pomiar(); c = 0; for (int i = 1; i <= rep; i++) { Gnp(n, p, A); if (spojny1(n, A)) c++; } czas2 = pomiar(); printf("\nliczba grafow spojnych w probce, c=%d\n", c); printf("czas: %f [s]\n", (float)(czas2 - czas1) / (float)CLOCKS_PER_SEC); break; case 5: // czas Gnp czyt(&n, &rep, &p); czas1 = pomiar(); for (int i = 1; i <= rep; i++) Gnp(n, p, A); czas2 = pomiar(); printf("czas: %f [s]\n", (float)(czas2 - czas1) / (float)CLOCKS_PER_SEC); break; default: printf("Taki wariant nie istnieje!\n"); exit(EXIT_FAILURE); } } while (true); }