Студопедия

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

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

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






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Язык Pascal






    Файловый тип или переменную файлового типа можно задать одним из трех способов:

    < имя> =FILE OF < тип>;

    < имя> =TEXT;

    < имя> =FILE;

    В зависимости от способа объявления можно выделить 3 вида файлов:

    -типизированные файлы (задаются предложением FILE OF…);

    -текстовые файлы (определяются типом TEXT);

    - нетипизированные файлы (определяются типом FILE).

    Файловая переменная связывается с именем файла в результате обращения к стандартной процедуре ASSIGN:

    ASSIGN (< ф.п.>, < имя файла или л.у.>);

    Инициировать файл означает указать для этого файла направление передачи данных.

    RESET(< ф.п.>) инициирует: чтение в файл.

    REWRITE(< ф.п.>)-инициирует запись информации в файл или в логическое устройство.

    APPEND(< ф.п.>)-инициирует запись в ранее существовавший текстовый файл для расширения.

    Текстовые ф. связываются с ф.п., принадлежащими типу TEXT. Текстовые ф. предназначены для хранения текстовой информации. В Паскале текстовый файл трактуется как совокупность строк переменой длины. Доступ к каждой строке возможен лишь последовательно, начиная с первой. При создании текстового файла в конце каждой записи ставится специальный признак EOLN, а в конце всего файла – EOF.

    Для доступа к записям применяются процедуры

    READ([< ф.п.> ], < с.п.ввода>)-обеспечивает ввод символов, строк и чисел.

    READLN([< ф.п.> ], < с.п.ввода>)-идентична предыдущей за исключением того, что после считывания последней переменной оставшаяся часть строки до маркера EOLN пропускается, поэтому след. Обращение к READLN или READ начинается с первого символа новой строки.

    WRITE([< ф.п.> ], < с.п.ввода>)-обеспечивает вывод информации в текстовый файл или передачу ее на логическое устройство,

    WRITELN([< ф.п.> ], < с.п.ввода>) - идентична предыдущей за исключением того, что выводимая строка символов завершается кодами CR, LF.

    и функции SEEKEOLN, SEEKEOF,

    EOLN([< ф.п.> ])-возвращает TRUE, если во входном текстовом файле достигнут маркер конца строки.

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

    Для доступа к записям применяются процедуры READ, WRITE, а так же функции

    SEEK(< ф.п.>, < N-компонента>)-смещает указатель ф. к требуемому компоненту.

    FILESIZE(< ф.п.>)-возвращает значение типа LONGINT, которое содержит количество компонентов файла.

    FILEPOS(< ф.п.>)-возвращает значение типа LONGINT, содержащее порядковый номер компонента файла.

    Нетипизированные ф. объявляются как файловые переменные типа FILE и отличаются тем, что для них не указан тип компонентов. Отсутствие типа делает эти ф. совместимыми с любыми др.файлами и позволяет организовать высокоскоростной обмен данными м/у диском и памятью.

    При работе с этими ф.применяются все процедуры и функции, доступные тип-м ф., за искл.READ, WRITE, кот. заменяются высоскоростными процедурами BLOKREAD(< ф.п.>, < буф.>, < [, NN]>) и BLOKWRITE(< ф.п.>, < буф.>, < [, NN]>)

    CLOSE(< ф.п.>)-заравает файл

    RENAME(< ф.п.>, < новое имя>)-переименовывает

    RASE(< ф.п.>)-уничтожает

    , FLUSH(< ф.п.>)-очищает внутренний буфер файла и, таким образом, гарантирует сохранность всех последних изменений файла не диске.

     

     


    65 Объектно-ориентированные средства ввода-вывода.

    Для организации ввода-вывода данных встроенных типов в программе на С++ используется заголовочный файл iostream.h, который содержит определение нескольких классов и объектов, обеспечивающих методы ввода – вывода. В частности, язык поддерживает четыре предопределенных объекта, выполняющих ввод-вывод:

    Cin-ввод(обычно с клавиатуры)

    Cout-вывод(обычно терминал)

    Cerr-вывод ошибок (обычно клавиатура)

    Clog-буферизованная версия Cerr

    В файле iostream.h определены классы istream и ostream, которые используются для управления ввода и вывода соответственно. В этих классах перегружены операции ввода и вывода для встроенных типов данных. Например:

    Class ostream {

    Public:

    Ostream & operator< < (char*);

    Ostream & operator< < (int);

    Ostream & operator< < (long);

    Ostream & operator< < (double);

    ....

    };

    Cout- объект класса Ostream. Оператор cout< < x; посылает значение переменой x в объект сout класса Ostream для вывода. Функция operator< < возвращает ссылку на объект Ostream, для к-ого она была вызвана. Поэтому к результату операции вывода < < можно еще раз применить операцию вывода, т.е. неск.операций можно сцепить:

    Cout< < ”x = “< < x < < endl;

    Такая запись проинтерпритируется как:

    ((cout.operator< < (“x=”)).operator< < (x)).operator< < (endl);

    Аналогично опред. ввод cin.

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

    #include< iostream.h>

    #include< math.h>

    Class Complex{

    Double real;

    Double image;

    Public:

    Complex(double r) { real=r; image=0; }

    Complex(double r, double i) { real=r; double=i; }

    ~Complex () {}

    Int isEqual (Complex &);

    Int isGreater (Complex &);

    Int isLess (Complex &);

    }

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

    Void complex:: printComplex ()

    {

    Cout< < real< < ”+I *”< < image< < endl;

    }

    Объект можно напечатать, вызывая эту функцию.

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

    Ostream & operator < < (ostream & r, Complex c)

    {

    Return r < < c.real< < ”+i*” < < c.image< < endl;

    }

    Cout < < c1;

    Так как функция-операция возвращает ссылку на объект класса ostream, то можно сцепить нашу операцию в цепочку:

    Cout < < “Комплексное число: ”< < c1;

    Ф-ия для перегрузки операции < < обязательно должна быть объявлена как дружественная классу Complex, а не как его член, потому что в операции вывода слева стоит объект другого класса. Ф-ия член класса первым аргументом всегда неявно получает указатель this, а операция вывода < < должна получить ссылку на класс ostream.

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

    istream & operator > > (istream & r, Complex & c)

    {

    Return r> > c.real> > c.image;

    }






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