Помогите плиз!!!!!!!! Нада составить программу опрделения по данным из таблицы результатов участников лотерии, упорядоченных по количеству угаданных чисел))))))
ZeroQ
11.03.2007 17:18
таблица находится в текстовом файле Первая стока таблицы содержит пять полей числовог типа длиной по два символа - результаты тиража. Каждая из следующих строк таблицы содержит по шестьполей. Перове из них - символьного типа, содержит ФИО участника тиража, длина поля 30 символов. Следующие пять полей - числового типа, содержат числа, выбранные участником. Длина каждого из этих полей - по два символа. ПОМОИТЕ ПОЖАЛУЙСТА!!!!!!!!!!!!!!!!!!!!
volvo
11.03.2007 17:56
Смотри:
var
n_of: integer;
arr_of: array[1 .. 6] of integer;
function count_match(const X, player: arrayof integer;
const n: integer): integer;
var
s: setof byte;
i, count: integer;
begin
s := [];
for i := 0to n_of do include(s, X[i]);
count := 0;
for i := 0to n doif player[i] in s then inc(count);
count_match := count;
end;
procedure parse_numbers(s: string; var arr: arrayof integer;
var count: integer);
var
i: integer;
err: integer;
begin
i := 1; count := -1;
while i < length(s) dobegin
inc(count);
val(copy(s, i, 2), arr[count], err);
inc(i, 2);
end;
end;
procedure print_numbers(const arr: arrayof integer;
const count: integer);
var i: integer;
beginfor i := 0to count do
write(arr[i]:4);
writeln(count_match(arr_of, arr, count):3, ' matches');
end;
var
f: text;
s: string;
arr: array[1 .. 6] of integer;
n: integer;
begin
assign(f, '__res.txt');
reset(f);
readln(f, s);
parse_numbers(s, arr_of, n_of);
print_numbers(arr_of, n_of);
whilenot eof(f) dobegin
readln(f, s);
write(copy(s, 1, 30));
parse_numbers(copy(s, 31, 255), arr, n);
print_numbers(arr, n);
end;
close(f);
end.
Получаем список участников, их номера, и количество угаданных номеров... В принципе, можно создавать список из фамилий участников, и числа угаданных номеров, а потом его отсортировать, и вывести на печать (с массивом конечно проще, но неэффективно сразу резервировать слишком много памяти, да и ограничен массив размером в 64K)
Попробуй, если не получится - поможем...
ZeroQ
11.03.2007 18:36
Спасибо что откликнулся))))) Но она не работает в строке readln(f, s); в теле самой программы пишет "Invalid file handle" чё делать????????
volvo
11.03.2007 18:38
Ничем помочь не могу, у меня нормально отработала, иначе я б ее не выложил... А компилятор, кстати, ты не указал - хотя надо было бы...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.