Archiwum

Archiwum dla ‘Free Pascal’ Kategoria

Laborki z Pascala – Lista 8 i 9

Styczeń 11th, 2010 Katharsis 1 komentarz

Do Waszej dyspozycji udostępniam dziś dwie ostatnie, najbardziej pracochłonne listy: 8 i 9. Zadania poświęcone są przede wszystkim tematyce zmiennych rekordów i plikom, będących przykładem zmiennych złożonych.

Laboratorium 8

Zadanie 1

Przeanalizowałem :).

Czytaj więcej…

Categories: Free Pascal, UwB Tags:

Laborki z Pascala – Lista 7

Styczeń 3rd, 2010 Katharsis 3 comments

Z dużym poślizgiem, ale są! W dzisiejszej notce udostępniam rozwiązania zadań z Listy 7.

Laboratorium 7

Zadanie 1

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 lista7_zad1(INPUT, OUTPUT);
 
USES
	CRT;
 
VAR
	wymiar, x, y : INTEGER;
	macierz : ARRAY OF ARRAY OF INTEGER;
 
BEGIN
	CLRSCR;
 
	WRITE('Podaj wymiar miacierzy: ');
	READLN(wymiar);
 
	SETLENGTH(macierz, wymiar, wymiar);
 
	WRITELN;
 
	FOR x := 0 TO (wymiar - 1) DO
		BEGIN
			FOR y := 0  TO (wymiar - 1) DO
				BEGIN
					macierz[x][y] := (x + 1) * (y + 1);
					WRITE(macierz[x][y]:4);
				END;
 
			WRITELN;
		END;
 
	REPEAT UNTIL KEYPRESSED;
END.

Czytaj więcej…

Categories: Free Pascal, UwB Tags:

Laborki z Pascala – Lista 6

Grudzień 6th, 2009 Katharsis 1 komentarz

Udostępniam rozwiązania Listy 6!

Laboratorium 6

Zadanie 1

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
PROGRAM lista6_zad1(INPUT, OUTPUT);
 
USES
	CRT;
 
	PROCEDURE WypelnijTablice(a, b : INTEGER);
		VAR
			tablica : ARRAY OF INTEGER;
			x : INTEGER;
 
		BEGIN
			SETLENGTH(tablica, a);
			RANDOMIZE;
 
			FOR x := 0 TO (a - 1) DO
				tablica[x] := RANDOM(b) + 1;
 
			FOR x := 0 TO (a - 1) DO
				WRITE(tablica[x], ' ');
		END;
 
BEGIN
	CLRSCR;
 
	WypelnijTablice(10, 20);
 
	REPEAT UNTIL KEYPRESSED;
END.

Czytaj więcej…

Categories: Free Pascal, UwB Tags:

Laborki z Pascala – Lista 5

Listopad 29th, 2009 Katharsis 3 comments

Kolejne rozwiązania już dostępne – tym razem Lista 5 – wykorzystujące pojęcie rekurencji.

Laboratorium 5

Zadanie 1

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
PROGRAM lista5_zad1(INPUT, OUTPUT);
 
USES
	CRT;
 
VAR
	wybor : CHAR;
	liczba : INTEGER;
 
	FUNCTION SilniaIteracyjnie(x : INTEGER) : EXTENDED;
		VAR
			wynik : EXTENDED;
			licznik : INTEGER;
 
		BEGIN
			wynik := 1;
 
			IF (x = 0) OR (x = 1) THEN
				SilniaIteracyjnie := 1
 
			ELSE
				BEGIN
					FOR licznik := x DOWNTO 1 DO
						wynik := wynik * licznik;
 
					SilniaIteracyjnie := wynik;
				END;
		END;
 
	FUNCTION SilniaRekurencyjnie(x : INTEGER) : EXTENDED;
		BEGIN
			IF (x = 0) OR (x = 1) THEN
				SilniaRekurencyjnie := 1
 
			ELSE
				SilniaRekurencyjnie := SilniaRekurencyjnie(x - 1) * x;
		END;
 
BEGIN
	CLRSCR;
 
	WRITELN('Jaki sposób liczenia silnii wybierasz:');
	WRITELN('  a) Iteracyjnie');
	WRITELN('  b) Rekurencyjnie');
 
	GOTOXY(4, 5);
	WRITELN('Wybór: [ ]');
	GOTOXY(12, 5);
	wybor := READKEY;
	WRITE(wybor);
 
	GOTOXY(4, 7);
 
	IF (wybor = 'a') OR (wybor = 'A') THEN
		BEGIN
			WRITE('Podaj liczbę: ');
			READLN(liczba);
 
			GOTOXY(4, 9);
			WRITELN('Wynik: ', SilniaIteracyjnie(liczba):0:0)
		END
 
	ELSE IF (wybor = 'b') OR (wybor = 'B') THEN
		BEGIN
			WRITE('Podaj liczbę: ');
			READLN(liczba);
 
			GOTOXY(4, 9);
			WRITELN('Wynik: ', SilniaRekurencyjnie(liczba):0:0)
		END
 
	ELSE
		WRITELN('Błędny wybór!');
 
	REPEAT UNTIL Keypressed;
END.

Czytaj więcej…

Categories: Free Pascal, UwB Tags:

Laborki z Pascala – Lista 4

Listopad 24th, 2009 Katharsis 1 komentarz

Udostępniam rozwiązania zadań z Listy 4.

Laboratorium 4

Zadanie 1

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
PROGRAM lista4_zad1(OUTPUT);
 
USES
	CRT;
 
VAR
	k : REAL;
	x, y, z : INTEGER;
 
BEGIN
	CLRSCR;
 
	k := 1.5;
	x := 5;
	y := 6;
	z := 3;
 
	WRITELN('x + y + z = ', x + y + z);
	WRITELN('x + y * z = ', x + y * z);
	WRITELN('x * (y + z) = ', x * (y + z));
	WRITELN('x + y - z = ', x + y - z);
	WRITELN('y / z = ', (y / z):2:2);
	WRITELN('x + y / z = ', (x + y / z):2:2);
 
	WRITELN;
 
	WRITELN('y DIV 1 = ', (y DIV 1));
	WRITELN('y DIV 2 = ', (y DIV 2));
	WRITELN('y DIV 3 = ', (y DIV 3));
	WRITELN('y DIV 4 = ', (y DIV 4));
	WRITELN('y DIV 5 = ', (y DIV 5));
	WRITELN('y DIV 6 = ', (y DIV 6));
	WRITELN('y DIV 7 = ', (y DIV 7));
 
	WRITELN;
 
	WRITELN('z MOD 1 = ', (z MOD 1));
	WRITELN('z MOD 2 = ', (z MOD 2));
	WRITELN('z MOD 3 = ', (z MOD 3));
	WRITELN('z MOD 4 = ', (z MOD 4));
	WRITELN('z MOD 5 = ', (z MOD 5));
	WRITELN('z MOD 6 = ', (z MOD 6));
 
	WRITELN;
 
	WRITELN('k * y = ', (k * y):2:2);
END.

Czytaj więcej…

Categories: Free Pascal, UwB Tags: