kopilkaurokov.ru - сайт для учителей

Создайте Ваш сайт учителя Курсы ПК и ППК Видеоуроки Олимпиады Вебинары для учителей

Екі ?лшемді масссив

Нажмите, чтобы узнать подробности

Ма?саты:

1. Кестелік шамалар, алгоритмдегі кестелік шамаларды Паскалда программалау жолы мен ?дісдері туралы т?сінік ?алыптастыру. ARRAY опреторы ар?ылы программалауды ?йрену, пысы?тау. Бір ж?не екі?лшемді жиымдар туралы ??ым ?алыптастыру.

2. Программаны математикалы? модел ??ру ар?ылы сапалы жазу да?дысын ?алыптастыру. Жиым элементі, элементті берілген ?асиеті бойынша іздеу, с?рыптау туралы т?сініктер ?алыптастыру. Есептерге программалар жазып компьютерде орныдау.

3. Программа м?тінін экран?а ж?не д?птерге жазуды? эстетикасын са?тау.

Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Наладить дисциплину на своих уроках.
Получить возможность работать творчески.

Просмотр содержимого документа
«Екі ?лшемді масссив»

НЕГІЗГІ ТҮСІНІК Әр элементінің тұрған жолы және қатарына тәуелді, бір атаумен байланысқан, бір типті берлілгендер жиынтығын - Екіөлшемді массив деп атайды.   A[1,1] A[1,2] A[2,1] A[2,2] A[1,3] … … … A[2,3] A[n,1] A[n,2] A[1,m] … … … A[n,3] A[2,m] … … A[n,m] Бірінші индекс – Жол нөмірі Екінші индекс – Баған нөмірі Ең үлкен жол саны Ең үлкен баған саны

НЕГІЗГІ ТҮСІНІК

Әр элементінің тұрған жолы және қатарына тәуелді, бір атаумен байланысқан, бір типті берлілгендер жиынтығын - Екіөлшемді массив деп атайды.

A[1,1]

A[1,2]

A[2,1]

A[2,2]

A[1,3]

A[2,3]

A[n,1]

A[n,2]

A[1,m]

A[n,3]

A[2,m]

A[n,m]

Бірінші

индекс –

Жол

нөмірі

Екінші

индекс –

Баған

нөмірі

Ең үлкен жол саны

Ең үлкен баған саны

[n, m] , n -ші жол және m -ші баған қиылысында тұратын элементті көрсетеді. Мысалы, а [ 2 , 3 ] . Берілген элемент 2-ші жол және 3-ші бағанда тұрғандығын көрсетеді. Екіөлшемді массивтің өлшемі қос санмен беріледі: N*M, мұндағы N – кестедегі жол саны, ал M – кестедегі баған саны. 8 -1 -5 3 6 3 -6 0 9 0 -4 4 7 3 -8 6 2 9 -5 8" width="640"

жазылуы : массив аты [n, m] , n -ші жол және m -ші баған қиылысында тұратын элементті көрсетеді.

Мысалы, а [ 2 , 3 ] . Берілген элемент 2-ші жол және 3-ші бағанда тұрғандығын көрсетеді.

Екіөлшемді массивтің өлшемі қос санмен беріледі: N*M, мұндағы N – кестедегі жол саны, ал M – кестедегі баған саны.

8

-1

-5

3

6

3

-6

0

9

0

-4

4

7

3

-8

6

2

9

-5

8

: Array [1..N, 1..M] Of элемент типі ; Мысалы: Const N = 3 ; M= 4 ; Var А: Array [1..N, 1..M] Of integer;" width="640"

Массивтің сипатталуы

БІРІНШІ әдіс

Const N =… ; M=…; { массив өлшемі }

Var массив аты : Array [1..N, 1..M] Of элемент типі ;

Мысалы:

Const N = 3 ; M= 4 ;

Var А: Array [1..N, 1..M] Of integer;

= Array [1..N, 1..M] Of элемент типі ; Var массив аты : тип аты ; Мысалы: Const N = 3 ; M= 4 ; Type dvmass= Array [1..N, 1..M] Of integer; Var А: dvmass;" width="640"

Массивтің сипатталуы

ЕКІНШІ әдіс

Const N =… ; M=…; { массив өлшемі }

Type тип аты = Array [1..N, 1..M] Of элемент типі ;

