Инфоурок / Информатика / Конспекты / Планирование по информатике "Программирование алгоритмов "
Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.

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

Только сейчас Вы можете пройти дистанционное обучение прямо на сайте "Инфоурок" со скидкой 40% по курсу повышения квалификации "Организация работы с обучающимися с ограниченными возможностями здоровья (ОВЗ)" (72 часа). По окончании курса Вы получите печатное удостоверение о повышении квалификации установленного образца (доставка удостоверения бесплатна).

Автор курса: Логинова Наталья Геннадьевна, кандидат педагогических наук, учитель высшей категории. Начало обучения новой группы: 27 сентября.

Подать заявку на этот курс    Смотреть список всех 216 курсов со скидкой 40%

Планирование по информатике "Программирование алгоритмов "

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

hello_html_m6a84d86.gifhello_html_m4c8241aa.gifhello_html_543cdc91.gifhello_html_m38715dc7.gifhello_html_508ab53f.gifhello_html_20f89c5c.gifhello_html_54738b77.gifhello_html_54738b77.gifhello_html_m5b96ab46.gifhello_html_54738b77.gifhello_html_54738b77.gifhello_html_m1d170a08.gifhello_html_362918c0.gifhello_html_m30d902c8.gifhello_html_m7a324110.gifhello_html_fcc0f01.gifhello_html_438e52c3.gifhello_html_54738b77.gifhello_html_54738b77.gifhello_html_m5ccd558a.gifhello_html_m5ccd558a.gifhello_html_396962fc.gifПРОГРАММИРОВАНИЕ АЛГОРИТМОВ ЛИНЕЙНОЙ И РАЗВЕТВЛЯЮЩЕЙСЯ  СТРУКТУРЫ

 Цель работы: выработать практические навыки работы с системой TURBO Pascal, научиться создавать, вводить в компьютер, выполнять и исправлять простейшие программы на языке Pascal в режиме диалога, познакомиться с диагностическими сообщениями компилятора об ошибках при выполнении линейных программ и программ, реализующих алгоритмическую структуру "ветвление" (содержащую операторы If...then... else... и Case).


 

Структура программы

 

Программа на языке Pascal состоит из  заголовка ,  раздела описаний и  раздела операторов .

PROGRAM Имя (Input,Output); Заголовок  программы 

label -  раздел меток     

const -  раздел констант     

type -  раздел типов      Раздел описаний 

var -  раздел переменных    

procedure -  раздел процедур    

function -  раздел функций    

BEGIN

Оператор 1 ;

Оператор 2 ; Раздел операторов 

 ...   (тело программы) 

Оператор n   

END.  

Заголовок  содержит служебное слово PROGRAM, имя программы, задаваемое программистом, и в круглых скобках имена стандартных процедур Input, Output для связи программы с внешними устройствами ввода-вывода. Заканчивается заголовок символом ";" (точка с запятой).

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

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

После каждого описания ставится символ ";".

 Раздел операторов("тело" программы) заключается в операторные скобки вида: BEGIN ("начать") и END ("окончить"), при этом после служебного слова END  обязательно  ставится точка. В разделе операторов записывается последовательность исполняемых операторов и каждый выражает действие, которое необходимо выполнить. Исполняемые операторы отделяются друг от друга символом ";".

Хороший стиль программирования требует: (1) записывать слова PROGRAM, BEGIN, END с одинаковой позиции строки; (2) по отношению к ним описания и операторы принято сдвигать  вправо  на 3 символа. Желательно сдвиг делать на одинаковое количество позиций от края или по отношению к предыдущему сдвигу.

 

Константы и переменные

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

 Константы  - это данные, значения которых не изменяются в процессе работы программы. Константы "узнаются" компьютером по форме их записи. В языке Pascal используются константы трех видов:  числовые,  булевские  и  символьные

 Числовые константы  предназначены для представления числовых данных (целых и вещественных).  Булевские константы  используются для представления данных, имеющих смысл логических высказываний (да-нет, истина-ложь).  Символьные константы  представляют данные, являющиеся последовательностями символов.

