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
dodatkowo (+ 0.5 pkt) za jeden algoryt z ponizszej listy lub szybszy:
MERGE-SORT
QUICK-SORT
COUNT-SORT
#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 (0.5 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)
l. p. | link do pseudokodu | nr indeksu | liczba operacji | zajęta pamięć | liczba punktów |
---|---|---|---|---|---|
1 | txt | test | 3 | 3 | 0 |
2 | txt | 452693 | 4 | 2 | (1.5) |
3 | txt | 452623 | 4 | 2 | 2 |
4 | txt | 452753 | 4 | 2 | (1.5) |
5 | txt | 426395 | 4 | 2 | (1) |
6 | txt | 452617 | 4 | 2 | 2 |
7 | txt | 452158 | 6 | 2 | 1 |
8 | txt | 430722 | 6 | 2 | (1) |
9 | txt | 423902 | 6 | 2 | (1) |
10 | txt | 406128 | 6 | 2 | (1) |
11 | txt | 452659 | 6 | 2 | (1.5) |
12 | txt | 452683 | 6 | 2 | (1.5) |
13 | txt | 452664 | 7 | 2 | 1.5 |
14 | txt | 452616 | 8 | 2 | (1.5) |
15 | txt | 452736 | 9 | 2 | 1.5 |
16 | txt | 452648 | 12 | 2 | 1.5 |