TABLICE WPISYWANIE DANYCH DO TABLIC OPERACJE NA DANYCH ZAWARTYCH W TABLICACH

 

program telefon;

uses crt;

var i,j:word;

begin

for j:=1 to 5 do begin;

  for i:=0 to 8 do

  begin

      sound(523); asm hlt end;  Delay(50);

      sound(659); asm hlt end;  Delay(50);

  end;

  nosound;

  delay(1000);

  end;

end.

 

 

Jak wpisywać dane we właściwe miejsce w tabeli wiersz po wierszu danych zostanie teraz pokazane na poniższym przykładzie:

 

program tabliczka;

uses crt;

const

mw=20;

mk=20 ;

var

i,j,n,m:integer;{i,j zmienne kontrolne pętli, m, n wymiar tablicy}

tab: array [1..mw,1..mk] of integer;

begin

writeln(' podaj wymiary tablicy');

readln(n,m);

writeln('podaj elementy tablicy w kolejności wiersz po wierszu');

for i:=1 to m do

for j:=1 to n do

read(tab[i,j]);{ wydruk tablicy}

clrscr;

writeln('elementy tablicy');

writeln;

for i:=1 to m do

begin

for j:= 1 to n do

write(tab[i,j]:5);

writeln;

end;

readln(tab[i,j]);

end.

Jako zadanie teraz proszę zmodyfikować program wpisywać w kolejności kolumna po kolumnie.

                        Jeżeli już potrafimy wpisać dane do tabeli to teraz postaramy się dodawać dane w wierszu wykorzystując powyższy program

program suma;

uses crt;

const

mw=20;

mk=20 ;

var

i,j,n,m:integer;{i,j zmienne kontrolne petli,m,n wymiar tablicy}

tab: array [1..mw,1..mk] of integer;

suma:integer;

begin

writeln(' podaj wymiary tablicy');

readln(n,m);

for i:=1 to m do

begin

textcolor(green);

writeln('podaj elementy  ', i ,'  wiersza');

for j:=1 to n do

read(tab[i,j]);{ wydruk tablicy}

end;

for j:=1 to n do

 begin

 suma:=0;

 for i:=1 to m do

 suma:= suma+tab[i,j];

 textcolor(6);

 writeln( 'suma elementów w ',j,' kolumnie wynosi ',suma);

 readln;

 end

 end.

             A jeszcze w jaki sposób możemy wpisywać dane do tabeli  oto kolejny przykład

 

PROGRAM Tablica_jednowymiarowa;

USES Crt;

CONST

n_max=10; (* maksymalna liczba elementów *)

TYPE

Dane = ARRAY [1..n_max] OF INTEGER;

VAR

n   : INTEGER;

T_1   : Dane;

 

(**********************************)

PROCEDURE Wprowadzanie(VAR t:Dane);

VAR

i :INTEGER; (* zmienna kontrolna *)

BEGIN

 Writeln(' Wprowadzanie danych do tablicy ');

 Writeln;

 Write (' Podaj ilość elementów (n<=20),  n=  ');

 Readln (n);

 Writeln;

 Write (' Podaj elementy tablicy w kolejności');

 Writeln;

 Writeln;

                   FOR i:=1 TO n DO

 BEGIN

 Write(' element nr= ',i,',  T_1[ ' , i ,' ] = ');

                   Readln (T_1[i]);

 END;

END;

(**********************************)

 

PROCEDURE Odczyt_tablicy(VAR t:Dane);

VAR

i :INTEGER; { zmienna kontrolna }

BEGIN

     Writeln;

     Write (' Odczytaj elementy tablicy w kolejności');

     Writeln;

     Writeln;

 

          FOR i:=1 TO n DO

  BEGIN

       Write(' element nr= ',i,',  T_1[ ' ,i ,' ] = ');

       Writeln (T_1[i])

  END;

 

END;

(***********************************)

 

BEGIN

  ClrScr;

  Wprowadzanie(T_1);

  Odczyt_tablicy(T_1);

  Writeln;

  REPEAT UNTIL KeyPressed

END.

 

 A tak wpisujemy dane do tabeli dwuwymiarowej

 

PROGRAM Tablica_dwuwymiarowa;

USES

Crt;

CONST

w_max=10; (* maksymalna liczba wierszy *)

k_max=10; (* maksymalna liczba kolumn *)

