HASZÓWKA, HASHHH, HASHHH 2


HASHHH 2

1 Czy pętla i=0;while(i<100) i++; zatrzyma się i i=100
2 Czy polecenie printf w pętli j=1; while(j<1) printf("asd"); wykona sie dokłądnie 1 raz
3 Czy 5/2||6%2 jest =0
4 czy indentyfikatory komputer i KOMPUTER są tożsame
5 czy _zmienna jest poprawnym indentyfikatorem
6 czy literały tekstowe moga zawierać słowa kluczowe
7 czy poprawna kompilacja gwaratuje poprawne działanie programu
8 czy program skompiluje bez deklaracji wszytkich zmiennych
9 czy 5*4/2*2 jest =5
10 czy ta deklaracja jest poprawna int i=0, j=0;
11 czy ta deklaracja jest poprawna float g=0; h=0;
12 czy algorytm blokowy jest jednoznacznym odwzorowaniem programu (niepamietam jak to było dokładnie)

13) pytanie o definiowanie stałej symbolicznej. o ile pamiętam tam był niepotrzebny znak =. przykładowa prawidłowa postać:
#define PI 3.14

co do pytania 12: chodziło nie tyle o algorytm blokowy co o składnię MBNF - czy jest ona jednoznaczna.

HASHHH 3


1.Czy warunki Pre i Post są niezbędnymi instrukcjami do poprawnego działania funkcji
2.Deklaracja int *x; Czy pod zmienną x mogą być przechowywane adresy (komórek) pamięci
3.Czy wyrażenie przyjmie wartość 3 (nie pamiętam go dokładnie to była pętla for..) w każdym razie z moich obliczeń wynikało, że NIE przyjmie wartości 3

I jedno co jeszcze pamiętam, była funkcja na końcu której było return(0);printf("coś tam");
I było pytanie czy dany komunikat się wyświetli.

Czy petla for(i=0; ; i++) jest poprawnie zapisana?

czy można odczytywać dane z niezaicjowanego strumienia?
- czy w funkcjach zmienne globalne przesłaniają lokajne?
- zadanko mniej więcej takiej treści:
int y, int *x, *x=1, *x=*x-1 y=(*x==0) czy y ma wartość 1?
- pamiętam, że jeszcze coś z getcharem albo putcharem, czy któryś jest równoznaczny z jakimś wyrażeniem
- było jeszcze pytanie o funkcję printf, bodajże o to, czy kopiuje ona zwykłe znaki tylko do stdout, czy może też gdzie indziej


HASHH 4

Odpowiedzi moje, więc proszę o b. szybką korekte.
Czy by wypełnić zerami tablicę int t[10] można skorzystać z instrukcji for(i=1; i<=10; i++) t[i]=0;?
nie(wyraz zerowy nie zostanie przypisany, ale w zasadzie, jeśli nie jest przypisywany to ma standardowo 0 lub null)
Czy jednym z zadań zarządcy okien jest rozmieszczenie okien klientów na ekranie?
tak(chociaż czemu tam jest klientów w liczbie mnogiej?)
Czy można wykonać int t[5][7] (była jeszcze wersja t[5,7]); f(t) jest mamy funkcję void f (int t[ ][7])?
tak(chociaż głowy nie dam)
Czy jesli wiemy, ze zlicz jest formatu int, zlicz = (int) 1.6 + (int) 1.7 i zlicz = 1.6 + 1.7 to to samo?
nie
int tab[3]={2,3,4}; int *wsk; printf("%d", *wsk); czy to wyświetli 4?
nie
Czy dla t[10]][30] poprawne jest t[2,0]= ' t ' ?
nie
Czy float *ti [4] jest rownowazne z float (*ti) [4]?
nie
Czy char t [7] = {' t ', ' a ', ' b '}; jest poprawne?
tak
Czy char t1 [4] = {' t ', ' a ', ' b '}; jest równoznaczne z char t1 [4] = "tab"; ?
cięzko powiedzieć-nie wiem jak to jest ze znakiem null w I przypadku, ale kompilator czasami sam dodaje, ale dałbym odp nie...
Czy double wart = 5.67; int inna = (int) wart; jest przykładem konwersji typów?
tak

