Олімпіадні завдання з програмування з рішенням

У вхідному файлі:
Перший рядок - алфавіт держави: десять букв, розташованих по зростанню порядкових номерів без пробілів.
Другий рядок - кількість чисел (N <= 255)
Наступні N рядків - саме початкові числа (по одному в рядку, в кожному не більше 255 цифр).
Формат вихідного файлу:
Ключове слово

Рішення на мові Паскаль:
PROGRAM VISA;
var n, a, d, i, sum, r: longint;
k. Array [0..11] of longint;
c: array [1..255] of longint;
kod: array [1..255] of longint;
alf: string;
f, f1: text;
begin
assign (f, 'visa.dat');
reset (f);
read (f, alf);
readln (f, n);
for i: = 1 to n do readln (f, k [i]);
i: = 1;
d: = 1;
for i: = 1 to n do begin
repeat
sum: = 0;
while k [i] div 10 <> 0 do begin
if d> 1 then
k [i]: = k [i] div 10;
d: = d + 1;
c [i]: = k [i] mod 10;
sum: = sum + c [i];
end;
k [i]: = sum;
d: = 1;
until sum <9;
kod [i]: = sum;
end;
FOR I: = 1 TO N DO KOD [I]: = KOD [I] +1;
ASSIGN (f1, 'visa.sol');
rewrite (f1);
for i: = 1 to n do write (F1, alf [kod [i]]);
close (f);
close (f1);
end.

Другий варіант
program VIZA;
label 1;
var w, x, r: string; i, j, s, s1, n, cod, count: integer; f, f1: text; alf: array [0..9] of string [10];
begin
assign (f, 'VIZA.dat');
rewrite (f);
close (f);
assign (f1, 'VIZA.rez');
rewrite (f1);
close (f1);
write ( 'vvedite kol-vo chifr');
readln (count);
alf [0]: = 'A';
alf [1]: = 'G';
alf [2]: = 'E';
alf [3]: = 'I';
alf [4]: ​​= 'K';
alf [5]: = 'L';
alf [6]: = 'M';
alf [7]: = 'O';
alf [8]: = 'P';
alf [9]: = 'T';
for i: = 0 to 9 do begin
assign (f, 'VIZA.DAT'); append (f);
write (f, alf [i]);
close (f);
end;
for i: = 1 to count do begin
write ( 'vvedite chislo');
readln (x);
1: S: = 0;
for J: = 1 to length (x) do
begin
r: = x [j];
val (r, n, cod);
s: = s + n;
write ( 's =', s);
end;
if s> 9 then begin str (s, x); goto 1 end;
write ( '', alf [s]);
assign (f1, 'VIZA.rez');
append (f1);
writeln (f1, alf [s]);
close (f1)
end;
end.

Схожі статті