Var массив аты : тип аты ;

Мысалы:

Const N = 3 ; M= 4 ;

Type dvmass= Array [1..N, 1..M] Of integer;

Var А: dvmass;

= Array [1..N] Of элемент типі ; тип аты 2 = Array [1..M] Of тип аты 1 ; Var массив аты : тип аты 2 ; Мысалы: Const N = 3; M= 3; Type mass = Array [1..N] Of integer; dvmass= Array [1.. M ] Of mass; Var A: dvmass;" width="640"

Массивтің сипатталуы

Үшінші әдіс

Const N = …; M=…; {массив өлшемі}

Type тип аты 1 = Array [1..N] Of элемент типі ;

тип аты 2 = Array [1..M] Of тип аты 1 ;

Var массив аты : тип аты 2 ;

Мысалы:

Const N = 3; M= 3;

Type mass = Array [1..N] Of integer;

dvmass= Array [1.. M ] Of mass;

Var A: dvmass;

Екіөлшемді массивті қолдану арқылы есептер шығару кезінде қаббаталған циклдер ұйымдастырылады:  For i:=1 to m do begin жол нөмірі өзгереді For j:=1 to n do begin Баған нөмірі өзгереді

Екіөлшемді массивті қолдану арқылы есептер шығару кезінде қаббаталған циклдер ұйымдастырылады:

For i:=1 to m do begin

жол нөмірі өзгереді

For j:=1 to n do begin

Баған нөмірі өзгереді

Екіөлшемді массивтің толтырылуы   Пернетақта арқылы Массив элементтерін енгізу:  Program vvodklav  ;  Const N=3; M=4;  Var A: array[ 1 ..N, 1 ..M] of integer;    i,j: integer; Begin writeln(‘ Масив элементтерін енгіз ') ; For i:= 1 to N do  For j:= 1 to M do  readln(A [i , j]); … End.

Екіөлшемді массивтің толтырылуы

Пернетақта арқылы

Массив элементтерін енгізу:

Program vvodklav ;

Const N=3; M=4;

Var A: array[ 1 ..N, 1 ..M] of integer;

i,j: integer;

Begin

writeln(‘ Масив элементтерін енгіз ') ;

For i:= 1 to N do

For j:= 1 to M do

readln(A [i , j]);

End.

Екіөлшемді массивтің толтырылуы    меншіктеу командасы арқылы Массив элементтерін енгізу:  Program vvodpr;  Const N=3;  M= 4 ;  Var A: array[ 1 ..N, 1 ..M] of integer;    i,j: integer; Begin  A[ 1,1 ]:= 2; For i:= 1 to N do  A[ 1,2 ]:= 4; For j:= 1 to M do ………………  A[i,j]:=2*i+j;  A[n,m]:= 20;  … End.

Екіөлшемді массивтің толтырылуы

меншіктеу командасы арқылы

Массив элементтерін енгізу:

Program vvodpr;

Const N=3; M= 4 ;

Var A: array[ 1 ..N, 1 ..M] of integer;

i,j: integer;

Begin

A[ 1,1 ]:= 2; For i:= 1 to N do

A[ 1,2 ]:= 4; For j:= 1 to M do

……………… A[i,j]:=2*i+j;

A[n,m]:= 20;

End.

Екіөлшемді массивтің толтырылуы  кездейсоқ сандар генераторы арқылы массив элементтерін енгізу: Program genslch  ;  Const N=3; M=4;  Var A: array[ 1 ..N, 1 ..M] of integer;    i,j: integer; Begin Randomize; { генераторды іске қосу } For i:= 1 to N do  { кездесоқ  For j:= 1 to M do   сандармен  A[i , j ]:=random( 101 );   толтыру } … End.

Екіөлшемді массивтің толтырылуы

кездейсоқ сандар генераторы

арқылы массив элементтерін енгізу:

Program genslch ;

Const N=3; M=4;

Var A: array[ 1 ..N, 1 ..M] of integer;

i,j: integer;

Begin

Randomize; { генераторды іске қосу }

For i:= 1 to N do { кездесоқ

For j:= 1 to M do сандармен

A[i , j ]:=random( 101 ); толтыру }

End.

КЕЗДЕЙСОҚ САНДАР ГЕНЕРАТОРЫ

КЕЗДЕЙСОҚ САНДАР ГЕНЕРАТОРЫ

  • Кездейсоқ сандар – көптеген мәндер арасынан кездейсоқ таңдалған соңғы нәтиже
  • Randomize – кездейсоқ сандар генераторының бастапқы қалпын орнату процедурасы. Бағдарлама қайта орындалу кезінде кездейсоқ сандардан әртүрлі сандар шығады.
  • Функция random - [0; 1] диапазонына тиісті кездейсоқ нақты сан
  • Функция random ( n ) –[0; n -1] диапазонына тиісті кездейсоқ сан
  • Функция random (B-A) +A – [ A ; B ] диапазонына тиісті кездейсоқ сан
Екіөлшемді массивтің элементтерін кесте түрінде шығару  … writeln(‘ Массив элементтерін шығару ') ;  for i:= 1 to n do begin for j:= 1 to m do write (a[i,j], ‘ ‘): writeln; end; …

Екіөлшемді массивтің элементтерін кесте түрінде шығару

writeln(‘ Массив элементтерін шығару ') ;

for i:= 1 to n do

begin

for j:= 1 to m do

write (a[i,j], ‘ ‘):

writeln;

end;

1. А екіөлшемді массивті қарастырайық(суретте): А) Берілген массивте неше жол, неше баған? В) Берілген массивті анықтаныз. С) Массивтің келесі элементтерінің мәнін анықта:  A[1,5]= , A[5,1]= , A[4,2]= , A[3,2]= . D) Төмендегі мәні берліген элементтердің  орналасу орның анықта   A[ ..,..]= 17, A[…,…]= 29, A[ ..,..]= 30 Е) Берілген массивті толтыруға қарастырылған қай әдіс тиімді? 2. Төмендегі жазу нені анықтайды? Жасалған барлық сипаттама дұрыс па?  1 3 2 5 4 11 12 13 7 6 21 14 15 9 8 10 16 17 23 22 24 19 18 25 20 27 26 28 29 30 var A: array [1..3,1..5] of real; i,j: integer; var C: array [1..4,1..4] of real; i,j: real; var B: arr e y [1..7,1..4] of integer; i,j: integer; var D = array [1..N,1..M] of integer; i,j: integer;

