40955

Оператор выбора switch

Лекция

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

Пример using System; nmespce Consoleppliction5 { clss Progrm { sttic void Minstring[] rgs { int cseSwitch = 5; switch cseSwitch { cse 1: Console. Если за меткой cse нет списка операторов то операторы brek goto cse или goto defult необязательны В примере управление передается списку операторов следующему за меткой cse 2 using System; nmespce Consoleppliction5 {...

Русский

2013-10-22

358 KB

2 чел.

PAGE   \* MERGEFORMAT 1

Лекция 1 часть 3 Введение

Оператор выбора switch

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

оператор_switch:
switch   (   выражение   )   блок_switch

блок_switch:
{   разделы_switchнеобязательно   }

разделы_switch:
раздел_
switch
разделы_
switch   раздел_switch

раздел_switch
метки_
switch   список_операторов

метки_switch:
метка_
switch
метки_
switch   метка_switch

метка_switch:
case   константное_выражение   :
default   :

Вычисляется switch-выражение.

Если значение константы, указанной  в метке case, совпадает со значением switch-выражения, управление передается списку операторов, следующему за меткой case.

Если ни одна из констант, указанных в метках case оператора switch, не совпадает со значением switch-выражения и при этом имеется метка default, управление передается списку операторов, следующему за меткой default, если метка default отсутствует, управление передается в конечную точку оператора switch.

Если после выполнения одного раздела (раздел заключен в {} скобки) switch должно следовать выполнение другого раздела switch, необходимо явным образом указывать оператор goto case или goto default.

Ошибка времени компиляции возникает, если несколько меток case в одном операторе switch задают одно и то же константное значение.

Пример

using System;

namespace ConsoleApplication5

{

   class Program

   {

       static void Main(string[] args)

       {

           int caseSwitch = 5;

           switch (caseSwitch)

           {

               case 1:

                   Console.WriteLine("Case 1");

                   break;

               case 2:

                   Console.WriteLine("Case 2");

                   break;

               default:

                   Console.WriteLine("Default case");

                   break;

           }

       }

   }

}

Список операторов раздела switch обычно заканчивается оператором break, goto case или goto default.

Если за меткой case нет списка операторов, то операторы break, goto case или goto default необязательны

В примере управление передается списку операторов, следующему за меткой case 2

using System;

namespace ConsoleApplication5

{

   class Program

   {

       static void Main()

       {

           int caseSwitch = 1;

           switch (caseSwitch)

           {

               case 1:

               case 2:

                   Console.WriteLine("Case 2");

                   break;

               default:

                   Console.WriteLine("Default case");

                   break;

           }

       }

   }

}

Оператор итераций do

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

оператор_do:
do   внедренный_оператор   while   (   логическое_выражение   )   ;

Управление передается внедренному оператору.

Если управление достигает конечной точки внедренного оператора, вычисляется логическое выражение.

Если результатом логического выражения является true, управление передается в начало оператора do.  В противном случае управление передается в конечную точку оператора do.

Пример.

using System;

namespace ConsoleApplication5

{

   class Program

   {

       static void Main(string[] args)

       {

           int x = 0;

           do

           {

               Console.WriteLine(x);

               x++;

           } while (x < 5);

       }

   }

}

Операторы перехода

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

Оператор break осуществляет выход из ближайшего объемлющего оператора switch, while, do, for или foreach.

Оператор continue начинает новую итерацию ближайшего объемлющего оператора while, do, for или foreach goto

Оператор return возвращает управление в программу, вызвавшую функцию-член, в которой используется оператор return. Оператор return с выражением может использоваться только в функции-члене, вычисляющей значение, т. е. в методе с типом возвращаемого значения, отличным от void, в методе доступа get для свойства или индексатора или в операторе, определенном пользователем.

Приведение и преобразование типов.

Преобразования бывают явными и неявными.

int a = 123;
long b = a;  // implicit conversion from int to long

// неявное перобразование типов, из int к long

int c = (int) b; // explicit conversion from long to int

// явное перобразование типов, из long к int

Неявные преобразования.

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

using System;

namespace ConsoleApplication5

{

   class Program

   {

       static double f(double a, double b)

       {

           return a + b;

       }

       static void Main(string[] args)

       {

           int r = 2222;

           double rez = f(r, 42222);

           Console.WriteLine(rez);

       }

   }

}

Неявное преобразование при использовании оператора присваивания.

Пример. Неявное преобразование числового типа: из int к long. Компилятор неявно преобразует значение справа в тип long перед присвоением его переменной bigNum. Преобразование от меньшего к большему целому типу.

using System;

namespace ConsoleApplication5

{

   class Program

   {

       static void Main(string[] args)

       {

           int num = 2147483647;

           long bigNum = num;

       }

   }

}

Неявные преобразования числовых типов.

Существуют следующие неявные преобразования числовых типов:

  •  из sbyte к short, int, long, float, double или decimal;
  •  из byte к short, ushort, int, uint, long, ulong, float, double или decimal;
  •  из short к int, long, float, double или decimal;
  •  из ushort к int, uint, long, ulong, float, double или decimal;
  •  из int к long, float, double или decimal;
  •  из uint к long, ulong, float, double или decimal;
  •  из long к float, double или decimal;
  •  из ulong к float, double или decimal;
  •  из char к ushort, int, uint, long, ulong, float, double или decimal;
  •  из float к double.

Преобразования из типов int, uint, long или ulong к float, а также из long или ulong к double могут привести к потере точности, но не величины. Другие неявные преобразования числовых типов никогда не приводят к потере данных.

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

Неявные преобразования ссылочных типов

Существуют следующие неявные преобразования ссылочных типов:

Из любого ссылочного типа к object.

Из производного класса к базовому классу.

Из типа класса S к типу интерфейса T (где S реализует T).

Из типа интерфейса S к типу интерфейса T (где S является производным от T).

Из любого типа массива к System.Array и реализуемым им интерфейсам.

Из типа_массива S, который имеет тип элементов SE, к типу_ массива T, который имеет тип элементов TE, если выполняются следующие условия:

S и T различаются только по типу элементов. Другими словами, типы S и T имеют одинаковое число измерений.

SE и TE являются ссылочными_типами.

Существует неявное преобразование ссылочного типа из SE к TE.

Пример

using System;

namespace ConsoleApplication5

{

   class Program

   {

       static void Main()

       {

           string[] t = new string[2] { "vv", "kkk" };

           object[] tt = new object[2];

           tt = t;

       }

   }

}

Пример

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

using System;

namespace ConsoleApplication5

{

   class Program

   {

      static void F(ref object x) { }

      static void Main()

      {

          object[] a = new object[10];

          object[] b = new string[10];

          F(ref a[0]);  // Ok

          F(ref b[1]);  // ArrayTypeMismatchException

      }

   }

}

Понятие упаковки и распаковки является ключевым в системе типов C#. С помощью данных операций осуществляется связь между типами значений и ссылочными типами за счет возможности преобразования любого значения типа значений к типу object и обратно.

Преобразования упаковки

Преобразование упаковки обеспечивает неявное преобразование типа значений в ссылочный тип.

из любого типа значений к типу object. Пример.

int i = 123;

object box = i;

Явные преобразования

Выражение приведения  типа используется для явного преобразования выражения в данный тип.

выражение_приведения_к_типу:
(   тип   )   унарное_выражение

Выражение_приведения_типа вида (T)E, где T является типом, а Eунарным_выражением, выполняет явное преобразование значения E в тип T.

Явные преобразования числовых типов.

Явные преобразования числовых типов предназначены для преобразования из одного числового_типа к другому числовому_типу, для которого не существует неявного преобразования:

  •  из sbyte к byte, ushort, uint, ulong или char;
  •  из byte к sbyte и char;
  •  из short к sbyte, byte, ushort, uint, ulong или char;
  •  из ushort к sbyte, byte, short или char;
  •  из int к sbyte, byte, short, ushort, uint, ulong или char;
  •  из uint к sbyte, byte, short, ushort, int или char;
  •  из long к sbyte, byte, short, ushort, int, uint, ulong или char;
  •  из ulong к sbyte, byte, short, ushort, int, uint, long или char;
  •  из char к sbyte, byte или short;
  •  из float к sbyte, byte, short, ushort, int, uint, long, ulong, char или decimal;
  •  из double к sbyte, byte, short, ushort, int, uint, long, ulong, char, float или decimal;
  •  из decimal к sbyte, byte, short, ushort, int, uint, long, ulong, char, float или double.

Пример.  Для выполнения явного преобразования числового типа необходимо

заключить тип, в который производится преобразование (приведение), в скобки перед преобразуемым значением или переменной. Следующая программа выполнят приведение типа double в тип int. 

using System;

namespace ConsoleApplication5

{

   class Program

   {

       static void Main()

       {

           double x = 1234.7;

           int a;

           // Cast double to int.

           a = (int)x;

           System.Console.WriteLine(a);

       }

   }

}

Если x и y являются идентификаторами, то (x)y, (x)(y) и (x)(-y) являются выражениями приведения типа, а (x)-y не является, даже если x обозначает тип. Однако если x является ключевым словом, которое обозначает стандартный тип (например, int), то все четыре вида выражения являются выражениями приведения типа (потому что такое ключевое слово не может само быть выражением). Пример.

using System;

namespace ConsoleApplication5

{

   class Program

   {

       static void Main()

       {

           double x = 1234.7;

           int a;

           // Cast double to int.

           a = (int)-x;

           System.Console.WriteLine(a);

       }

   }

}

Результат

Операторы checked и unchecked

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

выражение_checked:
checked   (   выражение   )

выражение_unchecked:
unchecked   (   выражение   )

Оператор checked вычисляет содержащееся в нем выражение в проверяемом контексте.

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

В контексте checked для неконстантных выражений (выражений, которые вычисляются во время выполнения), возникает исключение System.OverflowException.

Пример использования оператора unchecked.

Явное преобразование из int к short, где

short

От -32 768 до 32 767

16-разрядное целое число со знаком

System.Int16

int

От -2 147 483 648 до 2 147 483 647

32-разрядное целое число со знаком

System.Int32

int i = 2147483647;

short ixx = unchecked((short)i);

Пример использования оператора checked.

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

Пример.

int i = 2147483647;

short ixx = (short)i;

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

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

Для преобразований из типа decimal к целому типу исходное значение округляется в сторону нуля до ближайшего целого значения. Результатом преобразования является полученное целое значение.

Пример.

decimal d = 10000.5m;

int i =(int)d;

Console.WriteLine(i);

Для типов с плавающей запятой и типа decimal отсутствует неявное преобразование, поэтому для преобразования между этими двумя типами следует использовать приведение. Пример.

Пример.

decimal myMoney = 99.9m;

double x = (double)myMoney;

Console.WriteLine(x);

Если убрать оператор явного преобразования, то программа завершится с ошибкой

Ошибка 1 Не удается неявно преобразовать тип "decimal" в "double". Существует явное преобразование (возможно, пропущено приведение типов)

Преобразования из double к float.

Значение типа double округляется до ближайшего значения типа float. При переполнении арифметической операции или делении на ноль исключение никогда не вызывается, потому что типы чисел с плавающей запятой основаны на стандарте IEEE 754 и включают правила для представления бесконечности и нечисловых значений (NaN).

Явные преобразования ссылочных типов.

Поддерживаются следующие явные преобразования ссылочных типов:

  •  Из object любому другому ссылочному_типу.
  •  Из любого типа_класса S к любому типу_класса T, если S является базовым классом для T.

Пользовательские явные преобразования

Преобразования с помощью вспомогательных классов.

Пример

int numVal = Convert.ToInt32("29");

Преобразования распаковки.

Преобразование распаковки обеспечивает явное преобразование ссылочного_типа к типу_значений.

Пример.

int i = 123;

object box = i;

i = 666;

i = (int)box;


Лекция 1 часть 4. Введение. Массивы.

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

Типы массива

Тип массива записывается как тип_не_массива, за которым следуют спецификации_ранга:

тип_массива:
тип_не_массива   спецификации_ранга

тип_не_массива:
тип

спецификации_ранга:
спецификация_ранга
спецификации_ранга   спецификация_ранга

спецификация_ранга:
[   разделители_размерностейнеобязательно   ]

разделители_размерностей:
,
разделители_размерностей   
,

Тип_не_массива является одним из типов, которые сами по себе не являются типом_массива.

Пример. Нельзя использовать int[] в качестве типа массива

int[][] sp = new int[3];

Ошибка Неявное преобразование типа "int[]" в "int[][]" невозможно

int[][] sp = new int[3][3];

Ошибка 1 Недопустимый спецификатор ранга: требуется "," или "]"

int[,] arr = new int[,];

Ошибка 2 При создании массива следует указать размер массива или инициализатор массива

Код, который не приведет к ошибке

Одномерный массив

int[] sp = new int[3];

Двумерный массив

int[,] sp = new int[3,3];

Массив массивов — это массив, элементы которого сами являются массивами.

int[][] arr = new int[2][];

arr[0] = new int[5] { 1, 3, 5, 7, 9 };

arr[1] = new int[4] { 2, 4, 6, 8 };

Console.Write("{0}", arr[0][3]);

Ранг типа массива задается левой спецификацией_ранга в типе_массива: спецификация_ранга указывает, что массив имеет ранг, равный единице плюс число меток «,» в этой спецификации.

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

  •  Тип массива в форме T[R] указывает массив с рангом R и типом элемента (типом_не_массива) T.
  •  Тип массива в форме T[R][R1]...[RN] указывает массив с рангом R и типом элемента T[R1]...[RN].

В результате данные спецификации_ранга считываются слева направо перед последним типом элемента (типом_не_массива). Тип int[][,,][,] указывает одномерный массив трехмерных массивов из двумерных массивов значений с типом int.

Создание массива

Типы массивов являются ссылочными типами.  

Во время выполнения значение типа массива может быть равно null или может содержать ссылку на экземпляр массива этого типа.

Первичные выражения разделяются на выражения создания массива и первичные выражения создания не массива.

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

Пример.

int[] arr = { 1, 2, 3 };

int[] arr1 = new int[3];

int[] arr2 = new int[] { 1, 2, 3 };

int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };

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

Доступ к элементам массива.

Доступ к элементам массива осуществляется при помощи выражений доступа к элементам в форме A[I1, I2, ..., IN], где A является выражением с типом массива, а каждый элемент IX — выражением с типом int, uint, long, ulong либо может быть неявно преобразован в один или несколько из этих типов. Результатом осуществления доступа к элементу массива является переменная, а именно элемент массива, выбранный по индексу.

Элементы массива могут перечисляться с использованием оператора foreach.

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

using System;

namespace ConsoleApplication5

{

   class Program

   {

       static void Main()

       {

           int[] a = new int[10];

           for (int i = 0; i < a.Length; i++)

           {

               a[i] = i * i;

           }

           for (int i = 0; i < a.Length; i++)

           {

               Console.WriteLine("a[{0}] = {1}", i, a[i]);

           }

       }

   }

}

В следующем примере выделяется память для одно-, двух- и трехмерного массивов.

int[] a1 = new int[2];

int[,] a2 = new int[2, 2];

int[, ,] a3 = new int[2, 2, 2];

В примере оператор foreach используется для отображения содержимого массива целых чисел

int[] fibarray = new int[] { 0, 1, 2, 3, 5, 8, 13 };

foreach (int i in fibarray)

{

   System.Console.WriteLine(i);

}

Пример. Просуммировать элементы строк матрицы a. Результат получить в виде вектора (одномерного массива) b:

int[,] a = new int[3, 3] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };

int[] b = new int[3];

for (int i = 0; i < 3; i++)

{

   int s = 0;

   for (int j = 0; j < 3; j++)

       s += a[i, j];

   b[i] = s;

}

for (int i = 0; i < 3; i++)

   Console.Write("{0:d}  ", b[i]);

Console.WriteLine();

Console.ReadKey();

Тип System.Array является абстрактным базовым типом для всех типов массива. Выполняется неявное преобразование ссылок из любого типа в тип System.Array, а также явное преобразование ссылок из типа System.Array в любой тип массива. Тип System.Array сам по себе не является типом_массива. Это тип_класса, на основе которого создаются все типы_массива.

Раздел 2. Часть 2.

Использование библиотеки классов .NET Framework (Visual C#).

Array – класс

Предоставляет методы для создания, изменения, поиска и сортировки массивов, то есть выступает в роли базового класса для всех массивов в среде CLR. Явно наследовать класс Array может только система и компиляторы. Пространство имен:  System.

 public abstract class Array Member of System

Модификатор abstract может использоваться с классами, методами, свойствами, индексаторами и событиями. Модификатор abstract в объявлении класса указывает, что класс предназначен только для использования в качестве базового класса для других классов. Создавать экземпляры абстрактного класса нельзя. Конструктора нет. Создавать переменные типа Array можно. Метод CreateInstance, используется вместо открытых конструкторов. Пример

       static void Main(string[] args)

       {

           Array myArr = Array.CreateInstance(typeof(Int32), 3);

           foreach (int i in myArr)

           {

               Console.Write("\t{0}", i);

           }

           Console.WriteLine();

           myArr.SetValue(1, 1);

           foreach (int i in myArr)

           {

               Console.Write("\t{0}", i);

           }

        }  

Следующий код приведет к ошибке

           Array myArr = Array.CreateInstance(typeof(Int32), 3);

           myArr[1] = 8;

           foreach (int i in myArr)

           {

               Console.Write("\t{0}", i);

           }

Ошибка 1 Невозможно применить индексирование через [] к выражению типа "System.Array"

Следующий код не приведет к ошибке

int[] myArr = new int[3] { 11, 12, 13 };

           myArr[1]=99;

           foreach (int i in myArr)

           {

               Console.Write("\t{0}", i);

           }

           Console.WriteLine();

Массивы являются ссылочными типами, производными от абстрактного базового типа Array.

       static void Main(string[] args)

       {

           int[] myArr = new int[3] {11,12,13 };

           myArr.SetValue(88, 1);

           foreach (int i in myArr)

           {

              Console.Write("\t{0}", i);

           }

           Console.WriteLine();

      }  

В C# во всех массивах можно использовать итерацию foreach.

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

   

ArrayList - класс

Интерфейс IList представляет неуниверсальную коллекцию объектов с индивидуальным доступом, осуществляемым при помощи индекса.

Пространство имен:  System.Collections Список IList с переменным размером позволяет выполнять добавление, удаление и изменение элементов. Доступ к элементам этой коллекции осуществляется с помощью целочисленного индекса. Индексы в этой коллекции начинаются с нуля. Конструктор есть.

Пример создания и инициализации

using System;

using System.Collections;

namespace ConsoleApplication2

{

   class Program

   {

       static void Main(string[] args)

       {

           ArrayList myAL = new ArrayList();

           myAL.Add("Hello");

           myAL.Add("World");

           myAL.Add("!");

           Console.WriteLine("    Count:    {0}", myAL.Count);

           Console.WriteLine("    Capacity: {0}", myAL.Capacity);

           myAL[1] = "??????????";

           foreach (Object obj in myAL)

               Console.Write("   {0}", obj);

           Console.WriteLine();

      }  

   }

}

Пример

using System;

using System.Collections;

namespace ConsoleApplication2

{

  class Class1

   {

       int s;

       int a;

       public Class1(int s, int a)

       {

           this.s = s;

           this.a = a;

       }

       public override string ToString()

       {

           return String.Format("{0}    {1}", s, a);

       }

   }

   class Program

   {

       static void Main(string[] args)

       {

           Class1[] g = new Class1[3];

           g[0] = new Class1(1, 4);

           g[1] = new Class1(2, 8);

           g[2] = new Class1(5, 4);

           foreach (Class1 i in g)

               Console.WriteLine(i);

           ArrayList a = new ArrayList();

           a.Add(new Class1(2, 4));

           a.Add(new Class1(4, 17));

           a.Add(new Class1(3, 8));

           for (int i = 0; i < a.Count; i++)

              Console.WriteLine("{0:d}", a[i]);

         }  

   }

}

Пример. Используя метод Array.Sort отсортировать массив. Настроить порядок сортировки массива.

using System;

using System.Collections;

namespace ConsoleApplication5

{

   class Program : IComparer

   {

       int IComparer.Compare(Object x, Object y)

       {

           int x1 = (int)x;

           int y1 = (int)y;

           return y1.CompareTo(x1);

       }

       static void Main(string[] args)

       {

           Program g = new Program();

           int[] a = new int[7] { 2, 5, 1, 7, 9, 4, 3 };

           IComparer mm = new Program();

           Array.Sort(a, mm);

           for (int i = 0; i < a.Length; i++)

               Console.WriteLine("{0:d}", a[i]);

       }

   }

}


 

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

31210. Типы систем наблюдений 38.5 KB
  В сейсморазведке при исследованиях по линейным профилям наиболее часто используются следующие системы наблюдений: фланговые с пунктами возбуждения расположенными по одну сторону базы приема линии пунктов приема ЛПП на ее конце или за ее пределами фланговые с выносом; встречные фланговые с пунктами возбуждения расположенными на обоих концах базы приема ЛПП или с двух сторон за ее пределами встречные фланговые с выносом; центральные с пунктом возбуждения в центре базы приема симметричные и с пунктом возбуждения...
31211. История формирования принципов телеметрии 36 KB
  Сначала появились первые телеметрические сейсморегистрирующие системы ТСС разработчики которых вообще отказались от кабельной системы передачи сейсмической информации от места ее регистрации от сейсмоприемников к месту ее окончательной записи в сейсморазведочную станцию. Телеметрические сейсморегистрирующие системы представляют собой сложно организованные и многофункциональные устройства основными элементами которых является полевой модуль сбора информации ПМ и центральная регистрирующая станция ЦРС По принципу передачи информации...
31212. Элементы методики ВСП 39 KB
  Гальперина метод ВСП начинает интенсивно развиваться и применяться при разведке на нефть и газ во всем мире. В настоящее время трудно себе представить сейсморазведочные работы без использования в том или ином объеме ВСП. ВСП метод скважинных около скважинных и межскважинных сейсмических исследований предназначенный для решения геологических методических и технологических задач на различных этапах геологоразведочного процесса с целью повышения геологоэкономической эффективности разведки месторождений различных полезных ископаемых...
31213. Телеметрические сейсморегистрирующие системы 39.5 KB
  Включает в себя следующие элементы: консоль оператора Opertor Console ModuleOSM на базе IBM486 блок управления системой System Control ModuleSCM с подблоком памяти SIM; линейный интерфейсный модуль Line Interfce ModuleLIM магнитофон Таре Trnsport ModuleTTM корреляторсумматор Correltor Stcker ModuleCSM. Оно включает в себя: полевые регистрирующие модули RSC MRX RSX; коммутационный модуль LT или АLТ Периферийное оборудование станции содержит: устройство управления источником взрыва...
31214. Телеметрические сейсморегистрирующие системы фирмы „SERCEL” 37.5 KB
  Сейсмическая станция SN368 включает в себя две подсистемы аппаратуры: центральную контролирующую электронику Centrl Control UnitCCU; полевое оборудование. Центральная контролирующая электроника CCU включает в себя б блоков: основной контрольный блок {Mster Control Unit MCU дисплей {Disply UnitDU; линейный расширитель Line Extension UnitLXV; ленточный регистратор {Tpe TrnsportsTT; устройство для подключения дополнительной периферии: принтера плоттера коррелятора сумматора дополнительного магнитофона; блок...
31215. Атрибуты систем наблюдения и их анализ 44.5 KB
  Если перекрытие по линиям приема происходит наполовину то количество отрабатываемых полос по всей площади съемки можно рассчитать следующим образом: NS=LY 0. Количество отрабатываемых шаблонов групп сейсмоприемников по полосе рассчитывается по формуле: NT=LX SLI1. В рассматриваемом примере для отработки всей площади участка потребуется отработать количество полос NS number swtch равное 15.6 км 1 = 8 а количество отрабатываемых в полосе шаблонов 16.
31216. Вспомогательные технические средства 37.5 KB
  Технологическая связь между отдельными подразделениями сейсморазведочной партии сейсморазведочная станция СВП СМ буровые установки и т. Для производства топогеодезических работ в сейсморазведочной партии создается один или несколько топогеодезический отряд возглавляемый старшим техником или инженеромтопографом. В задачи отряда входит рекогносцировка местности и определение наиболее удобных путей подъезда к площади работ вынесение на местность и подготовка профилей для работы на них сейсморазведочного отряда привязка отработанных...
31217. Группирование сейсмоприемников и источников 43 KB
  При кажущейся скорости поверхностной волны Vпов разность времен прихода этой волны на кый элемент группы по сравнению с первым элементом будет составлять к1 x Vпов. Для этих волн временной сдвиг между кым и первым элементом группы будет равен к1x Vотр. Учитывая то что элементы интерференционной группы одинаковы и выбирая начало отсчета в центре базы группы амплитудночастотную характеристику группы можно записать в виде: . Для изучения свойств амплитудночастотной характеристики линейной группы строится и анализируется график...
31218. Источники упругих волн 30 KB
  Все источники упругих волн применяемые в сейсморазведке подразделяются на два вида: взрывные и невзрывные. Невзрывные источники колебаний в свою очередь делятся на импульсные и вибрационные. Импульсные невзрывные источники могут быть построены на различных физических принципах. При работе на суше используются преимущественно источники либо механического принципа работы удар по грунту падающего груза либо газодинамического типа.