Модули примеры: 6.2.4. Модуль числа

Содержание

6.2.4. Модуль числа

Автор Татьяна Андрющенко На чтение 2 мин. Просмотров 3.7k. Опубликовано

Модулем числа а (записывают |a|) называют расстояние от начала отсчета до точки, соответствующей данному числу а.

Значение модуля любого числа неотрицательно. |3|=3; |-3|=3, т.к. расстояние от начала отсчета и до числа -3, и до числа 3 равно трем единичным отрезкам. Противоположные числа имеют равные модули. Модуль нуля равен нулю: |0|=0.

По определению модуля числа: |a|=a, если a≥0 и |a|=-a, если а<0. Читают: модуль неотрицательного числа равен самому этому числу; модуль отрицательного числа равен противоположному числу.

Примеры.

1.

Вычислить: а) |5|-2; б) |-12| : 6; в) |-24| + |13|; г) |65|-|-45|.

Решение. а) |5|-2=5-2=3;

б) |-12| : 6=12 : 6=2;

в) |-24|+|13|=24+13=37;

г) |65|-|-45|=65-45=20.

2. Решить уравнение: а) |m|+4=10; б) 6-|x|=2.

Решение.

а) |m|+4=10;

|m|=10-4; из суммы вычли известное слагаемое;

|m|=6. Так как |-6|=6  и  |6|=6, то m=-6  или m=6.

Ответ: -6; 6.

б)

 6-|x|=2.

|x|=6-2;

|x|=4, отсюда х=-4 или х=4.

Ответ: -4; 4.

3. Записать перечислением элементов множество целых чисел А, модуль которых меньше числа 5.

Решение. По определению модуля числа 5 искомые числа должны отстоять от начала отсчета как вправо, так и влево на расстояние, меньшее пяти единичных отрезков. В этом промежутке (показан штриховкой на рисунке) бесконечно много чисел, но нам нужно выбрать из них лишь все целые числа. Берем числа: -4, -3, -2, -1, 0, 1, 2, 3, 4. Числа -5 и 5 не подходят по условию.

Ответ:  множество А={-4, -3, -2, -1, 0, 1, 2, 3, 4}.

4. Записать перечислением множество натуральных чисел В, модуль которых меньше числа 5.

Решение. Из всех чисел, показанных на рисунке штриховкой, нам нужно выбрать натуральные, т.е. только те числа, которые употребляются при счете предметов. Ответ: B={1, 2, 3, 4}.

 

Уравнения с модулем. Исчерпывающий гид (ЕГЭ — 2021)

4. Для каждого интервала запишем и решим уравнение. Важно проследить, чтобы ответы соответствовали интервалу!

Примеры:

I. \(\displaystyle x<-3\).

Здесь оба модуля раскрываем «с минусом»:

\(\displaystyle-\left( x+3 \right)+\left( 2{x}-1 \right)=1\text{ }\Leftrightarrow \text{ }-{x}-3+2{x}-1=1\text{ }\Leftrightarrow \text{ }x=5\text{ }>-3\) – этот корень сторонний.

II. \(\displaystyle-3\le x<\frac{1}{2}\).

Здесь первый модуль раскрываем «с плюсом», а второй – «с минусом»:

\(\displaystyle\left( x+3 \right)+\left( 2{x}-1 \right)=1\text{ }\Leftrightarrow \text{ }x+3+2{x}-1=1\text{ }\Leftrightarrow \text{ }x=-\frac{1}{3}\) – этот корень попадает в «свой» интервал, значит, он подходит.

III. \(\displaystyle x\ge \frac{1}{2}\).

Здесь оба модуля раскрываем «с плюсом»:

\(\displaystyle\left( x+3 \right)-\left( 2{x}-1 \right)=1\text{ }\Leftrightarrow \text{ }x+3-2{x}+1=1\text{ }\Leftrightarrow \text{ }x=3\) – этот корень тоже является решением.

Проверим полученные корни:

I. \(\displaystyle x=5:\text{ }\left| 5+3 \right|-\left| 2\cdot 5-1 \right|=8-9=-1\ne 1\) (корень и правда сторонний).

II. \(\displaystyle x=-\frac{1}{3}:\text{ }\left| -\frac{1}{3}+3 \right|-\left| 2\cdot \left( -\frac{1}{3} \right)-1 \right|=\frac{8}{3}-\frac{5}{3}=1\).

III. \(\displaystyle x=3:\text{ }\left| 3+3 \right|-\left| 2\cdot 3-1 \right|=6-5=1\).

Ответ: \(\displaystyle-\frac{1}{3};\text{ }3.\)

Примеры:

Решения:

1. \( \displaystyle \left| x+2 \right|-\left| 3{x}-1 \right|+\left| 4-x \right|=3\)\( \displaystyle \left[ \begin{array}{l}x+2=0\text{  }\Rightarrow \text{  }x=-2\\3{x}-1=0\text{  }\Rightarrow \text{ }x=\frac{1}{3}\\4-x=0\text{  }\Rightarrow \text{  }x=4\end{array} \right.\) 

I. \( \displaystyle -2\le x<\frac{1}{3}.\)

\( \displaystyle -\left( x+2 \right)+\left( 3{x}-1 \right)+\left( 4-x \right)=3\)

\( \displaystyle x=2>-2\Rightarrow \) – корень сторонний

II. \( \displaystyle -2\le x<\frac{1}{3}\)

\( \displaystyle \left( x+2 \right)+\left( 3{x}-1 \right)+\left( 4-x \right)=3\Leftrightarrow \)

\( \displaystyle 3x=-2\Leftrightarrow x=-\frac{2}{3}\in \left[ -2;\frac{1}{3} \right)\) – подходит

III.  \( \displaystyle \frac{1}{3}\le x<4\)

\( \displaystyle \left( x+2 \right)-\left( 3{x}-1 \right)+\left( 4-x \right)=3\Leftrightarrow \)

\( \displaystyle -3x=-4\Leftrightarrow x=\frac{4}{3}\in \left[ \frac{1}{3};4 \right)-\) подходит

IV. \( \displaystyle x\ge 4\)

\( \displaystyle \left( x+2 \right)-\left( 3{x}-1 \right)-\left( 4-x \right)=3\Leftrightarrow \)

\( \displaystyle x=4\Leftrightarrow x=-4<4\text{ }-\) корень сторонний

Ответ\( -\frac{2}{3};\text{  }\frac{4}{3}.\)

2. \( \left| 3{x}-5 \right|+\left| 3+2x \right|=2\left| x+1 \right|\text{  }\Leftrightarrow \text{  }\left| 3{x}-5 \right|+\left| 3+2x \right|-2\left| x+1 \right|=0.\)

\( \left[ \begin{array}{l}3{x}-5=0\text{  }\Rightarrow \text{ }x=\frac{5}{3}\\3+2x=0\text{  }\Rightarrow \text{ }x=-\frac{3}{2}\\x+1=0\text{    }\Rightarrow \text{  }x=-1\end{array} \right.\)

I. \( \displaystyle x<-\frac{3}{2}\)

\( \displaystyle -\left( 3{x}-5 \right)-\left( 3+2x \right)+2\left( x+1 \right)=0\Leftrightarrow \)

\( \displaystyle -3x=-4\Leftrightarrow x=\frac{4}{3}>-\frac{3}{2}\Rightarrow \) корень сторонний

II.  \( \displaystyle -\frac{3}{2}\le x<-1\)

\( \displaystyle -\left( 3{x}-5 \right)+\left( 3+2x \right)+2\left( x+1 \right)=0\Leftrightarrow \)

\( \displaystyle x=-10<-1\Rightarrow \) корень сторонний

III. \( \displaystyle -1\le x<\frac{5}{3}\)

\( \displaystyle -\left( 3{x}-5 \right)+\left( 3+2x \right)-2\left( x+1 \right)=0\Leftrightarrow \)

\( \displaystyle -3x=-6\Leftrightarrow x=2\text{  }>\frac{5}{3}\Rightarrow \) корень сторонний

IV. \( \displaystyle x\ge \frac{5}{3}\)

\( \displaystyle \left( 3{x}-5 \right)+\left( 3+2x \right)-2\left( x+1 \right)=0\Leftrightarrow \)

\( \displaystyle 3x=4\Leftrightarrow x=\frac{4}{3}<\frac{5}{3}\Rightarrow \) корень сторонний

Итак, ни на одном интервале не нашлось корней. Значит, решений это уравнение не имеет.

Ответ: Решений не имеет.

Модуль числа | Материалы для подготовки к ЕГЭ по математике ЕГЭ-Студия

Модуль числа и уравнения с модулем — тема особенная, прямо-таки заколдованная 🙂 Она совсем не сложная, просто в школе её редко объясняют нормально.

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

Поэтому осваивайте тему «Уравнения и неравенства с модулем» по нашим статьям и на наших занятиях! Вы сумеете обойти множество конкурентов на ЕГЭ, олимпиадах и вступительных экзаменах.

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

(без знака!). Например,

Обратите внимание: модуль числа всегда неотрицателен:

Определение модуля

Вот оно:

От большинства известных из школы определений оно отличается лишь одним: в нём есть выбор. Есть условие. И в зависимости от этого условия мы раскрываем модуль либо так, либо иначе.

Так же, как в информатике — в разветвляющихся алгоритмах с применением условных операторов. Как, вообще-то, и в жизни: сдал ЕГЭ на минимальный балл — можешь подавать документы в ВУЗ. Не сдал на минимальный балл — можешь идти в армию 🙂

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


В некоторых случаях модуль раскрывается однозначно. Например,  так как выражение под знаком модуля неотрицательно при любых x и y. Или:  так так как выражение под модулем неположительно при любых z.

Геометрическая интерпретация модуля

Нарисуем числовую прямую. Модуль числа — это расстояние от нуля до данного числа. Например, То есть расстояние от точки −5 до нуля равно 5.
Эта геометрическая интерпретация очень полезна для решения уравнений и неравенств с модулем.

Рассмотрим простейшее уравнение . Мы видим, что на числовой прямой есть две точки, расстояние от которых до нуля равно трём. Это точки 3 и −3. Значит, у уравнения  есть два решения: x = 3 и x = −3.

Вообще, если имеются два числа a и b, то равно расстоянию между ними на числовой прямой.
(В связи с этим нередко встречается обозначение длины отрезка AB, то есть расстояния от точки A до точки B.)

Ясно, что (расстояние от точки a до точки b равно расстоянию от точки до точки a).

Решим уравнение . Эту запись можно прочитать так: расстояние от точки

x до точки 3 равно 4. Отметим на числовой прямой точки, удовлетворяющие этому условию.

Мы видим, что наше уравнение имеет два решения: −1 и 7. Мы решили его самым простым способом — без использования определения модуля.

Перейдём к неравенствам. Решим неравенство .

Эту запись можно прочитать так: «расстояние от точки x до точки −7 меньше четырёх». Отмечаем на числовой прямой точки, удовлетворяющие этому условию.

Ответ: (-11; -3).

Другой пример. Решим неравенство |10 − x| ≥ 7.

Расстояние от точки 10 до точки x больше или равно семи. Отметим эти точки на числовой прямой.
Ответ:

График функции 

Этот график надо знать обязательно. Для имеем y = x. Для имеем y = −x. В результате получаем:
С помощью этого графика также можно решать уравнения и неравенства.

Корень из квадрата

Нередко в задачах ЕГЭ требуется вычислить , где – некоторое число или выражение. Не забывайте, что 

Действительно, по определению арифметического квадратного корня — это такое неотрицательное число, квадрат которого равен . Оно равно при и при , т. е. как раз .

Примеры заданий ЕГЭ

1. Найдите значение выражения при .

Заметим, что при . Следовательно, значение нашего выражения равно: .

2. Найдите значение выражения при .

Действуем аналогично:

В следующей статье мы рассмотрим более сложные уравнения и неравенства с модулем.

Читайте также: Уравнения с модулем

Модули — Математика — Теория, тесты, формулы и задачи

Оглавление:

 

Основные теоретические сведения

Базовые сведения о модуле

К оглавлению…

Определение модуля может быть дано следующим образом: Абсолютной величиной числа a (модулем) называется расстояние от точки, изображающей данное число a на координатной прямой, до начала координат. Из определения следует, что:

Таким образом, для того чтобы раскрыть модуль необходимо определить знак подмодульного выражения. Если оно положительно, то можно просто убирать знак модуля. Если же подмодульное выражение отрицательно, то его нужно умножить на «минус», и знак модуля, опять-таки, больше не писать.

Основные свойства модуля:

 

Некоторые методы решения уравнений с модулями

К оглавлению…

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

Предпочтительным способом решения будет переход к совокупности:

А для уравнений вида:

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

Оба этих типа уравнений можно решать и другим способом: раскрывая соответствующим образом модуль на промежутках где подмодульное выражение имеет определённый знак. В этом случае будем получать совокупность двух систем. Приведем общий вид решений получающихся для обоих типов уравнений приведённых выше:

Для решения уравнений в которых содержится более чем один модуль применяется

метод интервалов, который состоит в следующем:

  • Сначала находим точки на числовой оси, в которых обращается в ноль каждое из выражений, стоящих под модулем.
  • Далее делим всю числовую ось на интервалы между полученными точками и исследуем знак каждого из подмодульных выражений на каждом интервале. Заметьте, что для определения знака выражения надо подставить в него любое значение x из интервала, кроме граничных точек. Выбирайте те значения x, которые легко подставлять.
  • Далее на каждом полученном интервале раскрываем все модули в исходном уравнении в соответствии с их знаками на данном интервале и решаем полученное обычное уравнение. В итоговый ответ выписываем только те корни этого уравнения, которые попадают в исследуемый промежуток. Еще раз: такую процедуру проводим для каждого из полученных интервалов.

Модули | Angular с примерами кода

Angular модуль — это класс с декоратором @NgModule(), который служит изолирующей логической объединяющей структурой для компонентов, директив, фильтров и сервисов. Все перечисленные сущности определяются и конфигурируются с помощью @NgModule().

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

Сама библиотека @angular также модульная:

Ключевая роль при создании Angular модуля у декоратора @NgModule(), принимающего конфигурационный объект со свойствами:

  • imports — массив, где указывается список импортируемых второстепенных модулей;
  • exports — массив компонентов, директив и фильтров, которыми пользуются другие модули, если они импортируют текущий;
  • declarations — массив компонентов, директив и фильтров;
  • entryComponents — массив создаваемых динамически компонентов;
  • bootstrap — массив, в котором указывается компонент для загрузки;
  • providers — массив сервисов.

По назначению модули можно классифицировать следующим образом:

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

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

Только корневой модуль может определять свойство bootstrap и импортировать BrowserModule.

@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule,
    //
  ],
  bootstrap: [AppComponent],
})
export class AppModule {}