ich odp-wyglądają poprawnie:
1. [Pętla z pierwszego slajdu 6 wykładu] Czy ta pętla wyzeruje całą tablicę?
TAK
2. int tablica[10][30]; Czy ta tablica ma 300 elementów?
TAK
3. char tablica[10][30]; tablica[2][5]='t'; Czy instrukcja jest poprawna?
TAK
4. int tablica[]; Czy można w ten sposób przekazać tablicę do funkcji?
TAK
5. int oceny; Czy *(oceny+2) i oceny[2] jest jednoznaczne?
TAK
6. Czy zadaniem rzutowania jest kowersja liczby z jednego typu na drugi?
TAK
7. (int) 0.1 * 17; Czy to da wynik 0?
TAK (w 7 i 8 wartości przykładowe, bo kto by wszystkie pamiętał )
8. (float) ( 5 / 8 ); Czy to da wynik 0?
TAK
9. Czy można (jakieś dodawanie wskaźników czy tam tablic)?
NIE
10. int funkcja(int a) {a=0; return0;} Czy podana funkcja jest formalnie poprawna?
TAK (formalnie poprawna, a ze nic nie robi, to juz inna sprawa )
11. Czy na jednym serwerze X Window może być uruchomionych kilka menedzerow okien?
NIE
12. Czy można uruchomić X Window za pomocą polecenia xclock lub xcalc?
NIE


1.Czy system Xwindow nadaje się do pracy w środowisku sieciowym?
2. protokuł kontaktu serwer-klient to protokuł X?
3. wyłączenie kontroli dostępu do serweraX wykonuje się poleceniem host+ ?
4. Czy takie wywołanie funkcji jest poprawne f(t); dla void f(int
*t[..(tu coś było, ale kolega nie pamięta) .] )
5. czy taka inicjacja jest poprawna char t[7] = "tablica";
6. czy float *tab[15]; deklaruje wskaźnik na tablice piętnastu elementów
typu float?

Moje odp.
1) tak
2) tak - w zasadzie cholera wie, może jakieś sugestie?
3) nie (xhost +)
4) chyba nie, bo powinno być f(&t), ale ciężko powiedzieć
5) nie (brak miejsca na null)
6) nie(*(tab)[15] tak powinno być)

Cytuj:

Czy by wypełnić zerami tablicę int t[10] można skorzystać z instrukcji for(i=1; i<=10; i++) t[i]=0;?
nie(wyraz zerowy nie zostanie przypisany, ale w zasadzie, jeśli nie jest przypisywany to ma standardowo 0 lub null)


Po części masz racje, ale chodzi chyba przedewszyskim o to że do tab[10] zostanie przypisane 0 a takiego elementu nie ma 0x01 graphic

Moja odpowiedź: NIE

Cytuj:

Czy jednym z zadań zarządcy okien jest rozmieszczenie okien klientów na ekranie?
tak(chociaż czemu tam jest klientów w liczbie mnogiej?)


Myślę, że to jedno z pytań p Muszyńskiego na które można różnie odpowiadać w zależności od podejścia do tematu 0x01 graphic
Ale zgodnie z treścią wykładu slowman masz racje 0x01 graphic

Moja odpowiedź: TAK

Cytuj:

Czy można wykonać int t[5][7] (była jeszcze wersja t[5,7]); f(t) jest mamy funkcję void f (int t[ ][7])?
tak(chociaż głowy nie dam)


Wersja t[5][7] jest oczywiście poprawna(znamy skrajny wymiar, a nazwa tablicy jest wskaźnikiem na pierwszy element), ta druga już raczej nie.
Moja odpowiedź: TAK

Cytuj:

Czy jesli wiemy, ze zlicz jest formatu int, zlicz = (int) 1.6 + (int) 1.7 i zlicz = 1.6 + 1.7 to to samo?
nie


Tutaj odpowiedź jest chyba bardzo oczywista, że to nie jest to samo. Następuje rzutowanie(konwersja:P?) i raz mamy wynik 3 a raz dwa 0x01 graphic

Moja odpowiedź: NIE

Cytuj:

int tab[3]={2,3,4}; int *wsk; printf("%d", *wsk); czy to wyświetli 4?
nie


Tego nie za bardzo rozumiem bo chyba ten wskaźnik tutaj nie jest powiązany z tablicą w żaden sposób? Ale pewnie chodzi o to że on wskazuje na początek tablicy więc nie.
Moja odpowiedź: NIE

Cytuj:

Czy dla t[10]][30] poprawne jest t[2,0]= ' t ' ?
nie


Złe odwołanie do elementu tablicy.
Moja odpowiedź: NIE

Cytuj:

