БрГУ, программирование на языке Pascal (лабораторные работы №5-8)
Узнать стоимость этой работы
03.02.2026, 11:07

Лабораторная работа №5

Символы и строки. Файлы

Задание №1 по вариантам (Символы и их коды. Формирование строк):

1. Дана непустая строка S и целое число N (> 0). Вывести строку, содержащую символы строки S, между которыми вставлено по N символов «*» (звездочка).

2. Дана непустая строка S. Вывести строку, содержащую символы строки S, между которыми вставлено по одному пробелу.

3. Дана строка. Вывести строку, содержащую те же символы, но расположенные в обратном порядке.

4. Дано четное число N (>0) и символы Ci и C2. Вывести строку длины N, которая состоит из чередующихся символов C1 и C2, начиная с Ci.

5. Дано целое число N (>0) и символ C. Вывести строку длины N, которая состоит из символов C.

6. Дана непустая строка. Вывести коды ее первого и последнего символа.

7. Дано целое число N (1 < N < 26). Вывести N последних строчных (то есть маленьких) букв латинского алфавита в обратном порядке (начиная с буквы «z»).

8. Дано целое число N (1 < N < 26). Вывести N первых прописных (то есть заглавных) букв латинского алфавита.

9. Дан символ C. Вывести два символа, первый из которых предшествует символу C в кодовой таблице, а второй следует за символом C.

10. Дано целое число N (32 < N < 126). Вывести символ с кодом, равным N.

Задание №2 по вариантам (Посимвольный анализ и преобразование строк):

1. Дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа.

2. Дано целое положительное число. Вывести символы, изображающие цифры этого числа (в порядке справа налево).

3. Дано целое положительное число. Вывести символы, изображающие цифры этого числа (в порядке слева направо).

4. Дана строка. Если она представляет собой запись целого числа, то вывести 1, если вещественного (с дробной частью) — вывести 2; если строку нельзя преобразовать в число, то вывести 0. Считать, что дробная часть вещественного числа отделяется от его целой части десятичной точкой «.».

5. Дана строка. Преобразовать в ней все строчные буквы (как латинские, так и русские) в прописные, а прописные — в строчные.

6. Дана строка. Преобразовать в ней все строчные буквы (как латинские, так и русские) в прописные.

7. Дана строка. Преобразовать в ней все прописные латинские буквы в строчные.

8. Дана строка. Подсчитать общее количество содержащихся в ней строчных латинских и русских букв.

9. Дана строка. Подсчитать количество содержащихся в ней прописных латинских букв.

10. Дана строка. Подсчитать количество содержащихся в ней цифр.

Задание №3 по вариантам (Обработка строк с помощью стандартных функций):

В заданиях можно считать, что исходная строка не содержит перекрывающихся вхождений требуемых подстрок.

1. Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0. Если совпадающих подстрок нет, то вывести строку S без изменений.

2. Даны строки S и S0. Удалить из строки S последнюю подстроку, совпадающую с S0. Если совпадающих подстрок нет, то вывести строку S без изменений.

3. Даны строки S и S0. Удалить из строки S первую подстроку, совпадающую с S0. Если совпадающих подстрок нет, то вывести строку S без изменений.

4. Даны строки S и S0. Найти количество вхождений строки S0 в строку S.

5. Даны строки S и S0. Проверить, содержится ли строка S0 в строке S. Если содержится, то вывести TRUE, если не содержится, то вывести FALSE.

6. Дан символ C и строки S, S0. После каждого вхождения символа C в строку S вставить строку S0.

7. Дан символ C и строки S, So. Перед каждым вхождением символа C в строку S вставить строку S0.

8. Дан символ C и строка S. Удвоить каждое вхождение символа C в строку S.

9. Даны целые положительные числа N1 и N2 и строки S1 и S2. Получить из этих строк новую строку, содержащую первые N1 символов строки S1 и последние N2 символов строки S2 (в указанном порядке).

10. Дано целое число N (>0) и строка S. Преобразовать строку S в строку длины N следующим образом: если длина строки S больше N, то отбросить первые символы, если длина строки S меньше N, то в ее начало добавить символы «.» (точка).

