среда, 16 ноября 2016 г.

Районная олимпиада 2016. 8-9 класс.

Задача 1.

Вкусный завтрак в школьной столовой стоит A гривен и B копеек. Степан заплатил C гривен и D копеек. Напишите программу, которая считает сдачу, полученную Степаном.

Логика решения:
  1. Перевести все деньги в копейки, чтобы получать решение в меньшее количество действий.
  2. Проверить, может ли Степан в принципе позволить себе завтрак.
  3. От денег Степана отнять стоимость завтрака. Поскольку мы все перевели в копейки, то выводить надо два числа:
    • Целая часть от полученной разности делить на 100 - гривны
    • Остаток от деления полученной разности делить на 100 - копейки
Решение:

program z9_1;

var
a,b,c,d,e,f:integer;

begin
writeln('Vvedi cenu zavtraka');
readln(a,b);
writeln('Vvedi summu Stepana');
readln(c,d);

If (a*100+b<c*100+d) then 
begin
e:=((c*100+d)-(a*100+b))div 100;
f:=((c*100+d)-(a*100+b))mod 100;
Writeln('Sdacha=',e,'grn ',f,' kop');
end
else
writeln ('U Stepana malo deneg!');
end.

Задача 2.

Задана строка символов. Среди литер этого текста особую роль играет знак #, появление которого означает отмену предыдущей литеры текста; k знаков # отменяют k предыдущих литер (если такие есть) Напечатать строку с учетом роли знака #. Например, строка "VR#Y##HELO#LO" должна быть напечатана в виде: "HELLO". 

Решение: 
Обозначим s - исходную строку, dl - длину этой строки. 
Для решения создадим ещё одну строку s1(вначале пустую). 
Далее организуем цикл по номеру символа в строке s. 
Если очередной символ не #, то добавим его к строке s1, если это знак # и строка s1 не пустая, то удалим из неё последний символ.
Программа, реализующая данный алгоритм, будет иметь следующий вид:

program z9_2;

var 
s,s1:string;
dl,i,k:integer;

begin
  writeln('Введите строку');
  readln(s);
  dl:=length(s);
  s1:='';
  k:=0;


  for i:=1 to dl do
  if (s[i]='#')and(k<>0) then
    begin
    delete(s1,k,1);
    k:=k-1;
   end
  else
    begin
     k:=k+1;
     s1:=s1+s[i];
    end;
writeln(s1);
end.



Задача 3.

Полностью совпадает с задачей про компьютеры из прошлогодней олимпиады.
Посмотрите ЗДЕСЬ


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

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