6.10 Функция scroll

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

Логические

переменные:

нет

Внутренние

переменные:

st (int) - номер выбранного пункта меню

n (int) - счётчик

c (char) - Введённый с клавиатуры символ

sv , sk (int) - первый элемент на экране и положение курсора

Вызывает функции: output , menu , edit , index.
Вызывается из: main

6.11 Функция load

Строка вызова: load()
Назначение: Осуществляет загрузку базы данных из файла.
Функции: Открытие файла с именем librarym.dat , чтение количества строк в массиве , чтение данных в массив , закрытие файла.

Логические

переменные:

нет

Внутренние

переменные:

*f (file) - указатель на файл
Вызывает функции: нет
Вызывается из: main

6.12 Функция save

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

Логические

переменные:

нет

Внутренние

переменные:

*f (file) - указатель на файл
Вызывает функции: нет
Вызывается из: main

6.13 Основная программа - main

Назначение: Осуществляет установку начальных значений , чтение базы данных из файла , обработку , запись базы данных в файл.
Функции: Установка начальных значений переменных , вызов функции чтения данных из файла , вызов функции обработки , обработку меню, поиск по маске , построение диаграммы , вызов функции записи в файл ,установка параметров , выход из программы.
Вызывает функции: load , save , scroll , menu , find , graph.
7 Технические требования для использования

Для запуска данной программы необходимо наличие персонального компьютера IBM PC/XT c операционной системой MS-DOS.

Необходимый объем оперативной памяти -640 Кбайт.

Дла запуска программы необходимо сделать текущем каталог с программой kurs.exe и вызвать её на выполнение.

Программа работает в текстовом режиме 80х25 символов , построение диаграммы осуществляется в графическом режиме 640х480 точек 16 цветов.

Файл базы данных программы librarym.dat будет записываться и считываться из текущего каталога текущего диска.

Управление программой осуществляется с клавиатуры.

8 Руководство пользователя

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

При нажатии клавиши Enter на одном из элементов списка , то на экран будет вызванно меню:

1) Список книг
2) Поиск по маске
3) Количество книг
4) Выход из программы

При выборе первого пункта меню моявится следующее подменю:

1) Ðàñïîëîæåíèå:
2) ×èòàëüíûé çàë
3) Àáîíåìåíò
4) Õðàíèëèùå

При нажатии пользователем клавиши Enter на выведенном списке книг появляется меню:

1) Äîáàâèòü â ñïèñîê
2) Óäàëèòü èç ñïèñêà
3) Ðåäàêòèðîâàòü
4) Ïî Àâòîðó
5) Ïî Íàçâàíèþ
6) Âûõîä â ãëàâíîå ìåíþ

При нажатии на клавиши управления курсором (вверх , вниз) можно управлять курсором , если нажать клавишу Enter или клавишу с номером пункта меню , то произойдёт то или иное действие в соответствии с выбранным пунктом.

Отсортированная последовательность выводится на экран в виде списка книг. При выборе пункта "Поиск по маске" программа запрашивает данные для поиска книги: Название , Автор , Стоимость , Порядковый номер , Количество , Тематика (Не влияет).

После поиска , если такая книга имеется в списке , данные о найденной книги выводятся на экран.

При выборе пункта "Выход из программы" программа завершает свою работу.

9 Тестирование программы

Для полной проверки работоспособности программы необходимо её протестировать.

План тестирования программы учёта и выборки информации о странах состоит в следующем:

1) Загрузка программы

2) Ввод данных о книгах

3) Удаление книги из списка

4) Редактирование данных о книге

5) Сортировка

6) Поиск по маске

7) Построение диаграммы

8) Выход из программы

Далее в пункте "Результаты работы программы" приводится распечатка тестирования программы по пунктам плана тестирования и результатов тестирования.

10 Результаты работы программы

2) Ввод данных о книгах

76  Автор2  Книга9 22 11.00р

11  Автор2  Книга8 28 21.00р

22 Автор65 Книга33 18 32.00р

55  Автор1  Книга3 12 22.00р

 2  Автор2  Книга2 10 55.00р

 1  Автор1 Книга 1 10 34.00р

3) Удаление книги из списка

76  Автор2  Книга9 22 11.00р

