Задача 2 Урок 20
Primary tabs
У вас есть текстовый файл с информацией об итогах соревнований (каждая строка имеет формат: имя + произвольное число пробелов + балл 1 + произвольное число пробелов + балл 2):
Вася 16 485
Коля 17 555
Юра 18 61
..........-- где:
слева указаны имена участников, а справа число баллов.
Первое число в каждой строке -- штрафные баллы набранные участниками, а второе число -- "положительные баллы", то есть если у нас есть строка:Vasya N M
где N
-- число шрафных баллов, а M - число баллов положительных, то итоговая оценка Васи Z вычисляется как разность:
Z=M−N.Напишите программу, которая определяет победителя и его итоговый балл (прочитав данный файл построчно).
var f:text; s,name,xpros,xcons,win:string; k,i,j,t,l,pros,cons,max:integer; im:array [1..3] of string; bal:array [1..3] of integer; begin name:='C:\Users\test\Desktop\TraliVali\file.txt'; assign(f,name); reset(f); j:=1; while not eof(f) do begin readln(f, s); k:=0; for i:=1 to length(s) do begin if (s[i]>='0') and (s[i]<='9') then begin k+=1; if k=1 then t:=0; if t>k then xpros+=s[i] else xcons+=s[i]; end else if s[i]<>' ' then im[j]+=s[i]; t+=1; end; val(xcons,cons,l); val(xpros,pros,l); bal[j]:=pros-cons; j+=1; xpros:='0'; xcons:='0'; end; max:=bal[1]; win:=im[1]; for j:=2 to high (bal) do if bal[j]>max then begin max:=bal[j]; win:=im[j]; end; writeln(win,' ',max); readln(); end.
- Log in to post comments
- 231 reads