34651

Символьные переменные и строки. Множества. Записи

Реферат

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

Символьные переменные Строки Множества Записи Символьные переменные Значением символьного типа Chr является множество всех символов ПК. PRED X возвращает предыдущее значение порядкового типа значение которое соответствует порядковому номеру ORDX 1 т. ORDPREDX = ORDX 1; SUCC X возвращает следующее значение порядкового типа которое соответствует порядковому номеру ORDX 1 т. 10 Перевод строки; при выводе его на экран все последующие символы будут выводиться начиная с той же позиции но на следующей...

Русский

2013-09-08

92 KB

4 чел.

исциплина «Основы алгоритмизации и программирование»  Символьные переменные и строки. Множества. Записи

Символьные переменные и строки. Множества. Записи.

[1] Символьные переменные

[2] Строки

[3] Множества

[4] Записи

Символьные переменные

Значением символьного типа (Char) является множество всех символов ПК. Каждому символу приписывается целое число в диапазоне 0...255. Это число служит кодом внутреннего представления символа, его возвращает функция ORD.

ORD(X) – возвращает порядковый номер значения выражения X.

PRED (X) - возвращает предыдущее значение порядкового типа (значение, которое соответствует порядковому номеру ORD(X)- 1), т.е.

ORD(PRED(X)) = ORD(X) - 1;

SUCC (X) - возвращает следующее значение порядкового типа, которое соответствует порядковому номеру ORD(X) +1, т.е.

ORD(SUCC(X)) = ORD(X) + 1.

Для кодировки используется код ASCII (American Standard Code for Information Interchange - американский стандартный код для обмена информацией). Это 7-битный код, т.е. с его помощью можно закодировать лишь 128 символов в диапазоне от 0 до 127. В то же время в 8-битном байте, отведенном для хранения символа в Турбо Паскале, можно закодировать в два раза больше символов в диапазоне от 0 до 255. Первая половина символов ПК с кодами 0...127 соответствует стандарту ASCII (табл. 4.3). Вторая половина символов с кодами 128...255 не ограничена жесткими рамками стандарта и может меняться на ПК разных типов.

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

7 Звонок; вывод на экран этого символа сопровождается звуковым сигналом

9 Горизонтальная табуляция; при выводе на экран смещает курсор в позицию, кратную 8, плюс 1 (9, 17, 25 и т.д.)

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

12 Прогон страницы; при выводе на принтер формирует страницу, при выводе на экран заменяется специальным знаком

13 Возврат каретки; вводится нажатием на клавишу Enter (при вводе с помощью READ или READLN означает команду «Ввод» и в буфер ввода не помещается; при выводе означает команду «Продолжить вывод с начала текущей строки»)

27 Конец работы; вводится с клавиатуры нажатием на клавишу ESC; при выводе заменяется специальным знаком

К типу CHAR применимы операции отношения, а также встроенные функции: СНR(В) - функция типа CHAR; преобразует выражение В типа BYTE в символ и возвращает его своим значением;

UPCASE(CH) - функция типа CHAR; возвращает прописную букву, если СН -строчная латинская буква, в противном случае возвращает сам символ СН, например:

var

 cl,c2: Char;  

begin 

 cl := UpCase('s') ;  

 c2 := UpCase ('Ф') ;

 WriteLn(cl,'  ',c2)  

end.

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

S     ф

Строки

Тип STRING (строка) в Турбо Паскале широко используется для обработки текстов. Он во многом похож на одномерный массив символов ARRAY[O..N] OF CHAR, однако, в отличие от последнего, количество символов в строке-переменной может меняться от 0 до N, где N - максимальное количество символов в строке. Значение N определяется объявлением типа STRING [N] и может быть любой константой порядкового типа, но не больше 255 . Турбо Паскаль разрешает не указывать N, в этом случае длина строки принимается максимально возможной, а именно N=255 .

Строка (String) в Турбо Паскале трактуется как цепочка символов. К любому символу в строке можно обратиться точно так же, как к элементу одномерного массива ARRAY [0..N] OF CHAR, например:

var  

 st : String;  

