28640

Модули и их использование

Лекция

Информатика, кибернетика и программирование

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

Русский

2013-08-20

83.5 KB

23 чел.

Лекции 17-19: Модули и их использование.

1. Концепция модуля.

2. Структура описания модуля.

3. Разработка модулей.

4. Примеры модулей.

5. Использование модулей в программах.

6. Стандартный модуль СRT.

7. Стандартный модуль GRAPH.

1. Концепция модуля.

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

Модуль - независимая программная единица, которая может включать в себя компоненты раздела описаний программы (типы, константы, переменные, процедуры и функции, объекты), доступные для использования в любой программе. Таким образом, модуль выступает как оболочка (контейнер) для хранения описаний компонент и их экспорта в программы. Независимость модуля означает, что он может быть откомпилирован автономно от использующей его программы и может храниться отдельно от программ (например, в соответствующих библиотеках).

Понятие модуля отсутствовало в Паскале и в первоначальных версиях Турбо Паскаля. Оно было введено в связи с потребностями коммерческих приложений Турбо Паскаля. Разработанная для Турбо Паскаля концепция модуля зарекомендовала себя как весьма удачная и плодотворная. Модули представляют удобный инструмент для создания библиотек прикладных программ. Этот инструмент получил также широкие приложения в объектно-ориентированном программировании.

 2. Структура описания модуля.

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

unit  < имя модуля >;

interface  

< описания компонентов  модуля >

[implementation

< реализация тел процедур и функций >]

[begin

< операторы инициализирующей части >]

end.

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

uses  <  список имён используемых модулей >;

Интерфейс является видимой частью модуля, в которой описаны все представленные в модуле компоненты, предназначенные для экспорта в программы. При этом процедуры и функции описываются только своими заголовками, остальные компоненты описываются точно в такой же форме, как и в разделе описаний программы. Интерфейс начинается ключевым словом interface и заканчивается ключевым словом implementation (или begin или end при отсутствии исполняемой части). Интерфейс является обязательным разделом описания модуля.

Исполняемая часть содержит так называемые тела процедур и функций, заголовки которых описаны в интерфейсной части. Тела имеют обычную форму описаний процедур и функций, либо могут отличаться от таковой только сокращенными заголовками, состоящими лишь из ключевого слова procedure или function и имени процедуры (функции). Исполняемая часть является как бы "невидимой" для пользователя частью модуля, поскольку пользователю модуля нет необходимости знать, как реализованы процедуры или функции, которыми он пользуется. Ему достаточно лишь знать, как их вызывать и какую функцию они выполняют. Исполняемая часть отсутствует, если в модуле не описаны процедуры и/или функции.

Инициализирующая часть завершает описание модуля и является необязательной частью модуля. Если она присутствует, то помещается между скобками begin  end , если отсутствует - то остаётся только закрывающая модуль скобка end и последующая точка.

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

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

3. Разработка модулей.

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

А) Создание текста модуля. Текст модуля подобен тексту программы, поэтому к его разработке применима в целом та же методика, что и для разработки программ с подпрограммами.

Б) Компиляция и отладка модуля. Для использования разработанного модуля (в том числе и для его отладки на программах-примерах) необходимо получить откомпилированный код модуля. Эта операция легко выполняется с помощью интегрированной среды Турбо Паскаля. Результатом компиляции модуля является одноименный с модулем файл с расширением tpu (сокращение от TURBO PASCAL Unit). Этот файл следует поместить в папку,  доступную при компиляции.

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

4. Примеры модулей. 

Приведем примеры разработанных модулей на Турбо Паскале.

Примером простого модуля является модуль points, содержащий некоторые подпрограммы работы с точками на плоскости, константу null - начало координат, а также тип point, представляющий координаты точки. Инициализирующая часть модуля содержит оператор randomize. Тестом этого модуля является программа test_points.

UNIT points;{Точки на плоскости}

    interface

       type point = array[1..2] of real;{координаты точки}

       const null:point =(0,0);{начало координат}

       procedure rpoint(var x:point); {случайная точка}

       procedure r(x:point;var d:real);{расстояние точки х от null}

       function dist(x,y:point):real;{расстояние между точками x и y}

       function line(x,y,z:point):Boolean;{точки x,y,z на одной прямой}

    implementation

       procedure rpoint;

       begin x[1]:=random(100)/10;x[2]:=random(90)/10 end{rpoint};

       procedure r;

       begin d:=sqrt(sqr(x[1])+sqr(x[2])) end {r};

       function dist;

       begin dist:=sqrt(sqr(x[1]-y[1]) + sqr(x[2]-y[2])) end {dist};

       function line;

       begin line:=false;if (dist(x,y)=dist(x,z)+dist(y,z)) then line:=true;

             if (dist(x,z)=dist(x,y)+dist(y,z)) then line:=true;

             if (dist(z,y)=dist(x,z)+dist(x,z)) then line:=true;

       end {line};

    begin randomize;

END {points}.

program test_points; {Тест модуля points}

uses points;

var a,b,c:point;s:string[1];ra,rb,rc:real;

       begin        repeat writeln('Генерация точек a,b,c:');

         rpoint(a);rpoint(b);rpoint(c);

         writeln('a[1] a[2] b[1] b[2] c[1] c[2] ');

         writeln(a[1]:2:2,' ',a[2]:2:2,' ',b[1]:2:2,' ',b[2]:2:2,' ',c[1]:2:2,' ',c[2]:2:2);

         writeln('Расстояния от начала координат:');r(a,ra);r(b,rb);r(c,rc);

         writeln('ra=',ra:2:2,' rb=',rb:2:2, ' rc=',rc:2:2);

         writeln('Расстояния между точками:');

         writeln('dist(a,b)=',dist(a,b):2:2);

         writeln('dist(b,c)=',dist(b,c):2:2);

         writeln('dist(a,c)=',dist(a,c):2:2);

         if line(a,b,c) then

         writeln('line(a,b,c)=true {Точки а,в,с -лежат на одной прямой}')

                             else

         writeln('line(a,b,c)=false {Точки а,в,с -не лежат на одной прямой}');

                       a:=b; writeln('a:=b; dist(a,b)=',dist(a,b):2:2);

                       if line(a,b,c) then writeln(' line(a,b,c)=true');readln(s);

                       until s=' ';

       end {test_points}.

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

UNIT convert; {Преобразование целого числа в строку - название числа}

       INTERFACE

       type array_s =array[1..5] of string;

       procedure conv_int(int:string;var s_int:array_s);

       IMPLEMENTATION

       procedure conv_int(int:string;var s_int:array_s);

    type string3 =string[3];

    var k:byte;{длина числа} j:byte;{параметр}

           trd:array[1..5] of string3;{массив строк-триад}

        function s_trd(t:string3;numt:byte):string;{перевод в название триады}

           const d:array[2..5] of string =('тысяч','миллион','миллиард','триллион');

           dig:array['1'..'9'] of string=          ('один','два','три','четыре','пять','шесть','семь','восемь','девять');

           var c:char;{переводимая цифра} j:byte; m:array[2..5] of string;

          str1,str2,str3:string;{строки-названия цифр триады}

        begin for j:=2 to 5 do m[j]:=d[j];

                        if t<>'000' then begin 

         c:=t[3];case c of '0':str3:='' else str3:=dig[c] end;

         c:=t[2];case c of '0':str2:='';

                                    '1':begin case t[3] of

        '0':str2:='десять ';

                                                           '2':str2:='двенадцать ';

                                                           '3':str2:='тринадцать '

                                                           else str2:=copy(str3,1,length(str3)-1) +'надцать ';

                                                    end; if str2<>'' then str3:='';

                                        end;

                                     '2','3':str2:=dig[c]+'дцать ';

                                     '4':str2:='сорок ';

                                     '9':str2:='девяносто ' else str2:=dig[c]+'десят ';

                    end; c:=t[1];case c of  '0':str1:='';

                                                       '1':str1:='сто ';

                                                       '2':str1:='двести ';

                                                       '3'..'4':str1:=dig[c]+'ста ';

                                                       '5'..'9':str1:=dig[c]+'сот ';

                                       end;

     if(numt=2)and(str3<>'') then case t[3] of '2'..'4':

                              begin if str3 ='два' then str3:='две ';m[2]:=m[2]+'и' end;

                                                                      '1':if str3 ='один' then

                              begin str3:='одна ';m[2]:=m[2]+'а' end;

                                                   end;

     if(numt>2)and(str3<>'') then case t[3] of '2'..'4':m[numt]:=m[numt]+'а';

                                                                     '0','5'..'9':m[numt]:=m[numt]+'ов';

                                                   end

                                          else if numt>2 then m[numt]:=m[numt]+'ов';

     if numt>1 then s_trd:=str1+str2+str3+' '+m[numt]

                     else s_trd:=str1+str2+str3;

                                                 end      

                                      else s_trd:='';

        end{s_trd};

 begin{conv_int} k:=length(int); if k<15 then 

                  for j:=1 to 15-k do int:='0'+int;

                  if k>15 then halt ;

                  for j:=1 to 5 do

                  trd[j]:=int[15-(j-1)*3-2]+int[15-(j-1)*3-1]+int[15-(j-1)*3];

                  for j:=5 downto 1 do

                  s_int[6-j]:=s_trd(trd[j], j);

           end{conv_int};

