Forum studentów informatyki UE WrocÅ‚aw Strona G³ówna


Poprzedni temat «» Nastêpny temat
Lista 1
Autor Wiadomo¶æ
farbowanyaniol 


Wiek: 36
Do³±czy³a: 10 Sie 2009
Posty: 2166
Otrzyma³ 233 piw(a)
Sk±d: WrocÅ‚aw
Wys³any: 2010-10-09, 17:12   Lista 1

Może mi ktoś nakreślić jak to zrobić?

8) Podaj algorytm na określenie parzystości liczb na podstawie ich zapisu w różnych systemach liczbowych (2,8,10,16)

9) Podaj algorytm na zmianę małych liter na duże w ciągu tekstowym zapisanym w kodzie ASCII

10) Zaproponuj sposób zapisu stanu gry w warcaby (czyli układu szachownicy) za pomocą trzech 32-bitowych liczb całkowitych
_________________
Gdy o łzę... uderza łza...
Postaw piwo autorowi tego posta
 
 
     
agnieszkaosw 

Do³±czy³a: 16 Sie 2009
Posty: 1045
Otrzyma³ 90 piw(a)
Wys³any: 2010-10-09, 17:22   

a ja mam inne pytanie, czy gr 9 ma to zrobić? Nie mamy z p. Nieslerem ćwiczeń...a nasza prowadząca chyba nic na ten temat nie wspominała...
_________________
"You know that I adore all the God's creatures and the metaphors they inspire. But these butterflies have got to be murdered!"
Postaw piwo autorowi tego posta
 
     
shawnzy 
shw


Wiek: 37
Do³±czy³: 07 Sie 2009
Posty: 1292
Otrzyma³ 153 piw(a)
Sk±d: Lewin KÅ‚odzki
Wys³any: 2010-10-09, 17:39   

agnieszkaosw, miłe jest to że Wy(gr9) macie dostęp do eportalu, bo macie z dr Nieslerem laby, a gr11 nie, bo mamy wszystko z dr Wydmuch. Z tego co pamiętam to ma wysłać na maila, więc czekajmy :-)
_________________
"Twoja opinia nie ma dla mnie znaczenia, chyba że masz wyższe IQ niż ja." - Walter Bishop, Fringe


Postaw piwo autorowi tego posta
 
 
     
Jerzu 


Wiek: 36
Do³±czy³: 28 Wrz 2009
Posty: 475
Otrzyma³ 48 piw(a)
Sk±d: WrocÅ‚aw
Wys³any: 2010-10-09, 17:49   

farbowanyaniol, co do zadania 8:

    -w systemie dwójkowym liczba jest parzysta, jeśli kończy się 0
    -w ósemkowym i dziesiętnym jest parzysta, gdy kończy się na 0, 2, 4, 6
    -w szesnastkowym, gdy kończy się na 0, 2, 4, 6, 8, A, C, E.

Wystarczy by algorytm sprawdzał powyższe warunki.

W 9 myślę, że wystarczy zwykła pętla sprawdzająca, czy dany znak jest mały i zmieniająca na duży.

Na zadanie 10 też mam pomysł, ale dość długi w opisywaniu.

Edit: Kenzi ma oczywiście rację, poprawiłem błędy.
Ostatnio zmieniony przez Jerzu 2010-10-10, 18:25, w ca³o¶ci zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
     
Wy¶wietl szczegó³y
Lechu 


Do³±czy³: 21 Sie 2009
Posty: 128
Otrzyma³ 39 piw(a)
Sk±d: BolesÅ‚awiec
Wys³any: 2010-10-09, 18:54   

zrobiłem zad 10 :-)
Oto moja propozycja rozwiÄ…zania zadania.
Te trzy liczby wykorzystuję jako pamięć 3x32 bity, tak więc zapis będzie w systemie zero-jedynkowym :)
Ten sposób wykorzystuje maksymalnie 56 bitów przy szachownicy pełnej pionków. Resztę bitów można wykorzystać do przechowania informacji o tym, czyja teraz kolej, czasie gry itp.
Mój pomysł jest taki:
Numerujemy pola, na których się gra od 1 do 32.
Program zaczyna od pierwszego pola. Bierze pierwszy bit, gdy jest to zero przechodzi do drugiego pola, a gdy jedynka to znaczy, że w aktualnym polu jest jakiś pionek. Aby się dowiedzieć jaki to pionek, program bierze kolejny bit (0 - kolor biały, 1-kolor czarny). Teraz program zna adres, czy jest w tym polu pionek oraz jego kolor - więc program "stawia" ten pionek na szachownicy. Następnie zwiększa adres o 1 i znowu sprawdza jaki bit stoi kolejny... i tak aż adres będzie mieć wartość 64.

Np. dla początkowego rozstawienia szachownicy zapis będzie taki:
---11-----11----11----11
11----11-----11----11
---11-----11----11----11
0------0------0------0
----0------0----- 0-----0
10----10----10-----10
---10-----10----10----10
10----10----10-----10

no i algorytm:
int adres = 1;
int bit;
int bit2;
string kolor;