Czy float *ti [4] jest rownowazne z float (*ti) [4]?
nie


Tutaj nie będę sie rozpisywał. Jak ktoś chce to 8 strona wykładu nr VI.
Moja odpowiedź: NIE

Cytuj:

Czy char t [7] = {' t ', ' a ', ' b '}; jest poprawne?
tak


Tutaj przed i po każdej literze jest spacja ale to chyba przez pomyłkę. Poza tym jest ok.
Moja odpowiedź: TAK

Cytuj:

Czy char t1 [4] = {' t ', ' a ', ' b '}; jest równoznaczne z char t1 [4] = "tab"; ?


Tutaj ciężko wyczuć... Bo efekt "wizulany" przy wypluwaniu na ekran ten sam. Jednak. raz mamy na końcu 0 a raz \0 -tak mi się wydaje przynjamniej
Moja odpowiedź:NIE

Cytuj:

Czy double wart = 5.67; int inna = (int) wart; jest przykładem konwersji typów?
tak


Wydaje mi się, że to jest oczywiste, aczkolwiek może jest haczyk?
Moja odpowiedź: TAK

Niestety nie mam więcej czasu już. Co do kolejnych pytań praktycznie w 100% zgadzam się z odp slowman.
Wątpliwości jedyne to:

Cytuj:

4. int tablica[]; Czy można w ten sposób przekazać tablicę do funkcji?
TAK


Troche niezrozumiałe pytanie dla mnie. chodzi o to ze robimy funkcja(int tablica[]);>? Trochę to dziwne 0x01 graphic

Cytuj:

2. protokuł kontaktu serwer-klient to protokuł X?


Tak.

Cytuj:

czy taka inicjacja jest poprawna char t[7] = "tablica";


Hmm.... Kompilator nic raczej nie wypluje, a program też powinien ruszyć. Kwestia co ro znaczy poprawna inicjacja.

HASHH 5

  1. czy kod #include "modul.h" spowoduje, ze linker dolączy plik modul.h do programu - nie, robi to praprocesor;
    2) czy w każdym module powinna znajdować sie funkcja main - nie.
    3) czy układ graficzny programu pomaga w minimalizacji ilości błędów? tak.
    4) czy asercje pomagają w unikaniu błędow - chyba nie /przypuszczam, ze mam tu błąd/
    5) czy po wykonaniu kodu: int main () { int *z1, *z2; z1=(int*) malloc (4); z2=z1++; } powstaną nieużytki - /czy ktos wie, co to sa nieużytki?/ - wg mnie powstaje cos 'złego', bo z1 wskazuje na pamiec niekoniecznie nasza, ale po wyniku mojego hasha wnioskuje, ze tutaj nie powstaje nieużytek. aaa- zakładamy, ze int ma 4 bajty;
    6) czy po wykonaniu kodu: int main () {int *z1; z1=(int*) malloc(4); z1++; } powstaje nieużytek? tutaj na pewno tak.
    7) czy wywolanie na diablo: cc -Xc main.c modul.o spowoduje, ze linker dołaczy modul.o do programu - tak;
    8) czy asercje powinny sprawdzac warunki POST - nie;
    9) czy każdy moduł powinien zawierac opis PRE i POST zawartych w nim funkcji? wydaje mi sie, ze tak. pytanie o zakres słowa 'powinny';
    10)czy: int *wsk; wsk=(int*) malloc (4); spowoduje zaalokowanie zmiennej dynamicznej int i przypisanie jej adresu do wskaznika wsk - tak;

4) czy asercje pomagają w unikaniu błędow - NIE - tak co najmniej dałem i chyba nie za to mi odjęli 0x01 graphic

5) czy po wykonaniu kodu: int main () { int *z1, *z2; z1=(int*) malloc (4); z2=z1++; } NIE- nadal mamy wskaźnik na ten obszar zalockowanej pamięci
6) czy po wykonaniu kodu: int main () {int *z1; z1=(int*) malloc(4); z1++; } NIE - można cofnąć o 1 (--z1) i już możesz skasować wskaźnik

11) Czy skasowanie pamięci nie przydzielonej na pewno spowoduje błąd? TAK -pytanie wyglądało podobnie:)

nastepne: czy w unixach parametry wywolania programu zapisuje się z + na poczatku; - nie
nastepne2: czy przy wywołaniu programu: prog kubus.txt 17 argv[3] bedzie wskazywac na 17? nie, argv[3] jest poza zakresem;