TYPE

Dane = ARRAY [1..w_max, 1..k_max] OF INTEGER;

VAR

m,n   : INTEGER;

TAB   : Dane;

 

(**********************************)

PROCEDURE Wprowadzanie(VAR T:Dane);

VAR

i,j :INTEGER; (* zmienna kontrolna *)

BEGIN

 Writeln(' Wprowadzanie danych do tablicy ');

 Writeln;

 Write (' Podaj ilość wierszy (m<=10),  m=  ');

 Readln (m);

 Write (' Podaj ilość kolumn  (n<=10),  n=  ');

 Read (n);Writeln;

 Write (' Podaj elementy tablicy w kolejności');

 Writeln (' wiersz po wierszu ');Writeln;

          FOR i:=1 TO m DO

                   FOR j:=1 TO n DO

              BEGIN

                   Write(' w= ',i,', k= ',j,',  TAB[',i ,',',j,'] = ');

                   Readln (T[i,j]);

              END;

END;

(**************************************************)

 

PROCEDURE Odczyt_tablicy (VAR T:Dane);

VAR

i,j :INTEGER; { zmienna kontrolna}

BEGIN

     Writeln;

     Write (' Odczytaj elementy tablicy w kolejności');

     Writeln (' wiersz po wierszu ');

     Writeln;

          FOR i:=1 TO m DO

          FOR j:=1 TO n DO

  BEGIN

       Write(' w= ',i,', k= ',j,',  TAB[',i ,',',j,'] = ');

       Writeln (T[i,j])

  END;

 

END;

(**************************************************)

 

BEGIN

  ClrScr;

  Wprowadzanie(TAB);

  Odczyt_tablicy(TAB);

  Writeln;

  REPEAT UNTIL KeyPressed

END.

            Przedstawiam teraz dwa proste programy z wykorzystaniem danych zawartych w tablicach

 

program para_liczb;

const

max=100;

var

n,i,j:integer;

t:array[1..max]of integer;

begin

 writeln('podaj liczbę elementów n=  ' );

 readln(n);

 writeln('podaj elementy');

 for i:=1 to n do

 read(t[i]);

 for i:=1 to n do

  for j:=i+1 to n  do

   if t[i]=t[j] then

   {begin}

   writeln('istnieje para liczb jednakowych')

   readln;

   halt

   end;

   writeln('nie istnieje para elementów jednakowych');

   readln;

   end.

 

PROGRAM Toto_Multi_Lotek;

USES

Crt;

TYPE

t_zakres = 0..80; (* zakres liczb w totku; zero dodatkowo z uwagi na sortowanie z wartownikiem *)

 

CONST

 (* Z tej tablicy będziemy losowali liczby;  wylosowane usuwamy, aby ich ponownie nie losować *)

Liczby : ARRAY[1..80] OF t_zakres =

               ( 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,77,78,79,80);

VAR

i,j,nr_los,n,x : t_zakres;

wylosowane     : ARRAY[0..20] OF t_zakres;

(********************************)

 

BEGIN

  ClrScr;

  Randomize;

      (* losujemy liczby *)

  FOR i:=1 TO 20 DO

   BEGIN

    nr_los:=RANDOM(80-i)+1;  (* losujemy numer liczby z tablicy 'Liczby' *)

    wylosowane[i]:=Liczby[nr_los];

 

    FOR n:=nr_los TO 79-i DO

    Liczby[n]:=Liczby[n+1];

    (* wylosowana liczba jest usuwana z tablicy 'Liczby'

                               a pozostałe przesuwamy do przodu *)

   END;

 

  (* sortujemy wylosowane liczby *)

  FOR i:=2 TO 20 DO

    BEGIN

    x:=wylosowane[i];

    wylosowane[0]:=x;  (* 'wylosowane[0]' pełni role wartownika *)

    j:=i-1;

    WHILE x<wylosowane[j] DO

     BEGIN

      wylosowane[j+1]:=wylosowane[j];

     j:=j-1;         (* zmniejszamy j o 1 *)

     END;

    wylosowane[j+1]:=x

   END;

  Writeln(' Wylosowano następujące liczby w Multi_Lotku: ');

 

  Writeln;

  FOR i:=1 TO 20 DO

  Write(wylosowane[i]:4);

  Readln;

END.

powrót