Главная страница
Навигация по странице:

  • Результат выполнения программы (из листинга 9.8) Ⱦɥɹ ɡɚɜɟɪɲɟɧɢɹ ɜɜɟɞɢɬɟ ƎexitƎ1-ɹ ɫɬɪɨɤɚ: > Ʉɬɨ ɩɨɧɹɥ ɠɢɡɧɶ, ɬɨɬ ɛɨɥɶɲɟ ɧɟ ɫɩɟɲɢɬ

  • Результат выполнения программы (из листинга 9.9)

  • Васильев А.Н. Основы программирования на C#. Васильев А. Н. Программирование


    Скачать 5.54 Mb.
    НазваниеВасильев А. Н. Программирование
    АнкорВасильев А.Н. Основы программирования на C
    Дата20.09.2022
    Размер5.54 Mb.
    Формат файлаpdf
    Имя файлаVasilev_Programmirovanie-na-C-dlya-nachinayushchih-Osobennosti-y.pdf
    ТипДокументы
    #686596
    страница39 из 40
    1   ...   32   33   34   35   36   37   38   39   40
    500
    Console.WriteLine(e.Message);
    }
    Программа выполняется следующим образом пользователь последовательно вводит текстовые строки, которые считываются и построчно записываются в текстовый файл. Файл создается программой. Процесс ввода строк завершается, когда пользователь вводит ключевое слово
    ƎexitƎ. После этого содержимое созданного файла построчно считывается и построчно отображается в консольном окне.
    В программе в текстовую переменную file записывается полный путь к текстовому файлу, который создается программой, а также название файла. Текстовая переменная str используется для запоминания текстовых строк, которые будет вводить пользователь. В текстовую переменную записывается ключевое слово, ввод которого означает завершение процесса формирования содержимого текстового файла. Целочисленная переменная k используется для нумерации строк.
    Объект fw символьного потока для записи данных в файл создается командой StreamWriter fw=new StreamWriter(file). Затем запускается формально бесконечный цикл с оператором do-while в нем проверяемым условием указано значение true). В телеоператора цикла командой str=Console.ReadLine() считывается строка, введенная пользователем. Далее в условном операторе проверяется условие str==word. Условие истинно, если пользователь ввел ключевое слово. Если так, то командой break завершается выполнение оператора цикла. В противном случае (если условие ложно) командой fw.WriteLine(str)
    текстовая строка записывается в файл.
    По завершении выполнения оператора цикла командой fw.Close() закрывается символьный поток. После этого командой StreamReader fr=new
    StreamReader(file) создается объект символьного потока для считывания данных из файла, который был создан и заполнен на предыдущем этапе. Командой str=fr.ReadLine() из файла считывается первая строка (если она есть, после чего запускается оператор цикла while. В операторе цикла проверяется условие str!=null. Истинность условия означает, что конец файла не достигнут и переменная содержит ссылку на текст. В этом случае командой Console.
    Немного о разном считанная из файла строка отображается в консольном окне. Затем командой str=fr.ReadLine() из файла считывается следующая строка. После того как содержимое файла прочитано, командой) поток закрывается.
    Результат выполнения программы может быть таким (жирным шрифтом выделен текст, который вводит пользователь):
    
    Результат выполнения программы (из листинга 9.8)
    Ⱦɥɹ ɡɚɜɟɪɲɟɧɢɹ ɜɜɟɞɢɬɟ ƎexitƎ
    1-
    ɹ ɫɬɪɨɤɚ: > Ʉɬɨ ɩɨɧɹɥ ɠɢɡɧɶ, ɬɨɬ ɛɨɥɶɲɟ ɧɟ ɫɩɟɲɢɬ,
    2-
    ɹ ɫɬɪɨɤɚ: > ɋɦɚɤɭɟɬ ɤɚɠɞɵɣ ɦɢɝ ɢ ɧɚɛɥɸɞɚɟɬ,
    3-
    ɹ ɫɬɪɨɤɚ: > Ʉɚɤ ɫɩɢɬ ɪɟɛɟɧɨɤ, ɦɨɥɢɬɫɹ ɫɬɚɪɢɤ,
    4-
    ɹ ɫɬɪɨɤɚ: > Ʉɚɤ ɞɨɠɞɶ ɢɞɟɬ, ɢ ɤɚɤ ɫɧɟɠɢɧɤɚ ɬɚɟɬ.
    5-
    ɹ ɫɬɪɨɤɚ: > exit
    Ɏɚɣɥ ɫɨɡɞɚɧ!
    ɋɨɞɟɪɠɢɦɨɟ ɮɚɣɥɚ:
    Ʉɬɨ ɩɨɧɹɥ ɠɢɡɧɶ, ɬɨɬ ɛɨɥɶɲɟ ɧɟ ɫɩɟɲɢɬ,
    ɋɦɚɤɭɟɬ ɤɚɠɞɵɣ ɦɢɝ ɢ ɧɚɛɥɸɞɚɟɬ,
    Ʉɚɤ ɫɩɢɬ ɪɟɛɟɧɨɤ, ɦɨɥɢɬɫɹ ɫɬɚɪɢɤ,
    Ʉɚɤ ɞɨɠɞɶ ɢɞɟɬ, ɢ ɤɚɤ ɫɧɟɠɢɧɤɚ Также стоит отметить, что в результате выполнения программы в каталоге создается файл с названием MyText.txt. Содержимое этого файла показано на рис. Несложно догадаться, что именно это содержимое отображалось в консольном окне.
    Рис. 9.4. Содержимое текстового файла, созданного в результате выполнения программы
    Глава В некоторых случаях удобно хранить данные в бинарных файлах (последовательность произвольных байтов. Для работы с бинарными файлами используют бинарные потоки. Объекты таких потоков создаются на основе классов BinryReader (поток для считывания данных из бинарного файла) и BinaryWriter (поток для записи данных в бинарный файл. Пример создания и использования бинарных потоков представлен в листинге Листинг 9.9. Бинарные потоки System;
    using System.IO;
    //
    Ƚɥɚɜɧɵɣ ɤɥɚɫɫ:
    class BinarySreamsDemo{
    //
    Ƚɥɚɜɧɵɣ ɦɟɬɨɞ:
    static void Main(){
    //
    Ⱦɚɧɧɵɟ ɞɥɹ ɡɚɩɢɫɢ ɜ ɮɚɣɥ:
    int num=123; //
    ɐɟɥɨɟ ɱɢɫɥɨ
    char symb='A'; //
    ɋɢɦɜɨɥ
    double x=2.5; //
    Ⱦɟɣɫɬɜɢɬɟɥɶɧɨɟ ɱɢɫɥɨ
    string txt=
    ƎHello, World!Ǝ; // Ɍɟɤɫɬ
    //
    ɉɭɬɶ ɤ ɮɚɣɥɭ ɢ ɟɝɨ ɧɚɡɜɚɧɢɟ:
    string file=
    ƎD:/Books/files/MyData.datƎ;
    Console.WriteLine(
    ƎɁɚɩɢɫɶ ɞɚɧɧɵɯ ɜ ɮɚɣɥ...Ǝ);
    try{ //
    Ʉɨɧɬɪɨɥɢɪɭɟɦɵɣ ɤɨɞ
    //
    Ȼɢɧɚɪɧɵɣ ɩɨɬɨɤ ɞɥɹ ɡɚɩɢɫɢ ɞɚɧɧɵɯ ɜ ɮɚɣɥ:
    BinaryWriter bw=new BinaryWriter(new FileStream(file,FileMode.Create));
    //
    Ɂɚɩɢɫɶ ɞɚɧɧɵɯ ɜ ɮɚɣɥ:
    bw.Write(num); //
    ɐɟɥɨɟ ɱɢɫɥɨ
    bw.Write(symb); //
    ɋɢɦɜɨɥ
    bw.Write(x); //
    Ⱦɟɣɫɬɜɢɬɟɥɶɧɨɟ ɱɢɫɥɨ
    bw.Write(txt); //
    Ɍɟɤɫɬ
    Немного о разном //
    ɉɨɬɨɤ ɡɚɤɪɵɜɚɟɬɫɹ:
    bw.Close();
    } //
    Ɉɛɪɚɛɨɬɤɚ ɢɫɤɥɸɱɟɧɢɣ:
    catch(Exception e){
    Console.WriteLine(
    ƎɈɲɢɛɤɚ ɡɚɩɢɫɢ ɜ ɮɚɣɥ!Ǝ);
    Console.WriteLine(e.Message);
    return;
    }
    Console.WriteLine(
    Ǝɋɨɡɞɚɧ ɮɚɣɥ \Ǝ{0}\ƎƎ,file);
    Console.WriteLine(
    Ǝɋɱɢɬɵɜɚɧɢɟ ɞɚɧɧɵɯ ɢɡ ɮɚɣɥɚ...Ǝ);
    try{ //
    Ʉɨɧɬɪɨɥɢɪɭɟɦɵɣ ɤɨɞ
    //
    Ȼɢɧɚɪɧɵɣ ɩɨɬɨɤ ɞɥɹ ɫɱɢɬɵɜɚɧɢɹ ɞɚɧɧɵɯ ɢɡ ɮɚɣɥɚ:
    BinaryReader br=new BinaryReader(new FileStream(file,FileMode.Open));
    //
    ɋɱɢɬɵɜɚɧɢɟ ɞɚɧɧɵɯ ɢɡ ɮɚɣɥɚ ɢ ɨɬɨɛɪɚɠɟɧɢɟ ɜ
    //
    ɤɨɧɫɨɥɶɧɨɦ ɨɤɧɟ:
    Console.WriteLine(br.ReadInt32()); //
    ɐɟɥɨɟ ɱɢɫɥɨ
    Console.WriteLine(br.ReadChar()); //
    ɋɢɦɜɨɥ
    Console.WriteLine(br.ReadDouble()); //
    ɑɢɫɥɨ
    Console.WriteLine(br.ReadString()); //
    Ɍɟɤɫɬ
    //
    ɉɨɬɨɤ ɡɚɤɪɵɜɚɟɬɫɹ:
    br.Close();
    } //
    Ɉɛɪɚɛɨɬɤɚ ɢɫɤɥɸɱɟɧɢɣ:
    catch(Exception e){
    Console.WriteLine(
    ƎɈɲɢɛɤɚ ɱɬɟɧɢɹ ɮɚɣɥɚ!Ǝ);
    Console.WriteLine(e.Message);
    }
    Console.WriteLine(
    ƎɁɚɜɟɪɲɟɧɢɟ ɩɪɨɝɪɚɦɦɵ...Ǝ);
    }
    }
    Глава При выполнении программы в консольном окне появляются следующие сообщения:
    
    Результат выполнения программы (из листинга 9.9)
    Ɂɚɩɢɫɶ ɞɚɧɧɵɯ ɜ ɮɚɣɥ...
    ɋɨɡɞɚɧ ɮɚɣɥ ƎD:/Books/files/MyData.datƎ
    ɋɱɢɬɵɜɚɧɢɟ ɞɚɧɧɵɯ ɢɡ ɮɚɣɥɚ...
    123
    A
    2,5
    Hello, World!
    Ɂɚɜɟɪɲɟɧɢɟ При выполнении программы в каталоге D:\Books\files создается файл MyData.dat. В этот файл записывается целочисленное значение, символ, действительное число и текст. После этого файл открывается для чтения, и записанные ранее в файл значения отображаются в консольном окне НАЗ А МЕТКУ Если открыть файл, то его содержимое будет представлять собой последовательность странных символов и текста.
    Данные, предназначенные для записи в файл, заносятся в переменные num
    , symb, x и txt. Путь к файлу и его название записываются в текстовую переменную Бинарный поток для записи данных в файл создается на основе байтового потока. Если точнее, то при создании объекта бинарного потока bw на основе класса BinaryWriter в качестве аргумента конструктору класса передается инструкция new FileStream(file,FileMode.
    Create)
    . Эта инструкция означает создание байтового потока, который открывается в режиме создания нового файла. Созданный таким образом поток bw предназначен для записи данных в файл. Для этого из объекта потока вызывается метод Write(), аргументом которому передается записываемое в файл значение. При завершении записи данных в поток он закрывается командой bw.Close().
    Немного о разном
    505
    После того как файл создан ив него занесены данные, создается еще один бинарный поток br. Поток создается на основе класса и предназначен для считывания данных из файла. Аргументом конструктору класса BinaryReader передается анонимный объект байтового потока, который создается инструкцией new
    FileStream(file,FileMode.Open) (поток создается в режиме открытия уже существующего файла. Для считывания значений из файла используются методы ReadInt32() (считывается целое число) (считывается символ, ReadDouble() (считывается действительное число) и ReadString() (считывается текст. Методы вызываются из объекта потока br, а по завершении процесса считывания данных поток закрывается командой Знакомство с коллекциями

    История, которую мы хотим рассказать, не опирается на факты. Она настолько невероятна, что в нее просто нельзя не поверить.
    из к/ф О бедном гусаре замолвите слово»
    Далее мы познакомимся стем, как в языке C# реализуются коллекции иногда их еще называют контейнерами. Вообще, под коллекцией подразумевают группу объектов. Такая группа объектов реализуется как некий объект определенного класса, содержащий в себе коллекцию объектов другого класса. Технически это можно реализовать с помощью класса, у которого есть поле, представляющее собой ссылку на массив объектов, формирующих коллекцию. То есть в прикладном плане мы могли бы сами без особых проблем описать подобный класс. То есть сама по себе возможность спрятать водном объекте группу других объектов уникальной не является. Удобство и эффективность использования коллекций во многом связаны с наличием методов, облегчающих работу с группами объектов, содержащихся в коллекции. Другая важная особенность коллекций, выделяющая их на фоне обычных массивов, — возможность добавлять элементы в коллекцию и удалять элементы из коллекции НАЗ А МЕТКУ После создания массива его размер изменить нельзя. Номы можем поступить так создаем новый массив нужного размера, заполняем
    Глава его правильным образом и ссылку на этот массив записываем в переменную массива. Создается иллюзия, что массив изменил размер. Хотя это, конечно, не так. При работе с коллекциями процесс изменения размера массива, который лежит в основе коллекции, автоматизирован, что довольно удобно.
    В C# существуют классы для реализации самых разных коллекций. С некоторыми из них мы познакомимся поближе.
    Коллекции могут быть самыми разными, ноу всех них есть определенные общие характеристики. Такое единство стандарта поддерживается за счет реализации классами коллекций специальных интерфейсов. Интерфейсы, реализованные в классе коллекции, определяют, какими методами обладает коллекция. Одним из фундаментальных интерфейсов при работе с коллекциями является ICollection (из пространства имен System.Collections). Кроме этого интерфейса, можно упомянуть такие, как IComparer, IDictionary, IEnumerator, IList и INumerable. Например, интерфейс ICollection содержит объявление доступного только для чтения свойства Count, определяющего количество элементов коллекции. Метод CopyTo() предназначен для копирования содержимого коллекции в массив, переданный методу в качестве аргумента. Интерфейс IList содержит объявление таких методов, как Add() (добавление элемента в коллекцию, Clear() (очистка коллекции, Contains() (проверка на наличие элемента в коллекции,
    Insert()
    (вставка элемента в определенную позицию в коллекции,
    Remove()
    (удаление элемента из коллекции, IndexOf() (определение индекса элемента в коллекции) и RemoveAt() (удаление из коллекции элемента с указанным индексом. Аналогичные методы объявлены ив других интерфейсах.
    Существуют стандартные классы, реализующие перечисленные выше интерфейсы. Один из них — класс ArrayList. Класс ArrayList реализует интерфейсы ICollection, IList, IEnumerable и ICloneable. Этот класс предназначен для реализации динамических массивов, размер которых может меняться в процессе выполнения программы. Пример создания и использования коллекции на основе класса ArrayList представлен в листинге Листинг 9.10. Использование класса ArrayList
    using System;
    using System.Collections;
    Немного о разном
    Ƚɥɚɜɧɵɣ ɤɥɚɫɫ:
    class ArrayListDemo{
    //
    Ƚɥɚɜɧɵɣ ɦɟɬɨɞ:
    static void Main(){
    //
    ɐɟɥɨɱɢɫɥɟɧɧɚɹ ɩɟɪɟɦɟɧɧɚɹ:
    int n=10;
    //
    ɋɨɡɞɚɧɢɟ ɨɛɴɟɤɬɚ ɤɨɥɥɟɤɰɢɢ (ɛɟɡ ɷɥɟɦɟɧɬɨɜ):
    ArrayList fibs=new ArrayList();
    //
    Ⱦɨɛɚɜɥɟɧɢɟ ɷɥɟɦɟɧɬɨɜ ɜ ɤɨɥɥɟɤɰɢɸ:
    fibs.Add(1);
    fibs.Add(1);
    for(int k=2;k<=n;k++){
    //
    ȼɵɱɢɫɥɟɧɢɟ ɧɨɜɨɝɨ ɷɥɟɦɟɧɬɚ ɢ ɞɨɛɚɜɥɟɧɢɟ
    //
    ɜ ɤɨɥɥɟɤɰɢɸ:
    fibs.Add((int)fibs[fibs.Count-1]+(int)fibs[fibs.Count-2]);
    }
    //
    Ɉɬɨɛɪɚɠɟɧɢɟ ɫɨɞɟɪɠɢɦɨɝɨ ɤɨɥɥɟɤɰɢɢ:
    foreach(object obj in fibs){
    Console.Write(
    Ǝ|Ǝ+obj);
    }
    Console.WriteLine(
    Ǝ|Ǝ);
    //
    ɍɞɚɥɟɧɢɟ ɷɥɟɦɟɧɬɨɜ ɢɡ ɤɨɥɥɟɤɰɢɢ:
    fibs.Remove(1);
    fibs.Remove(5);
    //
    ȼɫɬɚɜɤɚ ɷɥɟɦɟɧɬɚ ɜ ɧɚɱɚɥɨ ɤɨɥɥɟɤɰɢɢ:
    fibs.Insert(0,100);
    //
    Ɉɛɪɚɬɧɵɣ ɩɨɪɹɞɨɤ ɷɥɟɦɟɧɬɨɜ ɜ ɤɨɥɥɟɤɰɢɢ:
    fibs.Reverse();
    //
    ɉɪɟɨɛɪɚɡɨɜɚɧɢɟ ɤɨɥɥɟɤɰɢɢ ɜ ɦɚɫɫɢɜ:
    int[] nums=(int[])fibs.ToArray(typeof(int));
    //
    Ɉɬɨɛɪɚɠɟɧɢɟ ɫɨɞɟɪɠɢɦɨɝɨ ɦɚɫɫɢɜɚ:
    for(int k=0;k
    Глава 9
    508
    Console.Write(
    Ǝ|Ǝ+nums[k]);
    }
    Console.WriteLine(
    Ǝ|Ǝ);
    Результат выполнения программы такой:
    
    Результат выполнения программы (из листинга В данном случае для работы с коллекциями мы подключаем пространство имен System.Collections. В главном методе программы объект коллекции создается командой ArrayList fibs=new ArrayList(). Созданный таким образом объект будет пустым (он не содержит ни одного элемента НАЗ А МЕТКУ При создании объекта коллекции в качестве аргумента конструктору класса
    ArrayList можно передать, например, массив. В этом случае будет создана коллекция на основе массива. В любом случаев коллекцию можно добавлять элементы и удалять элементы из коллекции. Размер коллекции при этом регулируется автоматически. Также следует различать размер коллекции и количество элементов в коллекции. Размер коллекции определяется количеством мест в базовом массиве коллекции, предназначенном для хранения элементов. Обычно размер коллекции больше количества содержащихся в ней элементов. Узнать количество элементов в коллекции можно с помощью свойства
    Count
    . Узнать или задать размер коллекции можно с помощью свойства Для добавления элементов в коллекцию используем метод Add() (элемент добавляется вконец коллекции. То есть первые два элемента в коллекции — единицы. Затем запускается оператор цикла, и за каждую итерацию цикла в коллекцию добавляется новый элемент. Предварительно этот элемент вычисляется как сумма двух предыдущих элементов. Для этого используется выражение (int)fibs[fibs.Count-1]+(int)fibs[fibs.Count-2].
    Немного о разном ПОДРОБНОСТИ bДля получения значения элемента в коллекции можно использовать индекс, как при работе с массивами. Поэтому доступ к первому элементу в коллекции fibs получаем с помощью инструкции можно прочитать значение элемента или присвоить значение элементу. Количество элементов в коллекции определяем с помощью свойства
    Count
    . Поскольку индексация элементов в коллекции, как ив массиве, начинается с нуля, то индекс последнего элемента в коллекции на единицу меньше количества элементов в коллекции. Индекс последнего элемента в коллекции fibs вычисляется как fibs.Count-1
    , а индекс предпоследнего элемента вычисляется как При создании коллекции на основе класса
    ArrayList элементы коллекции реализуются на основе класса
    Object
    . Поэтому, с одной стороны, в коллекцию можно заносить элементы любого типа. С другой стороны, при считывании значений элементов из коллекции приходится выполнять явное приведение типа.
    Для отображения элементов из коллекции использован оператор цикла по коллекции foreach. При этом мы также учли, что элементы в коллекции сохраняются в виде объектных ссылок класса Object (в программе использован псевдоним object для выражения Для удаления элементов используется метод Remove(). Командой fibs.Remove(1)
    из коллекции удаляется элемент со значением 1 первый из двух, а командой fibs.Remove(5) из коллекции удаляется элемент со значением 5. А вот командой fibs.Insert(0,100) в позицию с индексом 0 в коллекции fibs добавляется элемент со значением. Командой fibs.Reverse() порядок элементов в коллекции изменяется на обратный.
    Коллекцию можно преобразовать в массив (точнее, создать массивна основе коллекции. Для этого используют метод ToArray(). Пример использования этого метода дается командой int[] nums=(int[])
    fibs.ToArray(typeof(int))
    , которой на основе коллекции fibs создается целочисленный массив nums. Но и здесь не все так просто. Метод ToArray() результатом возвращает ссылку на массив из элементов класса Object. То есть результатом метода является значение типа Object[]. Чтобы записать такую ссылку в переменную nums, необходимо выполнить явное приведение к типу int[]. Аргументом методу) передается выражение typeof(int). Этот аргумент
    Глава определяет тип элементов массива, который создается на основе коллекции ПОДРОБНОСТИ bРезультатом выражения на основе инструкции является объект класса
    Type
    , который содержит описание типа, идентификатор которого указан в typeof
    -инструкции.
    Есть и другие классы, предназначенные для работы с коллекциями. Например, классы Stack и Queue предназначены для создания стека и очереди соответственно НАЗ А МЕТКУ Стек — это последовательность элементов, которые обрабатываются по принципу последний зашел — первый вышел первым обрабатывается элемент, добавленный последним в стек. Очередь — это последовательность элементов, которые обрабатываются по принципу первый зашел — первый вышел первым обрабатывается элемент, который добавлялся в очередь первым.
    Классы Stack и Queue реализуют интерфейсы ICollection,
    IEnumerable и ICloneable. При работе со стеком для добавления элемента в стек используется метод Push(). С помощью метода Pop() из стека извлекается (удаляется) последний элемента значение элемента возвращается результатом метода. При работе с очередью новый элемент в очередь можно добавить с помощью метода Enqueue(). Метод
    Dequeue()
    извлекает (удаляет) первый элемент из очереди и результатом возвращает значение этого элемента. У классов Stack и Queue также есть метод Peek(), который результатом возвращает последний элемент для стека и первый элемент для очереди. При этом элемент из стека/очереди не удаляется НАЗ А МЕТКУ Методы
    Peek()
    ,
    Pop()
    и
    Dequeue()
    результатом возвращают объектные ссылки класса Пример использования классов Stack и Queue представлен в листинге Немного о разном
    511
    
    Листинг 9.11. Стеки очередь System;
    using System.Collections;
    //
    Ƚɥɚɜɧɵɣ ɤɥɚɫɫ:
    class StackQueueDemo{
    //
    Ɇɟɬɨɞ ɞɥɹ ɨɬɨɛɪɚɠɟɧɢɹ ɫɨɞɟɪɠɢɦɨɝɨ ɤɨɥɥɟɤɰɢɢ:
    static void show(ICollection s){
    Console.WriteLine(
    Ǝɋɨɞɟɪɠɢɦɨɟ ɤɨɥɥɟɤɰɢɢ:Ǝ);
    foreach(object obj in s){
    Console.Write(
    Ǝ|Ǝ+obj);
    }
    Console.WriteLine(
    Ǝ|Ǝ);
    }
    //
    Ƚɥɚɜɧɵɣ ɦɟɬɨɞ:
    static void Main(){
    //
    ɋɨɡɞɚɧɢɟ ɫɬɟɤɚ:
    Stack mystack=new Stack();
    //
    Ⱦɨɛɚɜɥɟɧɢɟ ɷɥɟɦɟɧɬɨɜ ɜ ɫɬɟɤ:
    mystack.Push(
    ƎɉɟɪɜɵɣƎ);
    mystack.Push(
    ƎȼɬɨɪɨɣƎ);
    mystack.Push(
    ƎɌɪɟɬɢɣƎ);
    //
    Ɉɬɨɛɪɚɠɟɧɢɟ ɫɨɞɟɪɠɢɦɨɝɨ ɫɬɟɤɚ:
    show(mystack);
    //
    ɋɱɢɬɵɜɚɧɢɟ ɷɥɟɦɟɧɬɚ ɢɡ ɫɬɟɤɚ:
    Console.WriteLine(
    Ǝɉɪɨɱɢɬɚɧɨ: Ǝ+mystack.Peek());
    //
    Ɉɬɨɛɪɚɠɟɧɢɟ ɫɨɞɟɪɠɢɦɨɝɨ ɫɬɟɤɚ:
    show(mystack);
    //
    ɂɡɜɥɟɱɟɧɢɟ ɷɥɟɦɟɧɬɚ ɢɡ ɫɬɟɤɚ:
    Console.WriteLine(
    Ǝɂɡɜɥɟɱɟɧɨ: Ǝ+mystack.Pop());
    //
    Ɉɬɨɛɪɚɠɟɧɢɟ ɫɨɞɟɪɠɢɦɨɝɨ ɫɬɟɤɚ:
    show(mystack);
    Глава 9
    1   ...   32   33   34   35   36   37   38   39   40


    написать администратору сайта