Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
чечель лр1.docx
Скачиваний:
2
Добавлен:
10.07.2019
Размер:
28.03 Кб
Скачать

Міністерство освіти і науки, молоді та спорту України

ОДЕСЬКИЙ НАЦІОНАЛЬНИЙ ПОЛІТЕХНІЧНИЙ УНІВЕРСИТЕТ

Інститут радіоелектроніки і телекомунікацій

Кафедра радіотехнічних систем

ЛАБОРАТОРНА РОБОТА № 1

з дисципліни “ ТЕХНОЛОГІЯ ПРОГРАМУВАННЯ”

РОБОТА З ВБУДОВАНИМ ТЕКСТОВИМ РЕДАКТОРОМ IНТЕГРОВАНОЇ СЕРЕДИ

Розробив студент гр. РТ-094

______________ C.А. Заболенний

(підпис)

“___” ____________ 2010 р.

Старший викладач

_______________ Л. А. Кузнецова

(підпис)

“___” ____________ 2010 р.

Одеса 2011

1 Цель работы

1)Закрепление теоритических сведений о командах редактора ИС ВС.

2)Изучение особенностей выполнения команд редактора ИС ВС.

3)Получение практических навыков работы с редактором.

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

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

2) Перечислите основные и расширенные команды управления курсором и поясните особенности их выполнения.

3) Перечислите и поясните команды вставки и удаления.

4) Перечислите и поясните команды работы с блоками.

5) Поясните особенности выполнения команд поиска и замены.

6) Какая команда позволяет сохранить на диске файл, который находится в активном окне?

7) Какая команда отображает на экране блок диалога, позволяющий открыть файл?

8) Какая команда позволяет распахивать на весь экран активное окно?

9) Какая команда позволяет осуществлять циклическое перемещение от одного открытого окна к следующему?

10) Поясните назначение ИС BС

3 Домашнее задание

1) Изучить назначения основных команд встроенного текстового редактора.

2) Подготовить ответы на контрольные вопросы, приведенные в разделе 2.

3) Привести в протоколе список команд с описанием, разделив их на группы: управления курсором, удаления и вставки, работы с блоками, поиска и замены.

4 Ответы на домашние задание

Список команд встроенного редактора ИС ВС

Команды

Клавиши

Основные команды перемещения курсора и экрана

Курсор влево на один символ

“Стрелка влево”

Курсор вправо на один символ

“Стрелка вправо”

Курсор влево на слово

Ctrl+“Стрелка влево”

Курсор вправо на слово

Ctrl+“Стрелка вправо”

Курсор вверх на одну строку

“Стрелка вверх”

Курсор вниз на одну строку

“Стрелка вниз”

Экран на одну строку вверх

Ctrl-W

Экран на одну строку вниз

Ctrl+Z

Экран вверх на одну страницу

PgUP

Экран вниз на одну страницу

PgDn

Команды быстрого перемещения курсора

К началу строки

Home

К концу строки

End

К верхнему краю окна

Ctrl+Home

К нижнему краю окна

Ctrl+End

К началу файла

Ctrl+PgUp

К концу файла

Ctrl+Dn

Команды вставки и удаления

Вкл./выкл. режим вставки

Ins

Вставить строку перед текущей

Enter

Удалить строку над курсором

Ctrl+Y

Удалить текст до конца строки

Ctrl+Q Y

Удалить символ слева от курсора

Backspace

Удалить символ над курсором

Del

Удалить символ справа от курсора

Ctrl+T

Команды работы с блоками

Пометить блок

Shift+”стрелки”

Пометить начало блока

Ctrl+K B

Пометить конец блока

Ctrl+K K

Пометить одиночное слово

Ctrl+K T

Перейти к началу блока

Ctrl+Q B

Перейти к концу блока

Ctrl+Q K

Сдвинуть блок вправо

Ctrl+K I

Сдвинуть блок влево

Ctrl+K U

Сделать невидимым/видимым блок

Ctrl+K H

Скопировать блок в место, определенное курсором

Ctrl+K C

Скопировать блок в Clipboard

Ctrl+Ins

Переместить блок в место, определенное курсором

Ctrl+K V

Переместить блок в Clipboard

Shift+Del

Вставить блок из Clipboard

Shift+Ins

Удалить блок

Ctrl+K Y

Удалить блок

Ctrl+Del

Напечатать блок

Ctrl+K P

Считать блок с диска в окно, начиная с позиции, определенной курсором

Ctrl+ K R

Записать блок на диск

Ctrl+K W

Команды поиска и замены

Найти текст

Ctrl+Q F

Найти и заменить текст

Ctrl+Q A

Повторить последний поиск

Ctrl+L

Найти парный символ вперед

