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

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

.pdf
Скачиваний:
0
Добавлен:
17.06.2025
Размер:
312.34 Кб
Скачать

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

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

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

АНАЛИЗ ЗАДАЧИ. АБСТРАКЦИЯ ПРОГРАММ И ДАННЫХ. СИНТАКСИС ЯЗЫКА ПРОГРАММИРОВАНИЯ Отчет по лабораторной работе №1

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

Студент гр. 7х3-х

_______ хххххххх

_______

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

_______ хххххххх

_______

Томск 2025

Введение

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

Постановка задачи:

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

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

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

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

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

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

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

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

9.Написать отчет и защитить у преподавателя. Текст абстрактной программы:

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

2

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

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

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

Данные

Описание

 

 

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

Личные данные сотрудников;

 

Ввод с клавиатуры работника;

 

Запись экрана работника;

 

Дата и время.

 

 

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

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

 

Скриншоты.

 

 

Для входных данных будут подходящими следующие характеристики:

1.Личные данные сотрудников – строка; диапазон ограничен символами, поддерживаемыми в кодировке;

2.Ввод с клавиатуры работника – строка; диапазон ограничен символами, поддерживаемыми в кодировке;

3.Запись с экрана работника – видеофайл;

4.Дата и время – дата и время.

Для выходных данных будут подходящими следующие характеристики:

1.Список статистических показателей – текстовый массив; диапазон ограничен символами, поддерживаемыми в кодировке;

2.Скриншоты – графический файл.

3

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

Также после анализа абстрактной программы были описаны модули и их взаимодействия между собой.

Модуль 1:

1.Наименование: Сбор данных о работнике;

2.Входные данные: строка;

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

4.Ошибки: данные не подходящего типа; выход за диапазон границ вводимых символов; переполнение массива.

Модуль 2:

1.Наименование: Сбор данных с монитора работника;

2.Входные данные: видеофайл и выходные данные модуля 4;

3.Выходные данные: графический файл и текстовый массив;

4.Ошибки: данные не подходящего типа; переполнение массива.

Модуль 3:

1.Наименование: Сбор данных с клавиатуры работника;

2.Входные данные: строка и выходные данные модуля 4;

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

4.Ошибки: данные не подходящего типа; переполнение массива. Модуль 4:

1.Наименование: Счетчик времени;

2.Входные данные: дата и время;

3.Выходные данные: строка;

4.Ошибки: данные не подходящего типа; выход за диапазон.

Модуль 5:

1.Наименование: Анализ вводимых с клавиатуры работника данных;

2.Входные данные: выходные данные модуля 1,3;

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

4.Ошибки: данные не подходящего типа; переполнение массива.

4

Модуль 6:

1.Наименование: Анализ активности на рабочем столе работника;

2.Входные данные: выходные данные модуля 1,2;

3.Выходные данные: графический файл и текстовый массив;

4.Ошибки: данные не подходящего типа; переполнение массива.

На рисунке 2.1 представлена декомпозиция программы по модулям в

виде блок схемы.

Рисунок 2.1 – Декомпозиция

5

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

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

program ::= 'PROGRAM', white space, program name, white space 'BEGIN', white space,

{body, '';'', white space}, 'END'.

body ::= {assignment | input | output | function}.

program name ::= alphabetic character, { alphabetic character | digit }. input ::= ''input'', '('', [string | number], '')''.

assignment ::= identifier, '':='', (function | string | number).

output ::= ''output'', ''('', {identifier | function | string | number, '',''}, '')''. function ::= identifier, ''('', {identifier | string | number, '',''}, '')''. identifier ::= alphabetic character, { alphabetic character | digit }.

alphabetic character ::= "а" | "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" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" | "а" | "б" | "в" | "г" | "д" | "е" |"ё" | "ж" | "з" | "и" | "й" | "к" | "л" | "м" | "н" | "о" | "п" | "р" | "с" | "т" | "у" | "ф" | "х" | "ц" | "ч" | "ш" | "щ" | "ъ" | "ы" | "ь" | "э" | "ю" | "я" | "А" | "Б" | "В" | "Г" | "Д" | "Е" |"Ё" | "Ж" | "З" | "И" | "Й" | "К" | "Л" | "М" | "Н" | "О" | "П" | "Р" | "С" | "Т" | "У" | "Ф" | "Х" | "Ц" | "Ч" | "Ш" | "Щ" | "Ъ" | "Ы" | "Ь" | "Э" | "Ю" | "Я".

digit ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9". string ::= '''', {all characters - ''''}, ''''.

number ::= [''-''], digit, {digit}.

white space ::= ? white space characters ?. all characters ::= ? all visible characters ?.

Пример программы, написанной с использованием данного синтаксиса: PROGRAM EmployeeDataAnalysis

6

BEGIN

output(''Введите имя работника:''); employeeName := input();

output(''Введите зарплату работника без вычета налогов и штрафов:''); preTaxSalary := input();

violations := AnalyzeScreenAndKeylogger(employeeName);

output(''Сотрудник: '',employeeName); output(''Базовая зарплата: '',preTaxSalary); output(''Количество нарушений: '',violations);

output(''Зарплата с учетом штрафов и налогов: '',CalculateSalary()); output(''Эффективность работника: '',CalculateEfficiency());

END

7

Заключение

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

8