Функциональный Angular модуль реализует логически связанную совокупность компонентов, директив или фильтров (например, модули библиотеки @angular/material).

Практически всегда для модулей этого типа определяется свойство exports.

@NgModule({
  //
  exports: [
    AccountsComponent,
    CreditsComponent,
    DepositsComponent,
    CreditsFilterDirective,
  ],
  //
})
export class AppModule {}

Модуль маршрутизации нужен для определения иерархии маршрутов.

Angular модуль для поставки сервисов создается с использованием статического метода forRoot().

CoreModule и SharedModule

CoreModule — общепринятое название для модуля, используемого исключительно для поставки сервисов. Он не содержит в себе компонентов, директив и фильтров.

core.module.ts

@NgModule({
  imports: [],
  declarations: [],
  providers: [],
})
export class CoreModule {
  static forRoot(): ModuleWithProviders {
    return {
      ngModule: CoreModule,
      providers: [
        AuthService,
        LoggerService,
        SettingsService,
      ],
    }
  }
}

SharedModule — общепринятое название для Angular модуля, служащим единым хранилищем для компонентов, директив и фильтров, которыми пользуются другие модули.

shared.module.ts

@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    ImageCropperModule,
    ScrollbarModule,
    SlickModule,
    SlickModule. forRoot(),
  ],
  exports: [
    CommonModule,
    ImageCropperModule,
    ScrollbarModule,
    SlickModule,
    AppLangsComponent,
    AppTabFilterComponent,
    AppFileUploadComponent,
    ComponentPreloaderDirective,
  ],
  declarations: [
    AppLangsComponent,
    AppTabFilterComponent,
    AppFileUploadComponent,
    ComponentPreloaderDirective,
  ],
})
export class SharedModule {}
@NgModule({
    imports: [
        //
        CoreModule.forRoot(),
        SharedModule
    ]
})