1. А екіөлшемді массивті қарастырайық(суретте):

А) Берілген массивте неше жол, неше баған?

В) Берілген массивті анықтаныз.

С) Массивтің келесі элементтерінің мәнін анықта:

A[1,5]= , A[5,1]= , A[4,2]= , A[3,2]= .

D) Төмендегі мәні берліген элементтердің

орналасу орның анықта

A[ ..,..]= 17, A[…,…]= 29, A[ ..,..]= 30

Е) Берілген массивті толтыруға қарастырылған қай әдіс тиімді?

2. Төмендегі жазу нені анықтайды? Жасалған барлық сипаттама дұрыс па?

1

3

2

5

4

11

12

13

7

6

21

14

15

9

8

10

16

17

23

22

24

19

18

25

20

27

26

28

29

30

var A: array [1..3,1..5] of real;

i,j: integer;

var C: array [1..4,1..4] of real;

i,j: real;

var B: arr e y [1..7,1..4] of integer;

i,j: integer;

var D = array [1..N,1..M] of integer;

i,j: integer;

Жолдар саны бағандар санына тең болатын екіөлшемді массивті квадрат матрица деп атайды. Элементті көрсету кәдімгі A[i,j] екіөлшемді массивтегідей орындалады.  а 11 а 12 а 21 а 22 а 13 а 31 а 41 а 14 а 23 а 32 а 42 а 24 а 33 а 43 а 34 а 44 Кейбір түсініктер енгізейік: Басты диоганаль : элементтер индексі i = j  тең  басты диоганалінде орналасқан, сол жақ жоғарғы және төмеңгі оң жақ бұрыштағы массив элементтері және арасында орналасқан элементтер массивтің басты диоганалін құрайды. жанама диагональ : элементтер индексі (элементтер индексінің қосындысы жол (баған)өлшемінен 1-ге артық болса, яғни i + j = n +1 тең, оң жақ жоғарғы бұрышта және сол жақ төменгі бұрыш элементтерін және арасында орналасқан элементтер массивтің жанама диоганалін құрайды. а 11 а 12 а 21 а 31 а 13 а 22 а 14 а 41 а 23 а 32 а 33 а 24 а 42 а 34 а 43 а 44

Жолдар саны бағандар санына тең болатын екіөлшемді массивті квадрат матрица деп атайды. Элементті көрсету кәдімгі A[i,j] екіөлшемді массивтегідей орындалады.

а 11

а 12

а 21

а 22

а 13

а 31

а 41

а 14

а 23

а 32

а 42

а 24

а 33

а 43

а 34

а 44

Кейбір түсініктер енгізейік:

  • Басты диоганаль : элементтер индексі i = j тең басты диоганалінде орналасқан, сол жақ жоғарғы және төмеңгі оң жақ бұрыштағы массив элементтері және арасында орналасқан элементтер массивтің басты диоганалін құрайды.
  • жанама диагональ : элементтер индексі (элементтер индексінің қосындысы жол (баған)өлшемінен 1-ге артық болса, яғни i + j = n +1 тең, оң жақ жоғарғы бұрышта және сол жақ төменгі бұрыш элементтерін және арасында орналасқан элементтер массивтің жанама диоганалін құрайды.

а 11

а 12

а 21

а 31

а 13

а 22

а 14

а 41

а 23

а 32

а 33

а 24

а 42

а 34

а 43

а 44

j – элементтері басты диоганальдан төмен орналасқан; i – элементтері басты диоганальдан жоғары орналасқан; i+j= n+1 – элементтері жанама диоганальда орналасқан; i+j – элементтері жанама диоганалінің үстінде орналасқан; i+j n+1 – элементтері жанама диоганалінің астында орналасқан; i j i = j i j i j i j i j i = j i j i = j i j i j i j i + j= i + j= i + j= i + j=n+1 i + j= i + j= i+j=n+1 i+jn+1 i + j= i+jn+1 i+jn+1 i+j=n+1 i+j=n+1 i+jn+1 i+jn+1 i+jn+1" width="640"

i j

i j

i = j

i j

i=j – элементтері басты диоганальда орналасқан; i j – элементтері басты диоганальдан төмен орналасқан; i – элементтері басты диоганальдан жоғары орналасқан; i+j= n+1 – элементтері жанама диоганальда орналасқан; i+j – элементтері жанама диоганалінің үстінде орналасқан; i+j n+1 – элементтері жанама диоганалінің астында орналасқан;

i j

i = j

i j

i j

i j

i j

i = j

i j

i = j

i j

i j

i j

i + j=

i + j=

i + j=

i + j=n+1

i + j=

i + j=

i+j=n+1

i+jn+1

i + j=

i+jn+1

i+jn+1

i+j=n+1

i+j=n+1

i+jn+1

i+jn+1

i+jn+1

Есеп 1 .  Жанама диоганалі бірден, қалғаны нөлден тұратын А(5х5) квадрат матрицасын құрастыр. Program р 1; Const n=5; Var a: array[1..n,1..n] of integer;  i, j, n: integer; Begin For i:=1 to n do For j:=1 to n do  if i+j = n+1 then a[i,j]:=1 else a[i,j]:=0; Writeln(‘ алынған матрица ’); For i:=1 to n do begin For j:=1 to n do begin write (a[i,j], ‘ ‘): writeln; End;  End; Readln ; End .

Есеп 1 .

Жанама диоганалі бірден, қалғаны нөлден тұратын А(5х5) квадрат матрицасын құрастыр.

Program р 1;

Const n=5;

Var a: array[1..n,1..n] of integer;

i, j, n: integer;

Begin

For i:=1 to n do

For j:=1 to n do

if i+j = n+1 then a[i,j]:=1 else a[i,j]:=0;

Writeln(‘ алынған матрица ’);

For i:=1 to n do begin

For j:=1 to n do begin

write (a[i,j], ‘ ‘):

writeln;

End; End;

Readln ;

End .

Задача 2 .  A(5x5) квадрат матрицасының басты диоганаліндегі элементтерінің қосындысын есепте.  Program р 2; Const n=5; Var a: array[1..n,1..n] of integer;  i, j, n,S: integer; Begin For i:=1 to n do  For j:=1 to n do begin  write(‘a[‘,i,’,’,j,’)=’); readln (a[i,j]); end; S:=0; For i:=1 to n do For j:=1 to n do If i= j  then  S:=S+a[i,j];   Writeln(‘ диоганаль элементтерінің қосындысы тең = ‘,S);  Readln ;  End .

Задача 2 . A(5x5) квадрат матрицасының басты диоганаліндегі элементтерінің қосындысын есепте.

Program р 2;

Const n=5;

Var a: array[1..n,1..n] of integer;

i, j, n,S: integer;

Begin

For i:=1 to n do

For j:=1 to n do begin

write(‘a[‘,i,’,’,j,’)=’); readln (a[i,j]); end;

S:=0;

For i:=1 to n do

For j:=1 to n do

If i= j then S:=S+a[i,j];

Writeln(‘ диоганаль элементтерінің қосындысы тең = ‘,S);

Readln ;

End .

Үйге тапсырма А түрінде матрица берілген:  Составить программу  формирующую данную  матрицу. 1 3 10 3 4 10 10 10 3 3 3 10 9 3 10 10 3 3 10 16 3 10 10 10 25 2. Басты және жанама диоганалімен шектелген(диоганальда орналасқан элементтерсіз), квадрат матрицаның 4 ширегін белгілейік: жоғарғы, төменгі, сол жәңе оң. Элементтер қосындысын табу керек: а) жоғарғы ширекте б) оң жақ ширекте; в) төменгі ширекте; г) сол жақ ширекте.