do
{
bit = wczytajNastępnyBit();

while(bit == 0)
adres = adres + 1;

bit2 = wczytajNastępnyBit();

if (bit2 == 0)
kolor = "białe";
else
kolor = "czarne";
postawPionek(adres, kolor);
}while(adres <= 32)

jeśli gdzieś jest bląd pisać!!!
/edit
poprawiony
Algorytm jest po to, aby przedstawić mój pomysł w bardziej przejrzysty sposób :P
Ostatnio zmieniony przez Lechu 2010-10-10, 11:01, w ca³o¶ci zmieniany 4 razy  
Postaw piwo autorowi tego posta
 
 
     
e^x 

Do³±czy³: 09 Sie 2009
Posty: 220
Otrzyma³ 14 piw(a)
Sk±d: Lublin
Wys³any: 2010-10-09, 18:55   

Zad 8, Zad 9 :
zgadzam siÄ™ z Jerzu,
Zad 10:
Pionki można stawiać na 32 polach, więc pierwsza liczba 32-bitowa ( w systemie dwójkowym) ustawienie pionków dla gracza nr 1, a druga to ustawienie pionków dla drugiego gracza, 1-gdy pionek na danej pozycji istnieje i 0-gdy nie istnieje.
W ten sposób jednoznacznie zapisujemy stan gry przy użyciu dwóch zmiennych,
w trzeciej zmiennej możemy np. zapisać czyj ruch następuje.
Potem algorytm czyta te dane i sprawdza warunki i ustala pola na podstawie tych dwóch liczb
(Ale algorytm odczytu to już nie jest nasza sprawa).
Postaw piwo autorowi tego posta
 
 
     
e^x 

Do³±czy³: 09 Sie 2009
Posty: 220
Otrzyma³ 14 piw(a)
Sk±d: Lublin
Wys³any: 2010-10-09, 19:01   

Lechu, sposób zapisu ,a algorytm to chyba dwie różne rzeczy, ale mogę się mylić
Postaw piwo autorowi tego posta
 
 
     
pit3r 
mistrzu


Wiek: 37
Do³±czy³: 04 Sie 2009
Posty: 1463
Otrzyma³ 73 piw(a)
Sk±d: Mielec/WrocÅ‚aw
Wys³any: 2010-10-09, 23:30   

Co do zadania nr 9. Zauważyć należy, że małe litery w kodzie ASCII przyjmują wartości od 97 do 122, duże natomiast od 65 do 90. Wystarczy, więc wczytać literę, zamienić ją na odpowiednią wartość w kodzie ASCII, od tej wartości odjąć 32 i zwrócić odpowiadający otrzymanej wartości symbol. Ot cały algorytm, który można przedstawić w postaci listy kroków lub schematu blokowego ;-)
_________________
"Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota, choć nie jestem pewien co do tej pierwszej." A. Einstein

Go¶æ, pamiÄ™taj jak piszesz
Ostatnio zmieniony przez pit3r 2010-10-10, 00:04, w ca³o¶ci zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
     
Kenzi 
Absinth Drinker


Wiek: 37
Do³±czy³: 06 Wrz 2009
Posty: 822
Otrzyma³ 117 piw(a)
Sk±d: Oborniki ÅšlÄ…skie
Wys³any: 2010-10-10, 00:02   

Jerzu napisa³/a:
farbowanyaniol, co do zadania 8:

    -w systemie dwójkowym liczba jest parzysta, jeśli kończy się 0
    -w ósemkowym i dziesiętnym jest parzysta, gdy kończy się na 0, 2, 4, 6, 8
    -w szesnastkowym, gdy kończy się na 0, 2, 4, 6, 8, A, E.

Wystarczy by algorytm sprawdzał powyższe warunki.


Z małymi zastrzeżeniami:
- w ósemkowym oczywiście nie ma cyfry "8"
- w szesnastkowym jeszcze "C"

A co do 9 - skoro w ASCII to każda litera ma swój kod, więc po prostu pętla sprawdzająca, czy kod znaku należy do 97-122 (chyba, że w programowaniu mamy to zapisane hexem wtedy 61-7A) i odejmujemy od tego kodu wartość 32 (przy hexie 20).
_________________
... Bo spotkać się nie chcę znowu z protestem,
Wracam tam i powiadam, niczym miły facet z gestem:
"Jestem Andrzej!" - wszystko jasne, nie mogłem trafić bardziej:
"Mój boże, to Piasek!"
Postaw piwo autorowi tego posta
 
 
     
pit3r 
mistrzu


Wiek: 37
Do³±czy³: 04 Sie 2009
Posty: 1463
Otrzyma³ 73 piw(a)
Sk±d: Mielec/WrocÅ‚aw
Wys³any: 2010-10-10, 00:10   

jeśli chodzi o 8, nie zagłębiałbym się w szczegóły. W skrócie algorytm wyglądałby wg mnie następująco:
1. wczytaj podstawÄ™ systemu liczbowego "n".
2. wczytaj liczbÄ™ x.
3. jeśli n<>10 zamień daną liczbę na odpowiadającą jej w systemie dziesiętnym(na podstawie "n").
4. Jeśli x mod 2 = 0 - wyświetl "Liczba parzysta". W przeciwnym razie wyświetl "Liczba nieparzysta.

Dzielenie mod(modulo) oznacza dzielenie z resztÄ…. W Pascalu funkcja ta zwraca resztÄ™ z dzielenia.
_________________
"Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota, choć nie jestem pewien co do tej pierwszej." A. Einstein

Go¶æ, pamiÄ™taj jak piszesz
Postaw piwo autorowi tego posta
 
 
     
Kenzi 
Absinth Drinker


Wiek: 37
Do³±czy³: 06 Wrz 2009
Posty: 822
Otrzyma³ 117 piw(a)
Sk±d: Oborniki ÅšlÄ…skie
Wys³any: 2010-10-10, 00:22   

Raczej Pascal miałby większy problem z przekonwertowaniem jednego systemu liczbowego na drugi niż z całością programu. A pisanie całego konwertera to sprawa o niebo dłuższa niż sam program. Rzecz jest raczej prostsza - olać jaki to system liczbowy - dokładnie działający program:
a) sprawdza czy w liczbie nie ma przecinka (bo wtedy automatycznie jest nieparzysta)
b) zamienia liczbę na ciąg znaków (string) i sprawdza czy ostatni znak (taka funkcja znajdzie się na pewno) jest równy 0, 2, 4, 6, 8, A, C, E

BTW: MOD to dokładnie "reszta z dzielenia", a nie "dzielenie z resztą" - zawsze :).
_________________
... Bo spotkać się nie chcę znowu z protestem,
Wracam tam i powiadam, niczym miły facet z gestem:
"Jestem Andrzej!" - wszystko jasne, nie mogłem trafić bardziej:
"Mój boże, to Piasek!"
Postaw piwo autorowi tego posta
 
 
     
pit3r 
mistrzu


Wiek: 37
Do³±czy³: 04 Sie 2009
Posty: 1463
Otrzyma³ 73 piw(a)
Sk±d: Mielec/WrocÅ‚aw
Wys³any: 2010-10-10, 09:07   

Kenzi, przeliczaniem zajmowałby się już odrębny algorytm dlatego napisałem, że nie bd zagłębiał się w szczegóły :-P Jednak moje małe niedopatrzenie. Napisałem algorytm dla wszystkich systemów liczbowych(2,3,5,6... itd.), a że pod uwagę mamy brać tylko (2,8,10,16), w tym przypadku rzeczywiście wystarczy sprawdzać końcówki ;-)
_________________
"Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota, choć nie jestem pewien co do tej pierwszej." A. Einstein

Go¶æ, pamiÄ™taj jak piszesz
Postaw piwo autorowi tego posta
 
 
     
k.i.k.a. 


Do³±czy³a: 10 Sie 2009
Posty: 361
Otrzyma³ 15 piw(a)
Sk±d: Koszalin / WrocÅ‚aw
Wys³any: 2010-11-09, 20:39   

Może ktoś umieścić rozwiązane trzy pierwsze listy? ;-)
Postaw piwo autorowi tego posta
 
 
     
Kociania 
Już nie starościna


Wiek: 36
Do³±czy³a: 09 Sie 2009
Posty: 522
Otrzyma³ 19 piw(a)
Sk±d: WrocÅ‚aw
Wys³any: 2010-11-15, 12:40   

Czy ktoś może pomóc w rozwiązaniu zadania 7 i 8 z listy 2???
_________________
Zamówienia na priv lub poprzez http://my.oriflame.pl/anna-zietkowska
Postaw piwo autorowi tego posta
 
     
Literati 

Do³±czy³a: 02 Wrz 2009
Posty: 31
Otrzyma³ 7 piw(a)
Sk±d: OST/WrocÅ‚aw
Wys³any: 2010-11-15, 13:20   

8/lista 2 Wyrażenie "Jola ma kota" zawiera 12 znaków i teraz w zależności od systemu kodowania mnożymy przez odpowiednią ilość bitów, a potem dzielimy przez 8 i mamy bajty
a) 12*7=84b=10,5B
b) 12*8=96b=12B
c) 12*8=96b=12B
d) UTF-8 od 1 do 6 b od 12 do 72 b=1,5 do 9B
e) 12*2=24b=3B

Co do 7 to mój brat z informatyki na polibudzie zdziwił się, że mamy takie zadanie, bo wymaga skomplikowanych obliczeń.
Postaw piwo autorowi tego posta
 
 
     
Wy¶wietl szczegó³y
Wy¶wietl posty z ostatnich:   
Odpowiedz do tematu
Nie mo¿esz pisaæ nowych tematów
Nie mo¿esz odpowiadaæ w tematach
Nie mo¿esz zmieniaæ swoich postów
Nie mo¿esz usuwaæ swoich postów
Nie mo¿esz g³osowaæ w ankietach
Nie mo¿esz za³±czaæ plików na tym forum
Mo¿esz ¶ci±gaæ za³±czniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Strona wygenerowana w 0,03 sekundy. Zapytañ do SQL: 13