Реферат по предмету "Информатика, программирование"


Организация ввода-вывода

Кафедра: Автоматика и Вычислительная Техника
ОРГАНИЗАЦИЯ ВВОДА-ВЫВОДА
СодержаниеВведениеТеоретическая часть1. Функция printf2. Структура спецификаторов вывода3. Функция scanf4. Вопросы и ответы.5. Обзор функций ввода-выводаФункция fgetc и макрокоманда getc        Функция fgetchar и макрокоманда getcharФункции getch и getcheФункция kbhitФункция ungetcФункция ungetchФункция fgetsФункция getsФункция cgetsФункция fputsФункция putsФункция cputsДругие функции серии ..printfФункции вывода на экран из conio.hПрактические упражненияЛабораторные заданияБиблиографический список

Введение
Настоящиеуказания являются первой работой в серии, посвященной отдельным вопросампрограммирования на языке Си в оболочке ВС++2.0.
Любаядостаточно сложная программа использует функции ввода-вывода данных дляреализации дружественного интерфейса с пользователем.
В данныхуказаниях рассматриваются функции консоли и особенности их применения дляобеспечения аккуратного ввода информации и упорядоченного вывода.
Ввод данных,вывод промежуточных и конечных результатов обычно выделяют в отдельные функции,что позволяет программисту тщательно обрабатывать эти данные, не затемняяосновные действия программы.
Здесь нерассматривается графический ввод-вывод.
Частьуказаний носит справочный характер. При этом уделяется внимание обзору какможно большего числа стандартных функций, так как их преимущественноеиспользование делает программу более надежной и понятной.
Программы,написанные для практических и лабораторных задач, должны быть распечатаны иоформлены в соответствии со стандартными требованиями, предъявляемыми кпрограммному обеспечению.

Теоретическая часть/> 1. Функция printf
Предназначенадля вывода переменного числа аргументов в стандартный поток вывода stdout.Перед выводом аргументы подвергаются форматированию. Возвращает число реальновыведенных символов, включая управляющие символы.
Синтаксис: int printf(const char *format [,argument, ...]);
Первый иобязательный аргумент format представляет собой строковую константу и содержитэлементы двух видов:
1.      Символы ASCII-таблицы,представленные их фактическим написанием (например, 1, _, пробел, Ф, символыпсевдографики), символьными константами (например, \101 — ascii-код буквы А)или их мнемокодами.
Перечислим наиболееупотребительные мнемокоды:
\n – перевод строки,
\r — возврат каретки,
\t – горизонтальная табуляция,
\v — вертикальная табуляция.
Эти символы выдаются напечать. Чтобы напечатать специальные символы \ и", перед ними надопоставить символ \.
2.      Спецификаторы вывода,имеющие вид
% [flags][width] [.prec] [F|N|h|l] type .
Каждыйспецификатор начинается с % и заканчивается одним из символов type.Вслед за форматом идет перечень аргументов через запятую. Соответствие междуаргументами и спецификаторами вывода осуществляется слева направо. При этомаргументов должно быть не больше спецификаторов. В противном случае,недостающие аргументы будут выбраны из стека и интерпретированы непредсказуемымобразом./>2. Структура спецификаторов вывода
Таблица 1
Элемент type спецификатораType Формат вывода d,i десятичное целое со знаком О беззнаковое восьмеричное целое U беззнаковое десятичное целое x,X в функции printf = беззнаковое шестнадцатеричное целое; в функции scanf = шестнадцатеричное целое со знаком f вещественное число [-]dddd.ddd с фиксированной точкой e вещественное число [-]d.ddd e [+/-]ddd с плавающей точкой g формат е или f, выбираемый самой функцией в зависимости от точности E,G то же самое, что е, за исключением Е для экспоненты с символ, ascii-код которого содержится в аргументе s вывод строки, т.е. последовательности символов, которая оканчивается символом '\0'
%
символ % P адрес, содержащийся в аргументе-указателе. Для ближнего указателя выводится только смещение YYYY; для дальнего — сегментный адрес и смещение XXXX:YYYY n число реально выведенных до сих пор символов записывается в переменную, адрес которой указывается в соответствующем аргументе
Таблица 2
Необязательныйэлемент [flag] спецификатора[fflag] Что flag означает отсутствует выравнивание по правому краю; левый заполнитель: 0 или пробел (по умолчанию)
- выравнивание по левому краю; справа добавляются пробелы + всегда указывать для числа его знак: + или - пробел Указывать знак только для отрицательных чисел
# конвертировать, используя альтернативную Форму
Таблица 3
Альтернативнаяформа для флага # при наличии указанного типа typec,s,d,i,u добавить слева 0 для ненулевого аргумента o добавить слева 0 для ненулевого аргумента x или X добавить слева от аргумента 0х или 0Х e,E,f всегда использовать десятичную точку g или G то же, что е, Е или f, но без добавления нулей справа
Таблица 4
Необязательныйэлемент [width] спецификатора[width] Влияние на вывод n вывод не менее n символов, в качестве заполнителя – пробел 0n вывод не менее n символов, в качестве заполнителя — символ 0
* следующий аргумент из списка задает ширину для текущего выводимого символа
Таблица 5.
Необязательныйэлемент [.prec] спецификатора[.prec] Влияние на вывод отсутствует точность по умолчанию .0 (d,i,o,u,x) Точность по умолчанию (e,E,f) Дробная часть отбрасывается, а десятичная точка не ставится .n длина дробной части не более n символов
* следующий аргумент из списка задает точность для текущего выводимого символа
Таблица 6.
Необязательныймодификатор [.prec]Модификатор Как интерпретируется аргумент F p аргумент — дальний указатель N p аргумент — ближний указатель l d,i,o,u,x,X аргумент — long int L e,E,f,g,G аргумент — double (только для scanf) L e,E,f,g,G аргумент — long double
 