11  Автор2  Книга8 28 21.00р

22 Автор65 Книга33 18 32.00р

55  Автор1  Книга3 12 22.00р

 2  Автор2  Книга2 10 55.00р

4) Редактирование данных о книге

 Название: Книга3

 Автор:  Автор1

 Стоимость: 20.00

 Порядковый номер:  55

 Количество:  20

 Тематика: Научная

5) Сортировка

По автору:

22 Автор65 Книга33 18 32.00р

76  Автор2  Книга9 22 11.00р

 2  Автор2  Книга2 10 55.00р

11  Автор2  Книга8 28 21.00р

55  Автор1  Книга3 20 20.00р

По названию:

76  Автор2  Книга9 22 11.00р

11  Автор2  Книга8 28 21.00р

22 Автор65 Книга33 18 32.00р

55  Автор1  Книга3 20 20.00р

 2  Автор2  Книга2 10 55.00р

7) Построение диаграммы

Программа обработки данных в библиотеке

Заключение

В данной курсовой работе решена задача разработки программы обработки данных в библиотеке.

По заданию к данной курсовой работе был разработан алгоритм , по которому на алгоритмическом языке С++ была разработанна программа , анализ результатов которой показал , что поставленная задача успешно решается.

Список литературы

1.Бьярн Страуструп. Язык программирования С++.в двух частях. Пер. с англ. Киев:"ДиаСофт",1993.-296 с.,ил.

2.Корриган Джон Компьютерная графика: Секреты и решения: Пер с англ. -М.:Энтроп, 1995. - 352 с., ил.

ПРИЛОЖЕНИЕ 1

Распечатка программы

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <graphics.h>

#include <conio.h>

// Структура - данные о одной книге

struct books {

char name[30]

// Название

char fio[30]

// Автор

int num

// Количество

float price

// Стоимость

long number

// Порядковый номер

// Расположение: 0-читальный зал, 1-абонемент, 2-хранилище

int loc

int tem

// Тематика

int nn,nf

// Номер по названию, автору

}

// Массив - 500 книг и маска для поиска

books cdt[501]

 // Массив данных о книгах

int cnum

// Количество книг

// Сортировать по: 1-Названию, 2-автору

char sort

// Расположение

char ftm

const char location[3][15]={" Читальный залx0",

"  Абонементx0",

"  Хранилищеx0"}

const char tema[5][15]={ "Художественнаяx0",

"  Техническаяx0",

" Научнаяx0",

" Справочникx0",

" _Не влияет_ x0"}

// ПРОТОТИПЫ ФУНКЦИЙ

// Сравнение строки с маской

int cmp(char * a,char * b)

// Вывод списка на экран

void output(int sv,int sk)

// Обработка меню

int menu(int x,int y,char * capt)

// Ввод строки

void SInput(char * s,int lng,int x,int y)

// Ввод числа

double DInput(int x,int y)

// Индексирование массива

void index()

// Редактирование элемента

void edit(int ed)

// Вывод данных по маске

void find()

// Вывод графика

void graph()

// Обработка списка

void scroll()

// Чтение массива

void load()

// Запись массива

void save()

// ТЕЛА ФУНКЦИЙ

// Сравнение строки с маской

// a- строка, b- маска

int cmp(char * a,char * b) {

int k

int n

k=1

for (n=0

n<strlen(b)

n++)

 if (a[n]!=b[n]) k=0

return k

}

// Вывод списка на экран

void output(int sv,int sk) {

int n

int m

int nd

m=sv

// Очистка экрана

textcolor(15)

textbackground(1)

clrscr()

// Вывод двадцати элементов

for (n=1

n<20

n++) {

// Если элемент выбран, изменение цветов

 if (n==sk) {

textbackground(14)

 } else {

textbackground(1)

 }

 if (m<(cnum+1)) {

nd=0

// Поиск элемента с данным индексом

switch (sort) {

case(1):

while (((cdt[nd].nn!=m)||(cdt[nd].loc!=ftm))&&(nd<cnum+1)) nd++

break

case(2):

while (((cdt[nd].nf!=m)||(cdt[nd].loc!=ftm))&&(nd<cnum+1)) nd++

break

}

switch (sort) {

case(1):

if ((cdt[nd].nn!=m)||(cdt[nd].loc!=ftm)) nd=-1

break

case(2):

if ((cdt[nd].nf!=m)||(cdt[nd].loc!=ftm)) nd=-1

break

}

m++

// Вывод данных о стране на экран

gotoxy(1,m-sv)

if (nd!=-1)

cprintf("%4ld %30s %30s %4d %6.2fр",cdt[nd].number,cdt[nd].fio,

cdt[nd].name,cdt[nd].num,cdt[nd].price)

 }

}

textbackground(1)

}

// Обработка меню

int menu(int x,int y,char * capt) {

int n,m

// Счетчики

int num

// Количество пунктов

int k

// Выбранный пункт

char * pt

// Временный указатель на символ

char c

// Считанный с клавиатуры символ

// Вычисляем количество пунктов

num=strlen(capt)/20

// Курсор на нулевой элемент

k=0

// Бесконечный цикл обработки

for (

) {

// Вывод меню

 pt=capt

 for (n=0

n<num

n++) {

gotoxy(x,y+n)

// Закраска пункта, на который указывает курсор

if (n==k) {

// Закраска

textbackground(12)

textcolor(14)

} else {

// Нормальный

textbackground(3)

textcolor(1)

}

cprintf("%d) ",n+1)

for (m=0

m<20

m++) cprintf("%c",*(pt++))

 }

 textbackground(3)

 textcolor(1)

// Опрос клавиатуры

 c=getch()

 if (!c) c=getch()

// Проверка, не нажата ли клавиша с цифрой

 if (((c-'1')>=0)&&((c-'1')<num)) {

// Установка указателя в зависимости от нажатой цифры

k=c-'1'

// Запись в буфер клавиатуры символа ENTER

ungetch(13)

 } else {

 // Анализ

switch(c) {

// Вверх

case (72):

 if (k>0) k--

else k=num-1

 break

// Вниз

case (80):

 if (k<(num-1)) k++

else k=0

 break

// Выход по ESC - возвращается -1

case (27):

 return -1

// Выход по ENTER - возвращается номер пункта

case (13): return k

}

 }

}

}

// Ввод строки

// s - указатель на строку

// lng - Максимальная длинна

// x,y - координаты

void SInput(char * s,int lng,int x,int y) {

lng--

char rs[100]

// Временная строка

strcpy(rs,s)

// Копирование резерва строки

int n

// Счетчик

char c

// Символ

_setcursortype(_NORMALCURSOR)

// Вывод пустой строки

textbackground(2)

textcolor(15)

gotoxy(x,y)

for (n=0

n<lng

n++) cprintf(" ")

n=strlen(s)

// Положение курсора

do {

// Вывод строки

 gotoxy(x,y)

 cprintf("%s ",s)

 gotoxy(x+n,y)

 c=getch()

// Считывание символа с клавиатуры

 if ((c!=13)&&(c!=27)&&(c!=8)) {

 // Нажата символьная клавиша

if (n<(lng-1)) {

// Добавление символа

s[n+1]=0

s[n]=c

n++

}

 } else {

if (c==8) {

// Нажата клавиша BackSpace

if (n>0) {

n--

s[n]=0

}

}

 }

// Выход, если ESC или ENTER

} while ((c!=27)&&(c!=13))

if(c==27) strcpy(s,rs)

// Восстановление строки

// Стирание строки

textbackground(0)

textcolor(7)

gotoxy(x,y)

for (n=0

n<lng+1

n++) cprintf(" ")

_setcursortype(_NOCURSOR)

}

// Ввод числа

// x,y - координаты

double DInput(int x,int y) {

char s[100]

// Временная строка

char *stpe

double rz

s[0]=0

int n

// Счетчик

char c

 // Символ

// Вывод пустой строки

_setcursortype(_NORMALCURSOR)

textbackground(2)

textcolor(15)

gotoxy(x,y)

for (n=0

n<15

n++) cprintf(" ")

n=strlen(s)

// Положение курсора

do {

// Вывод строки

 gotoxy(x,y)

 cprintf("%s ",s)

 gotoxy(x+n,y)

 c=getch()

// Считывание символа с клавиатуры

 if ((c!=13)&&(c!=27)&&(c!=8)) {

 // Нажата символьная клавиша

if (n<14) {

// Добавление цифры или точки

if ((c>='0')&&(c<='9')||(c=='.')) {

s[n+1]=0

s[n]=c

n++

}

}

 } else {

if (c==8) {

// Нажата клавиша BackSpace

if (n>0) {

n--

s[n]=0

}

}

 }

// Выход, если ESC или ENTER

} while ((c!=27)&&(c!=13))

if(c==27) return 0

// Стирание строки

textbackground(0)

textcolor(7)

gotoxy(x,y)

for (n=0

n<15

n++) cprintf(" ")

rz=strtod(s,&stpe)

_setcursortype(_NOCURSOR)

return rz

}

// Индексирование массива - Назначение номеров элементов

void index() {

int tm

// Перебор тем

int n,m

// Счетчики

char mxc[100]

// Значение наименьшей строки

int nm

 // Номер очередного элемента

// Стирание старых индексов

for (n=0

n<cnum

n++) {

 cdt[n].nn=0

 cdt[n].nf=0

}

// Перебор всех возможных мест хранения

for (tm=0

tm<3

tm++) {

// Индексация по автору

 for (m=0

m<cnum

m++) {

 // Поиск наименьшего

strcpy(mxc,"x0")

nm=-1

for (n=0

n<cnum

n++)

if ((cdt[n].nf==0)&&(cdt[n].loc==tm))

if (strcmp(cdt[n].fio,mxc)>0) {

strcpy(mxc,cdt[n].fio)

nm=n

}

if (nm!=-1) cdt[nm].nf=m+1

 }

// Индексация по названиям

 for (m=0

m<cnum

m++) {

 // Поиск наименьшего

strcpy(mxc,"x0")

nm=-1

for (n=0

n<cnum

n++)

if ((cdt[n].nn==0)&&(cdt[n].loc==tm))

if (strcmp(cdt[n].name,mxc)>0) {

strcpy(mxc,cdt[n].name)

nm=n

}

if (nm!=-1) cdt[nm].nn=m+1

 }

}

}

// Редактирование элемента массива

void edit(int ed) {

clrscr()

// Обработка

int n

// Счетчик

int en=0

// Редактируемое поле

char c

 // Символ с клавиатуры

for(

) {

// Вывод данных

 for (n=0

n<6

n++) {

 // Изменение цвета если элемент выбран

if (n==en) {

textbackground(12)

textcolor(15)

} else {

textbackground(1)

textcolor(7)

}

gotoxy(15,6+2*n)

 // Вывод одного из полей структуры

switch(n) {

case 0:

cprintf(" Название: %45s",cdt[ed].name)

break

case 1:

cprintf(" Автор: %45s",cdt[ed].fio)

break

case 2:

cprintf(" Стоимость: %45.2f",cdt[ed].price)

break

case 3:

cprintf(" Порядковый номер: %45d",cdt[ed].number)

break

case 4:

cprintf(" Количество: %45d",cdt[ed].num)

break

case 5:

cprintf(" Тематика: %45s",tema[cdt[ed].tem])

}

 }

// Опрос клавиатуры

 c=getch()

 if (!c) c=getch()

 switch(c){

 // Вверх

case (72):

en--

if (en<0) en=5

break

 // Вниз

case (80):

en++

if (en>5) en=0

break

 // ENTER - Редактирование поля или выход

case (13):

// Выбор действия

switch(en) {

case 0:

SInput(cdt[ed].name,30,35,6)

break

case 1:

SInput(cdt[ed].fio,30,35,8)

break

case 2:

cdt[ed].price=DInput(35,10)

break

case 3:

cdt[ed].number=DInput(35,12)

break

case 4:

cdt[ed].num=DInput(35,14)

break

case 5:

// Изменение тематики

cdt[ed].tem=(cdt[ed].tem+1)%4

break

}

break

case(27):

return

 }

}

}

// Вывод по маске

