- •«Утверждаю»
- •Учебно-методический комплекс
- •Астана График выполнения и сдачи заданий по дисциплине
- •Карта учебно-методической обеспеченности дисциплины Учебники, учебные пособия
- •Конспект лекционных занятий
- •Тема 1. Введение в программирование на Си. Структура программы. Директивы препроцессора. Типы данных.
- •Основные операции в языке Си.
- •Преобразование типов
- •Тема 2. Управляющие структуры. Выбор вариантов. Структура выбора If, If – Else, логические операции, операция условия, множественный выбор.
- •Тема 3. Управляющие структуры. Структуры повторения While, do – While, For. Управляющие операторы break и continue.
- •Тема 4. Массивы. Разработка программ с использованием одномерных и двумерных массивов.
- •Тема 5. Функции в Си. Создание и использование функций.
- •Тема 6. Классы памяти и разработка программ.
- •Тема 7. Указатели в Си.
- •Тема 8. Использование указателей при обработке одномерных и двумерных массивов.
- •Тема 9. Символы и строки в Си.
- •Тема 10. Функции операции над строками.
- •Функции сравнения из библиотеки обработки строк. Прототипы функций и краткое описание каждой из них приведены в таблице 6.
- •Функции поиска из библиотеки обработки строк. Прототипы функций и краткое описание каждой из них приведены в таблице 7.
- •Другие функции из библиотеки обработки строк. В таблице 8 приведены прототипы и краткое описание остальных функций из библиотеки обработки строк.
- •Ниже приведены примеры программы, использующих функции работы со троками.
- •Тема 11. Структуры данных в Си.
- •Тема 12. Динамические структуры данных.
- •Тема 13. Работа с файлами в Си.
- •Тема 14. Графика в Си.
- •Тема 15. Объектно-ориентированное программирование.
- •Методические рекомендации по выполнению лабораторных заданий
- •Лабораторная работа № 3. Использование операторов цикла при решении задач.
- •Лабораторная работа №4. Разработка программ с использованием одномерных массивов.
- •Лабораторная работа №5. Разработка программ с использованием двумерных массивов.
- •Лабораторная работа № 6. Программирование задач с использованием нескольких функций на языке Си.
- •Лабораторная работа № 8. Программирование задач обработки структур данных.
- •Лабораторная работа № 9. Разработка программ с использованием файловых переменных.
- •Лабораторная работа № 10. Разработка программ с использованием графических функций языка Си.
- •Содержание отчета по выполнению лабораторной работы
- •1 Задание
- •Тема 1. Запись констант, стандартных функций, выражений, операторов присваивания. Запись программ линейных структур алгоритмов.
- •Тема 2. Алгоритмическое описание, запись программ линейных, разветвляющихся.
- •Тема 3. Алгоритмическое описание, запись программ циклических структур алгоритмов.
- •Тема 4. Алгоритмическое описание, составление программ обработки одномерного массива.
- •Тема 5. Алгоритмическое описание, составление программ обработки двумерного массива.
- •Тема 6-7. Составление программ решения задач с использованием функции.
- •Рекомендуемая литература:
- •Тема 8-9. Составление программ решения задач обработки массивов с использованием указателей.
- •Тема 10-11. Программирование задач обработки символьных и стрковых данных.
- •Рекомендуемая литература.
- •Тема 12. Методы сортировки.
- •Тема 13. Составление программ решения задач с использованием структур данных.
- •Тема 14. Составление программ решения задач с использованием файла произвольного доступа.
- •Рекомендуемая литература.
- •Тема 15. Алгоритмизация графических построений.
- •Варианты заданий:
- •Сведения
- •Перечень экзаменационных вопросов по пройденному курсу
- •Глоссарий
Тема 10-11. Программирование задач обработки символьных и стрковых данных.
Форма проведения: Решение задач.
Задание. Задав с клавиатуры последовательность символов, реализовать обработку ее, как указано в варианте. Исходные данные задать самостоятельно, учитывая специфику конкретного варианта.
Варианты заданий:
Дана строка. Подсчитать количество содержащихся в ней прописных букв.
Дана строка. Преобразовать все строчные латинские буквы в прописные.
Дана строка S, изображающая вещественное число в формате с плавающей точкой, и целое число N (> 0). Вывести набор символов, изображающих первые N цифр дробной части этого вещественного числа (без округления).
Дана строка S и число N. Преобразовать строку S в строку длины N следующим образом: если длина строки S больше N, то отбросить первые символы, если длина строки S меньше N, то в ее начало добавить символы "." (точка).
Даны две строки: S1 и S2. Удалить из строки S1 все подстроки, совпадающие с S2. Если таких подстрок нет, то вывести S1 без изменений.
Методические рекомендации по проведению СРСП.
/* пример 1 */
/* Применение функций isdijit, isalpha, isalnum и isxdijit */
#include <stdio.h>
#include <ctype.h>
main()
{
printf(“Использование функции isdijit:\n”);
printf(“%s%s\n”, isdijit(‘8’) ? “8 является ” : “8 не является ”, “цифрой”);
printf(“%s%s\n\n”, isdijit(‘#’) ? “# является ” : “# не является ”, “цифрой”);
printf(“Использование функции isalpha:\n”);
printf(“%s%s\n”, isalpha(‘A’) ? “A является ” : “A не является ”, “буквой”);
printf(“%s%s\n”, isalpha(‘b’) ? “b является ” : “b не является ”, “буквой”);
printf(“%s%s\n”, isalpha(‘&’) ? “& является ” : “& не является ”, “буквой”);
printf(“%s%s\n\n”, isalpha(‘4’) ? “4 является ” : “4 не является ”, “буквой”);
printf(“Использование функции isalnum:\n”);
printf(“%s%s\n”, isalnum(‘A’) ? “A является ” : “A не является ”, “цифрой или буквой”);
printf(“%s%s\n”, isalnum(‘8’) ? “8 является ” : “8 не является ”, “цифрой или буквой”);
printf(“%s%s\n\n”, isalnum(‘#’) ? “# является ” : “# не является ”, “цифрой или буквой”);
printf(“Использование функции isxdijit:\n”);
printf(“%s%s\n”, isalnum(‘F’) ? “F является ” : “F не является ”, “шестнадцатеричным числом”);
printf(“%s%s\n”, isalnum(‘J’) ? “J является ” : “J не является ”, “шестнадцатеричным числом”);
printf(“%s%s\n”, isalnum(‘7’) ? “7 является ” : “7 не является ”, “шестнадцатеричным числом”);
printf(“%s%s\n”, isalnum(‘$’) ? “$ является ” : “$ не является ”, “шестнадцатеричным числом”);
printf(“%s%s\n”, isalnum(‘f’) ? “f является ” : “f не является ”, “шестнадцатеричным числом”);
return 0; }
/* пример 2 */
/* Применение функций atof, atoi, atol */
#include <stdio.h>
#include <stdlib.h>
main()
{ double d; int i; long l;
d = atof(“99.0”)
printf(“Использование функции atof:\n”);
printf(“%s%.3f\n\n”, “Строка \”99.0\” преобразовалась в значение типа double ”, d);
i = atoi(“2593”)
printf(“Использование функции atoi:\n”);
printf(“%s%d\n\n”, “Строка \”2593\” преобразовалась в значение типа int ”, i);
l = atol(“1000000”)
printf(“Использование функции atol:\n”);
printf(“%s%ld\n\n”, “Строка \”1000000\” преобразовалась в значение типа long ”, i);
return 0; }
Контрольный пример 3. Дан текст, состоящий из слов, разделенных пробелами. Найти самое длинное слово и вывести его на экран.
/* пример 3 */ #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> main () { char s[] = "You must take this course again"; char *s1, *s2; int len; clrscr(); s1 = strtok(s, " "); len=0; while (s1!= NULL) { if (strlen(s1)>len) { len=strlen(s1); strcpy(s2,s1); } s1 = strtok(NULL, " "); } printf("Long token = %s\n", s2); getch(); return 0; }
|
/* пример 4 */ /* Применение функций strcpy, strncpy */ #include <stdio.h> #include <string.h> main() { char x[] = “Happy Birthday to You”; char y[25], z[15]; printf(“%s%s\n%s%s\n”, “Строка x: ”, x, “Строка y: ”, strcpy(y,x)); strncpy(z, x, 14); z[14] = ‘\0’; printf(“Строка z: %s\n”, z); return 0; }
/* пример 5 */ /* Применение функций strcat, strncat */ #include <stdio.h> #include <string.h> main() { char s1[20] = “Happy ”; char s2[] = “New Year”; char s3[40] = “”; printf(“s1 = %s\ns2 = %s\n”, s1, s2); printf(“strcat(s1, s2) = %s\n”, strcat(s1, s2)); printf(“strncat(s3, s1, 6) = %s\n”, strncat(s3, s1, 6)); printf(“strcat(s3, s1) = %s\n”, strcat(s3, s1)); return 0; } |