Skip to content

Лабораторные работы по дисциплине "Информатика и Программирование" - ВолГУ

Notifications You must be signed in to change notification settings

kladezh/info-labs

Repository files navigation

Лабораторные работы


Семестр 1

Требования к подготовке:

Необходимы начальные знания о библиотеке стандартного ввода/вывода (подключаемый заголовочный файл – stdio.h) в части работы с целыми и вещественными числами. Знание циклов и указателей. Для вычисления математических операций использовать заголовочный файл math.h.

Требования к программе:

  1. Программа компилируется, запускается и выводит правильный результат.
  2. В программах организован понятный для пользователя ввод/вывод (при запросе исходных данных соответствующий запрос должен выводиться на экран на литературном русском или английском языке с соблюдением правил написания; все пробелы, знаки препинания и пр. должны быть на месте; использование транслита запрещено).
  3. Строка представляет из себя массив символов и имеет тип char*.
  4. Класс String использовать нельзя.
  5. Результат выполнения функции вывести на экран в функции main().
  6. Внутри функции обработки строки не должно быть использовано функций ввода или вывода. Вся работа с консолью должна находиться в функции main().
  7. Ваша функция не должна возвращать void.

Лабораторная 8 - Функции обработки текста

Задание №1

Пусть во входном потоке находится последовательность литер, заканчивающаяся точкой (кодировка ASCII):

Выяснить, есть ли среди символов этой последовательности символы, образующие слово char.

Задание №2

Пусть во входном потоке находится последовательность литер, заканчивающаяся точкой (кодировка ASCII). Вывести в выходной поток последовательность литер, измененную следующим образом:

Удалить все комбинации символов the;

Лабораторная 9 - Структуры

  1. Описать структуру с именем NOTE, содержащую следующие поля:
  • NAME - фамилия, имя;
  • TELE - номер телефона;
  • BDAY - день рождения (массив из трех чисел).
  1. Написать программу, выполняющую следующие действия:
  • Ввод с клавиатуры данных в массив BLOCKNOTE, состоящий из элементов типа NOTE; записи должны быть упорядочены по трем первым цифрам номера телефона;
  • Вывод на экран информации о человеке, чья фамилия введена с клавиатуры;
  • Если такого нет, выдать на дисплей соответствующее сообщение.

Семестр 3

Лабораторная 1

Общая часть заданий

Написать программу, демонстрирующую работу с объектами двух типов: Т1 и Т2, для чего создать систему соответствующих классов. Каждый объект должен иметь идентификатор (в виде произвольной строки символов) и одно или несколько полей для хранения состояния объекта (один класс является потомком другого). Клиенту (функции main()) должны быть доступны следующие основные операции (методы): создать объект, удалить объект, показать значение объекта и прочие дополнительные операции (зависят от варианта). Операции по созданию и удалению объектов инкапсулировать в классе Factory., Предусмотреть меню, позволяющее продемонстрировать заданные операции.

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

В таблице 1 и 2 перечислены возможные типы объектов и возможные дополнительные операции над ними. Здесь и далее в таблице рассматриваются только целые положительные числа.

Таблица 1. Перечень типов объектов

Класс Объект
SymbString Символьная строка (произвольная строка символов)
BinString Двоичная строка (изображение двоичного числа)
OctString Восьмеричная строка (изображение восьмеричного числа)
DecString Десятичная строка (изображение десятичного числа)
HexString Шестнадцатеричная строка (изображение шестнадцатеричного числа)

Таблица 2. Перечень дополнительных операций (методов)

Операция (метод) Описание
ShowBin() Показать изображение двоичного значения объекта
ShowOct() Показать изображение восьмеричного значения объекта
ShowDec() Показать изображение десятичного значения объекта
ShowHex() Показать изображение шестнадцатеричного значения объекта
operator+(T&, T&) Для объектов SymbString — конкатенация строк; для объектов прочих классов — сложение соответствующих численных значений с последующим преобразованием к типу Т
operator-(T&, T&) Для объектов SymbString — если s2 содержится как подстрока в s1, то результатом является строка, полученная из s1 удалением подстроки s2; в противном случае возвращается значение s1; для объектов прочих классов — вычитание соответствующих численных значений с последующим преобразованием к типу Т

Варианты

Номер T1 T2 Операция (метод)
9 SymbString HexString operator+(T&, T&)

Лабораторная 2

Требуется создать шаблон класса список геометрических фигур. Минимальная функциональность класса:

  • Добавление: в начало, в конец, в позицию по номеру
  • Удаление: из начала, из конца, по номеру
  • Получение объекта: из начала, из конца, по номеру
  • Операции (методы) по варианту

