Комбинированный тип переменных – основа баз данных.. Лабораторная работа 7 по дисциплине Основы алгоритмизации и программирования. Тема Комбинированный тип переменных основа баз данных
Скачать 24.52 Kb.
|
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ государственное БЮДЖЕТНОЕ образовательное учреждение высшего образования «НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» __________________________________________________________________ Кафедра газодинамических импульсных устройств Лабораторная работа №7 по дисциплине: Основы алгоритмизации и программирования. Тема: Комбинированный тип переменных – основа баз данных. Выполнил:Проверил: Студент гр. МА-11 , ФЛА доцент к.т.н. Пахоруков Е.А. Поляков Юрий Олегович «30» мая 2021 г.«___» ______ 2021 г. _________________ _________________ (подпись) (подпись) Новосибирск 2022 Цель работы• Ознакомиться со сложным комбинированным типом данных – запись (record). • Изучить простейшие функции базы данных. • Научиться использовать комбинированный тип для организации простейших баз данных. Задача.Написать программу, реализующую небольшую базу данных в виде одномерного массива записей: 1. Ввод c клавиатуры элементов базы данных. 2. Вывод содержимого базы данных на дисплей. Дополнить программу функцией выборки данных по критерию, заданному преподавателем. Дополнить программу функцией сортировки базы данных по способу соответствующему вашему варианту (Расположить записи в порядке убывания числа игр) Формат файла для программы: Страна Команда Количество игр (целое число) Количество очков (целое число) Место (целое число) (пропуск для следующего участника) Код программы: program lab8_1; const max_data = 200; //максимальное кол-во данных type idx_data = 1..max_data; Game = record Country : string; Team : string; Num : integer; //кол-во игр Point: integer; Place : integer; end; db = array[idx_data] of Game; var output_file: string; data: db; i: idx_data; //подпрограммы ///Процедура ввода данных пользователем. Запрашивает массив, в который вносить данные и количество строчек. Function read_file (var data:db; name:string ): idx_data; var F:text; i:idx_data; begin Assign (F, name); Reset(F); i:=0; while not(eof(F)) do begin i:=i+1; with data[i] do begin readln(F, Country); readln(F, Team); readln(F, Num); readln(F, Point); readln(F, Place); readln(F); end; end; Result:= i; end; ///Процедура ввода данных пользователем. Запрашивает массив, в который вносить данные и количество строчек. Procedure input_data (var data:db; const i:idx_data); var j: idx_data; begin begin for j:=1 to i do begin write ('Введите страну участника: '); readln(data[j].Country); write ('Введите команду участника: ');readln(data[j].Team); write ('Введите количество игр участника: ');readln(data[j].Num); write ('Введите количество очков участника: ');readln(data[j].Point); write ('Введите место участника: ');readln(data[j].Place); end; end; end; ///Процедура вывода данных в консоль. Запрашивает массив на вывод и количество элементов массива Procedure output_data (data:db; const i:idx_data); var j: idx_data; begin for j:=1 to i do begin with data[j] do begin writeln(j,': Страна ', Country, ', Команда ', Team, ', Количество игр ', Num , ', Количество очков ', Point, ', Место ', Place); end; end; end; ///Процедура сортировки базы данных. Запрашивает массив на сортировку и количество элементов в нём. Procedure process_data (var data:db; const i:idx_data); var j, jj: idx_data; temp, min: integer; begin for j:=1 to i do begin for jj:=j to i-1 do begin if data[j].Num < data[jj+1].Num then begin temp:=data[j].Num; data[j].Num:=data[jj+1].Num; data[jj+1].Num:=temp; end; end; end; end; //основное тело begin output_file:= 'input_8.txt'; writeln('Чтение из файла или ввод данных? (1 или 0)'); readln(i); case i of 1: i:= read_file(data, 'input_8.txt'); 0: begin i:=2; input_data (data, i); end; end; output_data (data, i); writeln('Массив после обработки'); process_data(data, i); output_data (data, i); end. |