Программирование и алгоритмизация

Методическое пособие к выполнению

Домашних работ

для студентов специальностей

140604 – Электропривод и автоматика промышленных установок и технологических комплексов

220301 – Автоматизация технологических процессов и производств

( все формы обучения)

Квалификация (степень) выпускника

Бакалавр

Одобрено редакционно-издательским советом института

Старый Оскол

Год

УДК 004

ББК 32.97

К 593

Рецензент:

Профессор кафедры системотехники Харьковского национального университета радиоэлектроники, к.т.н. С.И. Чайников

Козырь О.Ф. Программирование и алгоритмизация. Методическое пособие к выполнению домашних заданий. Старый Оскол. СТИ МИСиС, 2013г, - 24с.

Методическое пособие по курсу «Программирование и алгоритмизация».

© Козырь О.Ф.

© СТИ МИСиС

Содержание.

Введение……………………………………………………………………….……….

Домашняя работа №1. Решение задач с обработкой строк…………………………

Домашняя работа №2. Решение задач с использованием файлов………………..…

Список рекомендуемой литературы…………………………………………………..

Введение

Настоящий цикл домашних заданий разработан по дисциплине "Программирование и алгоритмизация" для студентов очной, очно-заочной и заочной форм обучения специальностей "Автоматизация технологических процессов и производств" и «Электропривод и автоматика промышленных установок и технологических комплексов». Лабораторные работы проводятся на ПК с использованием средств TurboС V3.0 или BuilderC++ V5.0 (или V6.0) или любого другого транслятора языка С++.

При подготовке к выполнению домашнего задания необходимо ознакомиться с теоретическими материалами, представленными в пособии, а также с материалами лекций, начитанных по теме домашнего задания, и с предложенной литературой. Список предлагаемой литературы представлен в конце данных методических указаний.

Кроме этого целесообразно разобрать и примеры программ для данного класса задач, которые также рассмотрены в данном пособии. Все программы снабжены комментариями и подробными объяснениями. Для выполнения домашних работ разработаны тридцать вариантов индивидуальных заданий. Вариант задания выдается преподавателем в начале семестра или перед выполнением каждой работы.

Тематика домашних работ дополняет материал лабораторных работ и помогает студентам освоить приемы работы с файлами и строками средствами языка С++. Для закрепления изученного материала и самопроверки студентами полученных знаний по каждой теме дается перечень контрольных вопросов.

Общие требования к отчетам по домашним работам таков: отчет должен содержать:

- титульный лист,

- тему выполняемой работы,

- цель и задание,

- текст программы (или несколько текстов программ), снабженный комментариями,

- результаты работы программы (скрин-шот).

Домашняя работа № 1.

РЕШЕНИЕ ЗАДАЧ С ОБРАБОТКОЙ СТРОК

Цель работы

Изучить и освоить методы составления программ на языке С++ с использованием строк.

Подготовка к работе

Необходимо знать основные особенности представления символов и строковых литералов в языке С++ [лекции 10, 14], способы их обработки, основные функции используемые для сравнения, копирования строк, вырезания и поиска подстроки (символа) в строке.

3. Теоретическая часть:

Для представления текстовой информации в языке С++ используются символы (константы), символьные переменные и строки (строковые константы), для которых в языке С++ не введено отдельного типа в отличие от некоторых других языков программирования. Строка– это последовательность символов, заключенная в двойные кавычки (" ").

Размещая строку в памяти, транслятор автоматически добавляет в ее конце символ '\0' (нулевой символ или нулевой байт, который является признаком конца строки). В записи строки может быть и один символ: "А" (заключен в двойные кавычки), однако, в отличие от символьной константы 'А' (используются апострофы), длина строки "А"равна 2 байтам.

В языке С++ строка – это пронумерованная последовательность символов (массив символов), она всегда имеет тип char[]. Все символы строки нумеруются, начиная с нуля. Символ конца строки также нумеруется – ему соответствует наибольший из номеров. Таким образом, строка считывается значением типа "массив символов". Количество элементов в таком массиве на 1 больше, чем изображение соответствующей строки, так как в конец строки добавлен нулевой символ '\0' (рис. 1).

программирование и алгоритмизация - student2.ru


Рис. 1. Представление строки и символа

Символьная строка в программном коде может располагаться на нескольких строках. Для переноса используется символ '\' с последующим нажатием клавиши ввод. Символ '\' игнорируется компилятором, и следующая строка считается продолжением предыдущей.

В С++ есть два вида строк:

- С-строки (символьные);

- класс стандартной библиотеки С++ string.

С-строка – это массив символов, завершающийся символом с кодом 0 (нуль-терминатором). Класс string более безопасен в использовании, но и более ресурсоемок, чем С-строки. Исходя из этого, строки можно обрабатывать двумя способами:

- как массив;

- используя строковые функции, описания которых находятся в заголовочном файле string.h (класс cstring).

Каждый из способов имеет свои достоинства и недостатки.

Порядок работы со строкой:

1) Описание строки (выделение памяти);

2) Инициализация (ввод) строки;

3) Обработка строк.

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

Описание строк.

Используется описатель:

char <имя_строки>[<длина>]

Длина динамической строки может быть выражением, не динамической строки – константным выражением (чаще всего константой):

const int len_s = 80;

char s[len_s]; //хранится 79 символов + 0-терминатор

При задании строки необходимо учитывать 0-терминатор.

Для размещения строки в динамической памяти:

char *p = new char[m]; // p – указатель на char

char *q = (char *)malloc(m * sizeof(char));

Инициализация (ввод) строк.

1) явная инициализация:

Строки при описании можно явно инициализировать строковыми константами:

char a[100] = “Строковая константа”;

или инициализировать как массив символов:

char str[10]={‘s’, ‘t’, ‘r’, ‘o’, ‘k’, ‘a’};

При явной инициализации строки ее размерность можно опускать, тогда компилятор сам выделит память, достаточную для размещения вводимой строки:

char a[] = “Строковая константа”; // выделено под 20 символов

Наши рекомендации