русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Структуры и объединения.

Структура – это объединение в одной инфоомационной сфере - переменной, данных разных типов, принадлежащих одному объекту предметной области решаемой задачи

Определить структурный тип можно следующим образом:

typedef struct

{

Определение_элементов_структуры;

Имя_структурного_типа;

}

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

#include <stdio.h>

#include <conio.h>

struct student

{

int kurs,group;

float s[5];

};

FILE *f;

void input()

{

student st;

char s=”\0”;

clrscr(); //Очистка экрана

f=fopen(“students.dat”, “rb+”);

if(f)

{

do

{

fflush(stdin);

printf(“\nФайл существует! Выберите действие:\n”);

printf(“0 – создать файл заново\n”);

printf(“1 – добавить данные в существующий файл\n”);

printf(“2 – отказаться от ввода\n”);

s = getch();

if(s=='0');

f=fopen(“students.dat”,”wb+”);

else

if(s=='1')

f=fopen(“students.dat”,”ab+”);

while(s!='0' && s!='1' && s!='2');

else f=fopen('students.dat”,”wb+”);

if(s!='2')

{

do

{

fflush(stdin);

printf(“\nФамилия ИО:”); gets(st.FIO);

printf(“\nКурс:”);scanf(“%d”,&st.kurs);

printf(“\nГруппа:”);scanf(“%d”,&st.group);

for(int i=0;i<5,i++)

scanf(“%f”,&st.s[5]);

fwrite(&st,sizeof(st),1,f);

printf(“\nПродолжить ввод?[д/н]:”);

fflush(stdin);

s=getchar();

}

while(s=='д' || s=='Д');

fclose(f);

f=fopen(“students.dat”,”rb”);

if(!f)

{

printf(“Нет данных! Нажмите любую клавишу...”);

getch();

}

else

{

printf(“Укажите курс:”); scanf(“%d”,%kurs);

printf(“ и группу:”); scanf(“%d”,&group”);

clrscr();

printf(“Фамилия ИО Курс Группа Оценки\n”);

int k=0:

while(fread(&st,sizeof(st),1,f))

if(st.kurs==kurs && st.group=group);

{

printf(“\n|%-25s|%2d|%3d|”,st.FIO,st.kurs,st.group);

for(int i=0,i<5,i++)

printf(“%6.2f”,st.s[i]);

printf(“\”);

k++;

if(k%21==0)

{

printf(“\nНажмите любую клавишу!”);

getch();

gotoxy(1,4);

}

}

printf(“\nНайдено %d записей”,k);

}

fclose(f);

}

Объединение

Объединение — это аналог структуры, в которой элементы разделяют одну и ту же область памяти, то есть в любой момент времени может быть доступен только один элемент объединения. Для переменной типа объединения выделяется памяти столько, сколько требует ее наибольший элемент. Синтаксис описания объединения

union[имя_типа_объединения]

{

тип 1 имя1.1,...,имя 1.k;

тип n имя n.1,...,имя n.m;

} [имя_переменной1,..., имя_переменной2];

#include <stdio.h>

struct type_data

{

unsigned char day, month;

int year;

}

union u1

{

long int l;

type_data data;

};

void main()

{

u1, d1, d2;

printf (“\nВведите первую дату:\n”);

scanf (“\n%ld %d %d”, &d1.data.day, &d1.data.month, &d1.data.year);

printf (“\nВведите вторую дату:\n”);

scanf (“\n%ld %d %d”, &в2.data.day, &d2.data.month, &d2.data.year);

if (d2.l > d1.l) printf (“\n d2 > d1”);

else if (d2.l < d1.l) printf (“\n d2 < d1”);

else printf (“\n d2 = d1”);


Управление экраном в текстовом режиме в среде MS-DOS

В текстовом режиме (по умолчанию) экран разбит на 25 строк по 80 символов в строке. Левый верхний угол имеет координаты (1,1). Устройством ввода (по умолчанию) является клавиатура.

Функции, обеспечивающие работу с экраном в текстовом режиме собраны в модуле conio.h.

Window(int x1, int y1, int x2, int y2) – устанавливает на экране окно. После вызова функции часть экрана вне окна становится недоступной. Левый верхний угол окна имеет координаты (1,1).

Clrscr()– очищает экран или текущее окно, заполняет его цветом фона и перемещает курсор в левый верхний угол экрана или окна.

Textbackground(int color) - Цвет фона символа (от 0 до 7)

Textcolor(int color) –устанавливает цвет символа (от 0 до 15)

Textattr(int attr) –позволяет задать цвет фона и символа одновременно, параметры задаются битовой матрицей

M Ф Ф Ф С С С С

Textmode(int mode) –позволяет изменить текстовый режим.

Mode      
C80 Цветной 80 символов/строка
C40 80 символов/строка
C4350 43/50 строк по 80 симв
LASTMODE -1 Предыдущий режим

Highvideo();lowvideo();normvideo(); -устанавливает яркость символов повышенное/пониженное/нормальное

int gettext(int x1, int y1,int x2,int y2, void *buf) —копирует текст с части экрана определенного левым верхним и правым нижним координатами в буфер.

int gettext(int x1, int y1,int x2,int y2, void *buf) —выводыит на экран текст из буфера, ту его часть, которая задана координатам(см. пр)

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

Delline()- удаляется строка, на которой расположен курсор; строки, находящиеся ниже поднимаются.

Insline()- вставляет строку в то место, где находится курсор.

gotoxy(int x, int y) —перемещает курсор на указанную позицию

wherex(), wherey() -где находится курсор.

Int kbhit() -возвращает не ноль, если была нажата клавиша на клавиатуре

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

Работа в графическом режиме предоставляется функциями модуля graphics.h,которую реализует Borland Graphic Interface (BGI).

Для подключения графики необходимо подключить опцию Options Linker Libralies Graphics libraly

Для постраничного режима необходимо задать следующие значения параметров:

void for initgraph (int far *graphdrive, int far *graphmode, char far *path); — инициализирует графический режим определенный двумя первыми параметрами graphdrive — собственный режим (по умолчанию graphdrive = DETECT) graphmode — режим VGA с одной страницы видео памяти и разрешением 640х480 pixels.

graphdriver = VGA // 9, graphmode=VGAMED // 1

path — строка, задающая путь к файлу egavga.bgi

Драйверы находятся в папке BGI. После вызова функции экран очищается, невидимый курсор помещается в левый верхний угол экрана с координатами (0,0).

Просмотров: 442


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.