END {convert}.

program demo_conv_int; {Тест модуля convert}

       uses convert;

       var j:byte;i:string;str_i:array_s;{type array_s=array[1..5] of string}

       begin repeat write('Введите целое число:');readln(i);

                    conv_int(i,str_i);for j:=1 to 5 do { Построчный вывод названия числа i}

                    if str_i[j]<>'' then writeln(str_i[j]); readln(i);

                 until i=''; {Выход из цикла при нажатии enter}

       end{dem_conv}.

5. Использование модулей в программах.

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

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

В Турбо Паскале имеется целая группа стандартных модулей: system, dos, crt,  printer, overlay, graph и др. Первые пять этих модулей объединены в библиотечный файл со стандартным именем turbo.tpl. Этот файл является одним из обязательных для работы с системой Турбо Паскаль.

Основным стандартным модулем библиотеки turbo.tpl является модуль system, в котором сосредоточены процедуры и функции для всех стандартных типов данных (таких как integer, real, string  и др.), а также многие подпрограммы общего назначения. Модуль system  является единственным стандартным модулем, не требующим для работы с ним uses-описания (он подключен к любой программе по умолчанию). Все остальные стандартные модули из tubo.tpl становятся доступными только после их uses-описания в программе, как и для всех других модулей.

Стандартный модуль dos содержит средства доступа к операционной системе MS DOS, осуществляя интерфейс между системой Турбо Паскаль и MS DOS.

Стандартный модуль printer - самый простой из стандартных модулей. Он содержит лишь переменную Lst , осуществляющую связь с принтером для процедур вывода  write и writeln.

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

Особое место в Турбо Паскале занимают стандартные модули CRT и GRAPH. Модуль CRT содержит средства для управления экраном дисплея в текстовом режиме, а также ввода информации с клавиатуры, управления звуком и задержкой. Модуль GRAPH содержит несколько десятков процедур и функций для управления экраном дисплея в графическом режиме. Этот модуль работает совместно с графическими драйверами дисплея (файлами с расширением bgi), обеспечивая создание графических программ практически для всех типов адаптеров SVGA, VGA, EGA и других. Модули CRT и GRAPH ниже будут рассмотрены подробнее.

6. Стандартный модуль СRT.

Некоторые простейшие средства управления экраном из модуля CRT были уже рассмотрены ранее (при изучении простых операторов Турбо Паскаля). Здесь мы более подробно рассмотрим средства модуля CRT в целом.