Задание №4 по вариантам (Анализ и преобразование слов в строке):

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

1. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним пробелом и расположенные в алфавитном порядке.

2. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним пробелом и расположенные в обратном порядке.

3. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Преобразовать каждое слово в строке, заменив в нем все предыдущие вхождения его последней буквы на символ «.» (точка). Например, слово «МИНИМУМ» надо преобразовать в «.ИНИ.УМ». Количество пробелов между словами не изменять.

4. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Преобразовать каждое слово в строке, заменив в нем все последующие вхождения его первой буквы на символ «.» (точка). Например, слово «МИНИМУМ» надо преобразовать в «МИНИ.У». Количество пробелов между словами не изменять.

5. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним символом «.» (точка). В конце строки точку не ставить.

6. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Найти длину самого длинного слова.

7. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Найти длину самого короткого слова.

8. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество слов, которые содержат ровно три буквы «А».

9. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество слов, которые содержат хотя бы одну букву «А».

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

Задание №5 по вариантам (Основные операции с текстовыми файлами):

1. Дано имя файла и целое число N (0 < N < 27). Создать текстовый файл с указанным именем и записать в него N строк: первая строка должна содержать строчную (то есть маленькую) латинскую букву «a», вторая — буквы «ab», третья — буквы «abc» и т. д.; последняя строка должна содержать N начальных строчных латинских букв в алфавитном порядке.

2. Дан текстовый файл. Вывести количество содержащихся в нем символов и строк (маркеры концов строк EOLN и конца файла EOF при подсчете количества символов не учитывать).

3. Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла.

4. Даны два текстовых файла. Добавить в начало первого файла содержимое второго файла.

5. Дано целое число K и текстовый файл. Вставить пустую строку после строки файла с номером K. Если строки с таким номером нет, то оставить файл без изменений.

6. Дан текстовый файл. Продублировать в нем все пустые строки.

7. Дано имя файла и целое число N (0 < N < 27). Создать текстовый файл с указанным именем и записать в него N строк длины N; строка с номером K (K = 1,...,N) должна содержать K начальных прописных (то есть заглавных) латинских букв, дополненных справа символами «*» (звездочка). Например, для N = 4 файл должен содержать строки «A***», «AB**», «ABC*», «ABCD».

8. Дана строка S и текстовый файл. Добавить строку S в конец файла.

9. Дана строка S и текстовый файл. Добавить строку S в начало файла.

10. Дано целое число K и текстовый файл. Вставить пустую строку перед строкой файла с номером K. Если строки с таким номером нет, то оставить файл без изменений.

Задание №6 по вариантам (Анализ и форматирование текста):

1. Дано целое число K и текстовый файл. Удалить из файла абзац с номером K (абзацы выделяются с помощью красной строки, 5 пробелов). Пустые строки между абзацами не учитывать и не удалять. Если абзац с данным номером отсутствует, то оставить файл без изменений.

2. Дан текстовый файл. Вывести первое слово текста наибольшей длины. Словом считать набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки.

3. Дано целое число K и текстовый файл. Создать строковый файл и записать в него все слова длины K из исходного файла. Словом считать набор символов, не содержащий пробелов, знаков препинания и ограниченный пробелами, знаками препинания или началом/концом строки. Если исходный файл не содержит слов длины K, то оставить результирующий файл пустым.

4. Дан символ C строчная (маленькая) русская буква и текстовый файл. Создать строковый файл и записать в него все слова из исходного файла, содержащие хотя бы одну букву C (прописную или строчную). Словом считать набор символов, не содержащий пробелов, знаков препинания и ограниченный пробелами, знаками препинания или началом/концом строки. Если исходный файл не содержит подходящих слов, то оставить результирующий файл пустым.

5. Дан текстовый файл, содержащий текст, выровненный по левому краю. Выровнять текст по центру, добавив в начало каждой непустой строки нужное количество пробелов (ширину текста считать равной 50). Строки нечетной длины перед центрированием дополнять слева пробелом.