Модуль

Модулем положительного числа называют само это число; модулем отрицательного числа называют число, ему противоположное; модуль нуля равен нулю.

\(|a|=\begin{cases} a, \;\; если \;  a>0 \\ 0, \; если\;\; a=0\\ -a,\; если \;\;  a<0  \end{cases}\)

Второе название модуля – «абсолютное значение действительного числа».

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

— если подмодульное выражение положительно, модуль просто убирается. При этом само выражение не меняется.


— если же оно отрицательно, то при снятии модуля перед подмодульным выражением надо добавить знак «минус», чтобы сделать его положительным.


Об этом правиле нужно помнить при работе с более сложными выражениями или выражениями, содержащими переменные.

Пример. Раскрыть \(|\sqrt5-3|\)

Решение: Под модулем отрицательное выражение (т.к. \(\sqrt 5 \approx 2,24\), то есть меньше \(3\)). Значит, раскрывать модуль надо добавляя минус перед выражением:


Ответ:   \(3-\sqrt 5\)

Пример. 4+1\)

Пример. Вычислить значение выражения \(|7-x|-|x+3|\), при \(x>12\).

Решение: При любом \(x\) большем \(12\), первое подмодульное выражение будет отрицательно, а второе – положительно. Соответственно, первый модуль будет раскрываться с минусом, а второй – с плюсом (значит перед ним останется минус, который стоял перед ним до раскрытия):

\(|7-x|-|x+3|=-(7-x)-(x+3)=-7+x-x-3=-10\)

Ответ: \(-10\)



Геометрическое определение модуля

\(|a|\) — это расстояние от \(0\) до числа \(a\) на числовой оси

Пример. Чему равен \(|5|\)  и \(|-5|\)?

Представим числовую ось и отметим на ней точки \(5\) и \(-5\). Какое будет расстояние от нуля до этих точек? Очевидно \(5\).


Значит ответ: \(|5|=5\),   \(|-5|=5\).

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

Понимать легче второе определение, но практике удобнее использовать первое.

Решение простейших уравнений с модулем

