Задача 2 Урок 18
Primary tabs
У вас есть текстовый файл с информацией об итогах соревнований (каждая строка имеет формат: имя + произвольное число пробелов + балл 1 + произвольное число пробелов + балл 2):
Вася 16 485 Коля 17 555 Юра 18 61 ..........-- где:
слева указаны имена участников, а справа число баллов.
Первое число в каждой строке -- штрафные баллы набранные участниками, а второе число -- "положительные баллы", то есть если у нас есть строка:Vasya N Mгде N -- число шрафных баллов, а M - число баллов положительных, то итоговая оценка Васи Z вычисляется как разность:
Z=M−N.
Напишите программу, которая определяет победителя и его итоговый балл (прочитав данный файл построчно).
По возможности разбивайте код на процедуры и функции.
var i, k, c, id, Code, scoreInt,deScoreInt: integer; s, Name,scoreStr,deScoreStr: string; flag: boolean; nameArr : array[1..5] of string; scoreArr : array[1..5] of integer; f1:text; filename: string; procedure getData(s: string; var Name: string; var scoreStr: string); begin flag := false; // фолз - штрфные очки Name := ''; scoreStr := ''; // обнуление положительных баллов deScoreStr := ''; // обнуление штрафные баллы for i := 1 to length(s) do begin if((s[i] >= '0') and (s[i] <= '9') and (flag = false)) then begin deScoreStr := deScoreStr + s[i]; if(s[i+1] = ' ') then flag := true; end else if((s[i] >= '0') and (s[i] <= '9') and (flag)) then ScoreStr := ScoreStr + s[i] else if(s[i] <> ' ') then Name := Name + s[i]; end; Val(scoreStr, scoreInt, Code); Val(deScoreStr, deScoreInt, Code); scoreInt := scoreInt - deScoreInt; end; begin k:=0; // индексирует массив filename := 'C:\Users\Gomynkyl\AppData\Local\Temp\input.txt'; assign(f1, filename); reset(f1); while not eof(f1) do begin readln(f1, s); getData(s,Name,scoreStr); k:=k+1; nameArr[k] := Name; scoreArr[k] := scoreInt; end; // поиск победителя c := scoreArr[1]; for i := 1 to high(scoreArr) do begin if(scoreArr[i] > c) then begin c := scoreArr[i]; id := i; end; end; writeln('pobedil ', nameArr[id], ' c rezultom ', c); readln(); end.
- Log in to post comments
- 635 reads
vedro-compota
Sun, 10/03/2021 - 12:38
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)