Алгоритмизация и программирование. Учебное пособие для студентов направления подготовки 09.03.02 Информационные системы и технологии
.pdf
Рис 86. Программный код задачи 27
Результат реализации программы для предложения «Life is good» на рис. 87:
Рис 87. Результат решения задачи 27
Задача 28. Проверьте, является ли входное слово палиндромом. Проверку осуществить на словах, записанных английскими буквами.
(Тест. Проверить слова: level и live).
Математическая модель и описание алгоритма решения. Пользователю необходимо ввести слово. С помощью функции check_polindrom описываем проверку совпадения букв в слове: первой и последней, второй и предпоследней и т.д. Затем когда пользователь вводит слово, вызов функции check_polindrom проверяет, является слово палиндромом или нет.
111
Текст программы к задаче 28.
------------------------------------------------------------------------------------------------
#include <iostream> #include <cstring>
using namespace std;
bool check_polindrom(string word)
{
int len = word.length(); for (int i = 0; i < len/2; ++i)
{
if (word[i] != word[len-i-1])
{
return false;
}
}
return true;
}
int main()
{
string str;
cout << " Enter a word: "; cin >> str;
if (check_polindrom(str))
{
cout << " The word is a palindrome.";
}
else
{
cout << " The word is not a palindrome";
}
return 0;
}
------------------------------------------------------------------------------------------------
В компиляторе языка С++ этот компьютерный код представлен на рис. 88.
112
Рис 88. Программный код задачи 28
Результат реализации программы для слова «level» на рис. 89:
Рис 89. Результат решения задачи 27
Результат реализации программы для слова «live» на рис. 90:
Рис 90. Результат решения задачи 27
113
Приложение 1
Описание ключевых слов в С/С++
Ключевое |
Описание |
Страница |
|
слово |
|||
|
|
||
|
стандартизированный набор из 128 символов и их соответст- |
|
|
ASCII |
вующих числовых кодов для представления текста в компью- |
106 |
|
|
терах и других устройствах |
|
|
|
|
|
|
auto |
ключевое слово для автоматического вывода типа данных |
100 |
|
компилятором |
|||
|
|
||
|
|
|
|
break |
ключевое слово в циклах для досрочного выхода |
57, 65, 72 |
|
|
|
|
|
case |
определенная ветка в операторе ветвления |
55 – 57 |
|
|
|
|
|
char |
объявление символьной переменной |
28, 37 |
|
|
|
|
|
cin |
оператор для получения данных от пользователя |
30, 39 |
|
|
|
|
|
class |
ключевое слово для определения пользовательского типа дан- |
38 |
|
ных — класса |
|||
|
|
||
|
|
|
|
const |
объявление неизменяемых объектов или переменных |
25 |
|
|
|
|
|
continue |
оператор, который используется в циклах для пропуска ите- |
72 |
|
рации |
|||
|
|
||
|
|
|
|
cout |
оператор для вывода текста и значений переменных |
30, 39 |
|
|
|
|
|
default |
вариант по умолчанию в case |
56, 57 |
|
|
|
|
|
define |
директива для создания макроподстановок – текстовых замен |
29 |
|
в коде программы |
|||
|
|
||
|
|
|
|
|
цикл с постусловием, в котором логическое выражение, опре- |
|
|
do while |
деляющее повторение цикла, проверяется после выполнения |
65, 70 |
|
|
операторов тела цикла |
|
|
|
|
|
|
double |
объявление вещественного числа двойной точности |
28, 31, 37 |
|
|
|
|
|
else |
ветка оператора if, которая выполняется при ложном условии |
50, 55 |
|
|
|
|
|
enum |
тип данных, множество значений которого является ограни- |
28, 38 |
|
ченным списком идентификаторов |
|||
|
|
||
|
|
|
114
|
Окончание прил. 1 |
||
|
|
|
|
Ключевое |
Описание |
Страница |
|
слово |
|||
|
|
||
float |
объявление вещественной переменной |
28, 31, 37 |
|
|
|
|
|
|
оператор цикла с параметром (счетчиком), используется в |
|
|
for |
случае, когда известно точное количество повторов вычисле- |
65 |
|
|
ний |
|
|
|
|
|
|
getline |
Функция для считывания строки из входного потока (файла |
106 |
|
или стандартного ввода cin) |
|||
|
|
||
|
|
|
|
goto |
безусловный переход |
74 |
|
|
|
|
|
if |
оператор условия |
50 |
|
|
|
|
|
int |
объявление переменной целого типа |
27, 37 |
|
|
|
|
|
include |
директива для включения содержимого файла в программу во |
29 |
|
время компиляции |
|||
|
|
||
|
|
|
|
main |
функция, которая является точкой входа в программу |
26, 28 |
|
|
|
|
|
return |
оператор для возвращения данных после выполнения работы |
75 |
|
функции |
|||
|
|
||
|
|
|
|
sizeof |
возвращение размера переменной или типа |
85 |
|
|
|
|
|
|
пространство имен стандартной библиотеки для работы с |
|
|
std |
вводом/выводом, алгоритмами и другими структурами дан- |
30 |
|
|
ных |
|
|
|
|
|
|
string |
класс для работы с текстовой информацией |
106 |
|
|
|
|
|
switch |
Конструкция для обработки множественных условий |
55 |
|
|
|
|
|
unsigned |
объявление беззнакового целого |
27, 40 |
|
|
|
|
|
using |
ключевое слово для различных целей: объявление имен, соз- |
30 |
|
дание псевдонимов для сложных типов данных и т.д. |
|||
|
|
||
|
|
|
|
void |
объявление функции или переменной без типа |
27, 28 |
|
|
|
|
|
|
цикл с предусловием, в котором логическое выражение, опре- |
|
|
while |
деляющее повторение цикла, проверяется до выполнения опе- |
65, 69 |
|
|
раторов тела цикла |
|
|
|
|
|
|
115
Приложение 2
Заголовочные файлы языка С/С++
В приложении 2 приведен список заголовочных файлов, используемых в языке C++. В скобках указаны старые версии этих файлов.
Заголовочный файл |
|
|
Описание |
||
cassert (assert.h) |
Заголовочный файл, содержащий макросы используемые для ди- |
||||
агностики, помогающей при отладке программы. |
|||||
|
|||||
|
|
||||
cctype (ctype.h) |
Заголовочный файл содержит прототипы функций для обработки |
||||
символов. |
|
|
|
||
|
|
|
|
||
|
|
|
|
|
|
cfloat (float.h) |
Заголовочный |
файл, |
описывающий |
различные характеристики |
|
типов с плавающей точкой. |
|
||||
|
|
||||
|
|
||||
climits (limits.h) |
Заголовочный файл, содержащий предельные величины для це- |
||||
лых чисел для данной системы. |
|
||||
|
|
||||
|
|
|
|
|
|
cmath (math.h) |
Заголовочный |
файл, |
содержащий |
прототипы математических |
|
функций (sin, cos, tan, pow, sqrt и т. д.) |
|||||
|
|||||
|
|
||||
cstdio (stdio.h) |
Заголовочный файл для выполнения операций ввода/вывода. |
||||
|
|
||||
|
Стандартный заголовочный файл, содержит функции для преоб- |
||||
cstdlib (stdlib.h) |
разования чисел в текст, выделения памяти, генерации случайных |
||||
|
чисел и др. функций-утилит |
|
|||
|
|
|
|
||
cstring (string.h) |
Заголовочный |
файл |
для работы со строками (нуль- |
||
терминированными) |
|
|
|||
|
|
|
|||
|
|
||||
ctime (time.h) |
Заголовочный файл для работы с датой и временем |
||||
|
|
|
|
|
|
116
СПИСОК ЛИТЕРАТУРЫ
1.Голицына, О. Л. Основы алгоритмизации и программирования : учебное пособие /
О.Л. Голицына. – Москва : ФОРУМ, 2008. – 432 с. - Текст : непосредственный.
2.Информатика. Базовый курс : учебник для вузов / под редакцией С. В. Симоновича
–Изд. 3-е, перераб. и доп. – Санкт-Петербург : Питер, 2011. – 640 с. - Текст : непосредственный.
3.Керниган, Б. Язык программирования Си / Б. Керниган, Д. Ритчи. – СанктПетербург, 2012. – 352 с. - Текст : непосредственный.
4.Колдаев, В. Д. Основы алгоритмизации и программирования : учебное пособие / В. Д. Колдаев ; под редакцией профессора Л. Г. Гагариной. – Москва : ИД ФОРУМ :
ИНФРА-М, 2006. – 416 с. - Текст : непосредственный.
5. Павловская, Т. А. C/C++. Программирование на языке высокого уровня /
Т.А. Павловская. – Санкт-Петербург : Питер, 2014. – 461 с. - Текст : непосредственный.
6.Панова, Т. В. Основы алгоритмизации и программирования на языке высокого уровня Си : учебно-практическое пособие / Т. В. Панова, Н. Д. Николаева. – СанктПетербург : Балт. гос. техн. ун-т, 2015. – 176 с. - Текст : непосредственный.
7.Пацей, Н. В. Основы алгоритмизации и программирования : учебно-методическое
пособие для студентов специальности «Информационные системы и технологии» / Н.
В.Пацей. – Минск : БГТУ, 2010. – 289 с. - Текст : непосредственный.
8.Петров, В. Ю. Информатика. Алгоритмизация и программирование : учебное пособие. Ч. 1 / В. Ю. Петров. – Санкт-Петербург : Университет ИТМО, 2016. – 91 с. - Текст : непосредственный.
9.Трофимов, В. В. Основы алгоритмизации и программирования : учебник для СПО /
В.В. Трофимов, Т. А. Павловская ; под редакцией В. В. Трофимова. – Москва : Издательство Юрайт, 2019. – 137 с. - Текст : непосредственный.
117
Учебное издание
Котова Ольга Викторовна, кандидат физико-математических наук, и.о. заведующего кафедрой информационных систем и технологий ФГБОУ ВО «ДОННАСА»
Скидан Юлия Витальевна, ассистент кафедры информационных систем и технологий ФГБОУ ВО «ДОННАСА»
АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ
учебное пособие для студентов направления подготовки
09.03.02 Информационные системы и технологии
118
