Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Перевод






Минимум (пол) R← ⌊ Y

Y должны быть числовыми.

Для действительных чисел R является наибольшее целое значение, меньшее или равное Y.

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

 

Максимум (потолок) R← ⌈ Y

Y должны быть числовыми.

Если элемент Y является реальным, то соответствующий элемент из R является наименьшим числом, большим, чем Y или равным значению Y.

Если элемент Y является комплексным числом, то соответствующий элемент из R зависит от отношения между реальной и мнимой частей числа.

 

Оператор сканирования R← X\[K]Y

Y может быть любой массив X представляет собой простое целое число скалярных или векторных.

K должно быть простым скаляром или целое число 1-элемент вектора

Если Y-скаляр, он рассматривается как один элемент вектора.

Если Y имеет длину 1 вдоль оси, вытянута вдоль этой оси к соответствует количеству положительных элементов в X.

§3 Примеры из Дж.Браун С.Пейкин Р.Поливка «Время пришло»

10 ¯ 12 5 ⌈ 4 ¯ 8 0

10 ¯ 8 5

25 ⌊ 35 ¯ 37

25 ¯ 37

25⌈ 6

25⌊ 6

13 15 ⌈ (11 14) (16 10 14)

13 14 16 15 15

+\(1 2 3)(4 5 6)(7 8 9)

1 2 3 5 7 9 12 15 18

+\⍳ 5

1 3 6 10 15

 

 


 

Лекция от 2015.10.09

 

1. Workspace

T← 350+? 1000⍴ 20 – задаем массив температур Т

⌈ /T

370 – находим максимум в массиве Т

⎕ pw

⎕ pw← 60 – присвоили ширину отображения 60 символов

T – отобразили массив Т

365 352 355 351 358 352 362 369 359 360 365 351 354 366 363

365 356 363 368 369 360 370 359 366 351 366 356 356

355 351 362 351 360 367 363 364 359 368 363 360 367

359 354 370 368 357 370 363 369 353 367 353 357 366

356 362 360 369 360 364 368 354 351 354 369 352 362

353 363 362 359 357 360 368 359 370 362 362 361 351

...

355 362 363 365 365 357 352 366 357 365 368 366 368

358 364 357 352 351 368 360 357 351 362 357 356 366

370 351 357 354 351 367 351 351 361 366 362 357 362

366 361 356 363 352 357 354 366 357 362 360 358 363

353 353 363 367 352 355 360 358 365 366 355 368 353

363 370 357 360 363 360 364 363 366 370 358 351 359

370 355 353 360 361 370 370 363 360 367

4 3 1 5 ⍳ 3 – индекс вхождения числа 3

4 3 1 5 ⍳ 3 4 1 - индекс вхождения вектора 3 4 1

2 1 3

max← ⌈ /T – присвоили максимум в max

T⍳ max - индекс вхождения максимума

k← T⍳ max – присвоили индекс вхождения максимума в k

max – отобразили максимум

T[k] – нашли k в массиве Т

t← 10× ⍳ ⍴ T – задаем массив времени t

t[k] – ищем момент времени с максимальной температурой

t[T⍳ ⌈ /T] – ищем момент времени с максимальной температурой (другой способ)

T=⌈ /T – с помощью функции «=» все максимумы приняли значение 1, а остальные числа 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0

0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0

….

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0

+/T=⌈ /T – пересчитали количество максимумов

+/0=5|T – пересчитали температуры кратные 5

+/0=7|T – пересчитали температуры кратные 7

+/0=13|T – пересчитали температуры кратные 13

0 1 0 1 ∧ 0 0 1 1 – действие функции И

0 0 0 1

0 1 0 1 ∨ 0 0 1 1 – действие функции ИЛИ

0 1 1 1

+/(T> 330)∧ T< 350 – пересчитали температуры в границах 330-350

⌈ /T – максимальная температура

⌊ /T – минимальная температура

+/(T> 355)∧ T< 360 – пересчитали температуры в границах 355-360

~0 1 0 1 ∨ 0 0 1 1 – функция ИЛИ с функцией Отрицание (~)

1 0 0 0

~0 1 0 1 0 0 1 1 – работа функции ~

1 0 1 0 1 1 0 0

+/1 2 3 4 5

1 0 1 1 0/1 2 3 4 5 – функция Сжатие (/) (слева нули и единицы)

1 3 4

1 0 2 5 0/1 2 3 4 5 – функция Повторение(/) (слева обычные числа)

1 3 3 4 4 4 4 4

⍴ (T=⌈ /T)/t – пересчитали количество максимумов с помощью функции Сжатие

⍝ (⍴ T)=+/T> 350

⍝ T> 350

∧ /1 1 1 – использование функции И через оператор Редукция

1 ∧ 1 ∧ 0 ∧ 1 ∧ 1 – так это выглядит без Редукции

∧ /T> 350 – показали, что все температуры массива Т больше 350

∨ /T> 350 – узнаем, что хотя бы одна температура в массиве Т больше 350

s←  ̄ 1+? 3⍴ ⊂ 3 3⍴ 2 – задали вектор матриц s

]disp s – отобразили вектор s на экран

┌ → ─ ─ ─ ─ ┬ ─ ─ ─ ─ ─ ┬ ─ ─ ─ ─ ─ ┐

│ 1 0 0│ 0 1 0│ 1 1 0│

│ 0 1 1│ 1 1 1│ 0 0 1│

│ 1 0 0↓ 1 0 0↓ 1 1 1↓

└ ~─ ─ ─ → ┴ ~─ ─ ─ → ┴ ~─ ─ ─ → ┘

⍴ s – узнали размерность вектора s

∧ /s – сравнили матрицы в векторе s с помощью функции И

0 0 0

0 0 1

1 0 0

~∧ /s – записали Отрицание результата сравнения

1 1 1

1 1 0

0 1 1

(~∧ /s)∧ s – сравнили Отрицание результата сравнения с вектором матриц s

1 0 0 0 1 0 1 1 0

0 1 0 1 1 0 0 0 0

0 0 0 0 0 0 0 1 1

' x'[? 3 3⍴ 2] – заменяет все 2 в матрице на ‘ x’

xx

x

2. APL Language references

· Отрицание R← ~Y

Y должен быть логическим массивом. R логическое число. Величина R это 0 если Y это 1, и R это 1 если Y это 0.

Пример

~0 1

1 0

· Равно R← X=Y

Y может быть любым массивом. X может быть любым массивом. R логическое число. ⎕ CT это неявный аргумент Равно.

Если X и Y переменные, тогда R это 1, если они одинаковые переменные. Если X это переменная и Y это число, или наоборот, тогда R это 0.

Если X и Y числа, тогда R это 1, если X и Y в пределах сравнения друг друга.

Для действительных чисел X и Y, X считается равным Y если (|X-Y) не больше чем ⎕ CT× (|X)⌈ |Y.

Для комплексных чисел X=Y это 1 если величина X-Y не превышает в ⎕ CT раз большей величины X и Y; геометрически, X=Y если число меньшее, чем величина лежащая на или вне окружности по центру на окружности с большей величиной, имеющей радиус в ⎕ CT раз большей величины.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.