- •5В070300 «Информационные системы»
- •Введение
- •Содержание отчета
- •Лабораторная работа № 1
- •1 Порядок выполнения лабораторной работы:
- •Постановка задачи
- •Методические указания
- •2 . Пример
- •1 Содержание работы
- •1 Порядок выполнения лабораторной работы:
- •Задание
- •2. Пример
- •Лабораторная работа № 2
- •Лабораторная работа№ 3
- •1 Порядок выполнения лабораторной работы:
- •Задание
- •Часть вторая: Оператор выбора
- •1 Порядок выполнения лабораторной работы:
- •Задание
- •Группа а Таблица 7
- •Группа в
- •2. Примеры
- •Лабораторная работа№ 4
- •1 Порядок выполнения лабораторной работы:
- •Задание
- •2 Примеры
- •For (выражение1; выражение2;выражение3) {операторы; }
- •Лабораторная работа№ 5
- •1 Порядок выполнения лабораторной работы:
- •Задание
- •2. Примеры
- •3. Сортировка элементов массива
- •Сортировка выбором
- •3.2. Сортировка вставкой
- •3.3. Сортировка методом прямого выбора
- •3.4. Сортировка методом обмена
- •4. Указатели и одномерные массивы
- •Лаборатоная работа № 6
- •1 Порядок выполнения лабораторной работы:
- •2. Методические указания
- •3. Указатели и двумерные массивы
- •Лабораторная работа № 7
- •1 Порядок выполнения лабораторной работы:
- •Задание на строки
- •2.Краткие теоретические сведения
- •Лаборатоная работа № 8
- •1 Порядок выполнения лабораторной работы:
- •2. Теоретические сведения
- •Год рождения – 1978
- •Лабораторная работа № 9
- •1 Порядок выполнения лабораторной работы:
- •2. Примеры
- •Лабораторная работа № 10
- •1 Порядок выполнения лабораторной работы:
- •1.3. Задание для выполнения
- •2. Примеры
- •Лабораторная работа № 11
- •1 Порядок выполнения лабораторной работы:
- •1.3. Задание для выполнения
- •Лабораторная работа № 12
- •1 Порядок выполнения лабораторной работы:
- •2. Краткие теоретические сведения Объектно-ориентированный подход
- •Сущности и Объекты
- •Система типов
- •Инкапсуляция
- •Пример класса
- •Создание объектов. Конструкторы и деструктор
- •Наследование
- •Перегрузка функций
- •Полиморфизм
- •Функции-друзья
- •Абстрактные классы
- •Дополнительные возможности
- •Индивидуальные задания
- •2.1. Пример решения задания
- •Int windForce; // Сила ветра в баллах
- •Int startHeight; // Начальная высота
- •Int fuel; // Запас топлива
- •Результат выполнения программы:
- •Разновидности списков
- •Контрольные вопросы
- •Задание
- •Литература
- •Лабораторная работа № 9 Тема: Множества в Паскале.
- •Общие сведения
- •Лабораторная работа № 8 Тема: Применение записей в составлении программ.
- •Теоретические сведения
- •Задание
- •Контрольные вопросы.
- •Литература.
- •Список использованной литературы
3. Указатели и двумерные массивы
Предположим, что у нас есть описания:
int z[4][2]; /**/
int *pz; /**/
Тогда pz=z указывает на нулевой столбец нулевой строки, т.е.
pz=&z[0][0];
Поскольку элементы двумерного массива хранятся в памяти ЭВМ по строкам, то
pz+1 = &z[0][1], pz+2 = &z[1][0], pz+3 = &z[1][1] и т.д.
Двумерный массив описан как массив массивов. Если z является именем массива, то каковы имена четырех строк, каждая из которых является массивом из двух элементов? Имя первой строки z[0], второй - z[1], и т.д. Однако имя массива является также указателем на этот массив в том смысле, что оно ссылается на первый его элемент. Значит:
z[0]=&z[0][0], z[1]=&z[1][0], z[2]=&z[2][0], z[3]=&z[3][0].
Пример 3.1. Задана матрица а. Вывести на экран элементы главной диагонали, первой строки и значений первых элементов каждой строки матрицы, применив для этого указатели.
{int a[3][3]={{10,20,30},
{40,50,60},
{70,80,90}};
/*объявление и инициализация двумерного массива*/
int i;
int *pa[3]={a[0],a[1],a[2]};
/*объявление и инициализация указателя ра на строки массива а и присвоение начальных значений*/
pa[0]=a[0]; pa[1]=a[1]; pa[2]=a[2];
int *p=a[0]; /*объявление указателя на нулевой элемент нулевой строки массива а*/
/*вывод на экран элементов главной диагонали*/
for (i=0;i<9;i+=4)
Label1->Caption=Label1->Caption+*(p+i)+" ";
/*вывод на экран элементов первой строки*/
for (i=0; i<3; i++)
Label1->Caption=Label1->Caption+p[i]+" ";
/*вывод на экран первых элементов каждой строки матрицы*/
for (i=0; i<3; i++)
Label1->Caption=Label1->Caption+ *pa[i]+" ";
}
Сделаем некоторые пояснения для первого оператора цикла. Представим матрицу в виде одномерного массива, записанного по строкам:
a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]
Тогда элементы, стоящие на главной диагонали, занимают нулевое, четвертое и восьмое места, т.е. интервал между интересующими нас элементами равен четырем, поэтому переменная i изменяется с шагом 4. Соответственно с таким же шагом меняются адреса ячеек, содержимое которых выводится на экран.
Лабораторная работа № 7
Тема: Программирование задач обработки символьных данных в среде Си++Builder.
Цель работы: Знакомство с функциями и методами обработки строковых данных, при создании программ использовать компоненты вкладки Standard среды Си++Builder.
1 Порядок выполнения лабораторной работы:
1.1 Знакомство с теоретическим материалом, соответствующим теме лабораторной работы
1.2. Ответить на следующие вопросы:
Задание на строки
Группа А
1 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). Отпечатать все слова в столбец. |
2 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). Отпечатать через пробел первые две буквы всех слов строки. |
3 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). Отпечатать через пробел последние буквы всех слов строки. |
4 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). Отпечатать слова, число N символов в которых удовлетворяют условию:2 < N < 7. |
5 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). Найти первое слово, начинающееся и заканчивающееся буквой "И". |
6 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). Найти слово "ТЕКСТ", если такое слово есть, то отпечатать его номер в строке. Если такого слова нет, то сообщить об этом. |
7 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). В заданной символьной строке заменить все цифры на пробелы. |
8 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). В заданной символьной строке каждый пробел заменить тремя пробелами. |
9 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). Для заданной символьной строки найти частоту встречаемости буквы "Я" по формуле P = S1/S ,где S - количество символов в строке; S1 - количество букв "Я". |
10 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). Выделить третье слово и отпечатать строку, в которой это слово повторяется пять раз через пробел. |
11 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). Вывести одномерный массив, элементами которого являются длины слов строки. |
12 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). Первое слово отделить от остальной части строки десятью пробелами. |
13 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). Удалить из строки все пробелы. |
14 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). Найти и отпечатать в столбец все слова, состоящие из двух букв. |
15 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). Найти и отпечатать первое слово, состоящее из пяти букв, если такого слова в строке нет, то отпечатать пять звёздочек. |
16 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). В данной символьной строке выбрать и отпечатать в порядке их вхождения все цифры в виде одной строки. |
17 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). Отсортировать слова в порядке возрастания их длин. |
18 |
Дано слово из десяти букв. Для каждой буквы сформировать строку, в которой данная буква повторяется двадцать раз. |
19 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). Отпечатать заданную символьную строку задом наперёд. |
20 |
В символьной строке, содержащей не более 80 символов, каждые два соседних слова разделены одним пробелом, строка заканчивается символом точка("."). Отпечатать слово "Текст" столько раз, сколько оно встречается в данной строке. |
Группа В
1. |
Для данного текста исходной программы написать программу подсчёта частоты встречаемости арифметических операций +, -, *, /, div, mod. |
2. |
Для текста произвольной программы написать программу печати всех идентификаторов. |
3. |
Написать программу, которая из символьных строк s(1), s(2),..., s(n) и c(1), c(2), ... , c(m), (n >= m), формирует строку r(1), r(2), ... , r(n), где r(i)=s(i), если s(i)>c(i) или i > m , и r(i)=c(i) в остальных случаях. |
4. |
Написать программу, которая в столбец выводит все слова, входящие в заданную строку. |
5. |
Написать программу, преобразующую введенное c клавиатуры целое число типа longint в число, записанное русскими словами. |
6. |
В заданной строке найти M - число слов среди десяти, непосредственно следующих за первым словом, которые кончаются той же буквой, что и первое слово. |
7. |
Написать программу, которая определяет длину каждого слова в заданной строке и выводит слова наибольшей длины. |
8. |
Написать программу, определяющую в заданной строке слова, у которых совпадают первая и последняя буквы. |
9. |
Написать программу определения в заданной строке номера первого по порядку слова, которое короче своего предшественника, и числа вхождений в это слово заранее заданной буквы. |
10. |
Написать программу, которая в каждом слове строки, содержащем заданный слог, первое вхождение этого слога переставляет в начало слова. |
11. |
Написать программу, которая в заданной строке первое по порядку самое короткое слово заменяет на первое по порядку самое длинное слово. |
12. |
Выбрать в тексте первое по порядку слово с наибольшим числом вхождений в него заданной буквы и заменить на него все слова, не содержащие в себе этой буквы. Если эта буква не входит ни в одно слово, то текст оставить без изменений. |
13. |
В заданном тексте найти частоту встречаемости символа "К"и частоту встречаемости следующих друг за другом символов "А", "В"и "С". |
14. |
Найти число слов в тексте, в которые заранее заданная буква входит не менее двух раз. |
15. |
Найти R и Q - начало и конец самого длинного слова в тексте и L - число букв в этом слове. |
16. |
Найти R и Q - начало и конец слова, в котором заранее заданная буква входит наибольшее число раз, а также L - число вхождений этой буквы в такое слово. |
17. |
Все слова текста преобразовать по правилу: каждую из букв, предшествующих первому вхождению в данное слово заранее заданной буквы (или все буквы слова, если в него не входит эта буква) заменить другой заданной буквой. |
18. |
В каждом слове текста, содержащем не менее трех букв, поменять местами первую и последнюю буквы. |
19 |
Если самое длинное слово текста не является последним словом в тексте, то сделать его первым словом (сохранив относительный порядок расположения других слов в тексте). |
20. |
В тексте поменять местами слова с заранее заданными номерами M и N (длины слов различны |
Группа С
1 |
Задан текст из N предложений. В каждом предложении текста найти слова длина которых удовлетворяет условию 2 <=Ni<= 7 Результаты записать в строку с именем DLINA |
2 |
Даны арифметические выражения, записанные на языке ПАСКАЛЬ. Написать программу проверки правильности расстановки круглых скобок. В каждой строке записывается по одному выражению Весь текст завершается строкой с единственным словом " END ". |
3 |
Даны арифметические выражения. Написать программу проверки принадлежности символов строки к классу цифровых или буквенных. При выполнении условия напечатать номер символа, в противном случае - символ. |
4 |
Для данного текста исходной программы на языке ПАСКАЛЬ написать программу подсчета частоты встречаемости арифметических операций +, -, *, /, DIV, MOD. |
5 |
Для данного текста исходной программы на языке ПАСКАЛЬ написать программу печати идентификаторов, используемых в качестве меток (каждая метка стоит в начале строки и отделяется от остальной части строки двоеточием). |
6 |
Написать программу, которая из символьных строкS(1), S(2), ... , S(n) и C(1), C(2), ... , C(m), (n >= m), формирует строку R(1), R(2), ... , R(n), где R(i) = S(i), если S(i) > C(i) или i > m ,и R(i) = C(i) в остальных случаях |
7 |
Задан текст из N предложений. Найти в каждом предложении текста первое по порядку самое длинное и самое короткое слово и отпечатать их в столбец. |
8 |
В исходной строке каждую букву слова с номером N заменить на первую букву слова с номером М . |
9 |
В заданной строке найти M - число слов среди десяти, непосредственно следующих за первым словом, которые кончаются той же буквой, что и первое слово. |
10 |
Написать программу, которая определяет длину каждого слова в заданной строке и выводит слова наибольшей длины. |
11 |
Задан текст из N предложений. Написать программу, которая определяет в каждом предложении слова, у которых совпадают первая и последняя буквы и записать их в массив строк. |
12 |
Написать программу определения в заданной строке номера первого по порядку слова, которое короче своего предшественника, и числа вхождений в это слово заранее заданной буквы. |
13 |
На каждой странице - N предложений. На первой странице найти число слов в каждом предложении. На второй странице найти частоту встречаемости символа "A".На третьей странице найти в каждом предложении самое короткое слово и записать в строку TMIN. |
14 |
Написать программу, которая в заданной строке первое по порядку самое короткое слово заменяет на первое по порядку самое длинное слово. |
15 |
Выбрать в строке первое по порядку слово с наибольшим числом вхождений в него заданной буквы и заменить на него все слова, не содержащие в себе этой буквы. Если эта буква не входит ни в одно слово, то строку оставить без изменений. |
16 |
В заданном тексте найти частоту встречаемости символа "К" и частоту встречаемости следующих друг за другом символов "А", "В" и "С". |
17 |
Найти число слов в тексте, начинающихся и кончающихся буквой, код которой задан значением переменной А. |
18 |
Найти число слов в тексте, в которые заранее заданная буква входит не менее двух раз. |
19 |
Найти R и Q - начало и конец самого длинного слова в тексте и L - число букв в этом слове. |
20 |
Найти R и Q - начало и конец слова, в котором заранее заданная буква входит наибольшее число раз, а также L - число вхождений этой буквы в такое слово. |
21 |
Все слова текста преобразовать по правилу: каждую из букв, предшествующих первому вхождению в данное слово заранее заданной буквы (или все буквы слова, если в него не входит эта буква) заменить другой заданной буквой. |
22 |
В каждом слове текста, содержащем не менее трех букв, поменять местами первую и последнюю буквы. |
23 |
Если самое длинное слово текста не является последним словом в тексте, то сделать его первым словом (сохранив относительный порядок расположения других слов в тексте) |
24 |
В тексте поменять местами слова с заранее заданными номерами M и N ( длины слов различны ). |
25 |
Задан текст из N предложений. Найти в каждом предложении текста первое по порядку самое короткое слово. Сформировать строку из найденных слов и отсортировать слова этой строки по значению длины каждого слова. |
26 |
Задан текст из N предложений. Найти в каждом предложении текста первое по порядку самое длинное слово. Результат записать в строку с именем TMAX. |
27 |
Заданный текст преобразовать по правилу: - последнюю букву первого слова заменить на его первую букву; - у пяти слов, непосредственно следующих за N - ым словом, первую букву заменить буквой " F "; |
28 |
Задан текст из N предложений и слово, состоящее из пяти символов. Найти в каждом предложении текста слова, состоящие из пяти символов и заменить их на заданное слово. Определить номера найденных слов и зафиксировать их в матрице X[N..NC]. NC - максимально допустимое число слов в предложении. |
29 |
Задан текст из трех страниц. На каждой странице -N предложений. На второй странице найти самое короткое слово. На третьей странице найти частоту встречаемости символа "К". |
30 |
Задан текст из N предложений. Найти в каждом предложении текста первое по порядку самое длинное слово. Сформировать строку из найденных слов и отсортировать слова этой строки по значению кода первой буквы слова. |
31 |
Написать программу, которая в каждом слове строки, содержащем заданный слог, первое вхождение этого слога переставляет в начало слова. |
32 |
В последовательности алфавитно-цифровых символов цифры заменить на предшествующую им букву. |