6. Дан текстовый файл. Найти количество абзацев в тексте, если первая строка каждого абзаца начинается с 5 пробелов («красная строка»). Пустые строки между абзацами не учитывать.

7. Дан текстовый файл. Абзацы выделяются в нем с помощью красной строки, 5 пробелов, а пустых строк нет. Вставить между соседними абзацами по одной пустой строке (в начало и конец файла пустые строки не добавлять).

8. Дан текстовый файл. Вывести последнее слово текста наименьшей длины. Словом считать набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки.

9. Дан символ C прописная (заглавная) русская буква и текстовый файл. Создать строковый файл и записать в него все слова из исходного файла, начинающиеся на эту букву (прописную или строчную). Словом считать набор символов, не содержащий пробелов, знаков препинания и ограниченный пробелами, знаками препинания или началом/концом строки. Если исходный файл не содержит подходящих слов, то оставить результирующий файл пустым.

10. Дан текстовый файл, содержащий текст, выровненный по левому краю. Выровнять текст по правому краю, добавив в начало каждой непустой строки нужное количество пробелов (ширину текста считать равной 50).

 

Лабораторная работа №6

Пользовательские типы данных

Задание №1 по вариантам (Перечисляемый тип):

Определить среднюю зарплату за первое полугодие и среднюю зарплату за год.

Описание переменных:

months - перечисляемый тип;

month - очередной месяц;

hyear1, hyear2 - суммарный доход за 1 и 2 полугодия;

salary - зарплата в очередном месяце; av1 - средняя зарплата за первое полугодие; av2 - средняя зарплата за год.

Алгоритм решения задачи:

1. В цикле for переменной month по-порядку присваиваются все значения типа months.

for month:=Jan to Dec do begin

2. Считывается значение зарплаты в очередном месяце.

3. Если месяц принадлежит первому полугодию, то значение добавляется к первой сумме.

4. Если месяц принадлежит второму полугодию, то значение добавляется ко второй сумме.

5. По завершении цикла for вычисляются средние значения за полгода и год и выводятся на экран.

Задание №2 (Множества):

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

Описание переменных:

str строка, подлежащая проверке; вводится пользователем;

flag переменная-флаг для хранения информации о том, корректна строка-ID или нет.

flag: boolean;

Тип и константы:

t_chs множество всех возможных символов;

lett множество, содержащее английские буквы и знак подчеркивания;

num множество, содержащее цифры.

Алгоритм решения задачи:

1. Если первый символ строки не принадлежит множеству lett, то flag устанавливается в false.

flag := false

str[1] in lett возвращает false, если символ не принадлежит множеству.

if not (str[1] in lett)…

Получается выражение not false, которое дает true, и ветка if выполняется. Если символ принадлежит lett, то выражение str[1] возвращает true, отрицание которого в свою очередь дает false.)

2. Иначе проверяем все символы строки, начиная со второго, на принадлежность объединению множеств lett и num.

if not (str[i] in lett+num)

Как только встречается символ, который не принадлежит данному объединению, то flag устанавливается в значение false и осуществляется прерывание цикла (break).

3. Если переменная flag имеет значение true, то выводится сообщение о корректном ID, иначе о некорректном.

Задание №3 по вариантам (Записи):

1. Опишите запись с именем типа Systema, содержащую информацию о планетах солнечной системы: номер планеты по удалению от Солнца (тип integer); название планеты (тип string); объем (real); диаметр (real); удаленность от Земли (real). Переменную, определяющую запись, назовите Planeta.

2. Опишите запись с именем типа Data, содержащую информацию о средней температуре в хранилище за 30 дней: номер месяца (тип integer); температура (тип real). Переменную, определяющую запись, назовите zamer. Без помощи with присвойте начальное значение: месяц июль и температура для первого дня 9,5.

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

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

5. Опишите, используя структуру записи, вступительные экзамены, на которых абитуриенты сдавали три экзамена, а для поступления надо было набрать 12 баллов. Составьте программу, считывающую с клавиатуры результаты всех вступительных экзаменов и выводящую на экран следующую информацию: список абитуриентов, сдавших все три экзамена на 5; список абитуриентов, потерпевших неудачу на экзаменах; список абитуриентов, зачисленных в институт.

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