Үйге тапсырма

  • А түрінде матрица берілген:

Составить программу

формирующую данную

матрицу.

1

3

10

3

4

10

10

10

3

3

3

10

9

3

10

10

3

3

10

16

3

10

10

10

25

2. Басты және жанама диоганалімен шектелген(диоганальда орналасқан элементтерсіз), квадрат матрицаның 4 ширегін белгілейік: жоғарғы, төменгі, сол жәңе оң. Элементтер қосындысын табу керек:

а) жоғарғы ширекте

б) оң жақ ширекте;

в) төменгі ширекте;

г) сол жақ ширекте.

0 Then S:=S+a[i,j]; If a[i,j]20 Then p:=p*a[i,j]; End; End; WriteLn(‘ Теріс элементтер саны: ’,k); WriteLn(‘ Оң элементтер қосындысы: ’,s); WriteLn(‘ Элементтер көбейтіндісі 20 : ’,p); ReadLn; End." width="640"

Задача 1. Екіөлшемді массивте -30-дан 30-ға дейінгі диапазонда кездейсоқ бүтін сандармен толтырылған. 20-дан үлкен, теріс элементтер санын, оң элементтердің қосындысын және көбейтіндісін табу керек.

Program p1;

Const n=100; m=100;

VAR a:array[1..N, 1..M] of integer;

n, m, i, j, k , s, p : integer;

Begin

WriteLn(‘ Массив өлшемін енгіз ’); ReadLn(n, m);

WriteLn(‘ Бастапқы массив: ’);

Randomize;

For i:=1 To n Do Begin

For j:=1 To m Do Begin

a[i,j]:=random(60) -30 ; WriteLn(a[i,j]:3); End; End;

k:=0; s:=0; p:=1;

For i:=1 To n Do Begin

For j:=1 To m Do Begin

If a[i,j]

If a[i,j]0 Then S:=S+a[i,j];

If a[i,j]20 Then p:=p*a[i,j];

End; End;

WriteLn(‘ Теріс элементтер саны: ’,k);

WriteLn(‘ Оң элементтер қосындысы: ’,s);

WriteLn(‘ Элементтер көбейтіндісі 20 : ’,p);

ReadLn;

End.

Задача 2. Екіөлшемді кестенің әр жолындағы ең үлкен элементін тап Program р 2; Var a: array[1..50,1..50] of integer; b: array[1..50] of integer;  i, j, n, m: integer; Begin Write(‘ неше жол ?’); Readln(m); Write (‘неше баған?’); Readln ( n );  For i:=1 to m do  For j:=1 to n do begin  write(‘a[‘,i,’,’,j,’)=’); readln (a[i,j]); end; For i:=1 to m do begin  b[i]:=a[i,1];  For j:=2 to m do  if b[i]End;  Writeln(‘ кесте жолындағы ең үлкен сан, тең: ’);  For i:=1 to m do Write (b[i], ‘ ‘);  Readln ;  End .

