Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АМП S.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
107.91 Кб
Скачать

Класс cFile

Класс CFile предназначен для работы с файлами, используется как базовый класс для других классов MFC, предназначенных для работы с файлами. Обеспечивает небуфферизованный двоичный ввод/вывод в файлы.

В класс включено несколько конструкторов.

Конструктор по умолчанию:

CFile();

Конструктор с параметрами:

CFile(LPCTSTR lpszFileName,UINT nOpenFlags),

где lpszFileName – указатель на строку, содержащую имя файла и путь к нему;

nOpenFlags – целочисленная переменная, определяющая режимы доступа к файлу или его атрибуты и принимающая следующие значения:

CFile::modeCreate – создать новый файл; если файл уже существует, информация из него удаляется;

CFile::modeRead – открыть файл для чтения; для этого файл должен находиться в заданном каталоге; если файл отсутствует, возникает ошибка;

CFile::modeWrite – открыть файл для записи; если указанный файл не найден, он создается в указанном каталоге; указатель файла устанавливается на начало файла; если в файле была какая-либо информация, она стирается.

Пример создания объекта класса CFile:

CFile MyFile("my.txt",CFile::modeRead);

В класс включены методы для работы с файлами:

Virtual UINTRead(void* lpBuf,UINTnCount) – чтение из файла; lpBuf – указатель на буфер, в который помещается прочитанная информация, nCount – размер буфера; возвращает количество информации в байтах, помещенной в буфер;

virtualvoidWrite(constvoid* lpBuf,UINTnCount) – запись в файл; имеет те же параметры, что и метод Read();

virtual LONG Seek(LONG lOff,UINT nFrom) – позволяет произвольно устанавливать указатель текущей позиции в файле; lOff – смещение в байтах, nFrom – позволяет устанавливать начало отсчета: значение CFile::begin – отсчет от начала файла; CFile::current – отсчет от текущей позиции указателя; CFile::end – отсчет от конца файла;

Open() – открытие файла в соответствии с выбранным режимом;

Close() – закрытие файла.

Пример сохранения строки в текстовом файле:

CFile myfile;

char* pFileName="test.txt";

myfile.Open(pFileName,CFile::modeCreate|CFile::

modeWrite);

myfile.Write("123456789",4);

myfile.Close();

Результатом выполнения этого фрагмента программы будет создание файла test.txt и запись в него строки "1234".

34.) Структури. Операції над структурами. Структури як параметри функції і як тип фунції.

Структуры

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

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

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

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

tab_nom - табельный номер; fio - фамилия, имя, отчество; pol - пол; summa - зарплата;

: Все эти понятия можно объединить в такую, например, структуру:

struct anketa { int tab_nom; char fio[30]; char data[10]; int pol; char adres[40]; float summa; };

  Эта запись называется описанием структуры. Она начинается с ключевого слова struct и состоит из заключенного в фигурные скобки списка описаний. За словом struct может следовать необязательное имя, которое называется именем типа структуры (иногда его называют тэгом или ярлыком структуры). Этот ярлык именует структуру и в дальнейшем может использоваться для сокращения подробного описания. Переменные, упоминающиеся в записи, называются элементами. Следом за правой фигурной скобкой, заканчивающей список элементов, может следовать список переменных, так же, как и в случае базисных типов. Вот почему в приведенном выше описании структуры после закрывающей фигурной скобки стоит точка с запятой; она завершает пустой список. Описание struct {....} p1, p2, p3; синтаксически аналогично int p1, p2, p3; в том смысле, что каждый из операторов описывает p1, p2, p3 как переменные соответствующего типа и приводит к выделению для них памяти. Описание же структуры без последующего списка переменных не выделяет никакой памяти. Оно только определяет форму сируктуры и действует как шаблон. Если такое описание снабжено ярлыком (именем типа), то его можно позже использовать при определении фактических экземпляров структуры. Например, используя указание выше описане anketa, можно с помощью строки

                      struct anketa a0, a1 ,a2;

описать структурные переменные a0, a1, a2, каждая из которых строится по шаблону, введенному структурой anketa. Любая переменная a0, a1, a2 содержит в строго определенном порядке элементы tab_nom, fio, data, pol, adres, summa. Все переменные , как и все остальные переменные языкаЮ получают места в памяти.

           Внешние и статические структуры можно инициировать, помещая следом за определением список начальных значений элементов:

                  struct anketa a0={ 1024, "Макагон В.М", "10.01.1943",0 , "Одесса, Варневская, 23/99", 175.00};

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

      имя_структуры.имя_елемента

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

a0.data="10.01.43"; a1.summa=0.0; if(a2.pol==1) man=man+1;

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

На практике структурные переменные обычно появляются в виде массива или списка. Нетрудно видеть, что наши три переменные a0, a1, a2 будет проще использовать, если их объединить в массив, сосотоящий из элементов типа struct anketa. Применив в программе описание:

            struct anketa a[3];

мы можем употреблять в ней, например, такие операторы:

a[0].fio ="Макагон В.М"; if(a[i].tab_nom>a[i+1].tab_nom) { p=a[i].tab_nom; a[i].tab_nom=a[i+1].tab_nom; a[i+1].tab_nom=p;}

4 Поняття про мову програмування. Класифікація мов програмування. Поняття транслятора. Їх різновиди.

Мова — це система знаків (символів, жестів, міміки, положень перемикача і т. д.) для представлення, обміну інформацією. Це загальне визначення включає в себе і природні, і штучні (формальні) мови. До штучних мов належать мови, створені людьми для розв’язання специфічних задач. Це мова математичних формул, нотна грамота, мови програмування тощо. Алгоритмічна мова — це мова, призначена для представлення алгоритму у вигляді послідовності вказівок для виконання їх виконавцем алгоритму. Алгоритмічна мова, як і кожна інша, має свій словник. Основу цього словника складають слова, що використовуються для запису команд, які входять у систему команд виконавця. Мови програмування — це алгоритмічні мови, призначені для опису алгоритмів, що орієнтовані для виконання на комп’ютері, або система позначень для точного опису алгоритму, який треба виконати за допомогою комп’ютера. Мова програмування, як і будь-яка інша мова, являє собою набір символів (алфавіт), систему правил складання базових конструкцій мови (синтаксис) та правила тлумачення мовних конструкцій (семантика). Ця система позначень і правил призначена для одноманітного і точного запису алгоритму. Алфавіт, синтаксис і семантика — три основні складові мов програмування. Програма — це алгоритм, записаний мовою програмування. Трансляція (від англ. translation — переклад) — програма, яка перетворює команди мови програмування на машинну мову. Існує два способи трансляції: інтерпретація та компіляція. Інтерпретація (від англ. interpretation) — спосіб трансляції, при якому кожна інструкція програми перекладається в машинні коди та виконується, і тільки після виконання одного фрагмента програми процесор переходить до обробки іншого фрагмента. Це гнучка система перекладу, яка реалізовується нескладно. Вона використовується в тих випадках, коли потрібна простота трансляції (Basic), або там, де інший спосіб перекладу дуже складний або навіть неможливий (Lisp). Компіляція (від англ. compile — збирати) — спосіб трансляції, при якому здійснюється переклад усього тексту програми, збір перед її виконанням та запис у пам’ять комп’ютера. При перегляді програми компілятор виділяє місце в пам’яті для кожної змінної.