Урок 18. Задача №2. Решение.
Primary tabs
У вас есть текстовый файл с информацией об итогах соревнований (каждая строка имеет формат: имя + произвольное число пробелов + балл 1 + произвольное число пробелов + балл 2):
Вася 16 485 Коля 17 555 Юра 18 61 ..........-- где:
слева указаны имена участников, а справа число баллов.
Первое число в каждой строке -- штрафные баллы набранные участниками, а второе число -- "положительные баллы", то есть если у нас есть строка:Vasya N Mгде N -- число штрафных баллов, а M - число баллов положительных, то итоговая оценка Васи Z вычисляется как разность:
Z = M − N.
Напишите программу, которая определяет победителя и его итоговый балл (прочитав данный файл построчно).
По возможности разбивайте код на процедуры и функции.
type ArrStr = array[1..3] of string; ArrInt = array[1..6] of integer; function Check_tmp(st: string; mas: ArrInt): ArrInt; var a: integer; begin if(st <> '') then begin val(st, a); mas[6] := a; end; result := mas; end; procedure defWin(arrI: ArrInt; arrS: ArrStr); var res1, res2, res3: integer; begin res1 := arrI[2] - arrI[1]; res2 := arrI[4] - arrI[3]; res3 := arrI[6] - arrI[5]; if(res1 > res2) and (res1 > res3) then writeln('And with result = ', res1, ' ', arrS[1], ' won ') else if(res2 > res3) then writeln('And with result = ', res2, ' ', arrS[2], ' won ') else writeln('And with result = ', res3, ' ', arrS[3], ' won '); end; var f1: text; conv, i, k, j: integer; key : boolean; tmp, tmpName, filename, s: string; strName: ArrStr; int_arr: ArrInt; begin filename := 'C:\Users\Win10\Documents\input.txt'; assign(f1, filename); reset(f1); while not eof(f1) do begin readln(f1, s); for i := 1 to length(s) do begin key := false; if(s[i] >= '0') and (s[i] <= '9') then tmp += s[i] else if(s[i] <> ' ') then tmpName += s[i] else key := true; if(key = true) and (tmp <> '') then begin val(tmp, conv); k += 1; int_arr[k] := conv; tmp := ''; end; end; j += 1; strName[j] := tmpName; tmpName := ''; end; int_arr := Check_tmp(tmp, int_arr); defWin(int_arr, strName); readln(); // Удержание консоль end.// Завершение программы
- Log in to post comments
- 1464 reads