Advertisement
Kochabitacja

Assembly_tresci_zadan

Jun 23rd, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.14 KB | None | 0 0
  1.  
  2. ASSEMBLY Grupa A
  3.  
  4.  
  5. [KOLOS MIKRO GR CZW 11:00]
  6. unsigned long check_div(long a, long b,long c);
  7. Jeśli c równe zero to
  8. a)zwraca 1 jeśli a podzielne przez b
  9. b)zwraca 0 jeśli a niepodzielne przez b.
  10. 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.
  11.  
  12. ____________________________________________________________________________________________
  13.  
  14. ASSEMBLY Grupa B
  15.  
  16.  
  17. Czwartek 12.30: unsigned int check_tab(int* tab, int n, int* max)
  18. 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ń;
  19. 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
  20. (wynik funkcji - ktore liczby sie pojawily, maks mowi o tym ile razy pojawila sie najczesciej wystepujaca liczba).
  21. ____________________________________________________________________________________________
  22.  
  23.  
  24. ASSEMBLER Grupa C
  25.  
  26.  
  27. unsigned long fun(unsigned long a, int b, int *pcs, int *count);
  28.  
  29. a = a63 .. a0
  30. 64 .. 1
  31.  
  32. b = 1: suma xi = ai * (i+1)
  33. 2: iloczyn xi = ai * (i+1)
  34. else : 0
  35.  
  36. pos = max i : ai =/= 0
  37.  
  38. count = sum 1 : ai =/= 0
  39. 0: else
  40.  
  41. Funkcje dostaje 2 parametry wejściowe, 2 wyjściowe.
  42. Pierwszy parametr to liczba 64 bitowa, ciąg bitów o wartosci 0 lub 1.
  43. Jezeli 1 pojawia się na bicie najmniej znaczącym to interesuje nas 1.
  44.  
  45. a - jakie liczby
  46. 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
  47.  
  48. 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)
  49.  
  50. count -> liczba bitow rownych 1
  51.  
  52. min musi zwrocic count i pos
  53.  
  54. __________________________________________________________________________________________
  55.  
  56. ASSEMBLER Grupa D
  57.  
  58.  
  59. char* encode(char* buff, unsigned int mask, int operation, int character);
  60. // b9 - b0
  61. //mask '9', ... '0'
  62. // 1 znaczy uzwglednij
  63. // operation 0 - nic 1 - remove 2 - transpose (0 na 9 a 9 na 0 za to 8 na 1 i 1 na 8))
  64. // 3 znaczy zamien with character(4 parametr))
  65. //wylap w buforze cyferki
  66. //w mask bedzie czy z cyferka cos robic
  67. // na podstawei trzeciego wykonaj operacje
  68. ___________________________________________________________________
  69.  
  70. char* encode(char*buf, unsigned int mask, int operation, int character);
  71.  
  72. pierwszy to tablica znaków, drugi to maska gdzie interesuje nas 10 najmlodszych bitow
  73. (tam gdzie 1 to na tej cyfrze ma zostac wykonana operacja np znak 8 i osmy bit 1 wiec wykonujemy na 8 operacje) ,
  74. 3 to jaka operacja miala byc wykonana (0 nie rob nic , 1 usun znaki wedlug maski,
  75. 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)
  76. ___________________________________________________________________
  77.  
  78. była funkcja w c z 4 parametrami: string, maska(int), operacja(int), znak(int)
  79.  
  80. chodziło o to żeby przetworzyć stringa w zależności od operacji i maski.
  81. w stringu wszystko poza cyframi zawsze pozostawało bez zmian.
  82. 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
  83. np. 0000000001 - jeśli w stringu pojawi się cyfra 0 to trzeba wykonać odpowiednią operację
  84. 0000000101 - operacje na zerach i dwójkach
  85.  
  86. rodzaje operacji:
  87. 1-nic (zwraca wyjściowy string)
  88. 2-usunięcie (usuwa daną cyfrę ale nie wystarczy wstawić spacje, wtedy trzeba skrócić stringa)
  89. 3-"transpose" - zamienić x na 9-x np. 1 na 8, 0 na 9 itd.
  90. 4- zamienienie cyfry na znak podany w parametrze funkcji
  91.  
  92. 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