Значения  переменных , в отличие от констант, могут изменяться во время выполнения программы. Переменные "узнаются" компьютером по именам (идентификаторам), более того с каждой переменной программы связывается одна и только одна ее характеристика, называемая  типом

Тип  - это множество значений переменной вместе с множеством операций, которые можно выполнять над элементами этого множества.

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

Число отдельных значений, принадлежащих некоторому типу, называется  мощностью типа . Так, например, мощность типа Boolean есть 2.

В языке программирования Pascal принято все типы данных разделять на три группы: (1)  простейшие , или  скалярные  (к  скалярным типам данных  относятся типы данных таких величин, значения которых не содержат составных частей, т.е. простейшие типы: целочисленный, вещественный, логический, символьный, перечисляемый, интервальный (тип диапазон) и ссылочный); (2)  структурированные  ( структурированный тип  данных, или  структуры данных, в своей основе имеет один или несколько скалярных типов данных, к ним относятся: строки, массивы, множества, записи, файлы); (3)  процедурные  и  типа  object . (этим типам данных трудно поставить в соответствие данные в обычном понимании этого слова. Их названия отражают их базовые признаки и используются, как правило, в объектно-ориентированном программировании, которое поддержано старшими версиями языка Pascal. Понимание работы с этими типами данных требует наличие определенного опыта и навыков программирования). Рассмотрим некоторые  скалярные  (простейшие) типы данных.

1. Диапазон значений типа  Byte: 0..255. Над данными типа Byte допустимы следующие  операции:

сравнения (= ,<> ,< ,<= ,> ,>= ); 
 +  (сложение); +  (одноместный (унарный) плюс); 
 -  (вычитание); - (одноместный (унарный) минус); 
 *  (умножение); DIV (деление (получение частного)); 
 MOD(получение остатка (второй операнд должен быть положительным)); 
 ShL(логический сдвиг влево);ShR  (логический сдвиг вправо).

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

2. Диапазон значений типа  Integer: -32768..32767. Над данными типа Integer допустимы те же  операции, что и над данными типа Byte.

3. Диапазон значений типа  Word: 0..65535. Над типом Word допустимы те же операции, что и над данными типа Integer.

4. Диапазон значений типа  Real: 2.9E-39..1.7E+38 (по абсолютной величине). Данные типа Real имеют точность до одиннадцати значащих цифр. Над данными типа Real допустимы следующие операции:

сравнения (= ,<> ,< ,<= ,> ,>= ); 
 +  (сложение); +  (одноместный (унарный) плюс); 
 -  (вычитание); - (одноместный (унарный) минус); 
 *  (умножение); DIV (деление (получение частного));

5. Тип данных Char определяет множество символов с кодами ASCII. Над данными типа Char допустимы  операции  сравнения (= , <>, <, <=, >, >=).

6. Данные типа Boolean могут принимать два значения: TRUE и FALSE. Над данными типа Boolean  допустимы следующие  операции :

сравнения ( =, <>, <, <=, >, >=); 
AND  (логическое И);  OR  (логическое ИЛИ); 
XOR  (логическое исключающее ИЛИ);  NOT  (логическое отрицание).

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

 

Встроенные константы

В языке Pascal есть ряд констант, к значениям которых можно обращаться без предварительного определения. Их называют встроенными (или зарезервированными). Перечислим некоторые из них: 
MaxInt : Integer - возвращает число 32767, наибольшее значение типа Integer; 
PI : Real - возвращает число =3.14159265358.

 

Встроенные функции