Ctrl+Q[

Найти парный символ назад

Ctrl+Q]

f4hit

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <string.h>

/***************** Объявление используемых функций *****************/

void menu(void);

void activ(int);

void func0(void);

void func1(void);

void func2(void);

void clear(int, int, int, int, int);

float edit(int x, int y, int kol, char *txt);

void win(int, int, int, int);

/*********************** Определение констант **********************/

#define BG BLUE /* TextBackground */

#define TC WHITE /* TextColor */

#define TA LIGHTRED /* TextActiv */

#define NumPos 3 /* Кол-во пунктов меню */

/********************** Глобальные переменные **********************/

char *TextMenu[NumPos]={ "File", "Edit", "Run"};

int xMenu[NumPos]=

{ 34, /* Позиция х первого пункта меню */

41, /* Позиция х второго пункта меню */

48}; /* Позиция х третьего пункта меню */

float C=0.15; /* Начальное значение емкости */

/*******************************************************************/

/* Главная функция */

/*******************************************************************/

void main(void)

{

int ch; /* Выводимый символ */

int pos=0; /* Номер активного пункта меню */

/* Очистка экрана (заполнение цветом фона) */

clear(1,1,80,25,BLACK);

_setcursortype(_NOCURSOR); /* Выключение курсора */

do /* Цикл движения по пунктам меню */

{

menu(); /* Вывод не активных всех пунктов меню */

activ(pos); /* Активизация пункта меню */

/* Считывание кода нажатой клавиши */

if((ch=getch()) == 0) ch=getch();

if(ch == 77) /* Если нажата клавиша -> */

/* Меняем позицию курсора в меню */

if(++pos >= NumPos) pos = 0;

if(ch == 75) /* Если нажата клавиша <- */

if(--pos < 0) pos = NumPos-1;

/* Меняем позицию курсора в меню */

if(ch == 13) /* Если нажата клавиша Enter */

{

switch(pos)

{

case 0:

func0(); break; /* Функция первого пункта меню */

case 1:

func1(); break; /* Функция второго пункта меню */

case 2:

func2(); break; /* Функция третьего пункта меню*/

}

}

}

while(ch != 27); /* Пока не нажата клавиша Esc */

clear(1,1,80,25,BLACK); /* Очистка экрана */

_setcursortype(_NORMALCURSOR); /* Включение курсора */

} /* Конец программы */

/*******************************************************************/

/* Вывод не активных всех пунктов меню */

/*******************************************************************/

void menu(void)

{

int i; /* Переменная цикла */

win(31,5,53,7); /* Прорисовка бордюра окна по координатам*/

textcolor(TC); /* Установка цвета символов */

for(i=0; i<NumPos; i++) /* Цикл по всем пунктам меню */

{

gotoxy(xMenu[i],6); /* Установка курсора в нужную позицию */

cputs(TextMenu[i]); /* Вывод пункта меню */

}

}

/*******************************************************************/

/* Активизация соответствующего пункта меню */

/*******************************************************************/

void activ(int pos)

{

gotoxy(xMenu[pos],6); /* Установка курсора в нужную позицию */

textcolor(TA); /* Установка цвета символа (светло-красный) */

cputs(TextMenu[pos]); /* Вывод слова в меню белым цветом */

}

/*******************************************************************/

/* Функция первого пункта меню */

/*******************************************************************/

void func0(void)

{

win(27,15,52,18); /* Прорисовка бордюра окна по координатам */

gotoxy(29,16); /* Установка курсора в нужную позицию */

textcolor(TC); /* Установка цвета текста */

cputs("Выбран пункт меню File"); /* Вывод сообщения */

gotoxy(38,17); /* Установка курсора в нужную позицию */

cputs("OK"); /* Вывод сообщения */

getch(); /* Ожидание нажатия любой клавиши */

clear(27,15,52,18,BLACK); /* Очистка экрана */

}

/*******************************************************************/

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

/*******************************************************************/

void clear(int left, int top, int right, int bottom, int BgColor)

{

window(left, top, right, bottom); /* Установка граний окна */

textbackground(BgColor); /* Установка цвета фона */

clrscr(); /* Очистка окна (заполнение цветом фона) */

window(1,1,80,25); /* Установка граний окна */

textbackground(BG); /* Установка цвета фона */

}

/*******************************************************************/

/* Функция второго пункта меню */

/*******************************************************************/

void func1(void)

