П`ятниця, 02.06.2023, 00:23
Вітаю Вас Гость |
Меню сайту
Яка Ваша думка?
Оцініть мій сайт
Всього відповідей: 78
Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0
Узнай свой IP адрес

Головна » 2011 » Грудень » 23 » ІІ етап всеукраїнської олімпіади з інформатики в Миколаївьській обл.
22:29
ІІ етап всеукраїнської олімпіади з інформатики в Миколаївьській обл.
17 грудня на базі Мигіївської ЗОШ відбулась районна олімпіада з інформатики.  Попри обіцяну олімпіаду з "Комп'ютерних технологій" завдання були виключно з програмавання на Turbo Pascal.
Пропоную завдання і мій розв'язок за допомогою Delphi. Приводжу текст програми при натисканні кнопки і архів з повним вмістом файлів. Якщо Ви знаєте раціональніше рішення завдань - поділіться. З задоволенням опублікую і ваші розвязки.



1. Бандура (Скачати файл)
procedure TForm1.Button1Click(Sender: TObject);
 var f,v:TextFile; {}
     mas:array[1..100] of Integer;
     i,l,n,m,k,kol:Integer;
     st:string;
begin
  AssignFile(f,'input.txt'); Reset(f);
  AssignFile(v,'output.txt'); Rewrite(v);
  while not(Eof(f)) do
  begin
    n:=0; m:=0; k:=0;  kol:=0; l:=0;
    Readln(f,st);
    repeat k:=k+1; until st[k]=' ';
    n:=StrToInt(Copy(st,1,k-1));
    m:=StrToInt(Copy(st,k+1,Length(st)-k));
    for i:=1 to n do mas[i]:=0;
    i:=1;
    repeat
      if mas[i]<>1 then begin mas[i]:=1; kol:=kol+1; end
                  else l:=1;
      i:=i+m;
      if i>n then i:=i-n;
      until (l=1) or (kol=n);
    if kol=n then Writeln(v,'YES') else Writeln(v,'NO');  

  end;

   CloseFile(f); CloseFile(v);
 ShowMessage('Переглянте файл output.txt');

end;

2. Трикутники Василя. (Скачати файл)
procedure TForm1.Button1Click(Sender: TObject);
 var f,v:TextFile; {}
     xn,{координата n-го трикутника}
     xb,{координата Х його вершини}
     yb{координата Y його вершини}
     :Real;
     d,{довжина сторони}
     n{номер потрібного трикутника}
     ,i{параметр циклу}
     :Integer;
     sx:string;
begin
  AssignFile(f,'input.txt'); Reset(f);
  AssignFile(v,'output.txt'); Rewrite(v);
while not(Eof(f)) do
 begin
   d:=1; xn:=0.5; {Встановлюємо початкові значення}
   Readln(f,n);
   {d:=d+2*n-1;}
   for i:=1 to n-1 do begin    d:=d+2;  xn:=d+xn;end; {обчислення довжини сторони і координати n-го трикутника}
   xb:=xn-d/2;{обчислення Х координати трикутника}
   yb:=Sqrt(Sqr(d)-sqr(d/2)); {обчислення Y координати трикутника}
   Writeln(v,xb:5:3,' ',yb:5:3); {вивід результатів у файл}
 end;

 CloseFile(f); CloseFile(v);
 ShowMessage('Переглянте файл output.txt');
end;

3. Улюблені числа автогонщика (Скачати файл)
procedure TForm1.Button1Click(Sender: TObject);
 var f,v:TextFile; {}
     mas:array[1..100] of Integer;
     i,j,n,m,k,kol:Integer;
     st:string;
     log,lamp:Boolean;
begin
  AssignFile(f,'input.txt'); Reset(f);
  AssignFile(v,'output.txt'); Rewrite(v);
  while not(Eof(f)) do
  begin
    n:=0; m:=0; k:=0;  kol:=0;
    Readln(f,st);              {находим числа n и m}
    repeat k:=k+1; until st[k]=' ';
    n:=StrToInt(Copy(st,1,k-1));
    m:=StrToInt(Copy(st,k+1,Length(st)-k));
    for i:=n to m do  {перебираємо всі можливі числа в дапазоні}
     begin
       lamp:=false;  log:=false;
       for j:=2 to i-1 do       { перевіряємо чи є число простим}
          begin  if (i mod j)=0 then log:=True;   end;
       if not(log) then
        begin
         st:=IntToStr(i); {Перевіряємо чи є в числі цифри 13} 
          for k:=1 to Length(st)-1 do
           begin
             if Copy(st,k,2)='13' then lamp:=true; {якщо в числі є цифри 13 то лампочку вимикаємо}
           end;
          if not(lamp) then kol:=kol+1;
        end;

     end;

    st:=IntToStr(kol); Writeln(v,st); { вивід у файл   }
                 Label3.Caption:=st;  { вивід на екран}
  end;

   CloseFile(f); CloseFile(v);
 ShowMessage('Перевірте файл output.txt');

end;


Категорія: Інформатика | Переглядів: 772 | Додав: papirownik | Рейтинг: 0.0/0
Всього коментарів: 0
Додавати коментарі можуть лише зареєстровані користувачі.
[ Реєстрація | Вхід ]
Пошук по сайту
Ми в фейсбук..
Календар
«  Грудень 2011  »
ПнВтСрЧтПтСбНд
   1234
567891011
12131415161718
19202122232425
262728293031


2023 *****************------------------------------- 8 клас -----------------------------------********************* Конструктор сайтів - uCoz