Odd (A:Integer): Boolean - возвращает TRUE, если А нечетно; 
Int(X:Real): Real - возвращает целую часть аргумента; 
Round (X:Real): Integer - возвращает результат округления аргумента до ближайшего целого; 
Trunc  ( X :Real): Integer - "отбрасывает" дробную часть аргумента; 
Frac  ( X :Real): Real - возвращает дробную часть аргумента; 
Abs  ( X :Real): Real - возвращает абсолютное значение аргумента; 
Abs  ( X :Integer): Integer - возвращает абсолютное значение аргумента; 
Random  ( A : Integer): Integer - возвращает случайное число из интервала [0,A); 
UpCase  ( A :Char):Char - превращает строчные буквы латинского алфавита в соответствующие им прописные; 
Ord  ( A :Char): Byte - возвращает порядковый номер символа A; 
Chr  ( A :Byte): Char - возвращает символ, код которого равен A. 
Sqr  ( X :Real): Real - возвращает квадрат аргумента; 
Sqr  ( X :Integer): Integer - возвращает квадрат аргумента; 
Sqrt  ( X :Real): Real - возвращает квадратный корень аргумента; 
Exp  ( X :Real): Real- возвращает экспоненту аргумента; 
Ln  ( X :Real): Real  - возвращает логарифм аргумента; 
Sin  ( X :Real): Real возвращает синус аргумента; 
Cos  ( X :Real): Real  - возвращает косинус аргумента; 
ArcTan  ( X:Real): Real - возвращает арктангенс аргумента.

Для вычисления значений других функций следует пользоваться тождествами: 
$ \arcsin{x}= \arctan {\frac{x}{\sqrt{1-x\cdot x}}};$
$ \arccos{x}=\frac{\pi}{2-\arctan{\frac{x}{\sqrt{1-x\cdot x}}}};$



Процедуры ввода-вывода данных

Для организации ввода и вывода информации в языке программирования Pascal служат четыре процедуры: Read и ReadLn, Write и WriteLn. Эти процедуры являются "встроенными" в язык Pascal, поэтому для того, чтобы ввести информацию в оперативную память компьютера для ее дальнейшей обработки, программисту не надо писать специальную программу, а всего лишь нужно правильно обратиться к процедуре Read или ReadLn. Соответственно, чтобы вывести информацию на дисплей из оперативной памяти компьютера, необходимо вызвать процедуру Write или WriteLn.

 

1. Процедура ввода информации 
Процедуры ввода (или чтения информации)  Read  или  ReadLn  обеспечивают ввод числовых данных, символов, строк и т.д. для последующей их обработки программой.

Синтаксис процедуры Read и ReadLn: 
Read (X,Y); 
ReadLn (X,Y); 
где X, Y - переменные, описанные в разделе описания переменных.

Отметим, что указанные процедуры Read и ReadLn аналогичны, единственное отличие заключается в том, что после ввода значений переменных, указанных в списке процедуры ReadLn, ввод значений переменных, указанных в списке следующей процедуры ReadLn, будет производится с новой строки. Этого не происходит в ходе выполнения процедуры Read, т.е. ввод осуществляется на той же строке. Таким образом, процедура ReadLn не только вводит значения указанных переменных, но еще и переводит курсор на новую строку. Это позволяет делать суффикс  Ln.

 

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

Синтаксис процедуры Write и WriteLn:

Write (X,Y);  

или   "Слепой" вывод значений переменных.

WriteLn (X,Y);

Write (X+Y);  

или   Вывод результата выражения.

WriteLn (X+Y); 

Write (X:6:2);  

или   Форматированный вывод значения переменной.

WriteLn (X:6:2);  

Write ('Фраза');  

или   Вывод некоторой фразы на дисплей.

WriteLn ('Фраза');  

Write ('Фраза',Y);  

или   Вывод фразы и значения переменной на экран,

WriteLn ('Фраза',Y);  "неслепой" вывод значения переменной,

где: 1) X, Y - переменные, значения которых нужно вывести на экран; 
2) 'Фраза' - некоторый пояснительный текст, который обычно сопровождает значение переменной; 
3) X:6:2 - указывается формат значения переменной. Это значит, что всего 6 символов, отводится под значение переменной X, причем после десятичной точки будет выведено на экран 2 символа. Это так называемый форматированный вывод числа с фиксированной точкой.

 

Оператор присваивания

 Оператор присваивания  (:=) предписывает выполнить выражение, заданное в его правой части, и присвоит результат переменной, имя которой указано в левой его части. Переменная и выражение должны быть совместимы по типу. Его синтаксис: 
Y:=2; 
X:='Строка'; 
P:=V1; 
Summa:=V2; 
где: 1) X,Y,P,Summa - имена переменных, описанных в разделе описания переменных; 
2) 2, 'Строка' - некоторые значения; 
3) V1,V2 - выражения, значения которых нужно вычислить.

 

Пустой оператор

 Пустой оператор  не обозначается и не вызывает никаких действий. Пустой оператор - это просто символ ";" (точка с запятой) в программе. Операторы отделяются друг от друга символом "точка с запятой" (;). Поэтому точку с запятой часто называют  разделителем . Если разделитель между двумя операторами отсутствует, то это приведет к возникновению ошибки, поскольку компилятор часто не может "понять", что же хотел сказать автор программы. Пусть, например, записано 
x:=1 
y:=2;

Несмотря на то, что операторы присваивания записаны на разных строчках, компилятор будет воспринимать эту запись как 
x:=1y:=2

В итоге получается "оператор", в котором используются два знака присваивания и неправильный идентификатор 1y (идентификатор не может начинаться с цифры).

 

Составной оператор

 Составной оператор  представляет собой группу из произвольного числа операторов, отделенных друг от друга точкой с запятой, и ограниченную  операторными скобками - зарезервированными словами в языке Pascal -  begin  и  end : 

Поэтому приведенный оператор можно мысленно представить в таком виде: . Составной оператор используется в том случае, если необходимо выполнить последовательность операторов внутри какой-либо конструкции как единое целое.

 

Операторы условного перехода (If, Case)

Операторы условного перехода позволяют выбрать для исполнения один из нескольких операторов-компонентов в зависимости от условия.

1.

Оператор If Его синтаксис: 

If A


then 

else ;

 

где: 1) A - булевское выражение (возвращающее TRUE или FALSE); 
2) - операторы (возможно пустые или составные).

Если значение выражения A - TRUE, то выполняется оператор ;если значение выражения A - FALSE, то выполняется оператор Затем, в обоих случаях управление передается следующему оператору программы. Допускается и  краткая форма условного оператора : 
If A then ST; 
где:

1) A - булевское выражение; 
2) ST - оператор (возможно составной).

Если значение A - TRUE, то выполняется оператор ST. Если значение A - FALSE, то управление передается оператору, следующему за оператором IF.

Обычно при написании программы не рекомендуется использовать многократно вложенные друг в друга условные операторы - программа становится громоздкой и трудно понимаемой. Считается, что число уровней вложения не должно превышать двух-трех. Но как быть, если необходимо проверять достаточно много условий и в зависимости от них выполнять те или иные действия? Для этих целей в языке Pascal существует специальный  оператор выбора Case .

2.

Оператор выбора Case Его синтаксис: 
Case N of





end; 
где: 1) Case ("случай") - служебное слово; 
2) N - переменная, называемая  селектором  или  переключателем ; 
3) , , -  метки  (i=1,2,...), которые отличаются по смыслу от меток, описываемых в разделе Label;


4) , , - операторы.

Отметим, что переключатель и метки должны быть одного и того же скалярного типа (но не тип Real!).

Оператор Case передает управление тому оператору , с одной из меток которого совпало значение селектора N, а затем - на следующий за end оператор. Если значение селектора N не совпало ни с одной из меток, то исполняется оператор, следующий за зарезервированным словом end.


 

ПРИМЕРЫ

Пример 1.

 Вывести на экран дисплея предложение:  "Это наша первая программа на языке Pascal!"

PROGRAM Primer_1;

BEGIN

WriteLn ('Это наша первая программа на языке Pascal!');

END.

Пример 2.

 Демонстрация операций над данными типа  Byte .

PROGRAM Primer_2;

var x: Byte; { Первый аргумент }

y: Byte; { Второй аргумент }

z: Byte; { Результат операции }

BEGIN

Write ('Введите значения двух переменных типа Byte... '); Read (x,y);

z:=x+y; WriteLn ('x + y -> ',z);

z:=x-y; WriteLn ('x - y -> ',z);

z:=x*y; WriteLn ('x * y -> ',z);

z:=x DIV 2; WriteLn ('x DIV 2 -> ',z);

z:=x MOD 2; WriteLn ('x MOD 2 -> ',z);

z:=x ShL 2; WriteLn ('x ShL 2 -> ',z);

z:=y ShR 1; WriteLn ('y ShR 1 -> ',z);

WriteLn ('x=y -> ',x=y);

WriteLn ('x<>y -> ',x<>y);

WriteLn ('x>=y -> ',x>=y)

END.

Пример 3.

Демонстрация операций над данными типа  Word.

PROGRAM Primer_3;

var x: Word; { Первый аргумент }

y: Word; { Второй аргумент }

z: Word; { Результат операции }

BEGIN

Write ('Введите значения двух переменных типа Word... '); Read (x,y);

z:=x+y; WriteLn ('x + y -> ',z);

z:=x-y; WriteLn ('x - y -> ',z);

z:=x*y; WriteLn ('x * y -> ',z);

z:=x DIV 2; WriteLn ('x DIV 2 -> ',z);

z:=x MOD 2; WriteLn ('x MOD 2 -> ',z);

z:=x ShL 2; WriteLn ('x ShL 2 -> ',z);

z:=y ShR 1; WriteLn ('y ShR 1 -> ',z);

WriteLn ('x=y -> ',x=y);

WriteLn ('x<>y -> ',x<>y);

WriteLn ('x>=y -> ',x>=y)

END.

Пример 4.  Демонстрация операций над типом  Integer.

PROGRAM Primer_4;

var x: Integer; { Первый аргумент }

y: Integer; { Второй аргумент }

z: Integer; { Результат операции }

BEGIN

Write ('Введите значения двух переменных типа Integer... '); Read (x,y);

z:=x+y; WriteLn ('x + y -> ',z);

z:=x-y; WriteLn ('x - y -> ',z);

z:=x*y; WriteLn ('x * y -> ',z);

z:=x DIV 2; WriteLn ('x DIV 2 -> ',z);

z:=x MOD 2; WriteLn ('x MOD 2 -> ',z);

z:=x ShL 2; WriteLn ('x ShL 2 -> ',z);

z:=y ShR 1; WriteLn ('y ShR 1 -> ',z);

WriteLn ('x=y -> ',x=y);

WriteLn ('x<>y -> ',x<>y);

WriteLn ('x>=y -> ',x>=y)

END.

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

PROGRAM Primer_5;

var x: Real; { Первый аргумент }

y: Real; { Второй аргумент }

z: Real; { Результат операции }

BEGIN

Write ('Введите значения двух переменных типа Real... '); Read (x,y);

z:=x+y; WriteLn ('x + y -> ',z);

z:=x-y; WriteLn ('x - y -> ',z);

z:=x*y; WriteLn ('x * y -> ',z);

z:=x/2; WriteLn ('x/2 -> ',z);

{ Операцию отношения "=" не используйте для типа Real }

WriteLn ('x=y -> ',x=y);

WriteLn ('x<>y -> ',x<>y);

WriteLn ('x>=y -> ',x>=y)

END.

Пример 6.  Демонстрация операций над типом Char.

PROGRAM Primer_6;

var x,y: Char;

BEGIN

Write ('Введите значения двух переменных типа Char... '); Read (x,y);

WriteLn ('x = ',x); WriteLn ('y = ',y);

WriteLn ('x=y -> ',x=y);

WriteLn ('x<>y -> ',x<>y);

WriteLn ('x ',x

END.

Пример 7.  Демонстрация операций над типом  Boolean.

PROGRAM Primer_7;

var x,y,z: Boolean;

BEGIN

Write ('Введите значения двух переменных типа Boolean... '); Read (x,y);

x:=TRUE; y:=FALSE; WriteLn ('x = ',x); WriteLn ('y = ',y);

z:=NOT x; WriteLn ('NOT x -> ',z);

z:=x AND y; WriteLn ('x AND y -> ',z);

z:=x OR y; WriteLn ('x OR y -> ',z);

z:=x XOR y; WriteLn ('x XOR y -> ',z);

WriteLn ('x=y -> ',x=y);

WriteLn ('x<>y -> ',x<>y);

WriteLn ('x>y -> ',x>y)

END.

Пример 8.  Демонстрация вычисления значений стандартных функций: UpCase, Ord и Chr

PROGRAM Primer_8;

var x: Char;

BEGIN

Write ('Введите значение аргумента типа Char: '); ReadLn (x);

WriteLn ('UpCase (x) -> ',UpCase (x)); WriteLn ('Ord (x) -> ',Ord (x));

WriteLn ('Chr (65) -> ',Chr (65))

END.

Пример 9.

PROGRAM Primer_9;

(* Демонстрация вычисления значений элементарных функций *)

var X: Real; { Аргумент }

Y: Real; { Аргумент }

Z: Integer; { Аргумент }

F: Real; { Результат }

BEGIN

WriteLn ('Значение MaxInt: ',MaxInt); WriteLn ('Значение Пи: ',PI);

Write ('Введите значение аргумента: '); ReadLn (X);

WriteLn ('Trunc (X) -> ',Trunc (X)); WriteLn ('Int (X) -> ',Int (X));

WriteLn ('Frac (X) -> ',Frac (X));

F:=Abs (X); WriteLn ('Значение функции Abs : ',F);

F:=Sqrt (X); WriteLn ('Значение функции корень: ',F);

F:=Exp (X); WriteLn ('Значение функции Exp : ',F);

F:=Ln (X); WriteLn ('Значение функции Ln : ',F);

{ Аргумент тригонометрических функций выражен в радианах }

F:=Sin (X); WriteLn ('Значение функции Sin : ',F);

F:=Cos (X); WriteLn ('Значение функции Cos : ',F);

F:=ArcTan (X); WriteLn ('Значение функции ArcTg: ',F);

{ ------------------------------------------------------------- }

Write ('Введите значение аргумента: '); ReadLn (Y);

F:=Exp (Y*Ln(X)); WriteLn ('Значение функции X^Y : ',F);

{ ------------------------------------------------------------- }

Write ('Введите значение аргумента типа Integer: '); ReadLn (Z);

WriteLn ('Odd (Z) -> ',Odd (Z))

END.

Пример 10.  Определить большее из двух целых чисел  X  и  Y.

PROGRAM Primer_10;

var X : Integer; { Первый аргумент }

Y : Integer; { Второй аргумент }

Bolshee: Integer; { Результат }

BEGIN

Write ('Введите первое число: '); ReadLn (X);

Write ('Введите второе число: '); ReadLn (Y);

If X>=Y

then Bolshee:=X

else Bolshee:=Y;

WriteLn ('Результат: ',Bolshee)

END.

Пример 11.  Напишите программу, переводящую школьные отметки в оценки.

PROGRAM Primer_7;

var BALL : Integer;

BEGIN

Write ('Введите величину отметки: '); Read (BALL); WriteLn;

Case BALL of { Перевод отметки в оценку }

1: WriteLn ('Очень плохо...');

2: WriteLn ('Плохо...');

3: WriteLn ('Удовлетворительно...');

4: WriteLn ('Хорошо!');

5: WriteLn ('Отлично!')

END













Самые низкие цены на курсы переподготовки

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

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

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

Начало обучения ближайшей группы: 27 сентября. Оплата возможна в беспроцентную рассрочку (10% в начале обучения и 90% в конце обучения)!

Подайте заявку на интересующий Вас курс сейчас: https://infourok.ru

Общая информация

Номер материала: ДВ-531869

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

Microsoft Word мәтін енгізу

  • 16.03.2016
  • Просмотры: 130
2017 год объявлен годом экологии и особо охраняемых природных территорий в Российской Федерации. Министерство образования и науки рекомендует в 2017/2018 учебном году включать в программы воспитания и социализации образовательные события, приуроченные к году экологии.

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

Конкурс "Законы экологии"