Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаба 1

.docx
Скачиваний:
0
Добавлен:
15.03.2025
Размер:
65.86 Кб
Скачать

Министерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования

«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)

Кафедра комплексной информационной безопасности электронно- вычислительных систем (КИБЭВС)

Анализ задачи. Абстракция программ и данных.

Синтаксис языка программирования

Отчет по лабораторной работе №1

по дисциплине «Языки программирования»

Вариант №30

Студент гр. 723-1

_______

__.__.2025

Преподаватель каф. КИБЭВС

_______А.В. Куртукова

__.__.2025

Введение

Цель работы – знакомство с основными элементами языка программирования, расширенной формой записи Бэкуса-Наура для записи синтаксиса языка программирования.

Задание на лабораторную работу:

1. Изучить краткие теоретические сведения;

2. Получить вариант задания у преподавателя;

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

4. Декомпозировать программу на модули. Описать основные модули программы, их взаимосвязь;

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

6. Определить возможные ошибки, которые могут произойти при выполнении блоков программы;

7. Записать в простейшей форме синтаксис языка, позволяющего реализовать программу. Использовать для этого расширенную форму Бэкуса-Наура;

8. Привести пример программы с использованием синтаксиса разработанного языка программирования, реализующего основную функциональность по заданию;

9. Написать отчет и защитить у преподавателя.

Текст абстрактной программы:

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

  1. ОПИСАНИЕ ДАННЫХ ДЛЯ РАБОТЫ

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

Для этого обратимся к тексту абстрактной программы и проанализируем его. Результаты анализа текста программы приведены в таблице 1.1.

Таблица 1.1 – Результаты анализа текста абстрактной программы

Данные

Описание

Входные данные

Текстовый файл или строка текста;

Строковый тип данных;

Числовой тип данных.

Выходные данные

Диаграммы результатов;

Список статистических показателей;

Диапазон ограничен символами, поддерживаемыми в кодировке;

  1. ДЕКОМПОЗИЦИЯ ПРОГРАММЫ НА МОДУЛИ

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

Модуль 1: Сборка социологических данных в виде анкеты

  1. Наименование: Ввод социологических данных; Назначение: Получение данных

  2. Входные данные: Ссылка на файл с ответами на анкету, str ()

  3. Выходные данные: Текстовый файл

  4. Ошибки: Неправильно введенный путь до файла

Модуль 2: Обработка текстового файла

  1. Наименование: Обработка текстового файла; Назначение: Конвертирование данных в строковый формат

  2. Входные данные: Текстовый файл

  3. Выходные данные: Текстовый массив

  4. Ошибки: Пустой файл, ввод значений, не входящих в диапазон

Модуль 3: Анализатор обработанного файла

  1. Наименование: Анализатор обработанного файла; Назначение: Анализ файла

  2. Входные данные: Текстовый массив

  3. Выходные данные: Текстовый массив

  4. Ошибки: Ошибок не может возникнуть

Модуль 4: Прогнозирование изменений

  1. Наименование: Прогнозирование изменений; Назначение: Прогноз с помощью текстового файла

  2. Входные данные: Текстовый массив

  3. Выходные данные: Возможные варианты прогнозов: мнения или тренды

  4. Ошибки: Ошибок не может быть

Полная декомпозиция отображена в блок-схеме на рисунке 2.1.

Рисунок 2.1 – декомпозиция абстрактной программы

3 ЗАПИСЬ В ПРОСТЕЙШЕЙ ФОРМЕ СИНТАКСИСА ЯЗЫКА

Для выполнения всего функционала программы достаточно следующего синтаксиса.

program ::= {{input, white space}, {output, white space}, {assignment, white space}, {if }{cycle}},

cycle ::= identifier, white space

identifier ::= {{assignment, white space}, {condition, white space}, {input, white space}, {output, white space}}.

if ::= (number | identifier | list call | matrix call | string | “None”), conditional operator, (number | identifier | list call | matrix call | string | “None”), “:”, white space, ({{assignment, white space}, {output, white space}, {input, white space}}).

output ::= “print”, “(”, (identifier | string | number | math expression | matrix call | list call), {“,”, (identifier | string | number | math expression | matrix call | list call)}, “)”.

assignment ::= identifier, “=”, (identifier | string | number | math expression | matrix | matrix call | list | list call).

list call ::= identifier, “[”, ((digit, {digit}) | identifier), “]”.

list ::= “[“, (identifier | number | string), {“,”, (identifier | number | string)}, “]”.

input ::= identifier, “=”, “int(input())”.

digit ::= “0” | “1” | “2” | “3” | “4” | “5” | “6” | “7” | “8” | “9”. letter ::= “A” | “B” | “C” | “D” | “E” | “F” | “G” | “H” | “I” | “J” | “K” | “L” | “M” | “N” | “O” | “P” | “Q” | “R” | “S” | “T” | “U” | “V” | “W” | “X” | “Y” | “Z” | “a” | “b” | “c” | “d” | “e” | “f” | “g” | “h” | “i” | “g” | “k” | “l” | “m” | “n” | “o” | “p” | “q” | “r” | “s” | “t” | “u” | “v” | “w” | “x” | “y” | “z”.

white space ::= ?white space characters?.

all characters ::= ?all visible characters?.

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

Filename ::= "data.txt"

file_content ::= load_data(filename)

text_array ::= process_text(file_content)

if text_array == None:

print("Invalid data in file!")

exit()

else:

print("Processed data into string array")

analyze_data(text_array)

predict_changes(text_array)

Заключение

В ходе лабораторной работы была изучена расширенная форма записи Бекуса-Наура, записана простейшая синтаксическая форма для языка программирования, произведена декомпозиция программы на модули и приведена программа на данном языке.

Томск 2025

Соседние файлы в предмете Языки программирования