Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК-1_АЯП_рус.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.19 Mб
Скачать

Void main()

{

Int h; /*дескриптор создаваемого файла*/

char * s="Эта строка будет помещена в файл";

char buf[7]; /*буфер для чтения из файла*/

_fmode=O_BINARY; /*работаем с двоичными файлами*/

if((h=creat("proba.txt",S_IREAD |S_IWRITE))==-1) /*создать файл*/

{

printf("Не удалось открыть файл!\n");

exit(1);

}

write(h,s,strlen(s)); /*записать в файл строку s*/

lseek(h,4,SEEK_SET); /*четвертый байт от начала файла*/

read(h,buf,6); /*читать слово 'строка' (6 байт) из файла*/

buf[6]=0; /*отмечаем конец строки*/

close(h); /*закрыть файл*/

printf("%s\n",buf); /*печать считанной строки*/

}

Наша программа достаточно полно прокоментирована, поэтому мы приводим достаточно краткие пояснения. Программа создает файл прямого доступа и записывает туда последовательность байт (строку). Далее происходит прямое обращение к подстроке этой строки непосредственно в файле. При разборе текста программы обратим читателей на некоторые моменты:

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

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

Наконец не забывайте, что строка только тогда станет строкой, когда в конце стоит код \0.

В заключении нашего рассмотрения файлов отметим, что наше изложение касалось работы с файлами в среде MS DOS. Работа с файлами в ОС Windows несколько отличается от рассмотренного и основывается на использовании специальных функций API (о программировании в Windows см. ниже).

Основная литература: 2[205-208], 3[10 лекция]

Дополнительная литература:1,2,3,5

Контрольные вопросы:

1. Укажите правила открытия файла в языке С.

2. Укажите правила открытия файла в языке С.

3. Основные положения работы с файлами прямого доступа

4.Какик четыре шага необходимы для работв с файлами?

5.Что выполняет данная программа?.

#include<stdio.h>

Void main()

{FILE*fp;

int n,nn,m;

fp=fopen("a.dat","w");

for(n=1;n<11;n++)

fprintf(fp,"%d %d\n",n,n*n);

fclose(fp);

fp=fopen("a.dat","r");

for(n=1;n<11;n++)

{fscanf(fp,"%d %d",&nn,&m);

printf("%d %d\n",m,nn); }

fclose(fp);

getchar();

}

Лекция 14 Работа дисплея в графическом режиме. Функции для подготовки графической системы. Функции для получения изображения

Работа дисплея в графическом режиме

При работе в графическом режиме экран дисплея представляет собой матрицу точек (пикселов - pixel), т.е. матрицу отображаемых точек. При этом число столбцов и строк пикселов (разрешение экрана дисплея) зависит от режима работы видеоадаптера. Можно управлять цветом каждого пиксела, задавая цвета фона, рисунка и заполнения замкнутых областей экрана дисплея.

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

Немобильная группа графических программ представляет собой BGI драйвер (Borland Graphics Interface).

Драйвер - это обработчик прерывания 10h, он должен дополнить системный обработчик до того, как будут использоваться мобильные графические функции. Перед завершением программы таблица векторов прерываний восстанавливается.

Основные функции BGI-драйвера - установка и обновление ряда внешних переменных, которые могут изменяться как функциями системного обработчика прерывания 10h ( например, при переключении видеорежима или при изменении регистров палитры ), так и мобильными функциями библиотеки графики алгоритмического языка Turbo C (TC) или C++.

Для различных типов адаптеров применяются различные драйверы: CGA.BGI - драйвер для CGA и MCGA, EGAVGA.BGI - драйвер для адаптеров EGA,VGA, HERC.BGI - драйвер для монохромных адаптеров Hercules.

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

- функции для подготовки графической системы и перехода в текстовый режим;.

- функции для получения изображений на экране дисплея;.

- функции для установки параметров изображения( вид штриховки, толщина линий и т.д.);

- функции для определения параметров режимов и изображений.

Функции для подготовки графической системы

Перед использованием графических функций необходимо инициализировать систему графики.Графические режимы, поддерживаемые библиотекой графики, задаются символическими константами, описанными в файле <graphics.h> в перечислимом типе graphics_mode.

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