При решении этого задания надо знать:
A≡B =A*B+¬A*¬B (***)
таблицы истинности:
A B A≡B A+B A*B
0 0 1 0 0
0 1 0 1 0
1 0 0 1 0
1 1 1 1 1
--------------------------------
C учётом формулы (***) представим восьмое (последнее) уравнение в виде:
(x8≡x9)+(x8≡x10)=0; лог. сложение =0, когда оба слагаемых =0;
0' ≡ 1 + 0'≡ 1 = 0 - при х10=1 возможно 1 решение
х8=0 х9 =1
1' ≡ 0 + 1'≡ 0 = 0 - при х10 =0 возможно 1 решение
х8=1 х9=0
подставим полученные решения в седьмое (предпоследнее) уравнение:
(х7≡х8)+(х7≡х9) = 1
0 ' ≡0+ 0' ≡ 1 =1 имеем четыре решения х7 х8
1'≡ 0 + 1'≡ 1 =1 0 0
--------------------------- 0 1
0' ≡ 1 + 0' ≡ 0 =1 1 0
1' ≡ 1 +1 ' ≡ 0 =1 1 1
----------------------------------------------------------------------------------
подставляя из в шестое (сверху) уравнение, действуя аналогичным образом, можно убедиться, что решений (х6 ; х7) станет шесть , их надо подставить в пятое ур=е и тд.
--------------------------------------------------------
№уравнения 8 7 6 5 4 3 2 1
кол. решений 2 4 6 8 10 12 14 16
Ответ 16
F = !B & ( A + !(A&B) ) = !B & (A + !A + !B) = !B & (1+!B)= !B
{ т.к. !(A&B) = !A + !B }
F = !(A&B) + A&!B + A&B + B&C = !A + !B + A + B&C = !B + B&C
{ т.к. !(A&B) = !A + !B, A&!B + A&B = A&(!B+B) = A }
F = !(A&B + B&C) + C&!A = (A&B + B&C) & !(C&!A) =
= (A&B + B&C) & (!C+A) = B&(A+C)&(A+!C) = B & A
{ т.к. (A+C)&(A+!C) = AA + A!C + CA + C!C = A + A(!C+C)+0 = A + A = A }
Const n=10;
var
a: array[1..n] of integer;
sa: real;
k: integer;
i: byte;
begin
sa:=0; k:=0;
for i:=1 to n do begin;
read (a[i]);
if a[i] mod 4 =0 then begin
sa:=sa+a[i];
k:=k+1;
end;
end;
sa:=sa/k;
writeln;
writeln ('Среднее значение элементов, кратных четырем, = ',sa);
end.
----------------------------------
Пример:
4 6 8 10 12 16 14 18 20 22
Среднее значение элементов, кратных четырем, = 12
Как приложить исходники?
Исходный код модуля Uni1:
unit Unit1;
{$mode objfpc}{$H+}
interface
uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, Spin;
type
{ TForm1 }
TForm1 = class(TForm) FloatSpinEdit1: TFloatSpinEdit; FloatSpinEdit2: TFloatSpinEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; procedure FloatSpinEdit1Change(Sender: TObject); procedure FloatSpinEdit2Change(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Label1Click(Sender: TObject); private { private declarations } public { public declarations } end;
var Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure calcsquare;begin Form1.Label3.Caption:='Площадь кольца '+FloatToStr(3.141592*Form1.FloatSpinEdit1.Value*Form1.FloatSpinEdit1.Value-3.141592*Form1.FloatSpinEdit2.Value*Form1.FloatSpinEdit2.Value);end;
procedure checkvalues;begin if (Form1.FloatSpinEdit2.Value>Form1.FloatSpinEdit1.Value) then begin Showmessage('Внешний радиус не может быть меньше внутреннего'); Form1.FloatSpinEdit2.Value:=Form1.FloatSpinEdit1.Value; end else begin calcsquare; end;end;
procedure TForm1.Label1Click(Sender: TObject);begin
end;
procedure TForm1.FloatSpinEdit1Change(Sender: TObject);begin checkvalues;end;
procedure TForm1.FloatSpinEdit2Change(Sender: TObject);begin checkvalues;end;
procedure TForm1.FormCreate(Sender: TObject);begin
end;
end.
Исходный код формы Form1
object Form1: TForm1 Left = 357 Height = 180 Top = 212 Width = 311 Caption = 'Расчет площади кольца' ClientHeight = 180 ClientWidth = 311 LCLVersion = '1.0.12.0' object Label1: TLabel Left = 37 Height = 16 Top = 16 Width = 94 Caption = 'Внешний радиус' ParentColor = False OnClick = Label1Click end object Label2: TLabel Left = 39 Height = 16 Top = 82 Width = 108 Caption = 'Внутренний радиус' ParentColor = False end object FloatSpinEdit1: TFloatSpinEdit Left = 40 Height = 23 Top = 32 Width = 234 Increment = 1 MaxValue = 100 MinValue = 0 OnChange = FloatSpinEdit1Change TabOrder = 0 Value = 0 end object FloatSpinEdit2: TFloatSpinEdit Left = 40 Height = 23 Top = 102 Width = 234 Increment = 1 MaxValue = 100 MinValue = 0 OnChange = FloatSpinEdit2Change TabOrder = 1 Value = 0 end object Label3: TLabel Left = 40 Height = 16 Top = 147 Width = 7 Caption = 'S' ParentColor = False endend