void find() {

int n

// Счетчик

FILE * f

// Файл вывода

char name[50]

// Имя файла

strcpy(name,"CON")

 // Изначально - CON, т.е. экран

// Ввод имени файла вывода

textbackground(0)

clrscr()

gotoxy(1,23)

cprintf(" Введитеимя файла: ")

SInput(name,40,20,23)

// Открывается файл на запись

f=fopen(name,"wb")

if (f==NULL) return

fprintf(f,"nr Список книг, выбранных по маске nr")

// Перебор всех элементов

for (n=0

n<cnum

n++)

// Если удовлетворяет условию

 if (cmp(cdt[n].name,cdt[500].name)&&

cmp(cdt[n].fio,cdt[500].fio)&&

(cdt[n].price>=cdt[500].price)) {

// Вывод в файл

 fprintf(f,"%4ld %30s %30s %4d %6.2fрnr",cdt[n].number,cdt[n].fio,

cdt[n].name,cdt[n].num,cdt[n].price)

}

// Закрывается файл

fclose(f)

printf("nn Нажмите любую клавишу для продолжения")

getch()

}

// Вывод графика

void graph() {

// Ингициализация графики

int c

// Цвет

int drv,mode

// Для инициализации графики

int k1,k2,k3

// Количество книг

int n

// Счетчик

int m

// Масштаб

drv=DETECT

initgraph(&drv,&mode,"")

// Подсчет количества книг

k1=k2=k3=0

for (n=0

n<cnum

n++) {

 switch(cdt[n].loc) {

case (0):

k1++

break

case (1):

k2++

break

case (2):

k3++

break

 }

}

// Определение максимального

if (k1>k2) m=k1

else m=k2

if (m<k3) m=k3

// Определение масштаба

m=400/m

// Вывод столбчатой диаграммы

line(0,470,640,470)

line(10,0,10,480)

outtextxy(100,20," Распределение книг ")

// Рассчет цвета столбца - 12 - максимальное значение

c=12

if (k2>k1) c--

if (k3>k1) c--

setfillstyle(9,c)

bar3d(20,470-m*k1,120,470,10,1)

// Рассчет цвета столбца - 12 - максимальное значение

c=12

if (k1>k2) c--

if (k3>k2) c--

setfillstyle(9,c)

bar3d(140,470-m*k2,240,470,10,1)

// Рассчет цвета столбца - 12 - максимальное значение

c=12

if (k1>k3) c--

if (k2>k3) c--

setfillstyle(9,c)

bar3d(260,470-m*k3,360,470,10,1)

// Вывод поясняющих надписей

setcolor(14)

outtextxy(30,450-m*k1,"Читальный зал")

outtextxy(150,450-m*k2,"Абонемент")

outtextxy(270,450-m*k3,"Хранилище")

// Ожидание нажатия клавиши

getch()

closegraph()

_setcursortype(_NOCURSOR)

}

// Обработка списка

void scroll() {

char c

 // Считанный с клавиатуры символ

static int sv=1,sk=1

// Первый элемент на экране и положение курсора

int st

 // Выбранный пункт меню

int n

// Счетчик

// Цикл обработки

do {

// Вывод списка на экран

 output(sv,sk)

// Ввод символа

 c=getch()

 if (!c) c=getch()

// Обработка символа

 switch (c) {

 // Вверх

case (72):

if (sk>1) sk--

else if (sv>1) sv--

break

 // Вниз

case (80):

if (sk<7) {

if (sk<(cnum-sv+1)) sk++

} else if (sv<(cnum-7)) sv++

break

 // Меню

case (13):

st=menu(30,5,"Добавить в список "

"Удалить из списка "

"Редактировать "

"По Автору "

"По Названию  "

"Выход в главное меню"

"x0")

switch(st) {

case (0):

if (cnum<299) {

cdt[cnum].name[0]=0

cdt[cnum].fio[0]=0

cdt[cnum].price=0

cdt[cnum].number=0

cdt[cnum].num=0

cdt[cnum].tem=0

cdt[cnum].loc=ftm

cnum++

edit(cnum-1)

}

index()

break

case (1):

// Удаление элемента

if (cnum>1) {

n=0

switch (sort) {

case (1):

while (((cdt[n].nn!=sk+sv-1)||(cdt[n].loc!=ftm))&&(n<cnum+1)) n++

break

case (2):

while (((cdt[n].nf!=sk+sv-1)||(cdt[n].loc!=ftm))&&(n<cnum+1)) n++

break

}

if (n!=(cnum+1)) {

strcpy(cdt[n].name,cdt[cnum-1].name)

strcpy(cdt[n].fio,cdt[cnum-1].fio)

cdt[n].price=cdt[cnum-1].price

cdt[n].num=cdt[cnum-1].num

cdt[n].number=cdt[cnum-1].number

cdt[n].loc=cdt[cnum-1].loc

cdt[n].tem=cdt[cnum-1].tem

cnum--

index()

}

}

break

// Редактирование элемента

case (2):

n=0

switch (sort) {

case (1):

while (((cdt[n].nn!=sk+sv-1)||(cdt[n].loc!=ftm))&&(n<cnum+1)) n++

break

case (2):

while (((cdt[n].nf!=sk+sv-1)||(cdt[n].loc!=ftm))&&(n<cnum+1)) n++

break

}

edit(n)

index()

break

case (3):

case (4):

sort=5-st

break

case (5):

// Выход в предыдущее меню

return

}

break

 }

} while(c!=27)

}