Пример1.
#include
#include
#include
# include
void main()
{
clrscr();
printf("\nHello, World!");
printf("\nЗаголовкистолбцов :\n\«Январь\»\t\t\"Другие\
месяцы ...\"");
printf("\nОшибка!\007"); //звуковой сигнал
inti= 1828;
printf("\nПолныйадрес переменной i = %Fp,смещение =\
%Np",&i, &i);
printf("\nТолстойродился в %d году, а число е=%. 9 f ", i,М_Е);
printf("\nВозможнаошибка %s: аргументов меньше,чем\
спецификаторов");
// разные системы счисления 33 = 0x21= 041
printf("\n%i = %#х= %#0о",i, i, i);
charj=5, str[80]= "";
//строка с 5 повторяющимися символами –
while(j--)
strcat(str,"-");
//memset(str, '-', 5); // другойвариант
printf("\n%s", str);
int n=printf("\nДанныйвызовprintf вывел");
printf("%iсимволов, учитывая перевод строки (1 символ)", n);
if(!getch())
getch(); //задержкаэкрана
}/> 3. Функцияscanf
Предназначенадля ввода переменного числа аргументов из стандартного потока ввода stdin.Перед вводом аргументы подвергаются форматированию. Возвращает число реальновведенных аргументов (не символов!). Помещает вводимые данные по адресам,содержащимся в аргументах, т.е. аргументы передаются этой функции по адресу.Функция прекращает свою работу при первом неудачном вводе. Если не все данныевведены успешно, то необходимо очистить буфер входного потока с помощью функции
fflush(stdin);
В противномслучае при следующем вызове scanf будут вводиться не введенные ранее данные. Желательноочищать буфер и перед первым вызовом scanf. Синтаксис: int scanf(const char *format [, ...]);
Первый иобязательный аргумент format представляет собой строковую константу и содержиттолько спецификаторы ввода и их разделители (см. таблицы для printf).Текст использовать нельзя. Уточнения к таблицам спецификаторов:
1.        Для ввода в переменные типа doubleнужно использовать спецификатор %1f, а для ввода long double — %Lf.
2.        В качестве разделителейспецификаторов можно использовать пробел или любой символ пунктуации. Выбранныйразделитель должен разделять и вводимые данные. В противном случае будетвведено только первое данное.
3.        Функция scanf непроверяет для строк выход из диапазона, поэтому для строк в формате нужно указыватьдлину вводимой строки. Например, для строки char str[10]спецификатор должен иметь вид %10s. В противном случае если вводимаястрока больше буфера, то буфер будет переполнен, что может вызвать «хорошоскрытую» ошибку.
4.        Функция допускает возможность фильтрациивводимой информации. Ввод прекращается при первой встрече символа,отсутствующего в фильтре. Особенно эффективно при вводе данных из файла.

