До ЗНО з НІМЕЦЬКОЇ МОВИ залишилося:
0
5
міс.
2
2
дн.
1
0
год.
Готуйся до ЗНО разом із «Всеосвітою»!

Задачі з програмування

Опис документу:
Задачі з програмування на олімпіаду районного рівня

Відображення документу є орієнтовним і призначене для ознайомлення із змістом, та може відрізнятися від вигляду завантаженого документу. Щоб завантажити документ, прогорніть сторінку до кінця

Оберіть документ з архіву для перегляду:
Перегляд
матеріалу
Отримати код Поділитися

Задача А.

Відомий персонаж з мільфільму «Фіксіки» Дім-Дімич захоплюється різними гловоломками, забуваючи про час. Його зацікавили числа, які читаються однаково зліва-направо і зправа-наліво. Він взяв натуральне число 865, записав його у зворотному порядку (568) та додав до 865. Отримав 1433. Потім знову записав його у зворотному порядку (3341) та додав до 1433. Отримав 4774. Отже, за два кроки він отримав потрібне йому число. Складіть програму, яка буде знаходити для заданого числа М кількість таких кроків.

Вхідні дані: у текстовому файлі A.in міститься єдине число М (0 < М < 10000).

Вихідні дані: у текстовому файлі A.out міститься єдине число – кількість кроків.

Приклад

Приклад вхідних даних

865

Приклад вихідних даних

2

var f: text;
   k: integer;
   m: int64;
function Perevertish(x: int64): int64;
var s1,s2: string;
   i,n,p: integer;
    y: int64;
begin
 str(x,s1);
  n:=length(s1);
  s2:='';
  for i:=1 to n do s2:=s1[i]+s2;
  val(s2,y,p);
  Perevertish:=y;
end;
begin
 assign(f,'A.in');
 reset(f);
  read(f,m);
  close(f);
  assign(f,'A.out');
  rewrite(f);
  k:=0;
  while Perevertish(m)<>m do
  begin
   inc(k);
    m:=m+Perevertish(m);
  end;
  writeln(f,k);
close(f);
end.

Задача В.

Дівчинка-Фіксік Сімка, та її брат Нулік недавно взнали, що існують хакери, які можуть легко в ідкрити електронне повідомлення. Тому вирішили вони пересилати лише зашифровані повідомлення, використовуючии перестано-вочний код, де кожна літера замінюється іншою. Наприклад:

Закодоване повідомлення: HPC PJVYMIY

Декодоване повідомлення: ACM CONTEST

У цьому прикладі виконані наступні заміни: H=A, P=C, C=M, J=O, V=N,Y=T, M=E и I=S.

Щоб не займатись кодуванням та декодуванням вручну, Фіксіки просять Вас написати програму.

Вхідні дані: у текстовому файлі В.in в першому рядку вхідних даних записане закодоване повідомлення. Другий рядок – 26 латинських літер верхнього регістру, що задають код для відповідного символа алфавіту: перший символ дає код для A, другий для B і так далі. Використовуються лише літери верхнього регістру. У закодованому повідомленні можуь з`явитись пропуски, які повинні бути збережені у вихідному рядку.

Вихідні дані: у текстовий файл B.out вивести єдиний рядок, у якому міститься розшифроване повідомлення.

Приклад

Приклад вхідних даних

HPC PJVYMIY

BLMRGJIASOPZEFDCKWYHUNXQTV

Приклад вихідних даних

ACM CONTEST

var f: text;

x,y,z,w: string;

n,i,j: byte;

begin

assign(f,'B.in');

reset(f);

readln(f,x);

read(f,y);

close(f);

assign(f,'B.out');

rewrite(f);

y:=y+' ';

z:='ABCDEFGHIJKLMNOPQRSTUVWXYZ ';

n:=length(x);

w:='';

for i:=1 to n do

for j:=1 to 27 do

if x[i]=z[j] then w:=w+y[j];

writeln(f,w);

close(f);

end.

Задача С.

Батько Сімки і Нуліка, Папус - це Фіксік екстра-класу, який зацікавився римською системою числення. Він просить Вас скласти програму для підрахунку суми двох натуральних чисел А i В, записаних в римській системі числення. Вiдповiдь записати також, в римській системі числення.

М = 1000, D = 500, С = 100, L = 50, X = 10, V = 5, I = 1 (Всі числа – менші 2000).

Вхідні дані: у текстовому файлі С.in в єдиному рядку записано два числа римською системою числення, між якими стоїть знак "+".

Вихідні дані: у текстовий файл С.out записати одне число - суму чисел, також римською системою числення.

Приклад

Приклад вхідних даних

VII+II

Приклад вихідних даних

IX

type DigStr = string[2];

const Digs: array[1..13] of DigStr =('I','IV','V','IX','X','XL','L','XC','C','CD','D','CM','M');

vals: array[1..13] of longint=(1,4,5,9,10,40,50,90,100,400,500,900,1000);

var sum: longint;

s,st1,st2: string;

f: text;

n,k: integer;

function Dig(c: char): longint;

begin

case c of

'I': Dig:=1;

'V': Dig:=5;

'X': Dig:=10;

'L': Dig:=50;

'C': Dig:=100;

'D': Dig:=500;

'M': Dig:=1000;

end;

end;

function RomanToArab(var s: string): longint;

var sum,i,len: longint;

begin

sum:=0;

i:=1;

len:=length(s);

while i<Len do

begin

if Dig(s[i])<Dig(s[i+1])

then begin

sum:=sum+Dig(s[i+1])-Dig(s[i]);

i:=i+1;

end

else sum:=sum+Dig(s[i]);

i:=i+1;

end;

if i=len then sum:=sum+Dig(s[Len]);

RomanToArab:=sum;

end;

function ArabToRoman(num: longint): string;

var s: string;

k,i: longint;

begin

i:=13;

s:='';

k:=num;

while i<>0 do

if k>=vals[i] then begin

k:=k-vals[i];

s:=s+Digs[i];

end

else dec(i);

ArabToRoman:=s;

end;

begin

assign(f,'C.in');

reset(f);

read(f,s);

close(f);

assign(f,'C.out');

rewrite(f);

n:=length(s);

k:=pos('+',s);

st1:=copy(s,1,k-1);

st2:=copy(s,k+1,n-k);

sum:=RomanToArab(st1)+RomanToArab(st2);

writeln(f,ArabToRoman(sum));

close(f);

end.

Зверніть увагу, свідоцтва знаходяться в Вашому особистому кабінеті в розділі «Досягнення»

Курс:«Створення та ведення власного блогу на платформі WordPress»
Левченко Ірина Михайлівна
24 години
490 грн

Всеосвіта є суб’єктом підвищення кваліфікації.

Всі сертифікати за наші курси та вебінари можуть бути зараховані у підвищення кваліфікації.

Співпраця із закладами освіти.

Дізнатись більше про сертифікати.