Перечень типов фигур:

Класс Объект
Triangle Треугольник
Square Квадрат
Rectangle Прямоугольник
Pentagon Пятиугольник
Circle Окружность

Фигуры задаются набором точек. (Окружность : координатой центра и радиусом).

Перечень дополнительных операций (методов):

Операция (метод) Описание
move() Переместить объект на плоскости
compareS(T& ob1, Т& оb2) Сравнить объекты ob1 и ob2 no площади
compareP(T& ob1, Т& оb2) Сравнить объекты ob1 и ob2 no периметру
compareC(T& ob1, Т& оb2) Сравнить объекты ob1 и ob2 no близости центра фигуры к началу координат

Варианты

Номер T1 T2 Операция (метод)
9 Triangle Pentagon move(); Найти наименьшую по периметру фигуру

Лабораторная 3

Использование контейнера string из библиотеки STL

Дан массив слов и подстрока. Удалить во всех словах массива все цифры, добавив в конец каждого слова столь символов '+', сколько цифр удалено из слова. Сформировать предложение из двух начальных символов тех слов, в которых заданная подстрока встречается более одного раза после 3-го символа.

Использование контейнера vector из библиотеки STL

Дан массив из N вещественных чисел. К каждому отрицательному элементу добавить минимальный положительный элемент. Сжать массив, удалив из него все элементы, кратные числу t. Освободившиеся в конце массива элементы заполнить количеством нулей в исходном массиве. Если элементы, расположенные за первым нулевым элементом, упорядочены в порядке возрастания, то найти сумму элементов массива, расположенных до последнего максимального элемента. Удалить из массива элементы, чей знак не совпадает со знаком минимального элемента. Отсортировать по убыванию часть массива между элементами с заданными индексами i1 и i2.

Лабораторная 4

Цель: Знакомство с базовыми понятиями среды Qt Creator, получение навыков создания нового проекта с визуальными компонентами, сохранения, запуска, размещения новых визуальных компонентов на форме.

Создание нового проекта, добавление пару лейблов и кнопок, впрочем ничего интересного.

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

Используя по необходимости элементы интерфейса QT из раздела Input Widgets ( Line Edit, Text Edit, …) реализовать по нажатию кнопки обработку входных текстовых данных по своему варианту :

  1. Даны три строки: S1, S2, S3. Заменить в строке S1 первое|последнее|все вхождения строки S2 на S3.

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

Используя класс QLinkedList реализовать программу с графическим интерфейсом для работы с массивом целых чисел.

  1. Написать программу, которая проверяет, находится ли введенное с клавиатуры число в массиве.

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

Дан текстовый файл, содержащий табличные данные. В пределах строки столбцы отделены символом табуляции. Используя элемент QTableWidget отобразить данные из файла. Реализовать пользовательский интерфейс добавления, изменения и удаления данных таблицы. Предусмотреть возможность сохранения изменений в файл.

  1. Сотрудники: ID, ФИО, паспортные данные, фотография, моб. телефоны, отдел, комната, раб. телефон.

Семестр 4

Лабораторная 1

Задание.

  1. Создать интерфейс приложения задачи предложенного варианта. Используя лейауты, удобно расположить элементы приложения Представить решение задачи и готовый исполняемый файл приложения.
  2. Добавить созданному приложению новую функциональность на основе событий. Создать события обработки «горячих клавиш» дублирующих функции кнопок, а при наведении курсора мыши на ячейку таблицы в компоненте ToolTip (всплывающая подсказка) должно отображаться ее текущее значение.

Варианты.

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

Лабораторная 2

Используя возможности QT (разработать удобный интерфейс), построить график указанной функции. Окно программы должно содержать поля для ввода коэффициентов функции. Предусмотреть проверку корректности ввода исходных данных.

y = k * sin(x + b)

Лабораторная 3

Одномерные массивы

В одномерном массиве, состоящем из п вещественных элементов, вычислить:

  • номер максимального по модулю элемента массива.
  • сумму элементов массива, расположенных после первого положительного элемента.
  • Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале [а, b], а потом - все остальные.

Двумерные массивы

Соседями элемента Aij в матрице назовем элементы Akl, где

i - 1 < k < i + 1, j - 1 < l < j + 1, (k, l) ≠ (i, j)

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

Найти сумму модулей элементов, расположенных выше главной диагонали.

Лабораторная 4

Написать программу, которая считывает текст из файла и выводит на экран только предложения, не содержащие запятых.

About

Лабораторные работы по дисциплине "Информатика и Программирование" - ВолГУ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published