- •Предисловие
- •Правила выполнения лабораторных работ
- •Обеспеченность занятия (средства обучения):
- •Порядок выполнения отчета по лабораторной работе
- •Лабораторная работа № 1 «Разработка линейных алгоритмов»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы
- •Лабораторная работа № 3-4 «Использование оператора цикла с параметром»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы
- •Лабораторная работа № 5 «Табулирование функций»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы:
- •Лабораторная работа № 11-12 «Разработка технического задания с использованием ms Word»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •1 Общие сведения
- •1.1. Полное наименование системы и ее условное обозначение
- •1.3. Термины и определения
- •3.1.4. Безопасность системы
- •3.1.5. Требования по эргономике и технической эстетике
- •3.1.6. Требования к производительности системы
- •3.2. Общие требования к функциям системы
- •3.2.1. Общие требования к способам обработки и хранения информации
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы:
- •Лабораторная работа № 15-16 «Использование многомерных массивов»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы:
- •Лабораторная работа № 17 «Использование оператора выбора switch-case-default»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы:
- •Лабораторная работа № 21 «Разработка программного кода методом половинного деления»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •9: Разложение на множители
- •10: Палиндром
- •11: Вывести нечетные числа последовательности
- •Контрольные вопросы:
- •Лабораторная работа № 26-27 «Обработка структурных данных»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы:
- •Лабораторная работа № 28-29 «Использование файловых потоков»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы:
- •Лабораторная работа № 30-31 «Использование строк при разработке программного кода»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы:
- •Лабораторная работа № 32-33 «Использование динамических массивов структур»
- •Список представляет собой таблицу
- •Задания для лабораторной работы:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Список представляет собой таблицу
- •Задания для лабораторной работы:
- •Контрольные вопросы:
- •Лабораторная работа № 36-37 «Использование классов динамических массивов структур»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Список представляет собой таблицу
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы:
Задания для лабораторной работы:
Задание соответствет лабораторной работе №26-27, необходимо добавить считывание из файла и запись в файл.
Контрольные вопросы:
1. В каких состояниях может находиться поток? Каким образом отслеживается состояние конца потока?
2. Каким образом строковые потоки можно использовать для ограничения ширины поля ввода?
3. Перечислите средства форматирования объектно-ориентированной библиотеки.
4. Каким образом ввести строку типа st г i ng с пробелами?
5. Каково назначение флагов форматирования? Какие средства реализованы в библиотеке для работы с флагами форматирования?
Лабораторная работа № 30-31 «Использование строк при разработке программного кода»
Цель работы: получение навыков с символьными строками
Образовательные результаты, заявленные во фгос третьего поколения:
Студент должен
уметь:
-осуществлять разработку кода программного модуля на современных языках программирования;
- оформлять документацию на программные средства;
- использовать инструментальные средства для автоматизации оформления документации;
знать:
- основные этапы разработки программного обеспечения;
- основные принципы технологии структурного и объектно-ориентированного программирования;
- методы и средства разработки технической документации.
Краткие теоретические и учебно-методические материалы по теме лабораторной работы
В стандарт C++ включена поддержка нескольких наборов символов. Традиционный 8-битовый набор символов называется "узкими" символами. Кроме того, включена поддержка 16-битовых символов, которые называются "широкими". Для каждого из этих наборов символов в библиотеке имеется своя совокупность функций. Подробнее об этом будет рассказано в Приложении.
Как и в ANSIС, для представления символьных строк в C++ не существует специального строкового типа. Вместо этого строки в C++ представляются как массивы элементов типа char заканчивающиеся терминатором строки - символом с нулевым значением (' \0 ')• Строки, заканчивающиеся нуль - терминатором, часто называют ASCIIZ-строками. Символьные строки состоят из набора символьных констант, заключенного в двойные кавычки:
"Это строка символов..."
В таблице 1 приведен набор констант, применяющихся в C++ в качестве символов.
Таблица 1 - Классификация символов
прописная буква |
от 'А' до 'Z',OT 'А' до 'Я' |
|
строчная буква |
от ' а ' до ' z ' , от ' а ' до ' я ' |
|
цифра |
от ' 0 ' до ' 9 ' |
|
пустое место |
горизонтальная табуляция ' \9 ' , перевод строки (код ASCII 10), вертикальная табуляция (код ASCII 11), перевод формы (код ASCII 12), возврат каретки (код ASCII 13) |
|
символы пунктуации |
!"#$%&' ()*,-./:;<=>?@[\]^_'{|}~ |
|
управляющий символ |
все символы с кодами от 0 до 1Fh включительно и символ с кодом 7Fh |
|
пробел |
символ пробела (код ASCII 32) |
|
При объявлении строкового массива необходимо принимать во внимание наличие терминатора в конце строки, отводя тем самым под строку на один байт больше:
// Объявление строки размером 10 символов,
// включая терминатор. Реальный размер
// строки: 9 символов + 1 терминатор char buffer[10];
Строковый массив может при объявлении инициализироваться начальным значением. При этом компилятор автоматически вычисляет размер будущей строки и добавляет в конец нуль-терминатор:
// Объявление и инициализация строки:
char Wednesday[] = "Среда";
// что равносильно:
char Wednesday[] =
{'С',’р',’е','д','а’,'\0'};
В качестве оператора ввода при работе со строками вместо оператора записи в поток » лучше использовать функцию get-line(), так как потоковый оператор ввода игнорирует вводимые пробелы, а кроме того, может продолжить ввод элементов за пределами массива, если под строку отводится меньше места, чем вводится символов. Функция getline () принимает два параметра: первый аргумент указывает на строку, в которую осуществляется ввод, а второй - число символов, подлежащих вводу.
Рассмотрим пример объявления символьных строк и использования функции ввода getline ( ).
#include <iostream.h>
int main()
{
char myString[4];
cout « "Введите строку: " « '\n';
cin.getline(myString, 4);
cout « "Вы ввели: " « myString;
return 0;
}
Объявленная в начале программы строка myString может принять только три значащих символами будет завершена нуль - терминатором. Все последующие символы, вводимые в этот строковый массив, будут отброшены. Как видно из примера, при использовании функции getline ( ) вторым параметром следует указывать число, меньше или равное размеру вводимой символьной строки.
Большинство функций работы со строками содержится в библиотеке string.h. Основные функции работы с символьными массивами сведены в таблицу 2.
Таблица 2.
Функции работы со строками символов
Наименование |
Краткое описание |
strcpy |
копирует строку2 в строку1 |
strcat |
присоединяет строку2 в конец строки1 |
strchr |
возвращает позицию первого вхождения символа в строку |
strcmp |
сравнивает строку1 со строкой2, различая прописные и строчные буквы |
strcmpi |
см. stricmp |
strcpy |
копирует строку2 в строку1 |
strcspn |
возвращает позицию первого вхождения символа из заданного набора символов |
strdup |
распределяет память и делает копию строки |
Пример 1.: Поиск строки
Следующий пример показывает использование функции strstr().
char strl[]="Производится поиск элемента";
char str2[] = "поиск";
char* ptr;
ptr=strstr(strl, str2);
cout << ptr << ‘\n’;
Пример 2 Предположим, необходимо разбить имеющееся в строковом массиве предложение по словам и вывести каждое из них на экран.
#include <string.h>
#include <iostream.h>
int main()
{
char str[] = "язык программирования C++";
char *Delimiters = " - !?,;:\"'/0123456789
<@#$o-%^&*()<>{}[]’~+- = ";
char *ptr;
ptr = strtok(str, Delimiters);
if(ptr)
cout << ptr << ‘\n';
while(ptr)
{
ptr = strtok(NULL, Delimiters);
if(ptr)
cout << ptr << '\n’;
}
return 0 ; }