В текстовом режиме экран рассматривается как матрица из строк и столбов, в каждую позицию которой может быть помещен символ из кодовой таблицы ASCII. Координаты экрана измеряются от верхнего левого угла, имеющего координаты (1,1), и возрастают слева направо и сверху вниз. Число строк и столбцов зависит от режима экрана (обычный режим - 25 строк и 80 столбцов). Позиция экрана характеризуется также визуальными свойствами: цветом фона, цветом линий символа и яркостью (нормальная, низкая, высокая).

Модуль CRT содержит ряд процедур, функций, константы цветов, режимов экрана и некоторые переменные. Все средства модуля CRT можно разделить на несколько групп: установки режима экрана, ввода с клавиатуры, управления курсором, управления окном, управления цветом и яркостью, управления звуком.

Установка режима экрана: процедура TextMode(mode:word) устанавливающая режим (число строк и столбцов экрана, монохромный или цветной режим) в соответствии с константами режима. Константа последнего установленного режима сохраняется в стандартной переменной lastmode. К этой группе относится также процедура AssignCrt(var F:text), осуществляющая связь с файловой переменной F клавиатуры для ввода, либо экран для вывода текста.

Ввод с клавиатуры: функции без аргументов KeyPressed (с результатом булевского типа) и ReadKey (с результатом типа char). Функция KeyPressed фиксирует сам факт нажатия на любую клавишу, возвращая true, если клавиша была нажата и false - в противном случае. Функция ReadKey осуществляет "слепое чтение" кода нажатой клавиши, приостанавливая выполнение программы до нажатия клавиши и возвращая в качестве результата код клавиши (без отображения его на экране). Это более гибкое средство ввода с клавиатуры, чем операторы read и readln.

Управление курсором: процедуры GotoXY(x,y:byte), CtrlEol, DelLine, InsLine; функции без параметров whereX, whereY. Эти процедуры позволяют установить курсор в позицию (x,y); удалить символы от курсора до конца строки; удалить текущую строку, сдвинув вверх все остальные строки и, очистив нижнюю строку; вставить пустую строку в позицию курсора. Функции whereX, whereY позволяют определить текущее положение курсора на экране (или в окне экрана) и возвращают позицию курсора как целое типа byte.

Управление цветом и яркостью: процедуры TextBackGround(color:byte), TextColor(color:byte), ClrScr, NormVideo, HighVideo, LowVideo. Первые три процедуры уже были описаны раннее среди простых средств управления экраном, а остальные предназначены для установки нормальной, высокой или низкой яркости символов и относятся к последующему выводу символов на экран.

Управление окнами: процедура window(x1,y1,x2,y2:byte) предназначена для установки окна на экране и была уже описана ранее. В дополнении к ней в модуле  CRT имеются переменные windmin и windmax типа word, в которых, хранятся координаты текущего окна (верхнего левого и нижнего угла).

Управление звуком: процедуры sound(f:word), nosound, delay(d:word).  Эти процедуры соответственно включают генератор звука с частотой f, выключают генератор звука, устанавливают задержку (приостановку работы программы) на d миллисекунд. Для иллюстрации использования средств модуля CRT приведем пример программы, реализующей "бегущую строку":

 program animal_string_m;

       {Программа демонстрации "бегущей" строки}

       uses CRT;

       var str:string; {Вводимая строка}

              x,y,x0,x1:byte;j,k,r:byte;

       procedure write_anim(s:string);

       { Анимированный посимвольный вывод строки }

       var i:byte;

           begin for i:=1 to length(s) do begin write(s[i]);delay(300) end;

           end{write_anim};

       BEGIN textbackground(cyan);textcolor(white);clrscr;

             write_anim('     Программа "бегущей" строки');

   repeat repeat window(25,10,55,11);textbackground(green);

            textcolor(black);clrscr;

            write_anim('Введите строку:');writeln;x:=whereX;y:=whereY;

            Lowvideo;k:=0;gotoXY(x,y);readln(str);r:=length(str);

            for j:=1 to r do if str[j]=' ' then inc(k);

              until k<r;

            gotoXY(x,y);Highvideo;write_anim(str);

                x0:=Lo(windmin);x1:=Lo(windmax); r:=x1-x0-r;

           { Имитация "бегущей строки"}

           for j:=1 to r do { Сдвиг строки вправо на один символ}

                       begin str:=' '+str;gotoXY(x,y);write(str);delay(300) end

   until readkey=#13;

       END { animal_string_m}.