Пример 2.
char str[100];
scanf("%[A-Za-z]",str);// ввод до первого небуквенного символа
scanf("%[-+.0-9]",str);// ввод вещественного числа в строку
scanf("%[^-.0-9]",str);// ввод любых символов, пока не\
//встретитсяодин из перечисленных после ^
Пример3.
#include
#include
# include
#include
void main()
{
char c; int i; long 1; float f; doubled; long double 1d;
unsigned int ui;
int Age; char str[10]; char*pc;
clrscr();
рrintf("\nВведитесимвол с=");
fflush(stdin); scanf("%c",&c);
printf(«Введено с- %c», c);
printf("\nВведитечерез пробел целое и длинное целое"); fflush(stdin);int j=scanf("%d%ld", &i,&1);
printf(«Введено %dаргументов:i = %i,1 = %ld», j,i, 1 ) ;
printf("\nВведитебеззнаковое целое");
fflush(stdin); scanf("%u",&ui);
printf(«Введеноui = %u», ui);
printf("\nВведитечереззапятуювещ.числаfloat, double и\
long double\n");
fflush(stdin);scanf("%f,%lf,%Lf", & f, &d, &ld); //фиксир.\
//или плав. точка
printf("\Введено float = %g, double= %g, long double =\
%Lg",f,d,ld);
printf("\nВведите строку\n");
fflush(stdin); scanf("%10s",str); //фиксир. или плав. точка
printf(«Введенастрока %s», str);
printf("\nВведитеадрес ячейки\n" );
fflush(stdin);scanf("%Fp",&pc); //фиксир. или плав.точка
printf(«Введенадрес %Fp, содержимое ячейки поэтому\
адресу %с», рс, *рс );
do
{
fflush(stdin);
printf("\nВведитевозраст:");
}
while( scanf("%d", &Age)!= 1 || 0 > Age || Age > 100);
fflush(stdin);
printf("\nВозраст = %d", Age);
if(!getch())getch();
}
Пример 4.
Найти первоецелое число в текстовом файле.
#include
void main()
{
char str[1000];
int i;
FILE *fp = fopen(«ex.txt»,«w+»); // Проверка опущена!
fputs(«Год 1997 — числопростое», fp);
rewind(fp);
fscanf(fp, "%[^0-9]%i", str,&i);
printf("\nПредыдущие символы:%s\nпeрвoe число = %i",
str, i);
}/> 4. Вопросы и ответы
 
Вопрос. Как правильно «заморозить» экран?
 
Ответ. Некорректно использовать для этой цели вызов функцииввода символа с клавиатуры
getch();
Он нормальносработает, если «разморозить» экран нажатием клавиши, имеющейоднобайтовый ascii-код. Это -такие клавиши, как Esc, Enter,Tab, буквы, цифры основной клавиатуры, и т.д… Функция getch()считывает этот код, и программа продолжается. Но при нажатии некоторых другихклавиш в буфер ввода-вывода с клавиатуры записываются два числа: 0 и расширенныйкод, совпадающий, как правило, со scan-кодом клавиши. Функция getch()считает 0, программа продолжится, а при последующем вызове getch()будет считан оставшийся, ненужный scan-код. Даже если getch() стоял вконце программы, то при повторном запуске программы буфер ввода-вывода склавиатуры не будет очищен, getch() считает scan-код и программа не«заморозится». Таким образом, программа будет приостанавливатьсячерез раз! Правильнее будет вставить строку
if( !getch())getch();
Другойвариант — ожидание в бесконечном цикле нажатия клавиши
while( !kbhit());
Он подходиттолько в конце программы, т.к. дальнейший вызов getch() считаетслучайно нажатую клавишу.