begin 

 .....

 if st[5] = 'A' then...  

end.

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

var

 st : String;  

 i : Byte;

begin 

 i := ord(st [0] ) ; {i - текущая длина строки}  

 while (i <> 0) and (st[i] = ' ') do  

 begin  

   dec(i);

   st[0] := chr(i)  

 end;

 .....

end.

Значение ORD(st[0]) , т.е. текущую длину строки, можно получить и с помощью функции LENGTH(st), например:

while (Length(st)<>0) and (st[Length(st)]=' ') do  

 st[0] := chr(Length(st)-1)

К строкам можно применять операцию «+» - сцепление, например:

st := 'а + 'b';  

st := st + 'с'; {st содержит "abc"}

Если длина сцепленной строки превысит максимально допустимую длину N, то «лишние» символы отбрасываются. Следующая программа, например, напечатает символ 1:

var

 st: String [1] ;  

begin 

 St:='123';  

 WriteLn(st)  

end.

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

CONCAT(S1 [,S2, ... , SN] ) - функция типа STRING; возвращает строку, представляющую собой сцепление строк-параметров SI, S2, ..., SN.

COPY(ST, INDEX, COUNT) - функция типа STRING; копирует из строки ST COUNT символов, начиная с символа с номером INDEX.

DELETE (ST, INDEX, COUNT) - процедура; удаляет СОUNT символов из строки ST, начиная с символа с номером INDEX.

INSERT (SUBST, ST, INDEX) - процедура; вставляет подстроку SUBST в строку ST, начиная с символа с номером INDEX.

LENGTH (ST) - функция типа INTEGER; возвращает длину строки ST.

POS (SUBST, ST) - функция типа INTEGER; отыскивает в строке STпервое вхождение подстроки SUBST и возвращает номер позиции, с которой она начинается; если подстрока не найдена, возвращается ноль.

STR(X [; WIDTH [: DECIMALS] ], ST) - процедура; преобразует число X любого вещественного или целого типов в строку символов ST так, как это делает процедура WRITELN перед выводом; параметры WIDTH и DECIMALS, если они присутствуют, задают формат преобразования: WIDTH определяет общую ширину поля, выделенного под соответствующее символьное представление вещественного или целого числа X, a DECIMALS - количество символов в дробной части (этот параметр имеет смысл только в том случае, когда Х- вещественное число).

VAL(ST, X, CODE) - процедура; преобразует строку символов ST во внутреннее представление целой или вещественной переменной X, которое определяется типом этой переменной; параметр CODE содержит ноль, если преобразование прошло успешно, и тогда в X помещается результат преобразований, в противном случае он содержит номер позиции в строке ST, где обнаружен ошибочный символ, и в этом случае содержимое Х не меняется; в строке ST могут быть ведущие пробелы, однако ведомые пробелы недопустимы; например, обращение val (' 123',k,i) пройдет успешно: k получит значений 123, в i будет помещен 0, в то время как обращение val (' 123 ' , k, i) будет ошибочным: значение k не изменится, a i будет содержать 4.

UPCASE (СН) - функция типа CHAR; возвращает для символьного выражения СН, которое должно представлять собой строчную латинскую букву, соответствующую заглавную букву; если значением СН является любой другой символ (в том числе строчная буква русского алфавита), функция возвращает его без преобразования.

Примеры:

var

 х : Real;  

 у : Integer;  

 st,st1: String;  