HASHH 6

  1. Czy sortowanie polega na wyszukiwaniu w tablicy elementu wzorcowego? NIE
    2. Czy wyszukiwanie binarne stosuje się tylko na uporządkowanej strukturze danych? TAK
    3. Czy sortowanie przez wstawianie polega na braniu danych ze struktury wejściowej i wstawianie ich w odpowiednim miejscu w strukturze
    wejściowej? TAK
    4. Czy przy użyciu listy jednokierunkowej przy użyciu iteracji można łatwo przeglądać elementy listy zarówno od początku, jak i od końca listy? NIE
    5. Czy przy użyciu listy dwukierunkowej przy użyciu iteracji można łatwo przeglądać elementy listy zarówno od początku, jak i od końca listy? TAK
    6. Czy usuwanie elementu z listy jeśli mamy podany wskaźnik poprzedzający ten element jest łatwiejsze dla listy dwukierunkowej niż
    dla listy jednokierunkowej? NIE
    7. Czy podana definicja struktury poprawnie definiuje listę? typedef struct lista {int dana;}t_elem; NIE
    8. Czy w każdej liście można wskazać jej koniec? NIE
    9. Czy w każdej liście kołowej element ostatni wskazuje na samego siebie? NIE
    10. Czy Abstrakcyjne Typy danych określa się za pomocą operacji, jakie można na nich wykonać? TAK
    11. Czy jako implementację stosu można użyć tablicy statycznej? TAK
    12. Czy do stosu przydatne są funkcje dodaj_poczatek i usun_koniec? NIE
    13. Czy stos jest przykładem kolejki FIFO? NIE
    14. Czy stosowanie listy z głową ułatwia dodawanie elementu na koniec i początek listy? TAK
    15. Czy usuwanie wskazanego elementu jest łatwiejsze przy liście dwukierunkowej niż jednokierunkowej? TAK
    16. Ostatniego pytanie nie pamiętam niestety:P

Co do pytań z hashówki to mieliśmy w poprzedni czwartek. Pytania były praktycznie identyczne. Jedyne różnice to:
Czy w liście dwukierunkowej ostatni element zawsze wskazuje na pierwszy? TAK
Czy w liście z głową, głowa posiada infomację o długości i końcu listy? TAK
Czy w realnym życiu kolejka w supermarkecie, odpowiadać może kolejce FIFO? TAK

1. Czy w stosie mamy dostęp tylko i wyłącznie do pierwszego elementu?
2. Czy w stosie typu lista, użyteczne są funkcje dodaj_element, usun_element?
3. Czy w liście jednokierunkowej można, przy użyciu rekurencji przeglądać elementy zarówno do początku jak i od końca?
4. To samo co wyżej tylko w dwukierunkowej
5. W listach z głową nie można wstawiać listy w środek innej listy
6. Czy sortowanie bąbelkowe polega na przestawianiu sąsiadujących elementów?
7. Czy typedef struct elem{ int dana; struct elem * nastepny;} t_elem; jest prawidłowo zainicjowaną strukturą dynamiczną?
8. Czy sortowanie pomaga w wyszukiwaniu elementów, czy służy tylko do bardziej przejrzystej prezentacji danych?
9. Czy lista kołowa może być pusta?
10. Czy abstrakcyjne typy danych to takie, których nie da się zaimplementować?
11. Czy ?usuwanie/wstawianie? elementu zza wskazanego elementu listy jest łatwiejsze dla listy jednokierunkowej czy dwukierunkowej?
12. Czy stos jest przykładem abstrakcyjnych typów danych?

ad1 TAK
ad2 TAK (?)
ad3 NIE
ad4 TAK
ad5 NIE (? hmm w sumie rzeczy dlaczego nie?)
ad6 TAK
ad7 CHYBA TAK, ale nie wiem, czy w tym nie ma haczyka, tzn "zainicjowaną strukturą dynamiczną" - co to znaczy?
ad8 sortowanie sluzy uporzadkowaniu, a wtedy latwiej cos znalezc , samo w sobie nie sluzy sortowaniu, czyli odp NIE
ad9 TAK (np. na poczatku)
ad10 NIE
ad 11 latwiejsze dla jednokierunkowej - mniej operacji...
ad 12 TAK

"Czy w liście dwukierunkowej ostatni element zawsze wskazuje na pierwszy? "
"TAK" błąd w ostatnim. ostatni element w prawidłowo obsługiwanej liście wskazuje na null. ktoś pomylił ją z listą kołową!!!!!!!!!!!!!!!!!

