Пример #1
0
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);
}
Пример #2
0
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);
}
Пример #3
0
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
	}
}
Пример #5
0
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()
Пример #6
0
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;
}
Пример #7
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);
}
Пример #8
0
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);
}