Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа 1 Работа со встроенным текстовым редактором интегрированной среды Borlnd C v3

Работа добавлена на сайт samzan.net: 2016-03-30

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 19.5.2024

Лабораторная работа № 1

Работа со встроенным текстовым редактором интегрированной среды Borland C++ v3.1 (ИС BC) (3 занятия)

1  Цель работы

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

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

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

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

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

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

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

3  Работа в лаборатории

1) Ознакомиться на практике с особенностями выполнения команд текстового редактора ИС BС.

2) Пользуясь изученными командами, ввести и отредактировать предложенный преподавателем исходный текст программы (смотри ниже) на языке “C”.

3) Сохранить текст программы на диске.

4) Добавить в начале файла комментарии с информацией указанной в ТРЕБОВАНИЯХ К ПРОГРАММЕ.

5) Используя команды поиска и замены, найти в тексте программы слово “goto” и поменять во всем тексте на слово “gotoxy”.

6) Выделить начало блока на первом символе строки, которая расположена перед строкой:

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

а конец блока перед строкой, которая предшествует строке:

void main(void) /* Главная функция */

и перенести блок в конец файла.

7) Сохранить текст программы на диске.

4  Требования к отчету

1) Титульный лист.

2) Цель лабораторной работы.

3) Домашнее задание: список команд встроенного редактора ИС ВС.

4) Список команд, используемых при работе с текстом.

5) Выводы о проделанной работе.

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

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

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

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

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

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

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

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

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

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

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

  1.  Програма

#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 win(int left, int top, int right, int bottom)

{

 int i;

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

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

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

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

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

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

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

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

 {

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

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

 }

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

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

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

 {

   goto(i,bottom);

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

 goto(left,bottom);

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

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

 {

   goto(left,i);

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

 }

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

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

}

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

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

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

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++) /* Цикл по всем пунктам меню */

 {

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

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

 }

}

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

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

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

void activ(int pos)

{

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

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

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

}

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

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

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

void func0(void)

{

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

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

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

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

 goto(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); /* Прорисовка бордюра окна по координатам */

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

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

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

 goto(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); /* Прорисовка бордюра окна по координатам */

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

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

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

 goto(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;

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

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

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

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

   goto(x,y); cputs(str); goto(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));

}

5




1.  Проблемы философии имеют всеобщий предельный характер
2. Системы менеджмента качества.html
3. Сюжет и композиция Горя от ума
4. 11 стр. 46 I hve looked t him ll dy
5. Модуль 9 1 Фігура називається плоскою якщо- а на ній можна провести пряму лінію; б дві будьякі її то
6. седативное вазодилатирующее спазмолитическое
7. тематичних наук Харків ~ Дисертацією є рукопис Робота виконана у Фізикотехнічному інститу
8. 1Грунт ~ рыхлая горная порода находящаяся в сфере действия здания или сооружения
9. на тему- Особливості розвитку уваги молодших школярів.html
10. філософія Філософське осмислення релігії
11. ТВЕРСКОЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Кафедра Связи с общественностью
12. реферат дисертації на здобуття наукового ступеня кандидата географічних наук ОДЕСА ~ 2002 Ди
13. Рынок Предпринимательская деятельность1
14. Автоматизированный электропривод многоканатной подъемной установки
15. I Coffee ws grown in Brsil
16. секуляризация был традиционно историческим и описывал процесс экспроприации церковных земельных владени
17. Реферат студентки II курса д-о гр
18. на тему- Нефтехимическая и химическая промышленность РБ
19. Методика обучения школьников приемам решения текстовых арифметических задач на основе компетентностного подход
20. тема; Ваши фамилия инициалы и номер группы