{

char text_str[256];

win(23,15,56,18); /* Прорисовка бордюра окна по координатам */

gotoxy(25,15); /* Установка курсора в нужную позицию */

textcolor(TC); /* Установка цвета текста */

cputs("Редактирование исходных данных");

gotoxy(26,17); /* Установка курсора в нужную позицию */

cputs("Введите C,мкФ (0.15)="); /* Вывод сообщения */

sprintf(text_str,"%2.3f",C); /* Преобразование значения в строку */

C=edit(47,17,8,text_str); /* Вызов функции ввода емкости */

clear(23,15,56,18,BLACK); /* Очистка экрана */

}

/*******************************************************************/

/* Функция третьего пункта меню */

/*******************************************************************/

void func2(void)

{

char text_str[256];

win(23,15,56,18); /* Прорисовка бордюра окна по координатам */

gotoxy(28,15); /* Установка курсора в нужную позицию */

textcolor(TC); /* Установка цвета текста */

cputs("Ввели следующие данные:");

gotoxy(30,17); /* Установка курсора в нужную позицию */

sprintf(text_str,"%2.3f",C); /* Преобразование значения в строку */

cputs("C,мкФ (0.15)= "); /* Вывод сообщения */

cputs(text_str); /* Вывод сообщения */

getch(); /* Ожидание нажатия любой клавиши */

clear(23,15,56,18,BLACK); /* Очистка экрана */

}

/*******************************************************************/

/* Ввод значения емкости */

/*******************************************************************/

float edit(int x, int y, int kol, char *txt)

{

float f;

char str[30]; /* Строка для ввода данных */

char ch; /* Вводимый символ */

int kom=0; /* Количество введенных '.' */

int x1; /* Положение курсора */

int j; /* Переменная цикла */

_setcursortype(_NORMALCURSOR); /* Включение курсора */

strcpy(str,txt); /* Копируем начальные значения */

/* Устанавливаем позицию курсора */

x1 = x+strlen(str); /* Позиция символа в строке */

do

{

/* Кол-во точек в строке */

if(strchr(str,'.') != 0) kom=1; else kom=0;

gotoxy(x,y); /* Установка курсора в нужную позицию */

/* Очистка области вывода */

for(j=x; j<x+kol;j++) putch(' ');

/* Вывод текущей строки */

gotoxy(x,y); cputs(str); gotoxy(x1,y);

/* Ввод символа с клавиатуры */

if((ch=getch()) == 0) ch = getch();

/* Ввод значения */

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

{

if(ch == '.') if(++kom > 1) continue;

/*Превысили ли необходимую длину */

if(strlen(str) < kol)

{

/* Раздвигание строки */

for(j=strlen(str)+1;j >= x1-x;--j)

str[j] = str[j-1];

/* Запись символа */

str[x1-x] = ch; str[strlen(str)] = 0;

x1++; /* Увеличение позиции курсора */

}

}

if(ch == 8 && x1 != x) /* Нажата клавиша забой */

{

/* Удаление символа в строке */

for(j=x1-x-1; j <= strlen(str); j++)

str[j] = str[j+1];

/* Уменьшение позиции курсора */

if(--x1 < x) x1=x;

}

if(ch == 83) /* Нажата клавиша Delete */

{

/* Удаление символа в строке */

for(j=x1-x; j <= strlen(str); j++)

str[j] = str[j+1];

}

if(ch == 75) /* Нажата клавиша <- */

/* Уменьшение позиции курсора */

if(--x1 < x) x1=x;

if(ch == 77) /* Нажата клавиша -> */

if(++x1 > x+strlen(str)) x1 = x+strlen(str);

}

while(ch != 13 && ch != 27);

_setcursortype(_NOCURSOR); /* Выключение курсора */

return(atof(str));

}

*****************************************************************/

/* Прорисовка бордюра окна по координатам */

/*******/**************************************************************/

void win(int left, int top, int right, int bottom)

{

int i;

textcolor(TC); /* Установка цвета текста */

textbackground(BG); /* Установка цвета фона */

gotoxy(left,top); /* Перемещение курсова в указанную позицию */

putch(201); /* Вывод символа г */

for(i=left+1; i<right; i++)

putch(205); /* Вывод символа = */

putch(187); /* Вывод символа м */

for(i=top+1; i<bottom; i++)

{

gotoxy(right,i); /* Перемещение курсова в указанную позицию */

putch(186); /* Вывод символа ж */

}

gotoxy(right,bottom); /* Перемещение курсова в указанную позицию */

putch(188); /* Вывод символа - */

for(i=right-1; i>left; i--)

{

gotoxy(i,bottom);

putch(205); /* Вывод символа = */

}

gotoxy(left,bottom);

putch(200); /* Вывод символа L */

for(i=bottom-1; i>top; i--)

{

gotoxy(left,i);

putch(186); /* Вывод символа ж */

}

/* Заполнение цветом фона */

clear(left+1,top+1,right-1,bottom-1,BG);

}

1

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]