Шафеева практика С. Практикум по программированию на языке с методические указания к лабораторным работам Омск 2008 2
Скачать 1.01 Mb.
|
Variable 'identifier' is initialized more than once (Идентификатор перемен- ной инициализирована более одного раза). Unable to open include file 'filename' (Невозможно открыть файл). Undefined structure 'structure' (Неопределенная структура "структура"). Undefined symbol 'identifier' (Неопределенный символ идентификатора). Undefined symbol 'symbol' in module 'module' (Неопределенный символ "символ" в модуле "модуль"). Unexpected "}" (Непредвиденная "}"). Unknown preprocessor directive: 'identifier' (Неизвестны директивы пре- процессора: идентификатора). Wrong number of arguments in call of macro 'macro' (Неправильное число параметров в обращении макрокоманды " макрокоманда "). Ошибки стадии выполнения Division by zero (Деление на нуль). Possibly incorrect assignment (Возможность неправильного значения). Suspicious pointer conversion (Подозрительное преобразование указателя). Function should return a value (Функция не возвращает значение). Математические ошибки DOMAIN – Аргумент функции вне сферы этой функции. OVERFLOW –Результат слишком большой, чтобы быть представленным в возвращаемом значении функции. PLOSS – Произошла частичная потеря значимости. SING – Специфический аргумент: аргумент функции имеет незаконную величину. Например, передается нуль в функцию, которая запрашивает ненуле- вую величину. TLOSS – Полная потеря значимости. UNDERFLOW – Результат слишком мал. 63 Приложение Е Функции преобразования символов (файл ctype.h) Функция Прототип и краткое описание действий isalnum int isalnum (int c); Дает значение не нуль, если с – код буквы или цифры (А Z, а z, 0 9), и нуль – в противном случае. isalpha int isalpha (int c); Дает значение не нуль, если с – код буквы (А Z, а z), и нуль – в противном случае. isascii int isascii (int c); Дает значение не нуль, если с есть код ASCII, т.е. прини- мает значение от 0 до 127, в противном случае – нуль. iscntrl int iscntrl (int c); Дает значение не нуль, если с – управ- ляющий символ с кодами 0 00 0 01F или 0 0F, нуль – в противном случае. isdigit int isdigit (int c); Дает значение не нуль, если с – цифра (0 9) в коде ASCII, и нуль – в противном случае. isgraph int isgraph (int c); Дает значение не нуль, если с – види- мый (изображаемый) символ с кодом (0 21 0 7E), и нуль – в противном случае. islower int islower (int c); Дает значение не нуль, если с – код буквы на нижнем реги- стре (а z), и нуль – в противном случае. isprint int isprint (int c); Дает значение не нуль, если с – печатный символ с кодом (0 20 0 7E), и нуль – в противном случае. ispunct int ispunct (int c); Дает значение не нуль, если с – символ разделитель (т.е. соответствует iscntrl или isspace) и нуль – в противном случае. isspace int isspace (int c); Даетзначение не нуль, если с – обоб- щенный пробел: пробел, символ табуляции, символ новой строки или новой страницы, символ возврата каретки (0 09 0 0D, 0 20), и нуль – в противном случае. isupper int isupper (int c); Дает значение не нуль, если с – код буквы на верхнем ре- гистре (А Z), и нуль – в противном случае. isxdigit int isxdigit (int c); Дает значение не нуль, если с – код шестнадцатеричной цифры (0 9, А F, а f), и нуль – в противном случае. 64 Функция Прототип и краткое описание действий toascii int toascii (int c); Преобразует целое число с в символ кода ASCII, обнуляя все биты, кроме младших семи. Результат от 0 до 127. tolower int tolower (int c); Преобразует код буквы с к нижнему регистру, не буквен- ные коды не изменяются. toupper int toupper (int c); Преобразует код буквы с к верхнему регистру, не буквен- ные коды не изменяются. Функции ввода-вывода для стандартных потоков (файл stdio.h) Функция Прототип и краткое описание действий getch int getch (void); Считывает один символ с клавиату- ры без отображения на экране. getchar int getchar (void); Считывает очередной символ из стандартного входного потока (stdin). gets char * gets (char *s); Считывает строку s из стандарт- ного входного потока (stdin). printf int printf (const char *format [, argument, …]); Функция форматированного вывода в стандартный по- ток stdout. putchar int putchar (int c); Записывает символ с в стандартный поток вывода (stdout). puts int puts (const char *s); Записывает строку s в стандартный поток вывода (stdout). scanf int scanf (const char *format [, address, …]); Функция форматированного ввода из стандартного по- тока stdin. sprintf int sprintf (char *s, const char *format [, argument, …]); Функция форматированной записи в строку s. sscanf int sscanf (const char * s, const char *format [, address, …]); Функция форматированного чтения из строки s. ungetch int ungetch (int c); Возвращает символ с в стандартный поток ввода stdin, заставляя его быть следующим считываемым символом. 65 Функции для работы со строками (файлы string.h, stdlib.h) Функция Прототип и краткое описание действий atof double atof (const char *str); (stdlib.h) Преобразует строку str в вещественное число типа double. atoi int atoi (const char *str); (stdlib.h) Преобразует строку str в целое число типа int. atol long atol (const char * str); (stdlib.h) Преобразует строку str в целое число типа long. itoa char * itoa(int v, char *str, int baz); Преобразует целое v в строку str. При изображении числа ис- пользуется основание baz ( 2 baz 36 ). Для отрицательного числа и baz = 10 первый символ «минус» (-) ltoa char * ltoa(long v, char *str, int baz); Преобразует длинное целое v в строку str. При изображении числа используется основание (2 baz 36). strcat char *strcat (char *const char *si); Приписывает строку si к строке sp (конкатенация строк). strchr char *strchr (const char *str, int c); Ищет в строке str первое вхождение символа с. strcmp int strcmp (const char *str1, const char *str2); Сравнивает строки str1и str2. Результат отрицателен, если str1 str2; равен нулю, если str1= = str2, и положителен, если str1 str2 (сравнение беззнаковое). strcpy char *strcpy(char *sp, const char *si); Копирует байты строки si в строку sp. strcspn int strcspn (const char *str1, const char *str2); Определяет длину первого сегмента строки str1, содержаще- го символы, не входящие во множество символов строки str2. Ищет один из символов одной строки в другой strdup char * strdup(const char *str); Выделяет память и переносит в нее копию строки str. strlen unsigned strlen (const char *str); Вычисляет длину строки str. strlwr char * strlwr(char *str); Преобразует буквы верхнего регистра в строке в соответст- вующие буквы нижнего регистра. strncat char * strncat(char *sp, const char *si, int kol); Припи- сывает kol символов строки si к строке sp (конкатенация). strncmp int strncmp(const char *str1, const char *str2, int kol); Сравнивает части строк str1 и str2, причем рассматриваются 66 Функция Прототип и краткое описание действий первые kol символов. Результат отрицателен, если str1 str2; равен нулю, если str1= = str2, и положителен, если str1 str2. strncpy char * strncpy(char *sp, const char *si, int kol); Копирует kol символов строки si в строку sp («хвост» отбра- сывает или дополняется пробелами). strnicmp int strnicmp (char *str1, const char *str2, int kol); Сравнивает не более kol символов строки str1 и строки str2, не делая различия регистров (см. функцию strncmp()). strnset char * strnset (char *str, int c, int kol); Заполняет строку str заданным символом с. strpbrk int strpbrk (const char *str1, const char *str2); Ищет в строке str1 первое появление любого из множества символов, входящих в строку str2. strrchr char * strrchr (const char *str, int c); Ищет в строке str последнее вхождение символа с. strset char * strset (char *str, int c); Заполняет строку str заданным символом с. strspn int strspn (const char *str1, const char *str2); Определяет длину первого сегмента строки str1, содержаще- го только символы, из множества символов строки str2. Ищет символ одной строки, отсутствующий в другой strstr char * strstr (const char *str1, const char *str2); Ищет в строке str1 подстроку str2. Возвращает указатель на тот элемент в строке str1, с которого начинается подстрока str2. strtod double strtod (const char *str, char **endptr ); (stdlib.h) Преобразует символьную строку str в число двойной точно- сти. Если endptr не равен NULL, то *endptr возвращает как указатель на символ, при достижении которого прекращено чтение строки str. strtok char * strtok (char *str1, const char *str2); Ищет в строке str1 лексемы, выделенные символами из второй строки. strtol long strtol (const char *str, char **endptr, int baz); (stdlib.h) Преобразует символьную строку str к значению «длинное число» с основанием baz (2 baz 36). Если endptr не равен NULL, то *endptr возвращает как указатель на символ, при достижении которого прекращено чтение строки str. strupr char * strupr(char *str); Преобразует буквы нижнего ре- гистра в строке str в буквы верхнего регистра. ultoa char * ultoa (unsigned long v, char *str, int baz); Преобразует беззнаковое длинное целое v в строку str. 67 Приложение Ж Библиотека заголовочных файлов Стандартные функции [6] <ctype.h> - преобразования и проверки символов; <complex> - комплексных чисел; <ctime> - системные часы; <locale.h> - установки локальной среды; <math.h> (<cmath>) - математические функции; <new> - работы с динамической памятью; <numeric> - числовых операций; <signal.h> - обработки сигналов; <stdio.h> - ввода/вывода (чтение/запись символов), работы с файлами; <stdlib.h> - работы с памятью, преобразования, некоторые математи- ческие функции; <string.h> - работы со строками в стиле С; <time.h> - для работы с датой и временем; <valarray> - классы для численных расчетов. Константы, макросы и типы данных определены в файлах: <assert> - для диагностики; <errno.h> - для проверки ошибок; <float.h> - для работы с числами с плавающей точкой; <fstream> - файловые потоки; <ios> - базовые классы потоков ввода/вывода; <istream> - входные потоки; <ostream> - выходные потоки; <sstream> - строковые потоки; <sstreambuf> - буферизация потоков; <iostream> - для потокового ввода/вывода; <limits.h> - определение размеров целочисленных данных; <setjmp.h> - возможности нелокальных переходов; <signal.h> - функции и макросы для обработки сигналов (прерываний). <stdarg.h> - поддержка функций с неопределенным числом параметров. Контейнерные классы <bitset> - битовое множество; <deque> - двусторонняя очередь; <list> - двусвязный список; <queque>- очередь; <set> - множество; <stack> - стек; <vektor> - одномерный массив. Как правило, каждый компилятор содержит больше заголовочных файлов. 68 СОДЕРЖАНИЕ Ввод – вывод в языке СИ. Структура программы. Порядок выполнения лабораторных работ Лабораторная работа 1. Основы программирования в среде языка Си. Оператор присваивания Лабораторная работа 2. Программирование разветвленных алго- ритмов. Операторы передачи управления Лабораторная работа 3. Программирование циклических алгорит- мов с заданным числом повторений Лабораторная работа 4. Программирование циклических алгорит- мов с предусловием Лабораторная работа 5. Программирование циклических алгорит- мов с постусловием Лабораторная работа 6. Программирование алгоритмов обработки одномерных массивов Лабораторная работа 7. Обработка двумерных массивов Лабораторная работа 8. Программирование c применением функций Лабораторная работа 9. Программирование с возвратом из функ- ций нескольких значений Лабораторная работа 10. Обработка символьных и строковых даных Лабораторная работа 11. Файлы Лабораторная работа 12. Структуры Лабораторная работа 13. Модульное программирование Лабораторная работа 14. Динамические структуры. Списки Лабораторная работа 15. Графика Задание к расчетно-графической работе БИБЛИОГРАФИЧЕСКИЙ СПИСОК ПРИЛОЖЕНИЕ А. Главное меню среды ТП ПРИЛОЖЕНИЕ Б. Операции языка С/С++ ПРИЛОЖЕНИЕ В.Типы данных ПРИЛОЖЕНИЕ Г. Обозначения графические в схемах алгоритмов ПРИЛОЖЕНИЕ Д. Сообщения об ошибках ПРИЛОЖЕНИЕ Е. Функции для работы с сисмволами и строками ПРИЛОЖЕНИЕЖ. Библиотека заголовочных файлов 3 4 4 9 14 17 19 22 25 28 32 36 40 44 47 48 51 53 55 56 58 59 60 61 63 67 Редактор ___________ Свод. темплан 200__ г. И Д № от . . Подписано в печать _________. Бумага офсетная. Формат 64 84 1 / 16 Отпечатано на дупликаторе. Усл. печ. л. 2. Уч. - изд.л. 2. Тираж . Заказ . Издательство ОмГТУ. 644050, Омск, пр. Мира 11 Типография ОмГТУ |