Materiały do sprawdzianu dostępne są w następującej pozycji Brian Kernighan, Dennis MacAlistair Ritchie - Język ANSI C zakres sprawdzianu jest następujący:
Dodatkowe punkty można uzyskać, za wskazanie błędów na niniejszej stronie.
Dotyczy to stron z aktualnego semestru (uwaga: np. zima-2015 dotyczy semestru zimowego rozpoczynającego się w 2015 roku).
Błędy należy zgłaszać mailowo (należy wskazać link do strony, zrobić zrzut ekranu, na którym należy zaznaczyć błąd i napisać poprawną wersję).
Pierwsza osoba, która zgłosi błąd, otrzymuje punkt.
Maksymalna liczba punktów, jaką można uzyskać tą drogą, to 10 pkt.
O tym, czy coś jest błędem, ostatecznie decyduje prowadzący.
Błędy, które można zgłaszać:
Zadania można zgłaszać o ile:
Napisz program, który:
#include<stdlib.h>
int * tab;
int rozmiar = 10;
tab = (int *) calloc(rozmiar, sizeof(int)); /* dynamiczna alokacja tablicy */
/* tutaj można używać tablicy */
free(tab); /* zwolnienie pamięci */
#include<time.h>
#include<stdlib.h>
srand((unsigned) time(NULL));
int liczba = rand() % 100 + 1; //1-100
SELECT-SORT
INSERT-SORT
BUBBLE-SORT
MERGE-SORT
QUICK-SORT
COUNT-SORT
dodatkowo (+ 1 pkt) za każdy kolejny algorytm sortujący o złożoności O(n2)
lub szybszy.
#include<time.h>
clock_t start, stop;
double czas;
start = clock();
sort();
stop = clock();
czas = (stop - start)/(double)CLOCKS_PER_SEC;
rozmiar: 10^1
niemalejaco:
1 2 3 4 5 6 7 8 9 10
INSERT-SORT: 0.0
1 2 3 4 5 6 7 8 9 10
BUBBLE-SORT: 0.0
1 2 3 4 5 6 7 8 9 10
losowo:
10 3 6 9 7 2 4 1 5 8
INSERT-SORT: 0.0
1 2 3 4 5 6 7 8 9 10
BUBBLE-SORT: 0.0
1 2 3 4 5 6 7 8 9 10
nierosnaco:
10 9 8 7 6 5 4 3 2 1
INSERT-SORT: 0.0
1 2 3 4 5 6 7 8 9 10
BUBBLE-SORT: 0.0
1 2 3 4 5 6 7 8 9 10
rozmiar: 10^2
niemalejaco:
INSERT-SORT: 0.0
BUBBLE-SORT: 0.6
losowo:
INSERT-SORT: 0.1
BUBBLE-SORT: 0.5
nierosnaco:
INSERT-SORT: 0.5
BUBBLE-SORT: 60+
rozmiar: 10^3
. . .
Napisz procedurę (1 pkt), która wypisuje pierwiastki równania kwadratowego
Wejście:
A * x2 + B * x + C = 0
A, B, C, x ∈ R
Wyjście:
A B C
gdzie
L x1 x2
L
oznacza liczbę rozwiązań, a x1 x2 ... xL
poszczególne rozwiązania ułożone niemalejąco
Przykład:
ZAŁĄCZNIKI:
1 0 0
1 0 //liczby całkowite wypisują się bez kropki dziesiętnej
-2 3 -1
2 0.5 1 //wyniki posortowane niemalejąco
0 1 2
1 -2
0 0 1
0
0 0 0
R //oznacza nieskończenie wiele rozwiązań (cały zbiór liczb rzeczywistych)
Plik z kodem źródłowym (*.c)
Napisz program, który zamienia dwie zmienne miejscami nie korzystając z trzeciej zmiennej (1 pkt)
Operatory użyte w programie, a których nie używaliśmy na zajęciach, należy zdefiniować na początku pliku z pseudokodem w następujący sposób:
PRZYKŁAD:
// a SHIFTL b – operator, który reprezentację bitową liczby a przesuwa w lewo o b bitów obcina bity z lewej strony a z prawej dopisuje zerami
Należy też podać tablicę priorytetów operatorów użytych w pseudokodzie.
PRZYKŁAD:
Linijka rozpoczynająca się symbolami //PRIORYTET OPERATORA
// ()
// / * DIV MOD
// + -
// SHIFTL
// =
//
oznacza komentarz w pseudokodzie do końca linii.
Proszę również określić liczbę operacji w Państwa rozwiązaniu.
PRZYKŁAD:
Rozwiązanie o najmniejszej liczbie operacji otrzyma dodatkowy punkt (1 pkt).
x = a //1 przypisanie
a = b //1 przypisanie
b = x //1 przypisanie
//razem 3 operacje
ZAŁĄCZNIKI:
Plik z kodem źródłowym (*.c)
Plik z pseudokodem(*.txt)
link do pseudokodu | nr indeksu | liczba operacji | zajęta pamięć | liczba punktów |
---|---|---|---|---|
txt | test | 3 | 3 | 0 |
txt | 434713 | 4 | 2 | (2) |
txt | 434709 | 4 | 2 | (2) |
txt | 440546 | 4 | 2 | (2) |
txt | 434766 | 4 | 2 | (3) |
txt | 440547 | 4 | 2 | (2) |
txt | 434787 | 6 | 2 | 1 |
txt | 434806 | 6 | 2 | 1 |
txt | 434624 | 6 | 2 | (1) |
txt | 434797 | 6 | 2 | 1 |
txt | 394161 | 6 | 2 | (1) |
txt | 434607 | 6 | 2 | (1) |
txt | 434809 | 6 | 2 | (1) |
txt | 434704 | 7 | 2 | (1) |
txt | 434665 | 7 | 2 | (1) |
txt | 434750 | 8 | 2 | (1) |
txt | 426203 | 8 | 2 | (1) |
txt | 440058 | 8 | 2 | (1) |
txt | 434822 | 9 | 2 | (1) |
txt | 434758 | 9 | 2 | (1) |
txt | 434755 | 11 | 2 | (1) |
txt | 434716 | 11 | 2 | (1) |