Tablice jednowymiarowe - wytłumaczenie kilku zadań.

0

Witam,
Chciałbym aby ktoś mi wytłumaczył co miej więcej zachodzi w tych programach.

  1. Oblicz ilość wystąpienia danej liczby wśród losowo wygenerowanych 100 liczb z zakresu (0,9) wpisanych do tablicy.
PROGRAM 1;
USES CRT;
VAR
	T : ARRAY [1..100] OF INTEGER;
	A, B, C, D, E, F, G, H, J, K, I : INTEGER;
BEGIN
	ClrScr;
	randomize;
	FOR I:=1 TO 100 DO
		BEGIN
		T[I]:=(random(10)+0);
		END;
	FOR I:=1 TO 100 DO
		IF T[I]= 0 THEN A:=A + 1;
	FOR I:=1 TO 100 DO
		IF T[I]= 1 THEN B:=B + 1;
	FOR I:=1 TO 100 DO
		IF T[I]= 2 THEN C:=C + 1;
	FOR I:=1 TO 100 DO
		IF T[I]= 3 THEN D:=D + 1;
	FOR I:=1 TO 100 DO
		IF T[I]= 4 THEN E:=E + 1;
	FOR I:=1 TO 100 DO
		IF T[I]= 5 THEN F:=F + 1;
	FOR I:=1 TO 100 DO
		IF T[I]= 6 THEN G:=G + 1;
	FOR I:=1 TO 100 DO
		IF T[I]= 7 THEN H:=H + 1;
	FOR I:=1 TO 100 DO
		IF T[I]= 8 THEN J:=J + 1;
	FOR I:=1 TO 100 DO
		IF T[I]= 9 THEN K:=K + 1;
	
	writeln('Ilosc danej liczby:');
	writeln('0 ===== ',A);
	writeln('1 ===== ',B);
	writeln('2 ===== ',C);
	writeln('3 ===== ',D);
	writeln('4 ===== ',E);
	writeln('5 ===== ',F);
	writeln('6 ===== ',G);
	writeln('7 ===== ',H);
	writeln('8 ===== ',J);
	writeln('9 ===== ',K);
	readln;
END.
			
  1. Wypełnij tablicę 25 elementową losowo wygenerowanymi liczbami z przediału (0,9). Utwórz MENU umożliwiające użytkownikowi dodanie, odjęcie, pomnożenie i podzielenie (liczb całkowitych i modulo) elementów tablicy.
PROGRAM 2;
USES CRT;
LABEL poczatek;
VAR
	T: ARRAY [1..25] OF INTEGER;
	I, A, B : INTEGER;
	W : BYTE;
	C : CHAR;
BEGIN
	poczatek:
	ClrScr;
	
	randomize;
	FOR I:=1 TO 25 DO
		BEGIN
		T[I]:=(random(10)+0);
		END; 
	textcolor(lightgreen);
	writeln('++++++++++ MENU +++++++++++');
	writeln('++++ 1 DODAWANIE    +++++++');
	writeln('++++ 2 ODEJMOWANIE  +++++++');
	writeln('++++ 3 MNOZENIE     +++++++');
	writeln('++++ 4 DZIELENIE    +++++++');
	writeln('++++ 5 ZAMKNIJ      +++++++');
	writeln('+++++++++++++++++++++++++++');
	writeln;
	textcolor(lightred);
	write('Wybierz opcje: ');
	readln(W);
	writeln;
	IF W=5 THEN halt;
	textcolor(yellow);
	write('Podaj indeks pierwszej liczby: ');
	readln(A);
	write('Podaj indeks drugiej liczby: ');
	readln(B);
	textcolor(lightblue);
		CASE W OF
			1:	
				writeln('Suma liczb ',T[A],' oraz ',T[B], ' jest rowna: ',(T[A]+T[B]));
			2:
				writeln('Roznica liczb ',T[A],' oraz ',T[B], ' jest rowna: ',(T[A]-T[B]));
			3:
				writeln('Iloczyn liczb ',T[A],' oraz ',T[B], ' jest rowna: ',(T[A]*T[B]));
			4:
				BEGIN
					IF B <> 0 THEN 
						BEGIN
							writeln('Iloraz liczb ',T[A],' oraz ',T[B], ' jest rowna: ',(T[A]/T[B]));
							writeln('Modulo liczb ',T[A],' oraz ',T[B], ' jest rowna: ',(T[A] mod T[B]));
						END;
					IF B = 0 THEN writeln('Liczba o indeksie ',B,' jest rowna 0.');
				END;
			END;
	textcolor(lightgreen);
	writeln('Czy zamknac program (T/N) ?');
	readln(C);
	IF ((C = 'n') OR (C = 'N')) THEN goto poczatek;
END.
	
  1. Wypełnij tablice 25 elementową losowo wygenerowanymi liczbami z przedziału (0,9) Liczby z tablicy przemóż przez wzór: y:=ax+b. Wyświetl zawartość na ekranie. Odwróć proces: x=(y-b)/a
PROGRAM 3;
USES CRT;
VAR
	T : ARRAY [1..25] OF INTEGER;
	A, B, I : INTEGER;
BEGIN
	ClrScr;
	A:=2;
	B:=3;
	writeln('Program oblicza wzor y=ax+b dla danych z tabeli');
	writeln('X           Y=ax+b                                 X=(y-b)/a');
	randomize;
	FOR I:=1 TO 25 DO
		BEGIN
		T[I]:=(random(10)+0);
		writeln(T[I],'         ',(A*T[I]+B),'            ',(((A*T[I])-B)/A):2:2);
		END;

	readln;
END.
			
0

Mniej więcej to co jest w poleceniu do każdego zadania - jak chcesz więcej szczegółów to zacznij od książki/kursu pascala lub zobacz co oferuje menu "Kompendium wiedzy" w tym serwisie w kwestii tego języka.

0

Ale ten pierwszy program to masakra jakaś :D

1

Pierwszy program w jakiś kompletnie idiotyczny i beznadziejny sposób oblicza ilość wystąpień danej liczby wśród pseudo-losowo wygenerowanych 100 liczb z zakresu 0..9 wpisanych do tablicy.

Program drugi natomiast tak dla zmyłki przeciętnego zjadacza chleba, wypełnia tablicę dwudziestoma-pięcioma elementami z zakresu 0..9 wygenerowanymi w sposób pseudolosowy, a przy tym posiada (nie)czytelne menu umożliwiające użytkownikowi dodanie, odjęcie, pomnożenie i podzielenie tychże elementów tablicy.

A w programie trzecim nasz lokalny programista Kaziu wypełnia dwudziesto-pięcio elementową tablicę - uwaga, będzie ostro! - znów liczbami pseudolosowymi, tym razem - zapewne po raz kolejny dla zmyłki - liczy z tablicy magiczny "przemóż" przez wzór y = ax+b, a zawartość wyświetla na ekranie.


Po dokładniejsze wytłumaczenia zapraszam na PW, radzę wziąć jednak w dłoń kartę kredytową, ponieważ tanio nie będzie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1