Forum Informatyka zaoczna eaie Strona Główna Informatyka zaoczna eaie
Forum studentów zaocznych informatyki AGH
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

ASD zadania 03.06.2007 kolos

 
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka zaoczna eaie Strona Główna -> Algorytmy
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Gość







PostWysłany: Wto 22:58, 05 Cze 2007    Temat postu: ASD zadania 03.06.2007 kolos

Cytat:
1.Zbiór 26 liter 'a'..'z' zaimplementowano na 4 bajtowej zmiennej typu integer. Obecność w zbiorze litery 'a' jest równoznaczna z ustawieniem na jeden najmłodszego bitu, itd. Napisać w Pascalu funkcję zwracającą moc zbioru.
2. Dana jest tablica rekordów posortowanych rosnąco wg pola nazw.
osoba = record
nazw : string[30];
imie : string[20];
end;
Napisać w Pascalu efektywną funkcję zwracjącą wartość true jeżeli w tablicy występuje osoba o zadanym nazwisku i imieniu.
3.Napisać procedrę sorującą rosnąco tablicę wg pola imię metodą prostego wybierania.
4.Dany jest stos elementów typu integer zaimplementowany jako jednokierunkowy łańcuch odsyłaczy. Napisać stosowne definicje oraz zaimplementować w Pascalu funkcję usuwającą wszystkie elementy ze stosu.
5.Dane jest niepuste drzewo binarne. Napisać w Pascalu funkcję, która otrzymując wskazanie na korzeń drzewa i wskazanie na dowolny węzeł tego drzewa zwraca wartość true jeżeli węzeł należy do prawego poddrzewa.
6.Dana jest tablica rozproszona t:array[0..max-1] of element, gdzie element jest typu:
element = record
klucz : string;
zajęty : boolean;
end;
Dostępne są funkcjenumeryzacji klucza fn(klucz:string):integer oraz funkcja rozpraszająca hash(kn,i:integer):integer. Napisać funkcję zwracającą wartość true w przypadku gdy rekord o zadanym kluczu występuje w tablicy więcej niż jeden raz.
7.Dana jest kolejka zaimplementowana przy pomocy tablicy:
kolejka = record
p,k : integer; {wskazuje na pierwszy i ostatni element}
tab: array[0..9] of integer;
end;
Napisać w Pascalu funkcję zwracającą rozmiar kolejki.

8.Dany jest graf skierowany przechowywany jako macierz połączeń:
graf = array[1..max,1..max] of boolean. Napisać w Pascalu funkcję zwracającą wartość true gdy każda krawędź w grafie ma krawędź przeciwną.
Powrót do góry
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Gość







PostWysłany: Wto 23:00, 05 Cze 2007    Temat postu:

Kod:
to są zadanka z kolosa
             Jak ktoś ma porawne w 100% rozwiązanie albo pomysł jak rozwiązać niech pisze - pomoże innym i sobie :)
[/quote]
Powrót do góry
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
mapu
Oj kiepsko



Dołączył: 19 Mar 2007
Posty: 8
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Śro 9:14, 06 Cze 2007    Temat postu:

Nie bede zamieszczal gotowych zadan, ale idee rozwiazan.
Jak macie jakies pytania to piszcie.

ad 1. Zmienna typu int (czyli liczba 0 - 67108863 dziesietnie).
Liczba binarnie wyglada np. tak:
00000000000000000000001001 - to znaczy ze w zbiorze sa literki 'a' i 'd'
Moc obliczamy na przyklad tak:
a). dzielimy modulo nasza liczbe przez 2 (rownoznaczne z otrzymaniem wartosci bitu najbardziej po prawej) i sprawdzamy czy wynik = 1, jezeli tak to zwiekszamy licznik mocy.
b). dzielimy zwyczanie liczbe przez 2 (to jest jakby przesuniecie w prawo o 1 bit)
c). powtarzamy w petli 26 razy i zwracamy licznik mocy na koncu.

ad 2. Ja bym to zrobil tak:
a). Poniewaz rekordy sa uporzadkowane rosnaco, to mozna zastosowac wyszukiwanie polowkowe. Implementujemy tak aby wskaznik wskazywal na pierwsze nazwisko (jezeli wystepuje).
b). Teraz prosto. Nie wiemy jak imiona sa poukladane, dlatego musimy przejsc liniowo. Czyli caly czas sprawdajac od miejsca skrzyzowana wskaznikow if(nazw == szukaneNazwisko) jednoczenie sprawdzamy if(imie == szukaneImie) jezeli tak to zwracamy true.
Do tego pierwszego warunku z nazwiskiem w else bedzie return false - to znaczy skonczyly nam sie nazwiska, a nie znalezlismy imienia.

ad 7. Nie wiem czy dobrze rozumiem, ale rozmiar to chyba bedzie po prostu: return k ?
Niech mnie ktos poprawi.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka zaoczna eaie Strona Główna -> Algorytmy Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
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

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin