Добавить материал и получить бесплатное свидетельство о публикации в СМИ
Эл. №ФС77-60625 от 20.01.2015
Инфоурок / Информатика / Конспекты / Статья «Пользовательские функции в программах».
ВНИМАНИЮ ВСЕХ УЧИТЕЛЕЙ: согласно Федеральному закону № 313-ФЗ все педагоги должны пройти обучение навыкам оказания первой помощи.

Дистанционный курс "Оказание первой помощи детям и взрослым" от проекта "Инфоурок" даёт Вам возможность привести свои знания в соответствие с требованиями закона и получить удостоверение о повышении квалификации установленного образца (180 часов). Начало обучения новой группы: 26 апреля.

Подать заявку на курс
  • Информатика

Статья «Пользовательские функции в программах».

Выбранный для просмотра документ Приложение1.doc

библиотека
материалов

Тематический учет знаний «Простейшие функции».



Вариант 1

1. Что делает описанная в данной программе функция? Определить результат выполнения программы для следующих значений исходных данных:

а) a = 6; b = 5;

б) a = 5; b = 5.

var a, b: integer;

functuion func (c, d: integer): integer;

begin

if c > d then func:= c + d else func:= c * d

end;

begin

readln(a, b); writeln(func(a, b): 5)

end.


2. Составьте программу с использованием функции, которая будет проверять, является ли число четным. Результатом работы функции является «1», если введенное число четное, и – «0», если число нечетное. В качестве параметра функции передается целое число.


Вариант 2

1. Что делает описанная в данной программе функция? Определить результат выполнения программы для следующих значений исходных данных:

а) x = 4; y = 3;

б) x = 5; y = -2.

var x: real; y: integer;

function s (a: real; b: integer): real;

var r: real; c: integer;

begin r:= 1;

for c:= 1 to abs(b) do r:= r * a;

if b < 0 then r:= 1 / r; s:= r;

end;

begin

readln(x, y); writeln(s(x, y): 4); end.



2. Напишите функцию нахождения модуля числа, не используя стандартную функцию abs. Результатом выполнения функции должно быть число с плавающей точкой (действительное число). В качестве параметров в функцию передается также действительное число.

Вариант 3

1. Что делает описанная в данной программе функция? Определить результат выполнения программы для следующих значений исходных данных:

а) x = 14; y = 31;

б) x = 15; y = -2.

var x,y: real;

function mf (a,b: real): real;

begin

if a > b then mf:= b else mf:= a;

end;

begin

readln(x, y); writeln(mf(x, y): 7:2)

end.



2. Составьте программу с использованием функции, которая будет проверять, является ли число кратным 5. Результатом работы функции является «да», если введенное число делится на 5 без остатка, и – «нет», в противном случае. В качестве параметра функции передается целое число. Функция будет иметь тип STRING.



Вариант 4

1. Что делает описанная в данной программе функция? Определить результат выполнения программы для следующих значений исходных данных:

а) a = 5; b = 5;

б) a = 9; b = 5.

var a, b: integer;

functuion fn (c, d: integer): integer;

begin

if c > d then fn:= sqr(c) else fn:= sqr(d);

end;

begin

readln(a, b); writeln(fn(a, b): 5)

end.


2. Составьте программу с использованием функции, которая будет проверять, является ли число нечетным. Результатом работы функции является «1», если введенное число нечетное, и – «0», если число нечетное. В качестве параметра функции передается целое число.

Вариант 5

1. Что делает описанная в данной программе функция? Определить результат выполнения программы для следующих значений исходных данных:

а) x = 2; y = 3;

б) x = 10; y = -2.

var x, y: integer;

function pr (a, b: integer): integer;

var r,c: integer;

begin r:= 1;

for c:= 1 to b do r:= r * a; s:= r;

end;

begin

readln(x, y); if y < 0 then writeln(‘Не подходит’)

else writeln(pr(x, y): 4); end.



2. Напишите функцию нахождения знака числа. В качестве параметров в функцию передается также действительное число. Результатом работы функции является «+», если введенное число положительное, «-», если число отрицательное, «ноль»- если число равно 0. Функция будет иметь тип STRING.

Вариант 6

1. Что делает описанная в данной программе функция? Определить результат выполнения программы для следующих значений исходных данных:

а) x = 62; y = 31;

б) x = 15; y = -2.

var x,y: real;

function mf (a,b: real): string;

begin

if a mod b = 0 then mf:= ‘да else mf:= ‘нет’;

end;

begin

readln(x, y);

writeln(mf(x, y): 7:2)

end.

2. Составьте программу с использованием функции, которая будет проверять, являются ли числа взаимообратными (a*b=1). Результатом работы функции является «1», если числа взаимообратные, и – «0», в противном случае. В качестве параметра функции передаются два целых числа.


Выбранный для просмотра документ Приложение2.doc

библиотека
материалов

Контрольная работа

«Использование функций в программах»





  • ВАРИАНТ 1

  • Составить программу вычисления суммы 7 элементов последовательности, если каждый элемент вычисляется по формуле: hello_html_159de80b.gif , где х=1, 2, …, 7.

  • Вычисление каждого элемента суммы оформите в виде функции.



Пояснения:

    • Значение переменной X задается в основной программе, а для вычисления элемента суммы передается в качестве фактического параметра функции.

    • Результат вычисления функции используется в основной программе.





  • ВАРИАНТ 2

  • Для пяти пар точек на числовой прямой, координаты которых вводятся с клавиатуры, определить координаты середины отрезка, соединяющих эту пару.

  • Вычисление координат середины отрезка оформить в виде функции.



Пояснения:

    • Значения очередной пары точек вводятся в основной программе и передаются в функцию в качестве фактических параметров.

    • Результат вычисления функции используется в основной программе.





  • ВАРИАНТ 3

  • Пять орудий делают залп из одной точки. Определить, на каком расстоянии от места стрельбы снаряды упадут на землю, если hello_html_m4a734df1.gif? Вычисление расстояния оформить в виде функции.

Пояснения:

Начальная скорость каждого снаряда (V0) и угол стрельбы (L) задаются с клавиатуры в основной программе и передаются в функцию в качестве фактических параметров. Результат вычисления функции используется в основной программе для выдачи соответствующего сообщения.





  • ВАРИАНТ 4

  • Составить программу вычисления произведения 10 элементов последовательности, если каждый элемент вычисляется по формуле:hello_html_m5292fc65.gif, где X=1, 2. … 10.

  • Вычисление каждого элемента произведения оформите в виде функции.


Пояснения:

    • Значение переменной X задается в основной программе, а для вычисления элемента произведения передается в качестве фактического параметра функции.

    • Результат вычисления функции используется в основной программе.



  • ВАРИАНТ 5

  • Футболист ударом ноги посылает мяч вертикально вверх. Движение мяча описывается уравнением hello_html_2d650ced.gif. На какой высоте будет мяч через 1 секунду, 3 секунды, 5 секунд, 7 секунд? Вычисление высоты оформить в виде функции.

Пояснения:

  • Значения переменных g и t задаются в основной программе и передаются в функцию в качестве фактических параметров. Результат вычисления функции используется в основной программе для выдачи соответствующего сообщения.




  • ВАРИАНТ 6

  • Два автобуса выезжают одновременно навстречу друг другу. Первоначальное расстояние между автобусами 200 км. Движения автобусов описываются формулами: hello_html_m15b6f82b.gif, а второго - hello_html_m7d439080.gif. Каково будет расстояние между автобусами через 10 минут, 15 минут, 20 минут, 25 минут, 30 минут?

  • Вычисление расстояния между автобусами за прошедшее время оформить в виде функции.

Пояснения:

  • Значение времени вычисляется в основной программе и передается в функцию в качестве фактического параметра. Результат вычисления функции используется в основной программе для выдачи соответствующего сообщения.





hello_html_m4d466bb7.png

Выбранный для просмотра документ Тезисы.doc

библиотека
материалов

Евграфова О.В., учитель информатики гимназии №8 г.о. Коломна Московской области.


«Пользовательские функции в программах».


При решении многих задач и выполнении сложных математические вычислений можно использовать различные элементарные функции языка программирования Паскаль. Однако, в некоторых задачах нужно вычислить функцию, не входящую в число стандартных функций. Для этого есть возможность определить такую функцию в программе.

В статье излагается теоретический материал, приводятся примеры составления программ с применением пользовательских функций, задачи для самостоятельного решения, предлагаются варианты для проведения тематического учета знаний и контрольной работы, рассматриваются задачи практического характера.


































Выбранный для просмотра документ статья.doc

библиотека
материалов

Пользовательские функции в программах.


Все вы знакомы с детской игрушкой-головоломкой, которую принято называть «паззлом». Эта игрушка представляет собой набор маленьких фрагментов причудливой формы, несущих на себе частичку какой-то большой картины. Задача заключается в том, чтобы сложить эти фрагменты и получить картину. Оказывается, маленькие пластинки не только являются частями картины, но и соединяются со своими соседями только вполне определенным образом.

Вот так и большие программы, как из кусочков, собираются из отдельных частей, которые называются подпрограммами и модулями. Эти «кусочки», как мы увидим, могут взаимодействовать между собой только вполне определенным образом.

Следовательно, забавная головоломка «puzzle» может научить нас важнейшему принципу программирования – принципу модульности программ.


В модульной программе отдельные ее части, предназначенные для решения каких-то частных задач, организованы в подпрограммы. В такой организации два преимущества:

  • это дает возможность записать повторяющуюся часть алгоритма только один раз, а затем использовать ее в нужном месте.

  • это позволяет сделать сложную программу более понятной, удобной и вести ее разработку коллективу программистов.


Подпрограмма очень похожа на программу.

Каждая подпрограмма представляет собой независимый алгоритм решения определенной небольшой задачи.

Обычно подпрограмма имеет один или несколько входных параметров, для которых нужно решить задачу. После выполнения подпрограммы получается определенный результат. Это может быть один или несколько выходных параметров.

Подпрограмма отличается от программы тем, что она не может выполняться самостоятельно (вызывается в программе для выполнения при необходимости).

Чтобы подпрограмма при обращении к ней выполнялась каждый раз с новыми данными, ее нужно составить в общем виде, а исходные данные для работы передавать в переменные подпрограммы перед обращением к ней.


Различают два типа подпрограмм: процедуры и функции.

Процедуры и функции описываются после переменных перед телом основной программы.

Функции.

Паскаль позволяет выполнять сложные математические вычисления, при этом можно использовать различные элементарные функции. Эти функции называются стандартными, их можно использовать в алгебраических выражениях в любом месте программы.

При решении некоторых задач нужно вычислить функцию, не входящую в число стандартных функций. Для этого есть возможность определить эту функцию в программе.

Функция описывается в разделе описаний по следующей форме:


Function <имя> (<аргументы>:<тип >) : <тип функции>;

{Раздел описания локальных переменных}

Begin

<тело функции>

<имя> : = <выражение>; {обязательный оператор}

End;

<имя> - идентификатор функции, по которому можно к ней обращаться;

<аргументы> - аргументы функции (входные параметры);

<тип > - тип аргументов функции;

<тип функции> - тип значения функции;

В левой части оператора присваивания стоит идентификатор функции.

Аргументы, указанные в описании функции называются формальными, чтобы подчеркнуть, что они получают смысл только после задания фактических аргументов при использовании (обращении) к функции.


Для использования функции в программе нужно указать имя функции и фактические аргументы в круглых скобках через запятую.

Пример:

Вычислить периметр треугольника по координатам его вершин (xa,ya), (xb, Yb), (xc,yc).


program perimetr;

Var xa,ya,xb,yb,xc,yc,r1,r2,r3,p: real;

Function rast(x1,y1,x2,y2 : real) : real;

Begin

Rast := sqrt(sqr(x1-x2) + sqr(y1-y2));

End;


Begin

Write(‘Введите координаты точек’);

Readln(xa,ya,xb,yb,xc,yc);

R1:= rast(xa,ya,xb,yb);

R2:= rast(xb,yb,xc,yc);

R3:= rast(xa,ya,xc,yc);

P:= r1 + r2 + r3;

Writeln(‘Периметр=’, p:7:2);

Readln;

End.

Особенности функций:

  • результатом работы функции всегда является одно значение;

  • функция не может выполняться самостоятельно, а обязательно в составе какого-либо оператора.

Практическое задание:

Задание 1.

Найти наибольшее из четырех чисел.

Begin

Write(‘Введите четыре числа’);

Readln(a, b, c, d);

M1:= maxim(a,b);

M2 := maxim(d,c);

M3 := maxim(M1,M2);

Writeln(‘’, M3:10 : 5); Readln;

End.

Program largest;

Var a, b, c, d,m1,m2,m3 : Real;

Function maxim(x,y : real) : real;

Begin

If x>y then maxim := x Else maxim := y ;

End;


Задание 2. Составить программу для вычисления площадей трех трапеций по известным основаниям и высоте. Данные вводятся в основной программе. Нахождение площади реализовать в виде функции.



Задание 3. Вычислите сумму площадей трех колец. Радиусы внешней и внутренней окружностей вводятся в основной программе. Вычисление площади кольца организуйте в виде функции.


Задание4. Составить алгоритм и программу для определения количества комбинаций в игре “Спортлото” 6 из 45. Число комбинаций из N по М определяется по следующей формуле:

hello_html_444d9856.gif(рисунок 3)

Вычисление факториала оформить в виде функции.

Задание 5. Вычислить площадь четырехугольника, если известны все стороны и одна из диагоналей (вводятся в основной программе). Вычисление площадей составляющих треугольников осуществляется по формуле Герона (оформить в виде функции).

hello_html_4716f7c1.gif, (рисунок 4)

где P - полупериметр треугольника.


Тематический учет знаний «Простейшие функции» (Приложение 1).


Решение задач практического характера.


Задача 1 . Найти все локальные максимумы функции

hello_html_7846eb05.gifна отрезке [ 0.1, 2 ]. (рисунок 5)

Определение: говорят, что в точке х функция достигает максимума, если в окрестности этой точки будут выполняться неравенства

f( x-) < f(x) > f(x+) , где - некоторое число.


Выберем шаг исследования H и будем сравнивать три значения функции, отстоящие друг от друга на величину Н (т.е. в точках х, х+Н, х+2Н ). Если среднее значение функции будет больше крайних, следовательно, это локальный максимум. Тогда на экран дисплея будем выдавать сообщение “ при х= ... мах=...”.

Так как нам потребуется много раз вычислять значение функции для разных значений аргумента, то целесообразно воспользоваться функцией.

Программу разобрать на доске:


program lok_max;

function y(a1,t:real):real;

begin

y:=1/(2*a1)*(sin(a1*t)+a1*t*cos(a1*t));

end;

var a,h,x,no,ko,z1,z2,z3:real;

begin

write('Введите а'); readln(a);

write('Введите шаг исследования h');

readln(h);

write('Введите начало и конец отрезка');

readln(no,ko);

x:=no;

repeat

z1:=y(a,x); z2:=y(a,x+h); z3:=y(a,x+2*h);

If (z2>z1) and (z2>z3) then

writeln('при х=' ,x:8:6, 'лок.максимум=',z2:8:6);

x:=x+h;

until x>(ko-2*h);

readln;

end.

Результат работы программы:

при а=10, h=0.01


X=0.1

Лок.максимум = 0,069508

X=0.65

Лок.максимум = 0,329154

X=1,26

Лок.максимум = 0,636000

X=1,89

Лок.максимум = 0,946763

X=2,51

Лок.максимум = 1,260512

X=3,14

Лок.максимум = 1,573636

X=3,77

Лок.максимум = 1,885425

X=4,39

Лок.максимум = 2,200540

X=5,02

Лок.максимум = 2,515227

X=5,65

Лок.максимум = 2,828838









Зhello_html_m4a60a349.gifадача 2. Имеется квадратный лист бумаги со стороной А. Из листа делается коробка следующим образом: по углам вырезают 4 квадрата и коробка склеивается по швам. Какова должна быть сторона вырезаемого квадрата, чтобы коробка имела наибольшую вместимость? Решить при а=6 см, а= 18 см.

Если за Х обозначить сторону вырезаемых квадратов, то коробка будет иметь основание (а - 2х ) и высоту х.

В

Ответ: а=6, х=1

а=18, х=2,99

местимость(объем)=х(а-2х)2=4х3-4ах22х, а причем hello_html_7c27f3fc.gif(рисунок6)

Требуется найти максимум функции. Х (рисунок1)

Решение обсудить. Программирование на ПК

Задача 3. В степи, в 9 км к северу от шоссе, идущего с запада на восток, находится поисковая партия. В 15 км к востоку на шоссе находится райцентр. Каков должен быть маршрут следования курьера, чтобы он прибыл в райценктр в кратчайший срок, если известно, что по степи он едет со скоростью 8км/ч, а по шоссе - 10 км/ч.

Р (поисковая партия) РА = 9 км, АВ = 15 км

hello_html_77d67f47.gifРМВ - маршрут следования

Обозначим АМ за х; hello_html_410e7e3c.gif

Требуется найти наименьшее значение времени движения (т.е. оптимальную величину).

Ответ: x=12 км,

tmin= 2,175 часа

А М В


(рисунок 2)


Предположим, что движение равномерное.

hello_html_6c0452e9.gifT1=hello_html_m2f1be05e.gif T2=hello_html_2ecab92.gif Tобщ=hello_html_m2f1be05e.gif+hello_html_2ecab92.gif(рисунок7)

Решение обсудить.

Программирование на ПК.


Контрольная работа

«Использование функций в программах» (Приложение 2).

Рекурсивные функции

Рекурсией называется ситуации, когда функция обращается к себе самой.

В рекурсивном определении должно присутствовать ограничение, граничное условие, при выходе на которое дальнейшая инициация рекурсивных обращений прекращается.


Пример 1. Классический пример - определение факториала. С одной стороны, факториал определяется так: n! = 1*2*3*…*n.

С другой стороны, факториал можно определить следующим образом:

hello_html_m67372dca.jpg

(рисунок12)

Program pr1_rec;

var f: longint: n: integer;

function factorial(m: integer):longint;

begin

if (m=0) or (m=1)

then factorial:=1

else factorial:= factorial(m-1)*m;

end;

begin

write(‘n=’); readln(n);

f:=factorial(n); writeln (n,’! = ‘, f); readln;

end.

Пример 2. Определим функцию K(n), которая возвращает количество цифр в заданном натуральном числе n.


hello_html_m1a507edd.jpg

(рисунок13)

Program pr1_rec;

var n: longint: f: integer;

function Kol(m: longint):byte;

begin

if m<10

then Kol:=1

else Kol:=Kol(m div 10) +1;

end;

begin

write(‘n=’); readln(n); f:=kol(n);

writeln (‘количество цифр в числе ’,n,’ = ‘, f);

readln;

end.


Пhello_html_md729463.gifример 3. Определение степени любого числа с целочисленным показателем.


Program pr3_rec;

var a,s:real; (рисунок8)

k:integer;

function step(b:real; n:integer):real;

begin

if n=0 then step:=1

else

if n>0 then step:=step(b,n-1)*b

else step:=step(b,n+1)/b;

end;

begin

write('a,k'); readln(a,k);

s:=step(a,k);

writeln('s=',s:7:2);

readln

end.


Пример 4. Вычисление квадрата целого числа m, используя только операции сложения и вычитания.

Примечание: Вспомним формулу квадрата суммы и запишем ее для числа (m+1):

hello_html_1e010ac3.gif

(рисунок9)

Перепишем эту формул для числа (m-1):

hello_html_5bfd06f7.gif

(рисунок10)

Program pr4_rec;

var f: longint: n: integer;

Function kvadrat( m: Word ): Word;

Begin

If m=1 then kvadrat:=1

Else kvadrat:=kvadrat(m-1)+m+m-1; End;

begin

write(‘n=’); readln(n);

f:=kvadrat(n); writeln (’f = ‘, f); readln;

end.




Пример 5. Определение n-го члена последовательности Фибоначчи:

hello_html_m6d3aaab9.gif



(рисунок11)

Program pr5_rec;

var n:integer;

s:longint;

function fib(x:integer):integer;

begin

if (x=1) or (x=2) then fib:=1

else fib:=fib(x-1)+fib(x-2);

end;

begin

write('n'); readln(n);

s:=fib(n);

writeln('s=',s);

readln

end.


Пример 6. Нахождение НОД (наибольшего общего делителя) двух натуральных чисел, используя алгоритм Евклида:

Пусть есть два целых числа а и b.

  • Если а=b, то НОД(а,b)=а.

  • Если а>b, то НОД(а,b)=НОД( а-b, b ).

  • Если а


Program pr6_rec;

var rez,a,b:longint;

function nod(x,y:longint): longint;

begin

if x = y then nod:=x else

if x>y then nod:=nod(x - y,y)

else nod:=nod (x, y – x);

end;

begin

writeln('a,b'); readln(a,b); rez:=nod(a,b); writeln('nod= ',rez);

readln;

end.





Самостоятельная работа

парами с взаимопроверкой.

Вариант 1

Определение суммы членов арифметической прогрессии.

Program var1_rec;

var a1,d,s: real: n, i: integer;

Function xn( x1,d1: real; m:integer ): real;

Begin

If m=1 then xn:=x1

Else xn:=xn(x1,d1,m-1)+d1;

End;

begin

write(‘n=’); readln(n); write(‘a1=’); readln(a1);

write(‘d=’); readln(d);

s:=0;

for i:=1 to n do

s:=s + xn(a1,d,i);

writeln(‘Cумма =’, s);

readln;

end.


Самостоятельная работа

парами с взаимопроверкой.

Вариант 2

Определение суммы членов геометрической прогрессии.

Program var2_rec;

var a1,q,s: real: n, i: integer;

Function xn( x1,q1: real; m:integer ): real;

Begin

If m=1 then xn:=x1

Else xn:=xn(x1,d1,m-1)* q1;

End;

begin

write(‘n=’); readln(n); write(‘a1=’); readln(a1);

write(‘q=’); readln(q);

s:=0;

for i:=1 to n do

s:=s + xn(a1,q, i);

writeln(‘Cумма =’, s);

readln;

end.




Литература


  1. Окулов С.М. Основы программирования . – 2-е изд., испр. – М.: БИНОМ. Лаборатория знаний, 2005.

  2. Немнюгин С., Перколаб Л. Изучаем Turbo Pascal.– СПб.: Питер, 2004.

  3. Знатнов С.Ю. Введение в программирование: Начнем изучать Паскаль?: Учебное пособие для учащихся старших классов.- Коломна: КГПИ, 2004.

  4. Фалина И.Н., Богомолова Т.С. и др.Алгоритмизация и программирование: Сборник контрольных работ с решениями (9-11 класс). – М.: КУДИЦ-ПРЕСС, 2007.

  5. Материалы сайта http://festival.1september.ru


hello_html_m4d466bb7.pnghello_html_2deb9279.png

Краткое описание документа:

При решении многих задач  и выполнении сложных математические вычислений можно использовать различные элементарные функции языка программирования Паскаль. Однако, в некоторых задачах нужно вычислить функцию, не входящую в число стандартных функций. Для этого есть возможность определить такую функцию в программе.

В статье излагается теоретический материал, приводятся примеры составления программ с применением пользовательских функций, задачи для самостоятельного решения, предлагаются варианты для проведения тематического учета знаний и контрольной работы, рассматриваются задачи практического характера.

Автор
Дата добавления 17.11.2014
Раздел Информатика
Подраздел Конспекты
Просмотров324
Номер материала 122489
Получить свидетельство о публикации

"Инфоурок" приглашает всех педагогов и детей к участию в самой массовой интернет-олимпиаде «Весна 2017» с рекордно низкой оплатой за одного ученика - всего 45 рублей

В олимпиадах "Инфоурок" лучшие условия для учителей и учеников:

1. невероятно низкий размер орг.взноса — всего 58 рублей, из которых 13 рублей остаётся учителю на компенсацию расходов;
2. подходящие по сложности для большинства учеников задания;
3. призовой фонд 1.000.000 рублей для самых активных учителей;
4. официальные наградные документы для учителей бесплатно(от организатора - ООО "Инфоурок" - имеющего образовательную лицензию и свидетельство СМИ) - при участии от 10 учеников
5. бесплатный доступ ко всем видеоурокам проекта "Инфоурок";
6. легко подать заявку, не нужно отправлять ответы в бумажном виде;
7. родителям всех учеников - благодарственные письма от «Инфоурок».
и многое другое...

Подайте заявку сейчас - https://infourok.ru/konkurs


Выберите специальность, которую Вы хотите получить:

Обучение проходит дистанционно на сайте проекта "Инфоурок".
По итогам обучения слушателям выдаются печатные дипломы установленного образца.

ПЕРЕЙТИ В КАТАЛОГ КУРСОВ


Идёт приём заявок на международный конкурс по математике "Весенний марафон" для учеников 1-11 классов и дошкольников

Уникальность конкурса в преимуществах для учителей и учеников:

1. Задания подходят для учеников с любым уровнем знаний;
2. Бесплатные наградные документы для учителей;
3. Невероятно низкий орг.взнос - всего 38 рублей;
4. Публикация рейтинга классов по итогам конкурса;
и многое другое...

Подайте заявку сейчас - https://urokimatematiki.ru

Похожие материалы

Включите уведомления прямо сейчас и мы сразу сообщим Вам о важных новостях. Не волнуйтесь, мы будем отправлять только самое главное.
Специальное предложение
Вверх