- •1 Порядок разработки программного продукта
- •2 Структура программы на языке с
- •Int age; // Поле age
- •Void main(void) // Основная функция
- •3 Типы данных языка с
- •Void main(void)
- •Int *iptr; // Объявление указателя
- •Void main(void)
- •Int *iptr; // Объявление указателя
- •Void main(void)
- •Void show_string(char *string)
- •Void main(void)
- •4 Операции языка с
- •Арифметические операции
- •Void main(void)
- •Void main(void)
- •Логические операции
- •Void main(void)
- •Операции отношения
- •Поразрядные операции
- •Побитовые операции
- •Void main(void)
- •Адресные операции
- •Операция “условие”
- •Void main(void)
- •Операция sizeof()
- •Void main(void)
- •Int size;
- •Void main(void)
- •Int *iptr;
- •Void main(void)
- •Int *list,I;
- •Операция вызова функции
- •5 Операторы языка с
- •Условный оператор if
- •Оператор switch
- •Void main(void)
- •Void main(void)
- •Оператор цикла for
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •Цикл while
- •Void main(void)
- •Цикл do ... While
- •Void main(void)
- •Вложенные циклы
- •Void main(void)
- •Void main(void)
- •Int I,j,score;
- •Int scores[line][column];
- •Оператор безусловного перехода
- •Оператор break
- •Void main(void)
- •Оператор continue
- •Void main(void)
- •If (I % 5) continue;
- •Оператор return
- •6 Организация функций
- •Int sum_vect(int V[], int n)
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •7 Библиотечные функции
- •7.1 Функции форматного ввода-вывода
- •Int printf(char*format[, argument,...]);
- •Void main(void)
- •Void main(void)
- •Int scanf(char *format[,argument,...]);
- •Функции для работы с файлами
- •Void main(void)
- •Int vect[line];
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •7.3 Графические средства языка с
- •Void main(void)
- •Initgraph(&gdriver, &gmode, ""); // Инициализация графического режима
- •Int maxX, maxY;
- •Void far initgraph(int far *driver, int far *mode, char far *path);
- •Void main(void)
- •Int driver, mode, errorcode;
- •Void far rectangle(int left, int top, int right, int bottom);
- •Void far setviewport(int left, int top, int right, int bottom, int flag);
- •Void far circle(int X, int y, int radius);
- •7.4 Функции для работы со строками
- •Void main (void)
- •Void main (void)
- •Void main (void)
- •Void main (void)
- •Void main (void)
- •7.5 Математические функции
- •Продолжение таблицы а.7
- •Продолжение таблицы а.7
Void main (void)
{
char *string = "Поиск символа" ;
char *ptr;
ptr = strchr(string,'и');
if (*ptr)
printf("Первый символ \'и \'имеет адрес %p \n",ptr);
else printf("Символ не найден\n");
ptr = strrchr(string,'и');
if (*ptr)
printf("Последний символ \'и\'имеет адрес %p \n",ptr);
else printf("Символ не найден\n");
}
Функция strchr(string, ch) отыскивает первое, а функция strrchr(string, ch) — последнее вхождение символа ch и возвращает адрес, по которому он находится (символ конца строки считается частью строки).
Преобразования символьной строки — strlwr() и strupr(), пример 7.16:
// Пример 7.16.
// Преобразование символьной строки,
// функции strlwr(), strupr()
#include <stdio.h>
#include <string.h>
Void main (void)
{
char *str1 = “ABCDEFGH”;
char *str2 = “abcdefgh”;
strlwr(str1);
strupr(str2);
printf(«\nПреобразование прописных букв в строчные: %s\n»,str1);
printf(«\nПреобразование строчных букв в прописные: %s\n»,str2);
}
Функция strlwr() преобразует прописные буквы в строке символов в строчные, а функция strupr() — наоборот: строчные в прописные.
7.5 Математические функции
Основные математические функции приведены в табл. 7.6
Таблица 7.6 — Математические функции
Наименование |
Назначение |
Определение функции |
Имя библио-течного файла
|
Абсолютное значение |
|||
abs(x) cabs(x) labs(x) fabs(x) |
аргумента комплексного числа числа типа long числа из потока |
int abs(int i);
long labs(long n); double fabs(double x); |
stdlib.h math.h stdlib.h math.h |
Тригонометрические функции |
|||
cos(x) sin(x) tan(x) acos(x) asin(x) |
косинус синус тангенс арккосинус арксинус |
double cos(double x); double sin(double x); double tan(double x); double acos(double x); double asin(double x); |
math.h math.h math.h math.h math.h |
Гиперболические функции |
|||
cosh(x) sinh(x) tanh(x) |
косинус синус тангенс |
double cosh(double x); double sinh(double x); double tanh(double x); |
math.h math.h math.h |
Экспоненциальные, логарифмические и степенные функции |
|||
exp(x) log(x)
log10(x)
pow(x,y)
pow10(p) sqrt(x)
|
ex ln(x) — логарифм по основанию e lg(x) — логарифм по основанию 10 xy
10 p квадратный корень числа |
double exp(double x); double log(double x);
double log10(double x);
double pow(double x, double y); double pow10(int p); double sqrt(double x); |
math.h math.h
math.h
math.h
math.h math.h |
Другие функции |
|||
ceil(x) floor(x) hypot(x,y)
rand()
qsort()
|
округление сверху округление снизу вычисление гипотенузы прямоугольника генерация случайных чисел ускоренная сортировка |
double ceil(double x); double floor(double x); double hypot(double x, double y);
int rand(void);
void qsort(void base, int nelem,int width, int (fcmp)()); (1) |
math.h math.h math.h
stdlib.h
stdlib.h
|
В выражении (1) : base — указывает на базовый (нулевой) элемент таблицы, подлежащей сортировке; nelem — число элементов таблицы; width — размер каждого элемента таблица в байтах; функция cравнения fcmp принимает два аргумента (elem1) и (elem2), каждый из которых указывает на элемент таблицы.
Приложение А
Таблица А.1 — Работа с файлами
Действие |
Меню |
Клави-атура |
Примечание |
Новый файл |
File | New |
|
Появляется новое окно с именем NONAME.CPP |
Открыть файл |
File | Open |
F3 |
Выбрать файл из списка, если необходимо другое расширение, поменять его в верхней строке и нажать <Enter> |
Сохранить файл |
File | Save |
F2 |
Если файл новый, задать его имя |
Сохранить файл под другим именем |
File | Save as.. |
|
Задать нужное имя файла |
Сохранить все открытые файлы |
File | Save all |
|
Спрашивает только имена новых файлов |
Сменить рабочий каталог |
File | Change dir... |
|
Всегда работайте только в своём каталоге! |
Распечатать файл |
File | Print |
|
Проверьте принтер |
Выход из BorlandC |
File | Quit |
Alt - X |
Если какие-либо файлы изменялись, спрашивает, сохранять ли их (Yes — сохранять; No — нет) |
Таблица А.2 — Редактирование текста в окне
Действие |
Меню |
Клави-атура |
Примечание |
Отмена предыдущих действий |
Edit | Undo |
Alt-BkSp |
Можно восстанавливать удалённый текст |
“Отмена отмены” |
Edit | Redo |
Shift-Alt-BkSp |
Восстанавливает текст, как было до Undo |
Выделить блок текста |
|
Shift- Shift- |
Текст выделяется не прямоугольными блоками, а по строкам. |
Выделить строку (часть строки) |
|
Shift- Shift- |
Когда курсор в первой колонке — выделяется вся строка, иначе — остаток строки |
Переместить выделенный блок в карман |
Edit | Cut |
Shift-Del |
“Карман” по английски называется Clipboard — буфер обмена. |
Скопировать в карман |
Edit | Copy |
Ctrl-Ins |
Удобно использовать для набора повторяющихся фрагментов программы |
Вставить из кармана |
Edit | Paste |
Shift-Ins |
Вставляет текст с места положения курсора |
Таблица А.3 — Работа с окнами
Действие |
Меню |
Клави-атура |
Примечание |
Размер/Перемеще-ние окна |
Window | Size/Move |
Ctrl-F5 |
“Стрелки” перемещают окно Shift-“стрелки” изменяют его размер |
“Распахнуть” окно |
Window | Zoom |
F5 |
Окно на весь экран; восстановить — также F5 |
Расположить окна “каскадом” |
Window |Cascade |
|
Все открытые окна становятся видны, их легко перебирать |
Расположить окна “черепицей” |
Window | Tile |
|
Видно содержимое сразу всех окон, но если окон много, они получаются маленькие |
Перейти к следующему окну |
Window | Next |
F6 |
Все окна перебираются “по кругу”, так можно добраться до любого окна, если нет мышки |
Закрыть окно |
Window | Close |
Alt-F3 |
Если текст в окне изменен, будет вопрос — сохранять ли его (Yes (да) или No (нет)) |
Закрыть все окна |
Window | Close all |
|
Спрашивает, есть ли не сохраненные окна |
Список окон |
Window | List all... |
Alt-0 |
Можно выбрать любое окно из списка |
Таблица А.4 — Специальные окна
Действие |
Меню |
Клави-атура |
Примечание |
Сообщения об ошибках |
Window Message |
|
Ошибки (Errors) и предупреждения (Warnings) компиляции и построения |
Текстовый вывод программы |
Window | Output |
|
Все то, что напишет программа текстом, попадает сюда (не работает в графике) |
Просмотр переменных |
Window | Watch |
|
Показывает значения выбранных переменных в процессе отладки программы (см. Отладка) |
Экран программы |
Window | User screen |
Alt-F5 |
Полностью переключает на рабочий экран отлаживаемой программы, даже если она работает в графическом режиме. Нажмите любую клавишу для возврата в BorlandC |
Регистры процессора |
Window | Register |
|
Требуется для отладки системных программ |
Окно проекта |
Window | Project |
|
Требуется, когда программа состоит из нескольких исходных файлов |
Таблица А.5 — Компиляция, построение и запуск программы
Действие |
Меню |
Клави-атура |
Примечание |
Компилировать файл |
Compile | Compile |
Alt-F9 |
Компилирует файл из активного окна |
Ошибки компиляции |
Окно Message |
Enter |
Нажатие Enter переводит курсор в строку, где произошла ошибка |
Компиляция/Постро-ение |
Compile | Make |
F9 |
Компилирует файлы, если этого не произошло ранее, и строит программу, если она не построена |
Ошибки построения |
Окно Message |
|
В окне перечисляются имена функций и переменных, связь с которыми не найдена в библиотеках или файлах |
Построить всё |
Compile | Build all |
|
Перекомпилирует и перест-раивает всё заново, например, после изменения параметров среды |
Запуск программы |
Run | Run |
Ctrl-F9 |
Выполняет программу, если необходимо, то компилирует и строит программу. Если есть точка останова (см. Отладка), программа остановится на точке останова |
Задать аргументы |
Run | Arguments... |
|
Если программа требует задания аргументов при запуске, здесь их можно задать |
Таблица А.6 — Отладка
Действие |
Меню |
Клави-атура |
Примечание |
Пошаговое выполнение |
Run | Step over |
F8 |
Выполняет один шаг (одну строку) программы, строка, на которой остановлен процесс выполнения подсвечена. После выполнения шага можно смот-реть за изменениями перемен-ных программы (см. далее) |
Вход в отладку функции |
Run | Trace into |
F7 |
Если программа остановлена на вызове функции, то F7 открывает текст этой функции и начинает ее пошаговую отладку |
Выполнить до строки, на которой стоит курсор |
Run | Go to cursor |
F4 |
Если нет смысла “прокручивать” цикл в пошаговом режиме, можно выполнить его сразу, поставив текстовый курсор после цикла и нажав F4 |
Установить/убрать точку останова на строке, в которой стоит курсор |
Debug | Toggle Breakpoint |
Ctrl-F8 |
Если необходимо проконтролировать переменные в определенном месте программы, необходимо поставить в этом месте точку останова и начать выполнение (Ctrl-F9). Точки |
|
|
|
останова подсвечиваются красным в тексте программы.Выключить точку останова — также нажать Ctrl-F8 |
Контроль точек останова |
Debug | Breakpoints... |
|
Появляется окно, которое позволяет изменять (Edit), удалять (Delete) или просматривать местоположение (View) точек останова |
Изменение условия останова |
Debug | Breakpoints... Edit |
|
При редактировании точки останова поле Condition задает условие останова, которое представляет собой выражения языка С (с использованием всех переменных, доступных в точке останова, нельзя использовать вызов функций в данном выражении); поле Pass Count задаёт число проходов мимо точки без останова, прежде, чем произойдёт останов. После редактирования этих полей необходимо нажать кнопку Modify, чтобы изменить условие останова |
Добавить переменную в окно просмотра переменных Watch |
Debug | Watches | Add watch... |
Ctrl-F7 (или Ins в окне Watch) |
Когда курсор стоит на начале имени переменной, BorlandC предлагает просмотреть именно эту переменную. В этом же окне можно исправить, написать другую переменную или выражение |
Удалить переменную из окна Watch |
Debug | Watches | Delete watch |
Del (в окне Watch) |
Если активным является окно Watch, можно вставить переменную (Ins), изменить (Enter) или удалить (Del) |
Удалить все переменные из Watch |
Debug | Watches | Remove all watches |
|
|
Изменить имя переменной в Watch |
Debug | Watches | Edit watch... |
(в окне Watch) |
Если после переменной или выражения Watch поставить запятую, а затем указать один из спецификаторов формата (C —символы, D — десятичные целые, X —шестнадцатери-чные, F — вещественные, M — дамп памяти, P —указатель (адрес), R —стру-ктура, можно поменять формат вывода данных |
Инспектор переменных |
Debug | Inspect... |
Alt-F4 |
Показывает более подробную информацию, чем Watch (в отдельном окне) |
Посчитать/Изме-нить |
Debug | Evaluate/Modify |
Ctrl-F4 |
Посчитать (Evaluate) выражение (результат в поле Result) или изменить (Modify) значение переменной (в поле New Value) в процессе отладки |
Завершить отладку |
Run | Program reset |
Ctrl-F2 |
Завершает сеанс отладки, например, если необходимо начать его с начала |
Таблица А.7 — Библиотечные функции
Имя функции |
Назначение |
Определение |
Имя файла |
Функции ввода-вывода с консоли (на консоль) |
|||
printf
scanf
cgets
cputs
getch
getche |
осуществляет форматированный вывод осуществляет форматированный ввод читает строку с консоли
пишет строку на консоль получает символ с консоли без отображения получает символ с консоли с отображением |
int printf(char format [,argument,..]); int scanf (char format [,argument,..]); char cgets(char string);
void cputs(char string);
int getch(void);
int getche(void); |
stdio.h
stdio.h
conio.h
conio.h
conio.h
conio.h |
Продолжение таблицы А.7
Имя функции |
Назначение |
Определение |
Имя файла |
Функции работы со строками |
|||
strcat
strcmp
strcpy
strdup
stricmp
strlen
strlwr
strupr
strrchr
strpbrk
strrev
strnset
strset
|
Присоединяет одну строку к другой Сравнивает одну строку с другой Копирует одну строку в другую
Копирует строку во вновь создаваемую строку Сравнивает одну строку с другой без учета различия строчных и прописных букв Вычисляет длину строки
Преобразует прописные буквы в строчные Преобразует строчные буквы в строку прописных букв Отыскивает в строке последнее вхождение заданного символа Отыскивает в строке первое вхождение любого символа из переданного функции набора символов Реверсирует строку
Заменяет специфицированное количество символов в строке на указанный символ Заменяет все символы в строке на указанный символ |
char strcat(char destin, char source); int strcmp(char str1, char str2); char strcpy(char destin, char source); char strdup(charstr);
int stricmp(char str1,char str2);
unsigned strlen(char str);
char strlwr(char str);
char strupr(char str);
char strrchr(char str, char ch);
char strpbrk(char str1, char str2);
char strrev(char str); char strnset(char str, char ch, unsigned n);
char strset(char str, char ch); |
string.h |