Вопрос. Как правильно использовать scanf при вводе?
Ответ. Допустим нужно ввести с клавиатуры возраст человека впеременную Age типа int.
do
{
fflush(stdin);
printf("\nВведитевозраст:");
}
while(scanf("%d", &Age) !=1);
fflush(stdin);
printf("\nВозраст= %d", Age); //Отладочная проверка
В реальнойпрограмме желательно произвести проверку на осмысленность введенного значения.В данном случае, вероятно, 0
while(scanf("%d", & Age) != 1|| 0 > Age || Age > 100);
Получаетсядовольно сложный код, но информация вводится в программу нечасто, а обрабатываетсядостаточно долго, поэтому стоит потратить усилия на обеспечение корректноговвода./> 5. Обзор функций ввода-вывода
Таблица 7Назначение Имя функции
С каким работает
потоком Особенности Файл stdin/ stdout Консоль 1.Ввод символа
getc,
fgets
X
X
-
-
-
- макро, эхо функция, эхо
getchar,
fgetchar
-
-
X
X
-
- макро, Enter функция, Enter
getch
getche
-
-
-
-
X
X без эха, без Enter эхо, без Enter
kbhit
ungetc
ungetch
-
X
-
-
-
-
X
-
X 2.Вывод символа
putc
putchar
putch
X
-
-
-
X
-
-
-
X З.Ввод строки
fgets
gets
cgets
X
-
-
-
X
-
-
-
X с проверкой без проверки с проверкой 4. Вывод строки fputs puts cputs
X
-
-
-
X
-
-
-
X
без CR/LF
cCR/LF без CR/LF 5.Форматный ввод fscanf scanf cscanf sscanf
X
-
-
-
-
X
-
-
-
-
X
- ввод из строки 6.Форматный вывод fprintf printf cprintf sprintf
X
-
-
-
-
X
-
-
-
-
X
- Вывод в строку
 
