четверг, 13 ноября 2014 г.

Задачи районной олимпиады по программированию. Разбор задачи 2.

Задача 2.

Разведчики получили шифрованную радиограмму. Для ее расшифровки надо знать специальный ключ, который они получили вместе с радиограммой отдельной строкой. Эта строка – набор произвольных символов, среди которых обязательно будут цифры. Для получения ключа найдите сумму цифр этой строки. Известно, что строка не длиннее 255 символов.

Входной файл – строка не длиннее 255 символов.

Выходной файл – ключ.

К чему сводится условие задачи? У нас есть строка символов. Читаем строку. Если символ совпадает с одной из цифр – добавляем его к сумме.

program Olimp_9_2;
var
i,sum:integer;
a:array[1..255] of char;
f,g:text;

begin
assign (f,'input.txt');
reset (f);

i:=1;                - счетчик элементов в массиве
sum:=0;              - начальное значение суммы

while not eof (f) do    - пока есть элементы в строке…

begin
read (f,a[i]);          - читаем элемент, загоняем его в массив

case a[i] of            - если элемент оказался цифрой – добавляем к сумме
'1': sum:=sum+1;
'2': sum:=sum+2;
'3': sum:=sum+3;
'4': sum:=sum+4;
'5': sum:=sum+5;
'6': sum:=sum+6;
'7': sum:=sum+7;
'8': sum:=sum+8;
'9': sum:=sum+9;

end;                  - оператор case не содержит begin, но заканчивается end;

i:=i+1;               - меняем счетчик на 1
end;

close (f);            - закрыли файл f

assign (g,'output.txt');
rewrite (g);
writeln (g,sum);
close (g);

end.

Вот и все... 

Комментариев нет:

Отправить комментарий