Archiwum na sierpień 30th, 2007
Polecenie
Przykład sortowania przez wstawienie rekordów.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| PROGRAM tablica;
USES CRT;
CONST
N = 3;
TYPE
PRACOWNIK = RECORD
NAZWISKO: STRING;
PLACA: REAL;
END;
VAR
BAZA : Array[1..N] of PRACOWNIK;
{POM: PRACOWNIK;}
p, i : BYTE;
BEGIN
CLRSCR;
WRITELN('BAZA DANYCH');
FOR i := 1 TO N DO
BEGIN
WRITE('Nazwisko: ');READLN(BAZA[i].NAZWISKO);
WRITE('Placa: ');READLN(BAZA[i].PLACA);
END;
TEXTCOLOR(YELLOW);
WRITELN('Sortowanie wstawienie z wartownikiem:');
TEXTCOLOR(WHITE);
FOR i:=2 TO N DO
BEGIN
BAZA[0] := BAZA[i];
p := i -1;
WHILE BAZA[0].NAZWISKO < BAZA[p].NAZWISKO DO
BEGIN
BAZA[p+1] := BAZA[p];
p := p-1;
END;
BAZA[p+1] := BAZA[0];
END;
WRITELN('Posortowane:');
FOR i := 1 TO N DO
WRITELN('Pracownik [',BAZA[i].NAZWISKO,'] zarabia: ', BAZA[i].PLACA:5:2, ' zl');
WRITELN('Pacnij buttona aby wyjsc...');
READKEY;
END. |
Brak komentarzy »
Polecenie
Wylosować elementy do tablicy prostokątnej X na Y. Obliczyć sumę wszystkich elementów dodatnich, ujemnych i zliczyć ile ich jest. Zliczyć ile jest elementów równych zero. Na koniec zapytać czy powtórzyć całość, dopuszczalne znaki to T/t/n/N. Program zabezpieczyć hasłem.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
| PROGRAM macierz;
USES crt;
CONST
X=5;
Y=2;
VAR
t: ARRAY[1..X,1..Y] OF Integer;
ix, iy, id,iu,sd, su, sz :integer;
pass : string;
k :char;
BEGIN
CLRSCR;
REPEAT
WRITELN('Podaj haslo:');
READLN(pass);
UNTIL pass = 'lol';
REPEAT
RANDOMIZE;
FOR iy:=1 TO Y DO
FOR ix:=1 TO X DO
t[ix,iy]:=RANDOM(9)-RANDOM(4);
iu:=0;
id:=0;
sz:=0;
su:=0;
sd:=0;
FOR iy:=1 TO Y DO
FOR ix:=1 TO X DO
BEGIN
IF t[ix,iy] >= 0 THEN
BEGIN
IF t[ix,iy] > 0 THEN
BEGIN
sd:=sd+1;
id:=id+t[ix,iy];
END
ELSE
sz:=sz+1;
END
ELSE
BEGIN
su:=su+1;
iu:=iu+t[ix,iy];
END;
WRITE(t[ix,iy],', ');
END;
WRITELN;
WRITELN('Ilosc dodatnich: ',sd,'. Ich suma: ',id);
WRITELN('Ilosc zer: ',sz);
WRITELN('Ilosc ujemnych: ', su,'. Ich suma: ',iu);
WRITELN;
REPEAT
WRITELN('Kontynuowac T/N? ');
k:=UPCASE(READKEY());
IF (k <> 'N') AND (k <> 'T') THEN
WRITELN('Zly klawisz!');
UNTIL (k='N') OR (k='T');
UNTIL (k='N') ;
END. |
Brak komentarzy »
Polecenie
Wczytaj początek przedziału i jego koniec. Wyświetl liczby z przedziału za pomocą pętli FOR, UNTIL, WHILE:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| PROGRAM przedzial;
USES CRT;
VAR
a,b,i:integer;
BEGIN
CLRSCR;
REPEAT
WRITELN('Podaj poczatek przedzialu: ');
READLN(a);
WRITELN('Podaj koniec przedzialu: ');
READLN(b);
IF a>=b THEN
WRITELN('Poczatek musi byc < od konca!');
UNTIL b>a;
WRITELN('Petla FOR:');
FOR i:=b DOWNTO a DO
WRITELN(i);
i:=b;
WRITELN('Petla REPEAT:');
REPEAT
WRITELN(i);
i:=i-1;
UNTIL i<a ;
i:=b;
WRITELN('Petla WHILE:');
WHILE i>=a DO
BEGIN
WRITELN(i);
i:=i-1;
END;
END.</a> |
Brak komentarzy »
Kilka zadanek z Asemblera - rozwiązujemy je na ćwiczeniach z UTK i AK.
Zadanie 1:
1
2
3
4
5
6
7
8
9
10
| LXI B, CD22
MOV A, B
LOOP: ADD A, B
JC LOOP
MOV L, A
MVI H, AC
INX H
SPHL
PUSH B
XTHL |
Odpowiedzi:
HL=CD22
SP=ACCD
BC=CD22
A=CE
CY=0
[SP]=CF
[SP+1]=AC
Zadanie 2:
1
2
3
4
5
6
7
8
9
10
11
| MVI A, 99
LXI H, 0EAF
MOV M, A
LXI D, 9FFF
MOV E, L
INX H
MOV C, L
LOOP: INR C
JZ LOOP
MOV L, C
MOV M, A |
Odpowiedzi:
HL=0EB1
A=99
DE=9FAF
C=B1
CY=0
[0EB1]=99
[0EAF]=99
Kolokwium - grupa A:
1
2
3
4
5
6
7
| LXI H, EDCB HL=EDCB
MVI B, 02 B=02
MOV A, B A=02
ADD A A=04
ORA B A=06
MOV H, A HL=06CB
MOV M,H M(HL)=06 |
Kolokwium - grupa B:
1
2
3
4
5
6
7
| LXI H, AAEE HL=AAEE
MVI C,11 C=11
MOV A,C A=11
ORA C A=11
ADD A A=22
MOV L,A HL=AA22
MOV M,L M(HL)=22 |
Egzamin z 2006:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| POCZ ANI A
MVI A, 35 A=35
LXI H HL=0EEF
MOV M, A 0EFF=35
LXI D, 0FFF DE=0FFF
XCHG HL=0FFF, DE=0EEF
INX H HL=1000
MOV C, L C=00
LOOP INR C C=01,C=02,C=03
JPO LOOP C=01,C=02,C=03
MOV L, C HL=1003
MOV M, A [1003]=35
XCGH DE=1003, HL=0EEF
LDAX D A=35
RAL A=6A
ORA M A=7F
STAX D [1003]=7F
XRA L A=80
ANI 0C A=00
SKOK RAR A=00, CY=0
RAR A=00, CY=0
ADI FE A=FE
JZ SKOK
NOP |
Egzamin - 2007:
1
2
3
4
5
6
7
8
9
| LXI B, ABDC BC=ABDC
MVI A, B A=AB
LOOP ABB A, B
JC LOOP A=AC
MOV L, A L=AC
MVI H, BC HL=BCAC
INX H HL=BCAD
SPHL SP=BCAD
PUSH B SP-1=[BCAC]=AB, SP-2=[BCAB]=DC, SP=BCAB |
Brak komentarzy »
|