Замечания:
1.        Под консолью понимается клавиатурапри вводе и дисплей (или монитор) при выводе информации.
2.        По умолчанию под стандартнымвводом stdin понимается ввод с клавиатуры, под стандартным выводомstdout понимаетсявывод на монитор. Кроме них, существуютдругие стандартные потоки:
-    stderr — устройство стандартного вывода ошибок (монитор),
-    stdaux — вспомогательное устройство (последовательный
com-порт)
-    stdprn — принтер (параллельный 1tp-порт) Потоки stdin/stdoutнельзя легально перенаправить программным способом в файл, т. к. они являютсямакроопределениями. Но перенаправление можно осу ществить с помощью команды DOS>. Например,
hello.exe > ex.txt
В этом случаевсе, что шло в поток stdout, пойдет в файл ex.txt.
Например,
#include
#include
#include
void main()
{
clrscr();
FILE *fp = fopen(«exl.txt»,«w+»);
if(fp = NULL)
{
рerrоr(«Ошибка при открытиифайла»); // вывод в stderr return;
};
FILE *pbuf=stdin; int с = getc(stdin);
fclose(fp);
}/> Функция fgetcи макрокоманда getc
Прототипы:
int fgetc(FILE*stream);
int getc(FILE *stream);
Возвращает: символ,расширенный до int без продолжения знака. В случае ошибки или концафайла возвращает EOF ( = -1 = 0xFFFF).
Описание. Считывает очереднойсимвол из входного потока и увеличивает указатель текущего положения (СР — current position) на 1. При вводе с клавиатуры (stream=stdin)выполняется после нажатия клавиши Enter. Макрокоманда getcполностью аналогична функции fgetc. В файле stdio.h определена,как
#define getc(f) ((--((f)->level)>= 0)? (unsigned char)(*(f)-->curp++) \ :_fgetc (f))
Разберите синтаксис этогомакроса !
Хотя getc и fgetcаналогичны, но лучше пользоваться макросом по следующей причине. Чтение изфайла происходит блоками по 256b, 512b и т.д. После обработки одного блока в ОЗУ с дискасчитывается следующий блок. Макрос работает с текущим блоком напрямую, каквидно из определения, и обращается к функции fgetc толькопосле обработки этого блока. Функция fgetc также работает с блоком вОЗУ, но каждое обращение к нему реализуется через вызов функции. Таким образом,использование getc увеличивает скорость за счет увеличения кода.Использование fgetc уменьшает код ценой уменьшения скорости./> Функция fgetchar имакрокоманда getchar
Прототипы:        int fgetchar(void);
intgetchar(void);
Возвращает:символ, расширенный до int без продолжения знака. В случае ошибки или концафайла возвращает EOF. Описание. Считывает очередной символ из стандартноговходного потока и увеличивает СР на 1. Поток stdin, как илюбой открытый файл, имеет буфер с размером по умолчанию 512b.Функция выполняется после нажатия клавиши Enter, послечего вводит 1 символ. Остальные введенные символы остаются в буфере, ожидаясвоей участи. Макрос getchar аналогичен функции fgetchar./> Функции getch и getche
Прототипы:        int getch(void);
int getche(void);
Возвращают:символ, расширенный до int без продолжения знака.
Описание.Функция getch выводит символ на монитор, getche — невыводит. Функции имеют буфер на два символа: в случае нажатия
клавиши срасширенным кодом туда записывается 0 и scan-код нажатой клавиши. Не ожидаютнажатия Enter. Буфер не очищается даже при повторном запуске программы./> Функция kbhit
Прототип:  int kbhit(void);
Возвращает:1, если к моменту вызова функции была нажата, но не обработана какая-нибудьклавиша; 0-в противном случае.
Описание.Функция оставляет коды нажатой клавиши в буфере ввода-вывода с клавиатуры, такчто их можно прочитать, например, с помощью getch./> Функция ungetc
Прототип: int ungetc(int d,FILE*stream);
Возвращает:символ d, посланный обратно во входной поток stream,и EOF в случае ошибки.
Описание.Выталкивает символ d обратно во входной поток stream. Вернутьможно только один символ. Следующее чтение из потока вернет символ d.Символ с расширенным кодом вернуть не удастся.
/> 
Функция ungetch
Прототип: int ungetch(int d);
Описание.Аналогична ungetc, но выталкивает символ d обратно вбуфер клавиатуры./> Функция fgets
Прототип: char *fgets(char *target, int n, FILE *stream); Описание. Вводит из streamне более n символов в строку по адресу target. Вводзаканчивается при встрече символа \n. Возвращает target приуспешном вводе и NULL при встрече конца файла или в случае ошибки./>Функция gets
Прототип: char *gets(char *target);
Описание.Вводит из stdin строку по адресу target. Числовводимых символов не ограничено. В остальном похожа на fgets./> Функция cgets
Прототип: char*cgets(char *target);
Описание.Читает строку из консоли. str[0] должно содержать максимальную длину вводимойстроки. По окончании str[l] содержит число реально введенных символов.Введенная строка начинается с элемента str[2]. Для перехода на новую строку вформат нужно вставить два символа: \n\r. Возвращает начало введенной строкиstr[2]./> Функция fputs
Прототип: int fputs(const char *s, FILE *stream);
Описание.Записывает строку в поток. Возвращает последний записанный символ.
/> 
Функцияputs
Прототип: int puts(const char *s);
Описание.Записывает строку в поток stdout. Возвращает последний записанный символ./> Функция cputs
Прототип: int cputs(const char *s);
Описание.Записывает строку в текстовое окно на экране. Возвращает последний напечатанныйсимвол./> Другие функции серии..printf
Прототипы:
int fprintf(FILE*stream, const char *format[, argument,...]);
int cprintf(constchar *format[, argument,...]);
int sprintf(char*buffer, const char *format [, argument,...]);
Описание.Функции пишут соответственно в поток, в текстовое окно на экране и в строку.Возвращают число реально выведенных символов. Форматирование происходит так же,как для функции printf./> Функции вывода наэкран из conio.h
Функция void clrscr(void) очищает экран.
Для помещениякурсора в позицию (х, у) на экране в текстовом режиме используется функция void gotoxy(int х, int у).
Дляопределения координат курсора имеются функции int wherex()и int wherey().
По умолчаниютекст имеет белый цвет на черном фоне. Чтобы изменить цвет текста нужно вызватьфункцию
voidtextcolor(int newcolor),
где newcolor принимает значения из перечислимого типа enum COLORS { BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY,DARKGRAY, LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE};
Цвет можнозадать его номером от 0 до 15. При этом цвет BLACK=0 всегда означает цвет фона.К цвету можно добавить мерцание BLINK. Например,
textcolor(BLUE | BLINK);
Каждый символимеет свой фон, цвет которого можно изменить функцией
void textbackground(int newcolor).
Информацию наэкране можно перемещать прямоугольными блоками с помощью функции
intmovetext(int left, int top, int right, int bottom, int destleft, int desttop);
Размертекстового экрана можно изменить до размеров желаемого текстового окна:
voidwindow(int left, int top, int right, int bottom);
При этомлевый угол экрана имеет координаты (1,1). После перехода к текстовому окнусистема координат привязывается к этому окну. С текстовым окном работаютфункции: putch(), cputs, cprintf(), gotoxy(), wherex, wherey. Граница окна не рисуется, но текст при выходе изокна усекается. При достижении правой границы происходит автоматический переходна новую строку, а при достижении нижней границы — вертикальный скроллинг.Таким образом, текстовое окно обладает всеми свойствами текстового экрана.Текст может печататься на экране ярким или нормальным цветом. Для этого надовызвать соответственно функции
void highvideo(void), void normvideo().
Эти установкивлияют на все последующие вызовы функций, связанных с выводом текста на экран:putch(), cputs, cprintf().
 