7. Опишите, используя структуру записи, класс или студенческую группу (фамилия, инициалы, дата рождения, месяц рождения, год рождения). Составьте программу, считывающую с клавиатуры данные об учащихся класса и выводящую на экран данные о днях рождения учащихся по месяцам.

8. В справочной службе аэропорта хранится расписание вылета самолетов на следующие сутки. Для каждого рейса указаны его номер, тип самолета, пункт назначения, время вылета. Определите все номера рейсов, типы самолетов и время их вылета для заданного пункта назначения.

9. У администратора железнодорожных касс хранится информация о свободных местах в поездах по всем направлениям на ближайшую неделю. Данная информация представлена в следующем виде: дата выезда, конечный пункт назначения, время отправления, число свободных купейных мест, число свободных плацкартных мест. Оргкомитет конференции обращается к администратору с просьбой зарезервировать 50 купейных мест до Москвы на субботу. При этом время отправления поезда должно быть не позднее 10 часов вечера. Выведите на экран время отправления или сообщение о невозможности выполнить заказ в полном объеме.

10. В радиоателье хранятся квитанции о сданной в ремонт радиоаппаратуре. Каждая квитанция содержит следующую информацию: наименование группы изделий (телевизор, радиоприемник и т. п.), марка изделия, дата приемки в ремонт, состояние готовности заказа (выполнен, не выполнен). Для директора ателье необходимо выдать информацию о состоянии заказов на текущие сутки по группам изделий.

11. В библиотеке имеется список книг. Каждая запись этого списка содержит фамилии авторов, название книги, год издания. Определите, имеются ли в данном списке книги, в названии которых встречается некоторое ключевое слово (например, Pascal). Если такие книги представлены, то выведите на экран фамилии авторов, название и год издания этих книг. Предусмотрите ввод ключевого слова с клавиатуры.

12.В магазине имеется список поступивших в продажу автомобилей. Каждая запись этого списка содержит марку автомобиля и его параметры: стоимость, расход бензина на 100 км, надежность (число лет безотказной работы), комфортность (отличная, хорошая, удовлетворительная). Покупатель в свою очередь имеет ряд требований по каждому из этих параметров. Эти требования задаются в виде некоторого интервала (например, стоимость 3...6 тыс. долл.; расход бензина – 410 л на 100 км). Выведите на печать перечень автомобилей, удовлетворяющих требованиям покупателя. Предусмотрите ввод требований покупателя с клавиатуры.

Задание №4 по четным или нет вариантам (Записи):

1. Описать тип TDate запись с полями целого типа Day (день), Month (месяц) и Year (год) и функцию LeapYear(D) с параметром типа TDate, которая возвращает 1, если год в дате D является високосным, и 0 в противном случае. Вывести значение функции LeapYear для пяти данных дат. Високосным считается год, делящийся на 4, за исключением тех годов, которые делятся на 100 и не делятся на 400.

2. Описать тип TPoint запись с полями вещественного типа X и Y (координаты точки на плоскости) и функцию Leng(A, B) вещественного типа, находящую длину отрезка AB на плоскости по координатам его концов:

(A и B параметры типа TPoint). С помощью этой функции найти длины отрезков AB, AC, AD, если даны координаты точек A, B, C, D.

 

Лабораторная работа №7

Динамические структуры данных

Задание №1 по вариантам (Односвязные списки):

Решите задачи Задания № 3 лабораторной работы № 6 «Пользовательские типы данных» с помощью односвязных списков.

Задание №2 по вариантам (Указатели):

1. Реализуйте с помощью указателей работу стека.

2. Реализуйте с помощью указателей работу очереди.

Стек реализует схему LIFO (Last In, First Out – последний пришел, первый вышел). Стек можно представить как стопку тарелок. Если положить тарелку на верх стопки, то мы будем иметь доступ только к этой тарелки. Реализовать стек достаточно просто – нужен массив и указатель на верхушку стека. Стек должен поддерживать 2 операции: push(x) – добавить x в стек, и pop() – извлечь верхушку из стека.