Уравнения вида \(|f|=g\) решается с помощью перехода к совокупности   \( \left[ \begin{gathered}f= g\\  f=-g\end{gathered}\right.\) , при условии, что \(g≥0\).

Сначала об условии \(g≥0\). Откуда оно берется? Из определения модуля, ведь модуль всегда неотрицателен (то есть, положителен или равен нулю). Поэтому условие \(g≥0\) обязательно. Иначе уравнение не будет иметь решения.

Теперь о совокупности. Почему уравнение распадается на два? Давайте, к примеру, рассмотрим уравнение \(|x|=3\). Какое число под модулем будет равно \(3\)? Конечно \(3\) и \(-3\), потому что \(|3|=3\), \(|-3|=3\). Корни уравнения \(|x|=3\): \(3\) и \(-3\). Логично? Логично! В общем виде получается, что подмодульное выражение \(f\) должно быть равно \(g\) и \(-g\). Иначе равенство не получится.


Пример.   Решить уравнение:

\(|x-1|=3x\)

Найдем ограничения уравнения. Запишем его немного правее от основного решения

                               \(3x≥0\)
                               \(x≥0\)

 

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

\( \left[ \begin{gathered}x-1=3x\\ x-1=-3x\end{gathered}\right.\)

 

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

\( \left[ \begin{gathered}x-3x=1\\ x+3x=1\end{gathered}\right. \)

 

Приведем подобные слагаемые

\( \left[ \begin{gathered}-2x=1\\ 4x=1\end{gathered}\right.\)


Поделим первое уравнение на \(-2\), второе на \(4\).

\( \left[ \begin{gathered} x=-\frac{1}{2}\\ x=\frac{1}{4}\end{gathered}\right.\)


Корень \(-\)\(\frac{1}{2}\) – не подходит, т.к. \(x≥0\). Остается корень \(\frac{1}{4}\), его и запишем в ответ

Ответ:  \(\frac{1}{4}\)

Решение простейших неравенств с модулем

Неравенство вида \(|f|< c\) решается с помощью перехода к двойному неравенству   \( -c< f< c\) , при условии, что \(c>0\).

Начнем опять с условия. Почему \(c>0\)? Потому что, иначе неравенство не будет иметь решения. Здесь все также как в уравнениях. В самом деле, когда, например, модуль икса меньше \(-7\)? Никогда!

Теперь разберем неравенство \(|x|<3\). Какие иксы нам подойдут? Все от \(-3\) до \(3\). Иначе говоря, икс должен лежать между \(-3\) и \(3\). Это утверждение можно записать вот так \(-3< x <3\) либо системой \(\begin{cases}x<3\\x > -3\end{cases}\). В любом случае ответ будет \(xϵ (-3;3)\).

Неравенство вида \(|f|>c\) решается с помощью перехода к совокупности неравенств \( \left[ \begin{gathered} f>c\\ f< -c\end{gathered}\right.\), при условии, что \(c≥0\).

А здесь почему \(c≥0\)? Потому что иначе решать нечего: если \(c\) отрицательно, то модуль абсолютно любого икса нам подойдет. И значит ответ, икс – любое число.

Теперь о переходе. Рассмотрим неравенство \(|x|>3\). Какие иксы нам подойдут? Все, модуль которых больше трех, то есть от минус бесконечности до \(-3\) и от \(3\) до плюс бесконечности. Записывая системой получим \(\begin{cases}x>3\\x < -3\end{cases}\). Ответ будет \(x ϵ (-∞;-3)⋃(3;∞)\).

\(|3x-7|≤8\)

\(|3x-11|≥11\)

\(-8≤3x-7≤8\) \(|+7\)

\( \left[ \begin{gathered}3x-11≥11\\ 3x-11≤-11\end{gathered}\right.\)

\(-1≤3x≤15\)

 

\( \left[ \begin{gathered}3x≥22\\ 3x≤0\end{gathered}\right.\)

\(-\frac{1}{3}≤x≤5\)

 

\( \left[ \begin{gathered}x≥\frac{22}{3}\\ x≤0\end{gathered}\right. \)

Ответ: \([ -\frac{1}{3};5]\)

 

Ответ: \( (-\infty;0]\cup [ \frac{22}{3};\infty)\)

Смотрите также:
Свойства модуля

Модули | Node.js с примерами кода

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

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

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

const http = require('http')

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

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

const os = require('os')
// получим имя текущего пользователя
let userName = os.userInfo().username

console.log(userName)

Мы не ограничены встроенными модулями и при необходимости можем создать свои. Так, в прошлой теме проект состоял из файла app.js, в котором создавался сервер, обрабатывающий запросы. Добавим в тот же каталог новый файл greeting.js и определим в нем следующий код:

console.log('greeting module')

В файле app.js подключим наш модуль:

const greeting = require('./greeting')

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

const greeting = require('./greeting')

Запустим приложение:

На консоль выводится та строка, которая определена в файле greeting.js.

Теперь изменим файл greeting.js:

let currentDate = new Date()
module.exports.date = currentDate

module.exports.getMessage = function (name) {
  let hour = currentDate.getHours()
  if (hour > 16) return 'Добрый вечер, ' + name
  else if (hour > 10) return 'Добрый день, ' + name
  else return 'Доброе утро, ' + name
}

Здесь определена переменная currentDate. Однако из вне она недоступна. Она доступна только в пределах данного модуля. Чтобы какие переменные или функции модуля были доступны, необходимо определить их в объекте module.exports. Объект module.exports — это то, что возвращает функция require() при получении модуля.

Вообще объект module представляет ссылку на текущий модуль, а его свойство exports определяет все свойства и методы модуля, которые могут быть экспортированы и использованы в других модулях. Подробнее определение загрузки модуля и все его функции можно посмотреть на странице https://github.com/nodejs/node/blob/master/lib/module.js.

В частности, здесь определяется свойство date и метод getMessage, который принимает некоторый параметр.

Далее изменим файл app.js:

const os = require('os')
const greeting = require('./greeting')

// получим имя текущего пользователя
let userName = os.userInfo().username

console.log(`Дата запроса: ${greeting.date}`)
console.log(greeting.getMessage(userName))

Все экспортированные методы и свойства модуля доступны по имени: greeting.date и greeting.getMessage().

Перезапустим приложение:

Определение конструкторов и объектов в модуле

Кроме определения простейших функций или свойств в модуле могут определяться сложные объекты или функции конструкторов, которые затем используются для создания объектов. Так, добавим в папку проекта новый файл user.js:

function User(name, age) {
  this.name = name
  this.age = age
  this.displayInfo = function () {
    console.log(`Имя: ${this.name}  Возраст: ${this.age}`)
  }
}
User.prototype.sayHi = function () {
  console.log(`Привет, меня зовут ${this.name}`)
}

module.exports = User

Здесь определена стандартная функция конструктора User, которая принимает два параметра. При этом весь модуль теперь указывает на эту функцию конструктора:

Подключим и используем этот модуль в файле app.js:

const User = require('./user.js')

let eugene = new User('Eugene', 32)
eugene.sayHi()

Запустим приложение:

примеров модульных структур | Ресурсы для разработки онлайн-курсов

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

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

Пример 1: Шаблон общего семинара / дискуссионного курса

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

Чтобы воссоздать живое обсуждение семинара в классе, преподаватели могут использовать структурированный формат, подобный приведенному ниже. В частности, подумайте, сколько времени займет каждое действие. Если в вашем семестре учащиеся проводят 3-5 часов в неделю за чтением и подготовкой и 3 часа в неделю в классе, убедитесь, что вы случайно не создаете намного большую или меньшую рабочую нагрузку в Интернете. (Примечание: преподаватели часто ошибаются в сторону слишком высокой рабочей нагрузки, когда впервые переводят курсы в онлайн.Такое планирование может помочь предотвратить это.)

  1. Чтение / Впуск , в том числе:
  • присвоенные показания
  • занятий до и после чтения
  • Лекция, подготовленная преподавателем для предоставления контекста
  1. Журнал / процесс , который может включать:
  • отправка ответов на подсказки после чтения в виде задания
  • Тест по чтению, в котором задаются вопросы по обработке
  • взаимодействие со сверстниками по асинхронному тексту или видео Доска обсуждения
  • добавление мыслей в личный журнал дискуссионной доски
  1. Обсуждение , которое может включать:
  • синхронное собрание Zoom
  • асинхронное Обсуждение
  • внешний инструмент, такой как Flipgrid, для асинхронных обсуждений или гипотез видео.для социальной аннотации текстов
  • , если вы преподаете гибридный курс, это может быть то место, где проходят ваши живые встречи f2f

Если этот формат кажется, что он может работать для вас … но есть другие элементы, которые вы обычно включаете в свои классы f2f и надеялись также разместить в сети, как вы можете адаптировать эту модель к своим потребностям? Возможно, 4-й шаг в модуле для демонстрации знаний и навыков? Или, может быть, в вашем курсе есть элемент презентации, и студентам нужно будет создавать и публиковать свои собственные видео- или аудиопрезентации? Этот простой формат имеет много возможностей для адаптации, дополнения и использования вами.

Пример 2: Общая лекция / Шаблон большого курса

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

Чтобы воссоздать живые презентации лекции, преподаватели могут использовать структурированный формат, подобный приведенному ниже. В частности, подумайте, сколько времени займет каждое действие. Если в вашем семестре учащиеся проводят 3-5 часов в неделю за чтением и подготовкой и 3 часа в неделю в классе, убедитесь, что вы случайно не создаете намного большую или меньшую рабочую нагрузку в Интернете.(Примечание: преподаватели часто ошибаются в сторону слишком высокой рабочей нагрузки при первом переводе курсов в онлайн. Такое планирование может помочь предотвратить это.)

  1. Лекция / прием , который может включать:
  1. Домашнее задание / Обработка , которое может включать:
  • наборов задач из онлайн-платформы самооценки учебников
  • Викторина с неограниченным количеством попыток
  • проблем с ручкой и бумагой отсканировано и отправлено в качестве задания
  • размещение ответов на доске обсуждений в небольших группах для сравнения ответов и достижения консенсуса с коллегами
  1. Сессии вопросов и ответов , которые могут включать:
  • синхронное собрание Zoom
  • асинхронный, ограниченный по времени Обсуждение
  • синхронный чат
  • видеоответов с веб-камеры от профессора или технического специалиста на анонимные вопросы, отправленные студентами на доске обсуждений

Как вы можете изменить этот шаблон, чтобы включить элементы, которые вы обычно включаете в свои классы f2f?

Пример 3: сжатый шаблон летнего курса

Натан Холл, преподаватель колледжа Дуглас в Ванкувере, Британская Колумбия, недавно опубликовал в Твиттере информацию о структуре модулей для своего 4-недельного летнего курса.Его курс «встречается» 3 часа в день и 4 дня в неделю, сочетая асинхронные и синхронные занятия. Он хотел, чтобы каждый день включал в себя набор полезных учебных занятий, которые были достаточно предсказуемыми, чтобы создать четкую траекторию обучения. Вот его визуальное представление структуры его модуля (предоставлено с разрешения):

Step 1: Студенты смотрят и взаимодействуют с короткими записанными уроками на Edpuzzle перед тем, как прийти в класс.(Асинхронный — всего 45 минут)

Шаг 2: Учащиеся самостоятельно выполняют контролируемые практические занятия на основе того, что они узнали из записанных уроков перед тем, как прийти в класс. Это отмечается самим собой. (Асинхронный — всего 45 минут)

Шаг 3: Студенты посещают урок в режиме реального времени с инструктором, где они практикуются в парах и группах. (Синхронно — 1 час)

Шаг 4: Учащиеся самостоятельно работают в комнате для обсуждения над письменным проектом.Инструктор посещает каждого ученика, чтобы оказать ему живую поддержку. (Синхронно — 30 минут)

Шаг 5: Учащиеся выполняют домашнее задание вне класса. (Асинхронный)

Как вы можете изменить этот шаблон, чтобы включить элементы, которые вы обычно включаете в свои классы f2f?

На своей бумаге или с помощью цифрового инструмента, такого как Microsoft Word или Canva, создайте визуализацию структуры вашего курса, как показано выше.Не забудьте указать, сколько раз должен выполняться каждый шаг. Этот документ Word (щелкните здесь, чтобы загрузить: Рабочий лист структуры модуля) содержит два варианта такой визуализации, таблицу и Smart Art. Не стесняйтесь использовать наш шаблон в качестве редактируемой отправной точки для создания наброска структуры модуля вашего собственного онлайн-курса.

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



Эта страница находится под лицензией Creative Commons Attribution-NonCommercial 4.0 Международная лицензия.

Некоторые примеры модулей

Модуль — это своего рода «плагин»: программный пакет, который может легко использоваться другими программистами. Модули могут содержать методы, классы, константы, а также другие модули. Мы будем использовать термин член для чего-то, например метода, содержащегося в модуле. Некоторые модули написаны на Pike, но также можно использовать C и C ++.

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

  • Stdio

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

  • GTK

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

  • Изображение

    Обработка и обработка изображений.

  • Протоколы

    Различные протоколы, т.е. е. способы общения. Один из них Protocols.HTTP, который используется для связи с World Wide Веб-серверы для получения веб-страниц. Некоторые другие поддерживаемые протоколы DNS , IMAP , IRC , LDAP , LysKOM , NNTP , SMTP и TELNET .

  • MIME

    Поддержка кодирования и кодирования с использованием MIME, которое используется в электронная почта.

  • Crypto

    Поддержка криптографии.

  • Календарь

    Поддержка различных форматов календаря и даты.

  • Mysql

    Этот модуль позволяет Pike использовать запросы к базе данных SQL с помощью mySQL сервер базы данных.

  • Thread

    Поддержка потокового выполнения программ Pike.

  • Процесс

    Функции для запуска и управления другими процессами.

  • Getopt

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

  • LR

    Генератор парсера LALR (1).

  • Yp

    Поддержка сетевой информационной системы.

  • Gz

    Поддержка распаковки сжатых файлов.

  • Regexp

    Поддержка так называемых регулярных выражений.

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

модулей JavaScript — JavaScript | MDN

Это руководство дает вам все необходимое для начала работы с синтаксисом модуля JavaScript.

Программы на JavaScript начинались довольно с малого — вначале они чаще всего использовались для выполнения изолированных задач сценариев, обеспечивая некоторую интерактивность для ваших веб-страниц там, где это необходимо, поэтому большие сценарии, как правило, не требовались.Перенесемся на несколько лет вперед, и теперь у нас есть полные приложения, запускаемые в браузерах с большим количеством JavaScript, а также JavaScript, используемый в других контекстах (например, Node.js).

Поэтому в последние годы имело смысл задуматься о предоставлении механизмов для разделения программ JavaScript на отдельные модули, которые можно импортировать при необходимости. Node.js обладает этой возможностью уже давно, и существует ряд библиотек и фреймворков JavaScript, которые позволяют использовать модули (например, другие модульные системы на базе CommonJS и AMD, такие как RequireJS, а в последнее время — Webpack и Babel).

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

Использование собственных модулей JavaScript зависит от операторов import и export ; они поддерживаются в браузерах следующим образом:

импорт

таблицы BCD загружаются только в браузере

экспорт

таблицы BCD загружаются только в браузере

Чтобы продемонстрировать использование модулей, мы создали простой набор примеров, которые вы можете найти на GitHub.Эти примеры демонстрируют простой набор модулей, которые создают элемент на веб-странице, а затем рисуют (и сообщают информацию о) различные формы на холсте.

Это довольно тривиальные, но они намеренно оставлены простыми для ясной демонстрации модулей.

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

В нашем первом примере (см. Основные модули) у нас есть следующая файловая структура:

 индекс.html
main.js
модули /
    canvas.js
    square.js 

Примечание: Все примеры в этом руководстве в основном имеют одинаковую структуру; Вышеупомянутое должно начать знакомиться.

Два модуля каталога модулей описаны ниже:

  • canvas.js — содержит функции, связанные с настройкой холста:
    • create () — создает холст с указанной шириной и высотой внутри оболочки
      с указанным идентификатором, который сам добавляется внутри указанного родительского элемента.Возвращает объект, содержащий 2D-контекст холста и идентификатор оболочки.
    • createReportList () — создает неупорядоченный список, добавленный внутри указанного элемента оболочки, который можно использовать для вывода данных отчета в. Возвращает идентификатор списка.
  • square.js — содержит:
    • имя — константа, содержащая строку «квадрат».
    • draw () — рисует квадрат на указанном холсте с указанным размером, положением и цветом.Возвращает объект, содержащий размер, положение и цвет квадрата.
    • reportArea () — записывает площадь квадрата в определенный список отчетов с учетом его длины.
    • reportPerimeter () — записывает периметр квадрата в определенный список отчетов с учетом его длины.

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

  • Это полезно для ясности, т.е. дает понять, какие файлы являются модулями, а какие — обычным JavaScript.
  • Это гарантирует, что файлы вашего модуля анализируются как модуль средами выполнения, такими как Node.js, и инструментами сборки, такими как Babel.

Однако мы решили продолжать использовать .js , по крайней мере, на данный момент. Чтобы модули работали правильно в браузере, вам необходимо убедиться, что ваш сервер обслуживает их с заголовком Content-Type , который содержит MIME-тип JavaScript, например text / javascript .Если вы этого не сделаете, вы получите ошибку строгой проверки типа MIME вроде «Сервер ответил типом MIME, отличным от JavaScript», и браузер не будет запускать ваш JavaScript. Большинство серверов уже установили правильный тип для файлов .js , но еще не для файлов .mjs . Серверы, которые уже обслуживают файлов .mjs , правильно включают GitHub Pages и http-server для Node.js.

Это нормально, если вы уже используете такую ​​среду, или если нет, но вы знаете, что делаете, и имеете доступ (т.е. вы можете настроить свой сервер для установки правильного типа содержимого для файлов .mjs ). Однако это может вызвать путаницу, если вы не контролируете сервер, с которого обслуживаете файлы, или публикуете файлы для общего пользования, как мы здесь.

Для обучения и переносимости мы решили оставить .js .

Если вы действительно цените ясность использования .mjs для модулей по сравнению с использованием .js для «обычных» файлов JavaScript, но не хотите сталкиваться с проблемой, описанной выше, вы всегда можете использовать .mjs во время разработки и преобразовать их в .js на этапе сборки.

Также стоит отметить, что:

  • Некоторые инструменты могут никогда не поддерживать .mjs , например TypeScript.
  • Атрибут

    Вы также можете встроить сценарий модуля непосредственно в файл HTML, поместив код JavaScript в тело элемента

    Сценарий, в который вы импортируете функции модуля, в основном действует как модуль верхнего уровня.Если вы его опустите, Firefox, например, выдает ошибку «SyntaxError: объявления импорта могут появляться только на верхнем уровне модуля».

    Вы можете использовать только операторы import и export внутри модулей, а не обычные сценарии.

    • Вам нужно обратить внимание на локальное тестирование - если вы попытаетесь загрузить файл HTML локально (то есть с URL-адресом file: // ), вы столкнетесь с ошибками CORS из-за требований безопасности модуля JavaScript. Вам нужно проводить тестирование через сервер.
    • Также обратите внимание, что вы можете получить другое поведение из разделов скрипта, определенных внутри модулей, в отличие от стандартных скриптов. Это связано с тем, что модули автоматически используют строгий режим.
    • Нет необходимости использовать атрибут defer (см. Атрибуты