begin 

 st := concat('12','345'); {строка st содержит 12345}  

 st1 := copy(st,3,Length(st)-2); {st1 содержит 345}

 insert('-',st1,2); {строка st1 содержит 3-45}  

 delete(st,pos('2',at),3); {строка st содержит 15}  

 str(pi:6:2,st); {строка st содержит 3.14}  

 val(''3,1415' ,x,y) ; {у содержит 2, х остался без изменения}

end.

Операции отношения =, о, >, <, >=, <= выполняются над двумя строками посимвольно, слева направо с учетом внутренней кодировки. Если одна строка меньше другой по длине, недостающие символы короткой строки заменяются значением СНR(0) .

Множества 

Множества - это наборы однотипных логически связанных друг с другом объектов. Характер связей между объектами лишь подразумевается программистом и никак не контролируется Турбо Паскалем. Количество элементов, входящих в множество, может меняться в пределах от 0 до 256 (множество, не содержащее элементов, называется пустым). Именно непостоянством количества своих элементов множества отличаются от массивов и записей.

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

Пример определения и задания множеств:

type

 digitChar= set of '0'..'9';

 digit = set of 0..9;  

var 

 sl,s2,s3 :digitChar;

 s4,s5,s6 :digit;

begin 

 .....

 s1:=['1','2','3'];

 s2:=['3','2','1'];

 s3:=['2','3'];

 s4:=[0..3,6];

 s5:=[4,5];

 s6:=[3..9];

 .....

end.

В этом примере множества S1 и S2 эквивалентны, а множество S3 включено в S2 , но не эквивалентно ему.

Описание типа множества имеет вид:

<имя типа> = SET OF <баз.тип>

Здесь <имя типа> - правильный идентификатор;

SET, OF - зарезервированные слова (множество, из);

<баз.тип> - базовый тип элементов множества, в качестве которого может использоваться любой порядковый тип, кроме WORD, INTEGER, LONGINT.

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

Над множествами определены следующие операции:

*  пересечение множеств; результат содержит элементы, общие для обоих множеств; например, S4*S6         содержит [3], S4*S5 - пустое множество;

+ объединение множеств; результат содержит элементы первого множества, дополненные недостающими  элементами из второго множества:

 S4+S5 содержит [0,1,2,3,4,5,6];  

 S5+S6 содержит [3,4,5,6,7,8,9];

- разность множеств; результат содержит элементы из первого множества, которые не принадлежат второму:

 S6-S5 содержит [3,6,7,8,9];  

 S4-S5 содержит [0,1,2,3,6];

= проверка эквивалентности; возвращает TRUE, если оба множества эквивалентны;

<> проверка неэквивалентности; возвращает TRUE, если оба множества неэквивалентны;

<= проверка вхождения; возвращает TRUE, если первое множество включено во второе;

>= проверка вхождения; возвращает TRUE, если второе множество включено в первое;

IN проверка принадлежности; в этой бинарной операции первый элемент - выражение, а второй -   множество одного и того же типа; возвращает TRUE , если выражение имеет значение, принадлежащее множеству:

 3 in s6 возвращает TRUE;  

 2*2 in s1 возвращает FALSE.

Дополнительно к этим операциям можно использовать две процедуры. INCLUDE - включает новый элемент во множество. Обращение к процедуре:

INCLUDE (S,I)

Здесь S - множество, состоящее из элементов базового типа TSetBase;

         I - элемент типа TSetBase, который необходимо включить во множество.

EXCLUDE - исключает элемент из множества. Обращение:

EXCLUDE(S,I)

Параметры обращения - такие же, как у процедуры INCLUDE.

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

Проиллюстрируем приемы работы с множествами, реализовав алгоритм выделения из первой сотни натуральных чисел всех простых чисел. В его основе лежит прием, известный под названием «решето Эратосфена». В соответствии с этим алгоритмом вначале формируется множество BEGINSET, состоящее из всех целых чисел в диапазоне от 2 до N. Во множество PRIMERSET (оно будет содержать искомые простые числа) помещается 1. Затем циклически повторяются следующие действия:

взять из BEGINSET первое входящее в него число NEXT и поместить его в PRIMERSET;

удалить из BEGINSET число NEXT и все другие числа, кратные ему, т.е.2*NEXT, 3*NEXT и т.д.

Цикл повторяется до тех пор, пока множество BEGINSET не станет пустым.

Эту программу нельзя использовать для произвольного N, так как в любом множестве не может быть больше 256 элементов.

Program Primer_numbers_detect;

{Выделение всех простых чисел из первых N целых}

const 

 N = 255; {Количество элементов исходного множества}

type 

 SetOfNumber = set of 1..N;

var 

 n1,next,i : Word; {Вспомогательные переменные}  

 BeginSet, {Исходное множество}  

 PrimerSet : SetOfNumber; {Множество простых чисел} .

begin 

 BeginSet := [2..N] ; {Создаем исходное множество}

 PrimerSet:= [1]; {Первое простое число}  

 next:= 2; {Следующее простое число}

 while BeginSet <> [] do {Начало основного цикла}  

 begin 

   n1 := next;{n1-число,кратное очередному простому (next)}  

   {Цикл удаления из исходного множества непростых чисел:}  

   while n1 <= N do  

   begin 

     Exclude(BeginSet,nl);

     n1 := n1+next {Следующее кратное}  

   end; {Конец цикла удаления}  

   Include(PrimerSet,next);

   {Получаем следующее простое, которое есть первое

   невычеркнутое из исходного множества}  

   repeat 

     inc(next)

   until (next in BeginSet) or (next > N)  

 end; {Конец основного цикла}  

 {Выводим результат:}  

 for i := 1 to N do 

   if i in PrimerSet then Write(i:8);  

 WriteLn  

END.

Перед тем как закончить рассмотрение множеств полезно провести небольшой эксперимент. Измените описание типа SETOFNUMBER следующим образом:

type

SetOf Number = set of 1. . 1 ;

и еще раз запустите программу из предыдущего примера. На экран будет выведено

1   3   5   7

Множества BeginSet и PrimerSet состоят теперь из одного элемента, а программа сумела поместить в них не менее семи! Секрет этого прост: внутреннее устройство множества таково, что каждому его элементу ставится в соответствие один двоичный разряд (один бит); если элемент включен во множество, соответствующий разряд имеет значение 1, в противном случае - 0. Минимальной единицей памяти является один байт, содержащий 8 бит. Компилятор выделил множествам по одному байту, в результате мощность каждого из них стала равна 8 элементов. Максимальная мощность множества - 256 элементов. Для таких множеств компилятор выделяет по 16 смежных байт.

И еще один эксперимент: измените диапазон базового типа на 1.256. Хотя мощность этого типа составляет 256 элементов, при попытке компиляции программы компилятор сообщит:

Error 23: Set base type out of range.

(Ошибка 23: Базовый тип множества выходит за допустимые границы.)

Компилятор разрешает использовать в качестве базового типа целочисленный тип-диапазон с минимальной границей 0 и максимальной 255 или любой перечисляемый тип не более чем с 256 элементами (максимальная мощность перечисляемого типа -5536 элементов).

Записи 

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

Структура объявления типа записи такова:

<имя типа> = RECORD <сп.полей> END

Здесь <имя типа> - правильный идентификатор;

RECORD, END - зарезервированные слова (запись,конец); <сп.полей> - список полей; представляет собой последовательность разделов записи, между которыми ставится точка с запятой.

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

type

 BirthDay = record  

 day,month : Byte;  

 year : Word  

 end;  

var

 a,b : Birthday;

.......

В этом примере тип BIRTHDAY (день рождения) есть запись с полями DAY, MONTH и YEAR (день, месяц и год); переменные А и В содержат записи типа BIRTHDAY.

Как и в массиве, значения переменных типа записи можно присваивать другим переменным того же типа, например

а := b;

К каждому из компонентов записи можно получить доступ, если использовать составное имя, т.е. указать имя переменной, затем точку и имя поля:

а.day := 27;  

b.year := 1939;

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

type

 BirthDay = record  

 day,month: Byte;  

 year : Word  

 end;  

var 

 с : record 

 name : String;  

 bd : BirthDay;  

 end;

begin 

 .....

 if c.bd.year = 1939 then ...  

end.

Чтобы упростить доступ к полям записи, используется оператор присоединения WITH:

WITH <переменная> DO <оператор>

Здесь WITH, DO - ключевые слова (с, делать);

<переменная> - имя переменной типа запись, за которым, возможно, следует список вложенных полей; <оператор> - любой оператор Турбо Паскаля.

Например:

with c.bd do month := 9;

Это эквивалентно 

with с do with bd do month := 9;

или 

with c,bd do month := 9;

или

c.bd.month := 9;

Турбо Паскаль разрешает использовать записи с так называемыми вариантными полями, например:

type

 Forma = record  

 Name: String;  

 case Byte of 

 0: (Birthplace: String [40]);  

 1: (Country : String [20];  

     EntryPort : String [20];  

     EntryDate : 1. . 31;  

     ExitDate : 1..31)  

 end;

В этом примере тип FORMA определяет запись с одним фиксированным полем NAME и вариантной частью, которая задается предложением CASE... OF. Вариантная часть состоит из нескольких вариантов (в примере - из двух вариантов: 0 и 1). Каждый вариант определяется константой выбора, за которой следует двоеточие и список полей, заключенный в круглые скобки. В любой записи может быть только одна вариантная часть, и, если она есть, она должна располагаться за всеми фиксированными полями.

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

var

 mem4 : record 

 case Byte of 

 0 : (by : array'[0..3] of Byte);

 1 : (wo : array [0..1] of Word);

 2 : (lo : longint);  

 end;

В этом примере запись МЕМ4 имеет три варианта, каждый из которых занимает в памяти один и тот же участок из 4 байт. В зависимости от того, к какому полю записи мы обращаемся в программе, этот участок может рассматриваться как массив из 4 байт (поле ВТ), массив из двух целых типа WORD (поле WO) или, наконец, как одно целое число типа LONGINT (поле LO). Например, этой записи можно сначала присвоить значение как длинному целому, а затем проанализировать результат по байтам или словам:

var

 х : Word;  

 xb: Byte;  

 x1: Longint;  

begin 

 .....

 with m do  

 begin 

   lo := trunc(2*pi*x);  

   if wo[1] = 0 then 

     if by[l] = 0 then 

       xb := x[0]

       else 

       x := wo[0]  

     else 

     x1 := lo  

 end;

 .....

end.

Предложение CASE... OF, открывающее вариантную часть, внешне похоже на соответствующий оператор выбора, но на самом деле лишь играет роль своеобразного служебного слова, обозначающего начало вариантной части. Именно поэтому в конце вариантной части не следует ставить END как пару к CASE... OF. (Поскольку вариантная часть - всегда последняя в записи, за ней все же стоит END, но лишь как пара к RECORD). Ключ выбора в предложении CASE... OF фактически игнорируется компилятором: единственное требование, предъявляемое к нему Турбо Паскалем, состоит в том, чтобы ключ определял некоторый стандартный или предварительно объявленный порядковый тип. Причем сам этот тип никак не влияет ни на количество следующих ниже вариантных полей, ни даже на характер констант выбора. В стандартном Паскале в качестве ключа выбора необходимо указывать некоторую переменную порядкового типа, причем в исполняемой части программы можно присваивать значение этой переменной и таким образом влиять на выбор полей. В Турбо Паскале также можно в поле ключа выбора указывать переменную порядкового типа и даже присваивать ей в программе значение, что однако не влияет на выбор поля: значения констант выбора в Турбо Паскале могут быть произвольными, в том числе повторяющимися, например:

type

 reel = record 

 a : Byte;

 b : Word;  

 end;  

 rec2 = record 

 с : longint;

 case x : Byte of

 1 : (d : Word);

 2 : (e : record

      case Boolean of

      3 :( f: reel);

      3 :( g : Single);

      '3':( с : Word);

      end)

 end;  

var 

 r : rec2;  

begin 

 r.x := 255;

 if r.e.g = 0 then 

   WriteLn('O.K. ')   

 else 

   WriteLn(r.e.g)  

end.

В этом примере предложение

case Boolean of

в записи, определяемой в поле Е, объявляет ключом выбора логический тип, который, как известно, имеет лишь два значения - TRUE и FALSE. Константы же выбора следующих далее вариантов не только содержат совершенно не свойственные этому типу значения, но и две из них повторяются, а общее количество вариантов - три, а не два, как следовало бы ожидать.

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


 

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

36822. Сведения о некоторых командах ОС UNIX. Сведения к лабораторной работе 115 KB
  ls поданная без параметров команда выводит список файлов и каталогов содержащихся в текущем каталоге. Например чтобы получить список файлов в каталоге usr sbin необходимо использовать команду ls usr sbin У команды ls есть множество ключей которые нужны главным образом для того чтобы выводить дополнительную информацию о файлах в каталоге или выводить указанный список файлов вместо указания имен файлов можно использовать шаблоны. ll выводит список всех имен файлов каталога включая скрытые А lmostll выводит список всех...
36823. Запуск Word. Выход из Word. Настройка пользовательского интерфейса. Открытие и сохранение документа 294 KB
  Выход из Word. Существует несколько способов запустить Microsoft Word для Windows 95. Если вы запускаете Word с помощью кнопки Пуск Windows 95 Word создает пустой незаполненный документ.
36825. Мировые информационные ресурсы 444 KB
  Задание №1 Сформируйте электронный глоссарий по тематике Мировые информационные ресурсы: Блог Веб страница Интернет ресурс Информационная культура Информационное общество Информационные взаимодействия Информационные ресурсы Информационные сети Информационные системы Информационный портал Информационный потенциал общества Информация Мировые информационные ресурсы Национальные информационные ресурсы Сайт Сервис Средства массовой информации Телеконференция Файловый сервер Чат Электронная база...
36826. Получить навыки работы с электронной таблицей Microsoft Excel 170 KB
  Откройте меню настройки панелей управления Вид Панели инструментов и убедитесь в том что включено отображение только двух панелей: Стандартная и Форматирование. Чтобы настроить масштаб отображения войдите в меню Вид Масштаб. Войдите в меню Сервис Параметры. Для этого достаточно воспользоваться командой меню Правка Отменить.
36827. МОДЕЛИРОВАНИЕ реакции с диффузией в трубчатом реакторе 862.5 KB
  Поэтому математическое описание процессов протекающих в этих реакторах имеет большое значение. Рассмотрим математическое описание трубчатого реактора для проведение реакции с диффузией. Этот поток входит в реактор где одновременно с диффузией осуществляется реакция первого порядка Длина реактора L площадь его поперечного сечения 1 м2. При условии что скорость питания w м3 ч концентрация М равна с0 а коэффициент диффузии М принимается постоянный со значением D м2 ч определить концентрацию М как функцию длины реактора.
36828. ПОВЕРКА МИКРОМЕТРА 227.5 KB
  Лабораторная работа № 2 ПОВЕРКА МИКРОМЕТРА Цель работы: изучить устройство и принцип действия микрометра; получить первичные практические навыки в выполнении поверки СИ осуществить поверку микрометра определить пригодность микрометра к использованию. Устройство и принцип действия микрометра Микрометр относится к классу микрометрических измерительных инструментов принцип действия которых основан на использовании винтовой пары винт гайка позволяющей преобразовать вращательное движение микровинта в поступательное. Устройство...
36829. МНОГОМЕРНЫЕ РАСПРЕДЕЛЕНИЯ ТЕОРИИ ВЕРОЯТНОСТЕЙ И МАТЕМАТИЧЕСКОЙ СТАТИСТИКИ 124.5 KB
  Для создания таких массивов служит функция meshgrid. [XY]=meshgridxy преобразует область заданную векторами x и y в двухмерные массивы X и Y которые могут быть использованы для вычисления значений функции двух переменных и построения трехмерных графиков. Пример [XY]=meshgrid1:1:46:1:9 X = 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 Y = 6 6 6 6 7 7 7 7 8 8 8 8 9 9 9 9 В этом примере формируются массивы X и Y для построения трехмерной по верхности при изменении x от 1 до 4 с шагом 1 и y от 6 до 9 с шагом 1. Пример [xy]=meshgrid3: .
36830. Исследование разборчивости речи методом артикуляционных измерений при защите речевой информации различными видами маскирующих сигналов 201.5 KB
  Звуковые колебания в жидкой и газообразной среде воздухе представляют собой продольные колебания так как частицы среды колеблются вдоль линии распространения звука. Вследствие этого образуются сгущения и разряжения среды двигающейся от источника колебаний с определенной скоростью называемой скоростью звука. Скорость звука Скорость звука является постоянной величиной для данной среды и метеорологических условий и определяется по формуле ...