Односторонняя очередь реализует схему FIFO (первый пришел, первый ушел). Для реализации очереди нужно помимо массива с данными 2 указателя (на голову и хвост). Хвост указывает на конец очереди, а голова на начало.

 

Задание №3 по вариантам (Динамические массивы):

1. Инициализировать массив строк размерностью n (n вводится пользователем). Сохранить массив в файл.

2. Инициализировать массив строк значениями из файла (см. задачу 1).

 

Лабораторная работа №8

Объекты

Задание №1 по вариантам:

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

1) шахматные фигуры;

2) геометрические фигуры;

3) вычислительная техника;

4) участники разработки программного средства: например, человек, заказчик, разработчик, контролер, пользователь;

5) состав персонала предприятия: например, руководитель, менеджеры, исполнители, рабочие;

6) мир животных;

7) мир птиц;

8) мир рыб;

9) мир простейших организмов;

10) документы: например, текстовые, аудио, видео.



Узнать стоимость этой работы



АЛФАВИТНЫЙ УКАЗАТЕЛЬ ПО ВУЗАМ
Найти свою работу на сайте
АНАЛИЗ ХОЗЯЙСТВЕННОЙ ДЕЯТЕЛЬНОСТИ
Контрольные, курсовые, дипломы из разных ВУЗов
БУХГАЛТЕРСКИЙ УЧЕТ, АНАЛИЗ И АУДИТ
Контрольные, курсовые, дипломы из разных ВУЗов
ВЫСШАЯ МАТЕМАТИКА
Контрольные работы из разных ВУЗов
МЕНЕДЖМЕНТ И МАРКЕТИНГ
Контрольные, курсовые, дипломы из разных ВУЗов
МЕТОДЫ ОПТИМАЛЬНЫХ РЕШЕНИЙ, ТЕОРИЯ ИГР
Контрольные, курсовые, рефераты, тесты из разных ВУЗов
ПЛАНИРОВАНИЕ И ПРОГНОЗИРОВАНИЕ
Контрольные, курсовые, рефераты, тесты из разных ВУЗов
СТАТИСТИКА
Контрольные, курсовые, рефераты, тесты из разных ВУЗов
ТЕОРИЯ ВЕРОЯТНОСТЕЙ И МАТ. СТАТИСТИКА
Контрольные работы из разных ВУЗов
ФИНАНСЫ, ДЕНЕЖНОЕ ОБРАЩЕНИЕ И КРЕДИТ
Контрольные, курсовые, дипломы из разных ВУЗов
ЭКОНОМЕТРИКА
Контрольные, курсовые, рефераты, тесты из разных ВУЗов
ЭКОНОМИКА
Контрольные, курсовые, дипломы из разных ВУЗов
ЭКОНОМИКА ПРЕДПРИЯТИЯ, ОТРАСЛИ
Контрольные, курсовые, дипломы из разных ВУЗов
ГУМАНИТАРНЫЕ ДИСЦИПЛИНЫ
Контрольные, курсовые, дипломы из разных ВУЗов
ДРУГИЕ ЭКОНОМИЧЕСКИЕ ДИСЦИПЛИНЫ
Контрольные, курсовые, дипломы из разных ВУЗов
ЕСТЕСТВЕННЫЕ ДИСЦИПЛИНЫ
Контрольные, курсовые, дипломы из разных ВУЗов
ПРАВОВЫЕ ДИСЦИПЛИНЫ
Контрольные, курсовые, дипломы из разных ВУЗов
ТЕХНИЧЕСКИЕ ДИСЦИПЛИНЫ
Контрольные, курсовые, дипломы из разных ВУЗов
РАБОТЫ, ВЫПОЛНЕННЫЕ НАШИМИ АВТОРАМИ
Контрольные, курсовые работы
ОНЛАЙН ТЕСТЫ
ВМ, ТВ и МС, статистика, мат. методы, эконометрика