// Чтение массива

void load() {

// Открытие файла на чтение

FILE * f

f=fopen("librarym.dat","rb")

if (f==NULL) return

// Чтение количества книг

fread(&cnum,1,2,f)

// Чтение массива

fread(cdt,cnum,sizeof(books),f)

// Закрытие файла

fclose(f)

}

// Запись файла

void save() {

// Открытие файла на запись

FILE * f

f=fopen("librarym.dat","wb")

if (f==NULL) {

 printf(" !!! ОШИБКА ПРИ ЗАПИСИ БАЗЫ ДАННЫХ !!! n")

 return

}

// Запись количества элементов в массив

fwrite(&cnum,1,2,f)

// Запись массива

fwrite(cdt,cnum,sizeof(books),f)

// Закрытие файла

fclose(f)

}

// Основная программа

void main() {

int st

// Установка начальных значений

_setcursortype(_NOCURSOR)

cnum=0

sort=1

ftm=0

// Чтение массива

load()

index()

// Обработка

do {

// Основное меню

 textcolor(15)

 textbackground(0)

 clrscr()

 st=menu(30,5," Список книг "

" Поиск по маске  "

" Количество книг "

" Выход из программы "

"x0")

 switch(st) {

case (0):

// Подменю для вывода списка

st=menu(40,6," Расположение: "

" Читальный зал "

" Абонемент "

" Хранилище "

"x0")

if (st!=0) {

ftm=st-1

scroll()

st=0

}

break

case (1):

// Поиск

cdt[500].name[0]=0

cdt[500].fio[0]=0

cdt[500].price=0

cdt[500].number=0

cdt[500].num=0

cdt[500].tem=4

edit(500)

find()

break

case (2):

// Вывод графика

graph()

break

 }

} while (st!=3)

// Выход из программы

textcolor(7)

textbackground(0)

clrscr()

// Запись массива

save()

_setcursortype(_NORMALCURSOR)


Информация о работе «Программа обработки данных в библиотеке»
Раздел: Информатика, программирование
Количество знаков с пробелами: 28160
Количество таблиц: 18
Количество изображений: 1

Похожие работы

Скачать
132727
8
17

... технического обеспечения оснащенность ближайших объектов техникой и т.д. Данный проект позволяет вести необходимую информацию о объектах ГО и оценить в ЧС складывающеюся обстановку.7. РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ СИСТЕМЫ УПРАВЛЕНИЯ БАЗОЙ ДАННЫХ ОБЪЕКТОВ ГО. 7.1. Назначение и цели создания программного продукта Данное программное средство должно выполнять технологические функции в ...

Скачать
25295
0
0

... присутствует система объяснений. Системы управления базами данных позволяют объединять большие объемы информации и обрабатывать их, сортировать, делать выборки по определенным критериям и т. п. Глава 2. Система управления базами данных   2.1 История развития СУБД Рост производительности персональных вычислительных машин спровоцировал развитие СУБД, как отдельного класса. К середине 60-х ...

Скачать
172056
0
5

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

Скачать
65335
1
10

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

0 комментариев


Наверх