![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Описание результатов испытаний программы ⇐ ПредыдущаяСтр 4 из 4
В ходе испытаний (тестирования и контрольных примеров исполнения) программы решения задачи «Получение сведений о результативности футболистов» использовались тестовые файлы, тексты содержимого которых приведены в приложении 2 (программа создания и печати тестовых файлов приведены в приложении 3), а также запросы для разных вариантов решения задачи: 1) Введите минимальное количество голов: 7 2) Введите минимальное количество голов: 4 3) Введите минимальное количество голов: 1 4) Введите минимальное количество голов: -1 5) Введите минимальное количество голов: 13 6) Введите минимальное количество голов: аа После устранения ошибок в программе для указанных исходных данных (контрольных примеров) получены правильные результаты решения задачи (приложение 4), что свидетельствует о правильности разработанной программы.
Приложения Приложение 1 Исходный текст программы решения задачи «Получение сведений о результативности футболистов» Приложение 2 Тексты содержимого файлов Приложение 3 Текст программ создания и печати тестовых файлов Приложение 4 Контрольные примеры исполнения программы
Приложение 1. Исходный текст программы. Основная программа Program Resultat_futbolistov; uses u1, u2, u3, u4, u5, u6, u7, crt; Var q: st; I, t, l: integer; s: arr1; tab: arr; f, p: Boolean; a: kol_gol; b: name; c: komands; Begin clrscr; textcolor(15); Writeln (‘Добро пожаловать в базу данных результативности футболистов’); Writeln (‘У вас есть 5 попыток, чтобы ввести запрос’); input (q, i, f); if f=true then begin calculation (a, s, l); Search (i, l, s, tab, t, p); end; if p=true then begin NameSearch (b, t, tab); KomSearch (c, t, tab); Sort (tab, t); Output (tab, t); end; readln;
End.
Модуль «U1» Unit u1; interface uses u7, crt; Procedure input (quanp: st; var intquanp: integer; var f: boolean); Implementation Procedure input; Var f1, f2; boolean; I, attempt, err: integer; Begin attempt: =attempt+1; textcolor(15); Write (‘Введите минимальное количество голов: ’); textcolor(3); readln (quanp); textcolor (15); f1: =fasle; f2: =false; While (quanp> ’’) and (pos(‘ ‘, quanp)> 0) do delete (quanp, (pos(‘ ‘, quanp)), 1); if quanp=” then Begin textcolor(12); Writeln (‘Вы ничего не ввели. Попробуйте ввести запрос снова.’); textcolor(15); end else Begin i: =1; if quanp[i]=’-‘ then Begin f1: =true; i: =i+1; end; While i< =length(quanp) do Begin if (quanp[i]< ’0’) or (quanp[i]> ’9’) then f2: =true; i: =i+1; end; if (f1=true) and (f2=false) then Begin textcolor(12); Writeln (‘Значение не может быть отрицательным. Попробуйте ввести его снова.’); textcolor(15); end else if (f2=true) or ((f2=true) and (f1=true)) then Begin textcolor(12); Writeln (‘Запрос должен состоять только из цифр. Попробуйте ввести его снова); textcolor(15); end else f: =true; end; end; if f=true then Val(quanp, intquanp, err) else Begin textcolor(7); Writeln (‘Вы пытаетесь ввести некорректный запрос. Попытки закончились.’); Writeln (‘Для того, чтобы попробовать снова, перезапустите программу.’); end; end; end.
Модуль «U2» Unit u2; interface uses u7, crt; Procedure Calculation (x: kol_gol; var y: arr1; var c: integer); Procedure Search(intquanp, c: integer; y: arr1; var z_tablica: arr; var u: integer; var p: boolean); implementation Procedure Calculation; var goli: file of kol_gol; Begin assign(goli, adr_gol); reset(goli); read(goli, x); c: =1; y[c].allkol: =x.kol; y[c].numk: =x.numk; y[c].numf: =x.numf; While not Eof(goli) do Begin read(goli, x); y[c].allkol: =y[c].allkol+x.kol; if not (y[c].numk=x.numk) or not (y[c].numf=x.numf) then Begin c: =c+1; y[c].numk: =x.numk; y[c].numf: =x.numf; y[c].allkol: =y[c].allkol+x.kol; y[c-1].allkol: =y[c-1].allkol-x.kol; end; end; close(goli); end; Procedure Search; Var i, j: integer; Begin P: =true; u: =0; i: =1; j: =0; while i< =c do Begin if y[i].allkol> =intquanp then Begin u: =u+1; z_tablica[u].allkol: =y[i].allkol; z_tablica[u].numf: =y[i].numf; z_tablica[u].numk: =y[i].numk; end else j: =j+1; i: =i+1; end; if j=c then Begin p: =false; textcolor(12); Writeln(‘К сожалению, в списке нет футболистов, забивших столько голов’); textcolor(7); Wtireln(‘Для того, чтобы попробовать снова, перезапустите программу.’); end; end; end.
Модуль «U3» Unit U3; interface uses u7; procedure NameSearch (x: name; u; integer; var z_tablica: arr); implementation procedure NameSearch; var imena: file of name; i: integer; f1: boolean; Begin assign (imena, adr_name); reset (imena); while not Eof(imena) do begin read(imena, x); i: =0; f1: =false; while (f1=false) and (i< u) do Begin i: =i+1; if (z_tablica[i].numk=x.numk) and (z_tablica[i].numf=x.numf) then Begin f1: =true; z_tablica[i].namef: =x.namef; end; end; end; close(imena); end.
Модуль «U4» Unit u4; interface uses u7; Procedure KomSearch (x: komands; u: integer; var z_tablica: arr); implementation procedure KomSearch; var komandi: file of komads; i: integer; Begin assign (komandi, adr_komands); reset(komandi); while not Eof(komandi) do begin read(komandi, x); i: =0; while i< u do Begin i: =i+1; if z_tablica[i].numk=x.numk then Begin z_tablica[i].namekom: =x.namekom; end; end; end; close(komandi); end; end.
Модуль «U5» Unit U5; interface uses u7; Procedure Sort (var z_tablica: arr; u: integer); implementation Procedure Sort; var c: tablica; i, j: integer; Begin for i: =1 to u do for j: =i+1 to u do if z_tablica[i].allkol< z_tablica[j].allkol then Begin c: =z_tablica[j]; z_tablica[j]: =z_tablica[i]; z_tablica[i]: =c; end; end; end.
Модуль «U6» Unit U6; interface uses crt, u7; procedure output(z_tablica: arr; u: integer); implementation procedure output; var i: integer; Begin writeln; writeln; textcolor(14); writeln (‘Сведения о результативности футболистов’); writeln; writeln(‘╔ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ╦ ═ ═ ═ ═ ═ ═ ═ ═ ╦ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ╗ ’); writeln(‘║ Фамилия и инициалы║ Команда ║ Количество забитых голов ║ ’); writeln(‘╠ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ╬ ═ ═ ═ ═ ═ ═ ═ ═ ╬ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ╣ ’); for i: =1 to u do Begin writeln(‘║ ’, z_tablica[i].namef: 18, ’║ ’, z_tablica[i].namekom: 16, ’║ ’, z_tablica[i].allkol, ’║ ’); end; writeln(‘╚ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ╩ ═ ═ ═ ═ ═ ═ ═ ═ ╩ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ╝ ’); writeln; end; end.
Модуль «U7» Unit u7; interface const n=26; adr_gol=’F: \dosbox1\kursa4\kolgol.dat’; adr_name=’F: \dosbox1\kursa4\spisokfu.dat’; adr_komands=’F: \dosbox1\kursa4\spisokko.dat’; Type kol_gol=record dat: string[10]; numf: integer; numk: integer; kol: integer; end; obsh_kol=record numk: integer; numf: integer; allkol: integer; end; Name=record Namef: string[30]; numk: integer; numf: integer; end; Komands=record namekom: string[30]; numk: integer; end; Tablica=record namef: string[30]; namekom: string[30]; allkol: integer; numf: integer; numk: integer; end; st=string; arr1=array[1..n] of obsh_kol; arr=array[1..n] of tablica; implementation end.
Приложение 2. Тексты содержимого файлов
Тестовый файл «Сведения о голах»
Тестовый файл «Список футболистов»
Тестовый файл «Список команд»
Приложение 3. Тексты программ создания и печати файлов Создание тестового файла «Сведения о голах»:
Program create; uses crt; type kol_gol=record dat: string[10]; numf: integer; numk: integer; kol: integer; end; var goli: file of kol_gol; x: kol_gol; k: integer; Begin clrscr; k: =0; assign(goli, ’F: \dosbox1\kursa4\kolgol.dat’); rewrite(goli); while not (readkey=’*’) do with x do Begin k: =k+1; writeln(k); write(‘дата: ’); readln(dat); writeln(‘Введите код футболиста’); write(‘Номер команды: ’); readln(numk); write(‘Номер футболиста: ’); readln(numf); writeln(‘Введите количество забитых футболистом голов: ’)readln(kol); write(goli, x); end; close(imena); end.
Создание тестового файла «Список футболистов»:
Program create; uses crt; type name=record namef: string[30]; numf: integer; numk: integer; end; var imena: file of name; x: name; k: integer; Begin clrscr; k: =0; assign(imena, ’F: \dosbox1\kursa4\spisokfu.dat’); rewrite(imena); while not (readkey=’*’) do with x do Begin k: =k+1; writeln(k); writeln(‘Введите код футболиста’); write(‘Номер команды: ’); readln(numk); write(‘Номер футболиста: ’); readln(numf); writeln(‘Фамилия и инициалы: ’)readln(namef); write(imena, x); end; close(imena); end.
Создание тестового файла «Список команд»:
Program create; uses crt; type komands=record namekom: string[30]; numk: integer; end; var komandi: file of komands; x: komands; k: integer; Begin clrscr; k: =0; assign(komandi, ’F: \dosbox1\kursa4\spisokko.dat’); rewrite(komandi); while not (readkey=’*’) do with x do Begin k: =k+1; writeln(k); write(‘Номер команды: ’); readln(numk); writeln(‘Название команды: ’)readln(namekom); write(komandi, x); end; close(komandi); end.
Приложение 4. Контрольные примеры исполнения программы Пример 1. Запрос: Введите минимальное количество голов: 7; Результат:
Пример 2. Запрос: Введите минимальное количество голов: 4; Результат:
Пример 3. Запрос: Введите минимальное количество голов: 1; Результат:
Пример 4. Запрос: Введите минимальное количество голов: -1; Результат:
Пример 5. Запрос: Введите минимальное количество голов: 13; Результат:
Пример 6. Запрос: Введите минимальное количество голов: аа; Результат:
|