Задача 2. Екіөлшемді кестенің әр жолындағы ең үлкен элементін тап

Program р 2;

Var a: array[1..50,1..50] of integer; b: array[1..50] of integer;

i, j, n, m: integer;

Begin

Write(‘ неше жол ?’); Readln(m);

Write (‘неше баған?’); Readln ( n );

For i:=1 to m do

For j:=1 to n do begin

write(‘a[‘,i,’,’,j,’)=’); readln (a[i,j]); end;

For i:=1 to m do begin

b[i]:=a[i,1];

For j:=2 to m do

if b[i]

End;

Writeln(‘ кесте жолындағы ең үлкен сан, тең: ’);

For i:=1 to m do

Write (b[i], ‘ ‘);

Readln ;

End .

Задача 3. Екіөлшемді кестенің әр бағанының элементтерінің қосындысын тап. Program р3 ; Var a: array[1..50,1..50] of integer; b: array[1..50] of integer;  i, j, n, m,  S: integer; Begin Write(‘ неше жол ?’); Readln(m); Write (‘неше баған?’); Readln ( n );  For i:=1 to m do  For j:=1 to n do begin  write(‘a[‘,i,’,’,j,’)=’); readln (a[i,j]); end; For j:=1 to n do begin  S:=0;  For i:=1 to m do  S:=S+a[i,j];  b[j]:=S; End;  Writeln(‘ кесте бағынындағы элементтер қосындысы тең : ’);  For j:=1 to n do Write (b[j], ‘ ‘);  Readln ;  End .

Задача 3. Екіөлшемді кестенің әр бағанының элементтерінің қосындысын тап.

Program р3 ;

Var a: array[1..50,1..50] of integer; b: array[1..50] of integer;

i, j, n, m, S: integer;

Begin

Write(‘ неше жол ?’); Readln(m);

Write (‘неше баған?’); Readln ( n );

For i:=1 to m do

For j:=1 to n do begin

write(‘a[‘,i,’,’,j,’)=’); readln (a[i,j]); end;

For j:=1 to n do begin

S:=0;

For i:=1 to m do

S:=S+a[i,j];

b[j]:=S;

End;

Writeln(‘ кесте бағынындағы элементтер қосындысы тең : ’);

For j:=1 to n do

Write (b[j], ‘ ‘);

Readln ;

End .

Задача 4 .  Массив жолдарын ауыстыру . Program p4; const n=4; m=5; var a:array [1..n,1..m] of integer; i, j,k,l,c: integer; Begin writeln(‘ Масив элементтерін енгіз ') ; For i:= 1 to n do  For j:= 1 to m do  readln(A [i , j]); writeln(‘ Ауыстырылатын жолдардың нөмірін енгіз ’); readln(k,l); for j:=1 to m do begin c:=a[k,j]; a[k,j]:=a[l,j]; a[l,j]:=c; end; writeln(‘ Жаңа массив ’); for i:=1 to n do for j:=1 to m do write(a[i,j],’ ‘); writeln; readln; end.

Задача 4 . Массив жолдарын ауыстыру .

Program p4;

const n=4; m=5;

var a:array [1..n,1..m] of integer; i, j,k,l,c: integer;

Begin

writeln(‘ Масив элементтерін енгіз ') ;

For i:= 1 to n do

For j:= 1 to m do

readln(A [i , j]);

writeln(‘ Ауыстырылатын жолдардың нөмірін енгіз ’);

readln(k,l);

for j:=1 to m do

begin

c:=a[k,j]; a[k,j]:=a[l,j]; a[l,j]:=c;

end;

writeln(‘ Жаңа массив ’);

for i:=1 to n do

for j:=1 to m do

write(a[i,j],’ ‘);

writeln;

readln;

end.


Получите в подарок сайт учителя

Предмет: Информатика

Категория: Презентации

Целевая аудитория: 9 класс

Скачать
Екі ?лшемді масссив

Автор: Айткалиева Баян Сабыргалиевна

Дата: 19.11.2015

Номер свидетельства: 255358




ПОЛУЧИТЕ СВИДЕТЕЛЬСТВО МГНОВЕННО

Добавить свою работу

* Свидетельство о публикации выдается БЕСПЛАТНО, СРАЗУ же после добавления Вами Вашей работы на сайт

Удобный поиск материалов для учителей

Проверка свидетельства