|
Informatyka zaoczna eaie Forum studentów zaocznych informatyki AGH
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Gość
|
Wysł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ść
|
Wysł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
|
Wysł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 |
|
|
|
|
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
|