7. Стандартный модуль GRAPH.

Модуль GRAPH - библиотека подпрограмм работы с графическим режимом экрана. В графическом режиме экран рассматривается как совокупность точек (пикселей), яркостью и цветом которых можно управлять, получая то или иное графическое изображение. В модуле GRAPH имеются около 80 подпрограмм управления графическим экраном, обеспечивающие многие потребности графических программ. У нас нет возможности детально останавливаться на этих подпрограммах, поэтому ограничимся общей характеристикой средств данного модуля и простым примером графической программы, использующей модуль GRAPH.

Графический экран состоит из точек-пикселей, образующих растр. Для адресации пикселя используется координатная сетка, ведущая свой отсчёт от верхнего левого угла, имеющего координаты (0,0), и увеличивающая значения координат слева направо и сверху вниз. Для установки графического режима предусмотрена процедура InitGraph, а для возврата в текстовый режим - CloseGraph.  На экране можно создавать графические окна (процедурой SetViewPort), ограничивающие графический вывод границами окна.

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

Имеются средства вывода текста на графический экран с помощью специально предусмотренных шрифтов (матричных и штриховых). Для использования штриховых шрифтов необходимы соответствующие шрифтовые файлы (с расширением chr).

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

Для иллюстрации работы с модулем GRAPH приведем небольшую программу формирования и вывода на графический экран изображения Российского флага:

 

 program russian_flag;

       {Формирование изображения Российского флага на графическом экране}

       uses Graph,CRT;

       var  path:string;driver,mode,r,j,i:integer;c:word;

       begin {начальная установка графического режима}

             clrscr;driver:=detect;mode:=VGAHi;InitGraph(driver,mode,'');

             {полукруг на голубом фоне}

             setbkcolor(cyan);r:=99;arc(319,239,0,180,r);

             {рисование флагштока}

             moveto(319-r,239);lineto(319+r,239);delay(1000);

             {наполнение цветом полукруга и флагштока}

             setfillstyle(solidfill,green);floodfill(300,200,white);

             {рисование трехцветного флага}

             moveto(319,239-r);lineto(319,5);c:=white;

                for j:=1 to 3 do begin setfillstyle(solidfill,c);

                                   bar(319,5+(j-1)*33,319+2*r,5+j*33);

                                   c:=(c+3) mod 17;delay(1000)

                                         end;readln

        end { russian_flag}.


 

А также другие работы, которые могут Вас заинтересовать

46124. Технология развития общей, мелкой моторики рук у детей с нарушениями речи 16 KB
  Коррекция особенностей моторного развития детей направлена на нормализацию мышечного тонуса исправление неправильных поз развитие статической выносливости равновесия упорядоченного темпа движений синхронного взаимодействия между движениями и речью запоминание серии двигательных актов воспитание быстроты реакции на словесные инструкции развитие тонких двигательных координаций необходимых для полноценного становления навыков письма. Этому служат следующие упражнения: сжимать резиновую грушу или теннисный мячик; разгибать и...
46125. Методика развития артикуляционной моторики у детей с речевыми нарушениями 16.5 KB
  Особо можно выделить кончик языка ибоковые края передней и средней частей языка так как от их работы зависит качество звуков. В артикуляционную гимнастику входят упражнения в ходе которых вырабатываются следующие положения кончика языка: опущен за нижние зубы Почистим зубы поднят вверх к альвеолам Маляр Грибок Гармошка. После того как каждое положение будет отработано дается упражнение на переключение с одного положения языка на другое Качели. Средняя часть спинки языка наиболее ограничена в...
