Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ASSEMBLY Grupa A
- [KOLOS MIKRO GR CZW 11:00]
- unsigned long check_div(long a, long b,long c);
- Jeśli c równe zero to
- a)zwraca 1 jeśli a podzielne przez b
- b)zwraca 0 jeśli a niepodzielne przez b.
- Jeśli c różne od 0 to dzieli a przez liczby z zakresu 1..64 i ustawia odpowiednio bity np. jeśli a podzielne przez 1 to najmłodszy bit równy 1, jeśli a niepodzielne przez 2 to kolejny bit równy 0 itd.
- ____________________________________________________________________________________________
- ASSEMBLY Grupa B
- Czwartek 12.30: unsigned int check_tab(int* tab, int n, int* max)
- Na wejsciu tablica n elementow z zewnatrz; sprawdzic elementy tablicy pod katem występowania wrtosci od 0 do 63, nastepnie policzyc ile razy ktorys tam element sie pojawil, np 0 pojawilo sie iles razy, dwojka iles razy (zliczamy wystapienia), poprzez wskaznik przekazany w trzecim argumencie zwrocic maksimum wystapień;
- Funckja ma zwrocic wartosc w postaci 64 bitow - kazdy bit okresla wystapienie liczby odpowiadajacej temu bitowi, np jesli byla dwojka w tablicy to ma sie pojawic jedynka na pozycji 3, ostatni bit odpowiada za liczbe 63
- (wynik funkcji - ktore liczby sie pojawily, maks mowi o tym ile razy pojawila sie najczesciej wystepujaca liczba).
- ____________________________________________________________________________________________
- ASSEMBLER Grupa C
- unsigned long fun(unsigned long a, int b, int *pcs, int *count);
- a = a63 .. a0
- 64 .. 1
- b = 1: suma xi = ai * (i+1)
- 2: iloczyn xi = ai * (i+1)
- else : 0
- pos = max i : ai =/= 0
- count = sum 1 : ai =/= 0
- 0: else
- Funkcje dostaje 2 parametry wejściowe, 2 wyjściowe.
- Pierwszy parametr to liczba 64 bitowa, ciąg bitów o wartosci 0 lub 1.
- Jezeli 1 pojawia się na bicie najmniej znaczącym to interesuje nas 1.
- a - jakie liczby
- b - co z nimi zrobic, jak 1 to zsumowac, jak 2 to przez sb pomnorzyc, jak inna to zwracamy 0 (dla kazdego i suma/ mnozenie -> (ai+(i+1))) xi od 0 do 63, ich suma albo iloczyn
- pcs -> pozycja ostatniego bitu w liczbie a róznego od 0, przy cyfrze 7 jest to 2 ( maksymalna pozycja na ktorym jedynka sie pojawiła)
- count -> liczba bitow rownych 1
- min musi zwrocic count i pos
- __________________________________________________________________________________________
- ASSEMBLER Grupa D
- char* encode(char* buff, unsigned int mask, int operation, int character);
- // b9 - b0
- //mask '9', ... '0'
- // 1 znaczy uzwglednij
- // operation 0 - nic 1 - remove 2 - transpose (0 na 9 a 9 na 0 za to 8 na 1 i 1 na 8))
- // 3 znaczy zamien with character(4 parametr))
- //wylap w buforze cyferki
- //w mask bedzie czy z cyferka cos robic
- // na podstawei trzeciego wykonaj operacje
- ___________________________________________________________________
- char* encode(char*buf, unsigned int mask, int operation, int character);
- pierwszy to tablica znaków, drugi to maska gdzie interesuje nas 10 najmlodszych bitow
- (tam gdzie 1 to na tej cyfrze ma zostac wykonana operacja np znak 8 i osmy bit 1 wiec wykonujemy na 8 operacje) ,
- 3 to jaka operacja miala byc wykonana (0 nie rob nic , 1 usun znaki wedlug maski,
- 3 zamien na znak podany jako 4 argument i 4 zamien na przeciwna i wsyztsko wedlug maski( np 8 jezeli ma 8bit 1 to zamieniamy na 2)
- ___________________________________________________________________
- była funkcja w c z 4 parametrami: string, maska(int), operacja(int), znak(int)
- chodziło o to żeby przetworzyć stringa w zależności od operacji i maski.
- w stringu wszystko poza cyframi zawsze pozostawało bez zmian.
- w masce zawsze bierzemy 10 najmłodszych bitów i w zależności od tego czy dany bit jest 1, to na danej cyfrze wykonujemy operacje
- np. 0000000001 - jeśli w stringu pojawi się cyfra 0 to trzeba wykonać odpowiednią operację
- 0000000101 - operacje na zerach i dwójkach
- rodzaje operacji:
- 1-nic (zwraca wyjściowy string)
- 2-usunięcie (usuwa daną cyfrę ale nie wystarczy wstawić spacje, wtedy trzeba skrócić stringa)
- 3-"transpose" - zamienić x na 9-x np. 1 na 8, 0 na 9 itd.
- 4- zamienienie cyfry na znak podany w parametrze funkcji
- wersja na 3 to były operacje 1 i 2, a usunięcie się najtrudniejsze wydaje przez to że trzeba stringa przesuwać
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement