6837093816

6837093816



15.    }//koniec if z linii 5

16.    }//koniec funkcji powiększ

Zmienna wskaźnik przechowuje pozycje na tablicy na której wykonywane są obliczenia. W liniach 4-6 operujemy na fragmencie liczby, który odwzorowuje rząd jedności. Dlatego zwiększamy tą pozycję o 2, dzięki czemu omijamy w czasie sprawdzania liczby parzyste (UWAGA: musimy zacząć od liczby nieparzystej). Pozostałe pozycje zwiększamy o jeden. W liniach 5. i 10. przy pomocy instrukcji if sprawdzamy czy liczby w danym rzędzie osiągnęły (lub przekroczyły w przypadku rzędu jedności) wartość 10. Jeśli tak jest musimy te pozycje zredukować i zwiększyć liczby w kolejnych rzędach.

Poniżej kod drugiej ze wspomnianych wcześniej funkcji:

--------------ŹRÓDŁO 6--------------

1.    void dziel(){

2.    char flagawyp=0;

3.    long int reszta=0;

4.    m=40;

5.    reszta=0;

6.    while(flagawyp==0 && m—){

7.    if(sprliczba[m]!=0)flagawyp=l;

8.    }//koniec while

9.    while(m>0){

10.    if(reszta!=0)reszta=(reszta*10+sprliczba[m])%liczp[j];

11.    else reszta=sprliczba[m]%liczp[j];

12.    m—;

13.    }//koniec while

14.    wynikmod=reszta;

15.    }//koniec procedury dziel

Przy pomocy pętli while w liniach 6-8, z wykorzystaniem zmiennej m, określamy od jakiej pozycji na tablicy zaczynamy operować na liczbie (pozostałe pozycje zawierają zera).

Choć różnica w prędkości działania pomiędzy powyższą metodą a tą, która zastosowaliśmy wcześniej może nie być zauważalna jeśli uruchomimy program na niskich zakresach, to jednak dla liczb do 108 jej wykorzystywanie wydłuża znacznie czas pracy programu. Dlatego też dla początkowych zakresów będziemy stosować starą metodę. Wprowadźmy zmienną fpid, która będzie regulować z którego algorytmu ma korzystać program.

Funkcja szukaj uzyskuje ostatecznie formę:

--------------ŹRÓDŁO 7--------------

1.    void szukaj()

2.    {

3.    short int flaga;

4.    long int flagapoz;

5.    char flagawyp=0;

6.    illiczb=nilliczb;

7.    for(long int opl=minzl; opl<=maxzl; opl++)

8.    {

9.    for(long int op2=minz2; op2<=maxz2; op2++)

10.    {

11.    flaga=l;

12.    flagapoz=0;

7



Wyszukiwarka

Podobne podstrony:
14 15 2) konieczności zmiany cyfr na skutek niezgodności ich z zatwierdzonym przez. Dyrekcję Infrast
Zeszyt Cwiczeń FUNKCJI POZNAWCZYCH 3 (16) ĆWICZENIE 15 Wstaw brakujące litery. K B C 16
15.    Równania i przebieg linii operacyjnych dla kolumny rektyfikacyjnej ciągłej. 16
Zdjęcie0091 (6) Wykorzystujemy warunek konieczny istnienia ekstremum funkcji dwóch zmiennych i
37 (362) 32 OSTEOLOGIARyc. 15. Koniec przedni żebra drugiego (os costale) Koniec ten, znajdujący się
26778 Zdjęcie0106 (11) *?> fUHMW Warunek konieczny istmenm ekstremum fUnkcji trzech zmiennych ,
658 Przykłady systemów transakcyjnych 18.15). Koniec prostokąta zbiegł się z sygnałem sprzedaży we
7z Sformułować warunek konieczny ekstremum funkcji dwóch zmiennych 2. Sformułować warunek konieczn
img12 Zmienne - Zmiana typu 1/3 Zazwyczaj nie jest konieczne określenie typu zmiennej W zależności o
24 A. Kabsch do czynności zginania, co wynosi odpowiednio 28 i 16,5% wszystkich funkcji aktonów. Nat

więcej podobnych podstron