46126. Технология формирования интонационной стороны речи у детей. Развитие дыхательной и голосовой функций 19.5 KB
  ВОССТАНОВЛЕНИЕ ГОЛОСА У ДЕТЕЙ Восстановление голосовой функции у детей осуществляется комплексно совместными усилиями медицины и специализированной области логопедии фонопедии. Однако начальным звеном всегда является психотерапевтическая беседа основная цель которой убедить ребенка в возможности восстановления голоса установить с ним контакт включить его в активную работу разъяснив цели и задачи коррекции. Собственно голосовые упражнения состоят из вызывания голоса закрепления голоса и автоматизации процесса голосоведения....
46127. Характеристика этапов и содержания работы по формированию правильного произношения у детей(не выделяют точное колличество этапов,поэтому это не носит принципиального характера. 23.5 KB
  Логопед в ходе выполнения ребенком задания проверяет правильно ли он выбрал позу для произношения нужного звука. Поскольку это не всегда приводит к положительным результатам логопеду следует в таких случаях отвлечь внимание от звука переключив на другой объект. По мере овладения движением необходимым для реализации звука логопед переходит к отработке движений обязательных для других звуков. Этап формирования первичных произносительных умений и навыков Цель данного этапа заключается в том чтобы сформировать у ребенка первоначальные...
46128. Организация и содержание совместной работы логопеда и воспитателя (учителя) детского сада (школы) для детей с нарушениями речи 21 KB
  Организация и содержание совместной работы логопеда и воспитателя учителя детского сада школы для детей с нарушениями речи. Взаимодействие логопеда и воспитателя В задачу воспитателя входит выявление степени отставания детей в усвоении программного материала по всем видам учебной и игровой деятельности. Это необходимо для устранения пробелов в развитии детей и создания условий для успешного обучения в среде нормально развивающихся сверстников. С этой целью в первые две недели воспитатели определяют возможности детей в изобразительной...
46129. Индивидуальные логопедические занятия с детьми дошкольного возраста как эффективная форма коррекционной работы 22.5 KB
  Не менее важным является развитие фонематического слуха и фонематического восприятия. Активизация мыслительной деятельности детей развитие внимания и памяти необходимые условия для успешного и разностороннего обучения дошкольников. развитие памяти внимания мышления воображения обязательная составляющая индивидуального логопедического занятия. Целенаправленная работа по развитию мелкой моторики пальцев рук ускоряет созревание речевых областей истимулирует развитие речи ребенка позволяет быстрее исправить дефектное звукопроизношение.
46130. Фронтальные логопедические занятия в условиях дошкольного образовательного учреждения компенсирующего вида (с логопедическими группами) 21 KB
  Обучение на занятиях основная форма коррекционновоспитательной работы с детьми имеющая важное значение для формирования коммуникативной функции речи и общей готовности к школе. Дети с нарушениями речи нередко характеризуются нарушением внимания пониженной познавательной активностью замкнутостью недостаточно сформированной игровой деятельностью и другими особенностями психического развития. На групповых занятиях логопед формирует умение войти в общий темп работы следовать общим инструкциям оценивать достижения партнера...
46131. Сигматизм. Определение, этиология, виды. Логопедические технологии устранения сигматизма у детей 40 KB
  Кончик языка упирается в нижние резцы передняя часть спинки языка выгнута. При таком укладе образуется узкий проход круглая щель между кончиком языка и передними верхними зубами. Вдоль языка по его средней линии образуется желобок. Для звука характерна сложная язычная артикуляция: он начинается со смычного элемента как при т при этом кончик языка опущен и касается нижних зубов.
46132. Вивчення властивостей альгінату натрію з метою використання його у технології десертної продукції молодіжного кафе "Граціо" 2.03 MB
  Створення такого підприємства харчування як кафе це крок вперед на шляху до гідного дозвілля молоді а отже і добробуту майбутньої нації 1. ОБГРУНТУВАННЯ ПРОЕКТУ КАФЕ 1. Маркетингове обґрунтування проекту кафе що проектується 1. Характеристика маркетингового середовища кафе що проектується Науково розроблена концепція аналізу та обліку вимог покупців вимог конкретного сегменту ринку розробка відповідно до виявлених вимог нового товару система організації його продажу включаючи заходи стимулювання та реклами а також система...