Вопрос. Как узнать ascii-код определенной клавиши?
Ответ. Проще всего вставить в программу временный фрагменттипа
chard = getch();
d= getch();
Затемпосмотреть в отладчике значения переменной d. Конечно,можно написать и более удобную программку.
#include
#include
main()
{
char c, d;
clrscr();
printf("\nНажмитеклавишу или комбинацию клавиш");
if(!(c = getch()))
{
d=getch();
printf("\nРасширенныйкод: 0, %i = '%c''',d, d);
}
else
printf(["\nAscci-код: %i = '%c''',с, с);
if( !getch())
getch();
}
Вопрос. Как напечатать на экране графическое представлениеуправляющих символов.
Ответ: Печать управляющих символов реализуетих функциональное назначение. Например, символ Tab, имеющий код '\t'=9,равносилен нескольким пробелам. Так действуют все функции вывода. Дляграфического представления подобных символов нужно поместить их коднепосредственно в видеобуфер.
Для цветногографического адаптера видеобуфер начинается с абсолютного адреса 0хВ80001. Насимвол отводится 2 байта: первый — для asccii-кода,второй — для атрибутов. Этот метод называется отображением в память. Строкиэкрана располагаются в буфере последовательно.
#include
#include
#include
void main()
{
char *pc = (char *)0xB80000001 + 2*(80*(wherey()-l) +
wherex()-l);
pc[0] = '\t';
pc[1] = 7;   // Обычныйатрибут
//лучше использовать функцию записи по указанному
//адресу ОЗУ
//poke(0xB800, 2*( 80*(wherey()-l) +wherex() -l), 0x700 +
//'А');
// числа типа intзаписываются в ОЗУ наоборот: две
//старшие 16-е цифры — в младшем (правом) байте,
//младшие цифры — в старшем (левом) байте
if(!getch())getch();
}
 
Практические упражнения
1.        С клавиатуры вводится текстоваястрока на русском языке. Найдите количество гласных и согласных букв. Используйтефильтр для ввода только текстовых символов.
2.        Вычислите относительнуюпогрешность правой формулы для вычисления производной некоторой простой функцииy = f(х):
у' = (f(x0 + eps) — f(x0)) / eps .
Представьте результаты втабличной форме для приращений eps, логарифм которых пробегает от -1 до -14 с шагом 0.1.Таблицу запишите в файл. Вещественные числа имеют тип float. Найдитеоптимальное приращение.
3.        В файл записаны вперемежку текст ицелые числа. Найдите сумму всех чисел.
4.        Распечатайте на экране таблицуумножения для 16-х чисел.
5.        Распечатайте на экране таблицуASCII-кодов с графическим изображением управляющих символов.
6.        Напишите программу, котораязапрашивает пароль. Неверный пароль останавливает программу.

Лабораторные задания
1.        Напишите программу, реализующуювсе возможности печатной машинки:
-    с клавиатуры непосредственно на экранвыводятся только символы, имеющиеся на печатной машинке;
-    переход на новую строку по нажатиюEnter;
-    перемещения курсора по экрану спомощью стрелок;
-    забой символа над курсоромосуществляется пробелом.
2.        Напишите программу, которая рисуетв центре зеленого экрана прямоугольник размером с четверть экрана. Границаобласти – жёлтая, цвет заполнения бледно-синий, в центре крана – мерцающийтекст красного цвета.
3.        Напишите функцию, которая получаетмассив строк, рисует окно с границей из одинарной рамки и вставляет строкимассива по одной в это окно. Размеры окна — минимально возможные.
4.        Напишите функцию, реализующую менюс несколькими выборами, в котором выбираемый пункт высвечивается и перемещаетсяс помощью стрелок.

Библиографическийсписок
1.        Джордейн Р. Справочникпрограммиста персональных компьютеров типа IBM PC, XT и AT.М.: Фин. и стат.,1992.
2.        Керниган Б., Ритчи Д. Языкпрограммирования Си. М.: Фин. и стат., 1992.
3.        Керниган Б., Ритчи Д. Языкпрограммирования Си. Задачи по курсу Си. М.: Фин. и стат., 1985.
4.        Уинер Р. Язык Турбо Си. М.: Мир,1991.
5.        Хикс К. Си без проблем.Руководство пользователя. М.: Бином, 1997.


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Производство информационных продуктов и услуг
Реферат Общение как форма межличностных отношений
Реферат Автоматизация процесса составления и печати писем
Реферат Брауншвейг-Вольфенбюттель
Реферат Мелодией одной звучат печаль и радость Тема любви в лирике АБлока
Реферат 1. Вам необходимо обратиться с соответствующим заявлением, копией паспорта, копией идентификационного кода, справкой с бти об отсутствии у Вас собственности. При наличии этих документов Вы будете поставлены на очередь, которая на данный момент состав
Реферат Продвижение компании "Пламя дракона"
Реферат Текущая бухгалтерская отчетность
Реферат Interpreting Poverty In The Grapes Of Wrath
Реферат Совершенствование социального страхования
Реферат Семья Дюма
Реферат Философия искусства. Что такое красота? Философия от Гегеля до Ницше (ХІХ век)
Реферат Мое отношение к Ленскому
Реферат Рубрики и публикации для детей в районной прессе: жанрово-тематический обзор
Реферат Архитектура Руси X-XIII в.в