Uff. Udało mi się w końcu przeczytac te pytania i wątpliowaści mam do:
5. W listach z głową nie można wstawiać listy w środek innej listy
Można, ale trzeba napisać funkcje, która zmieni coś w główce pierwszej (tej do której wstawiamy) i usunie główke nr 2 (wstaiwaną). Zgadzacie się, a może nie?
8. Czy sortowanie pomaga w wyszukiwaniu elementów, czy służy tylko do bardziej przejrzystej prezentacji danych?
Pomaga, bo można potem zastosować sortowanie binarne, ale ... no właśnie-to tak jak pytanie "czy ładnie wytabowany kod zmniejsza ilość błędów w kodzie"-na haszówce odpowiedź była tak 0x01 graphic

9. Czy lista kołowa może być pusta?
Nie?-ale w zasadzie nie wiem...

3. Czy w liście jednokierunkowej można, przy użyciu rekurencji przeglądać elementy zarówno do początku jak i od końca? tak

http://www.easy-share.com/1903352512/100NIKON.rar
http://www.sendspace.com/file/q2tw9m

http://rapidshare.com/files/187362765/100NIKON.rar.html

(nie wiem, który wchodzi, więc wrzucam ręcznie :P)

1. listę dynamiczną można utworzyć w oparciu o następującą strukturę: typedef struct elem {int dana; struct elem nastepny;} t_elem;
2. czy można wykorzystać listę jednokierunkową do realizacji stosu?
3. element zwany wartownikiem zwykle umieszcza się na początku lub na końcu listy
4. dodanie elementu przed wskazany element listy dwukierunkowej jest prostsze niż w przypadku listy jednokierunkowej
5. czy stos jest przykładem abstrakcyjnej struktury danych?
6. złożoność czasowa algorytmu sortowania bąbelkowego wynosi O(2n)
7. czy korzystając z listowej reprezentacji stosu do jego obsługi nadają się funkcję obsługi listy dodajpoczatek i usun_koniec?
8. przez abstrakcyjny typ danych rozumiemy typ danych którego nie da się zaimplementować
9. usunięcie z listy elementu, do którego mamy wskaźnik wymaga przeszukiwania listy?
10. wyszukiwanie binarne można zastosować tylko w przypadku uporządkowanej struktury danych
11. sortowanie bąbelkowe polega na porównywaniu dwóch sąsiednich elementów i zamianie jej kolejności, jeżeli zaburza ona porządek, w jakim się sortuje tablice
12. czy stos jest przykładem kolejki chronologicznej (FIFO)?
13. Czy kolejki FIFO realizujemy w realnym świecie robiąc zakupy?
14. Ostatni element listy kołowej wskazuje na pierwszy element tejże listy
15. efektywność metody „quick sort” uwidacznia się szczególnie mocno w przypadku małych tablic?
16. czy w stosie użytkownik ma dostęp wyłącznie do elementu na szczycie?

Odpowiedzi (różnych osób) do powyższych pytań:

1. Nie brak wskaźnika
2. Pewnie
3. Tak ?? ja bym dał, że na końcu raczej
4. Tak
5. Tak
6. Nie
7. Nie
8. Nie ??
9. Tak wskaźnik w sumie za dużo nie pomoże bo trzeba jakoś tą listę później scalić
10. Nie ??
11. Tak
12. Nie
13. Tak
14. Tak
15. Nie ?? pytanie czy jemu chodzi o widoczną różnicę (odp. NIE) czy o "błyskawiczność" sortowania w przypadku małych tablic (odp. byłaby - TAK)
16. Tak

1. NIE w tym przypadku (brak wskaźnika),
2. TAK,
3. TAK cytat z wykladu: "np. lista z wartownikiem na poczatku lub na koncu jak ponizej",
4. TAK,
5. TAK,
6. NIE, wikipedia:"Sortowanie bąbelkowe (ang. bubble sort) - prosta metoda sortowania o złożoności czasowej O(n^2) i pamięciowej O(1)",
7. NIE (tak mi się zdaje, bo przecież z tablicy nie można usuwać "komórek")
8. NIE,
9. NIE,
10. TAK,
11. TAK, znowu wikipedia,
12. NIE,
13. TAK,
14. TAK,
15. TAK, ale nie daje sobie nic uciąć,
16. TAK.



Wyszukiwarka