Задача 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
- 1637 reads
vedro-compota
Sat, 09/11/2021 - 11:25
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)