понеділок, 18 квітня 2016 р.

Тестування "Основи бази даних"
Скопіюйтн  посилання та виконайте тест

http://onlinetestpad.com/ua-ua/Go/Kompyutern%D1%96-publ%D1%96kac%D1%96i-Osnovi-roboti-v-Microsoft-Publisher-32463/Default.aspx

субота, 26 березня 2016 р.

10 клас. Розв'язування задач

Тема: Розв’язування задач
Задача 1. Даний трикутник з вершинами (X1, Y1); (X2, Y2); (X3, Y3) і точка (X, Y). Всі Xi, Yi - дійсні числа. Визначити, чи лежить ця точка всередині цього трикутника.
Приклад
(0, 0), (3, 0); (0, 3) і (1, 1)
Результат: TRUE
Варіант вирішення
Code (Pascal):
const eps = 1E-5;
var X1, Y1, X2, Y2, X3, Y3, X, Y: Real;
S0, S1, S2, S3: Real;
function S (X1, Y1, X2, Y2, X3, Y3: Real): Real;
var a, b, c, p: Real;
begin
a: = Sqrt (Sqr (X1 - X2) + Sqr (Y1 - Y2));
b: = Sqrt (Sqr (X1 - X3) + Sqr (Y1 - Y3));
c: = Sqrt (Sqr (X3 - X2) + Sqr (Y3 - Y2));
p: = 0.5 * (a + b + c);
S: = Sqrt (p * (p - a) * (p - b) * (p - c));
end; {func S}
begin
ReadLn (X1, Y1, X2, Y2, X3, Y3, X, Y);
S0: = S (X1, Y1, X2, Y2, X3, Y3);
S1: = S (X, Y, X2, Y2, X3, Y3);
S2: = S (X1, Y1, X, Y, X3, Y3);
S3: = S (X1, Y1, X2, Y2, X, Y);
WriteLn (S0 + eps> = S1 + S2 + S3);
end.
Задача 2. Задана множина точок на площині. Виберіть з них чотири різні точки, які є вершинами квадрата найбільшого периметра.
var
   a:array [1..1000] of integer;
   i,j,k,l,n,mi,mj,mk,ml:integer;
   d1,d2,d3,d4,p,mp:real;
{по х}
function
   x(i:integer):real;
begin
   x:=a[2*i-1];
end;
{по y}
function
   y(i:integer):real;
begin
   y:=a[2*i]
end;
{довжина відрізка (використовуємо 2 вище описані функції)}
function
   dl(i,j:integer):real;
begin
   dl:=sqrt(sqr(x(i)-x(j))+sqr(y(i)-y(j)))
end;
{begin}
begin
   writeln('Кількість точок: ');
   readln(n);
   for i:=1 to n do
   begin
      write('x[',i,']=');
      readln(a[2*i-1]);
      write('y[',i,']=');
      readln(a[2*i]);
   end;
   for i:=1 to n-3 do
      for j:=i+1 to n-2 do
         for l:=j+1 to n-1 do
            for k:=l+1 to n do
            begin
               d1:=dl(j,i);;
               d2:=dl(l,j);
               d3:=dl(k,l);
               d4:=dl(k,i);
               if (d1=d2) and (d2=d3) and (d3=d4) and (d4=d1) then
                  if (d1<>0) then
                  begin
                  p:=d1+d2+d3+d4;
                  if p>mp then
                     begin
                        mi:=i;
                        mj:=j;
                     mk:=k;
                        ml:=l;
                  mp:=p;
                  end;
                  end;
            end;
   if p<>0 then
   begin
      writeln('Квадрат с максимальним периметром: ');
      writeln('Точки :',mi,':',mj,':',ml,':',mk);
      writeln('Периметр: ',mp:4:2);
   end
   else
      writeln('НЕМА КВАДРАТА!');
   ReadLn;

 end.

неділя, 20 березня 2016 р.

пʼятниця, 26 лютого 2016 р.

10 клас. Лабораторна робота №16

Лабораторна робота №16 «Задача про найбільшу спільну підпослідовність»
Задача. Знайти найбільшу загальну підрядок двох рядків / Turbo Pascal викликали труднощі ці завдання, сподіваюся на вашу допомогу)
1) Вводяться 2 рядки. Знайдіть їх найбільшу загальну підрядок.
2) Дано рядок. Виділити підрядок від першого до другого двокрапки (порожній рядок, якщо менше двох двокрапок).
3) Дано 2 рядки. Видалити з першого рядка такі символи, які є у другій.
Варіант 1.Код Pascal
uses crt;
var s1,s2,s:string;
    i,j,mx:byte;
begin
clrscr;
writeln('Введите первую строку:');
readln(s1);
writeln('Введите первую строку:');
readln(s2);
mx:=0;
for i:=1 to length(s1) do
for j:=i to length(s1) do
if (pos(copy(s1,i,j-i+1),s2)>0)and(j-i+1>mx) then
 begin
  mx:=j-i+1;
  s:=copy(s1,i,j-i+1);
 end;
if mx=0 then write('Общих подстрок нет!')
else writeln('Максимальная общая подстрока:');
write(s);
readln
end.

Варіант 2.Код Pascal
uses crt;
var s,s1:string;
    i,k,i1,i2:byte;
begin
clrscr;
writeln('Введите строку, содержащую двоеточия:');
readln(s);
i1:=pos(':',s);
if i1=0 then writeln('Двоеточий нет!')
else
 begin
  i2:=pos(':',copy(s,i1+1,length(s)))+i1;
  if i2=0 then writeln('Двух двоеточий нет!')
  else
   begin
    if i2=i1+1 then writeln('Пустая сторока')
    else
     begin
      writeln('Подстрока между первым и вторым двоеточием:');
      writeln(copy(s,i1+1,i2-i1-1));
     end;
   end;
 end;
readln
end.

Варіант 3.Код Pascal
uses crt;
var s1,s2,s:string;
    i,k:byte;
begin
clrscr;
writeln('Введите первую строку:');
readln(s1);
writeln('Введите первую строку:');
readln(s2);
k:=0;
for i:=length(s1) downto 1 do
if pos(s1[i],s2)>0 then
 begin
  k:=1;
  delete(s1,i,1);
 end;
if k=0 then write('В первой строке нет символов из второй!')
else
 begin
  writeln('Удаление символов в первой строке');
  write(s1);
 end;
readln
end.