Задача 2 Урок 18
Primary tabs
У вас есть текстовый файл с информацией об итогах соревнований (каждая строка имеет формат: имя + произвольное число пробелов + балл 1 + произвольное число пробелов + балл 2):
Вася 16 485
Коля 17 555
Юра 18 61
..........
-- где:
слева указаны имена участников, а справа число баллов.
Первое число в каждой строке -- штрафные баллы набранные участниками, а второе число -- "положительные баллы", то есть если у нас есть строка:Vasya N M
где N -- число шрафных баллов, а M - число баллов положительных, то итоговая оценка Васи Z вычисляется как разность:
Z=M−N.Напишите программу, которая определяет победителя и его итоговый балл (прочитав данный файл построчно).
По возможности разбивайте код на процедуры и функции.
program lesson18_2; type myArr = array[1..10] of integer; procedure getData(s: string; var name: string; var ball: integer); var str1Ball, str2Ball: string; b: boolean; i, num1, num2: integer; begin b := true; str1Ball := ''; str2Ball := ''; for i := 1 to length(s) do if (s[i] >= '0') and (s[i] <= '9') then begin if b then str1Ball := str1Ball + s[i] else str2Ball := str2Ball + s[i]; if s[i + 1] = ' ' then b := false end else if s[i] <> ' ' then name := name + s[i]; val(str1Ball, num1); val(str2Ball, num2); ball := num2 - num1; end; function index(a: myArr): integer; var i, max, ind : integer; begin max := 0; for i := 1 to length(a) do if a[i] > max then begin max := a[i]; ind := i; end; result := ind; end; var f1: text; s, filename, name: string; strArr: array[1..10] of string; intArr: myArr; i, ball: integer; begin filename := 'D:\Pascal\Uroc18\tabl.txt'; assign(f1, filename); reset(f1); ball := 0; i := 1; while not eof(f1) do begin readln(f1, s); name := ''; getData(s, name, ball); strArr[i] := name; intArr[i] := ball; i := i + 1; if i > length(intArr) then break; end; i := index(intArr); writeln('winner: ', strArr[i], ' ', intArr[i]); readln(); end.
- Log in to post comments
- 1289 reads
vedro-compota
Sat, 09/11/2021 - 11:25
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)