Суббота, 20.04.2024, 07:21
Информатика и математика в Плесской школе
Приветствую Вас Гость | RSS
Меню сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа

Школьная олимпиада по информатике

2013–2014 уч. года

 

  1. «Лишние буквы – 100 баллов».

Четвероклассник Петя сложил из карточек с прописными буквами слово. Оставшиеся карточки с буквами он убрал в ящик стола. Перед приходом из школы его брата Васи  Петя смешал карточки, из которых он составил слово. Когда первоклассник Вася увидел на столе карточки с буквами, он попытался из них составить свое слово. Определите, какие карточки с буквами из Петиного набора не использовал Вася, если известны слово, которое собрал Петя и слово, которое собрал Вася.

Ваша программа должна

  • Запросить слово, которое собрал Петя;
  • Запросить слово, которое собрал Вася;
  • Найти и вывести на экран  в любом порядке буквы, которые использовал Петя, но не использовал Вася или вывести на экран сообщение о том, что Вася использовал все карточки с буквами Пети.

Пример:  Слово Пети               ТОРТ                       

     Слово Васи               РОТ

               Не использована карточка с буквой                     Т

Решение авторов олимпиады (FreePascal).

program lishnie;
  uses crt;
  var i,j:integer;
      p,v,pp:string;
      b:char;
begin
  write('Слово Пети   ');readln(p);
  write('Слово Васи   ');readln(v);
  pp:=p;
  for i:=1 to length(v) do
    begin
      b:=v[i];j:=pos(b,pp);delete(pp,j,1);
    end;
  if pp<>'' then
      writeln('Не использованы карточки с буквами    ',pp)
    else
      writeln('Использованы все карточки');
  readkey;
end.

  1. «Деление – 100 баллов».

Петя Васечкин хочет выяснить, делится ли на 7 натуральное число, состоящее не более чем из 60 цифр. Требуется написать программу, которая выполняет желание Пети и находит остаток от деления введенного числа на 7.

Составьте программу, которая

  • Читает натуральное число a, которое может содержать до 60 цифр;
  • Находит и выводит на экран остаток от деления a на 7.

Примеры:   

         Исходное число        14                    Остаток          0

         Исходное число        101                  Остаток          3

Решение авторов олимпиады:

program delenie;
  uses crt;
  var i,n,ostatok,x,code:integer;
      s:string;
begin
  write('a= ');readln(s);
  n:=length(s);ostatok:=0;
  for i:=1 to n do
    begin
      val(s[i],x,code);
      ostatok:=(ostatok*10+x) mod 7;
    end;
  writeln('Остаток   ',ostatok);
  readkey;
end.

 

  1. «К единице – 100 баллов».За один ход с числом делается такая операция: если число не делится на 3, то вычитаем 1, а если делится, то делим на 3. Так из числа 39 единица получается за 5 таких ходов (имеется в виду цепочка 39 – 13 – 12 – 4 – 3 – 1). Какое наименьшее натуральное число превращается в единицу за k (0 ≤ k ≤ 37) таких ходов?

 Программа должна

  • Запросить  число ходов k (натуральное число, 0 ≤ k ≤ 37);
  • Найти и вывести на экран наименьшее натуральное число, которое превращается в единицу за k таких ходов.

Пример:   Число ходов              5                      Искомое натуральное число           14

Решение  предложенное авторами олимпиады:

program chislo;
  uses crt;
  var n,k,kk,r:longint;
begin
  write('k=');readln(k);
  n:=0;kk:=-1;n:=0;
  while (kk<>k)do
    begin
      inc(n);r:=n;kk:=0;
      while r>1 do
        if r mod 3=0 then
            begin r:=r div 3;inc(kk); end
          else
            if r>1 then begin r:=r-1;inc(kk) end;
    end;
  writeln('n=',n);
  readkey;
end.

 

Поиск
Календарь
«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Учительский портал
    Copyright MyCorp © 2024