function FirstNegative(a: V; n: integer): integer; var i: integer; begin i := 0; Result := 0; repeat i := i + 1; if a[i] < 0 then Result := i until (Result > 0) or (i > lim) end;
procedure InpMass(var a: V; var n: integer; mName: string); // Организует ввод массива var i, p: integer; begin writeln('Вводите элементы массива ' + mName + '; 7777 - конец ввода'); i := 0; repeat read(p); i := i + 1; if p <> 7777 then a[i] := p; until (p = 7777) or (i > lim); n := i - 1 end;
var a, b: V; m, n, p, q: integer;
begin InpMass(a, m, 'A'); InpMass(b, n, 'B'); p := FirstNegative(a, m); q := FirstNegative(b, n); if p <= q then writeln('Номер первого отрицательного элемента в массива А: ', p) else writeln('Номер первого отрицательного элемента в массива B: ', q) end.
Тестовое решение:
Вводите элементы массива A; 7777 - конец ввода 37 14 -25 32 30 -29 38 27 7777 Вводите элементы массива B; 7777 - конец ввода 33 -36 23 -17 -3 -16 -33 33 -48 -39 30 7777 Номер первого отрицательного элемента в массива B: 2
function fact(n : integer) : longint; begin if n <= 1 then fact := 1 else fact := n * fact(n - 1); end;
var t,s:real; i:integer; begin writeln('*** Alphaeus is thinking... ***'); writeln('*** OK ***'); writeln(); writeln('Программа вычисляет частичную сумму ряда с заданной точностью'); writeln(' Общий член ряда: an = ((3^n)*n! )/ (2n)!'); writeln('Вычисление прекратится, когда модуль очередного слагаемого станет меньше 0,001'); writeln(); s:=0; i:=1; t:=1; while t>eps do begin t:=(power(3,i)*fact(i))/(2*fact(2*i)); s:=s+t; writeln('a(',i,')=',t:0:6,' S=',s:0:6); i:=i+1; end; writeln(); writeln('Сумма ряда равна',s:0:6); end.
lim = 11;
type
V = array[1..lim] of integer;
function FirstNegative(a: V; n: integer): integer;
var
i: integer;
begin
i := 0;
Result := 0;
repeat
i := i + 1;
if a[i] < 0 then Result := i
until (Result > 0) or (i > lim)
end;
procedure InpMass(var a: V; var n: integer; mName: string);
// Организует ввод массива
var
i, p: integer;
begin
writeln('Вводите элементы массива ' + mName + '; 7777 - конец ввода');
i := 0;
repeat
read(p);
i := i + 1;
if p <> 7777 then a[i] := p;
until (p = 7777) or (i > lim);
n := i - 1
end;
var
a, b: V;
m, n, p, q: integer;
begin
InpMass(a, m, 'A');
InpMass(b, n, 'B');
p := FirstNegative(a, m);
q := FirstNegative(b, n);
if p <= q then writeln('Номер первого отрицательного элемента в массива А: ', p)
else writeln('Номер первого отрицательного элемента в массива B: ', q)
end.
Тестовое решение:
Вводите элементы массива A; 7777 - конец ввода
37 14 -25 32 30 -29 38 27 7777
Вводите элементы массива B; 7777 - конец ввода
33 -36 23 -17 -3 -16 -33 33 -48 -39 30 7777
Номер первого отрицательного элемента в массива B: 2
Program LoctarUgar;
uses crt;
const
eps=0.001;
function fact(n : integer) : longint;
begin
if n <= 1
then fact := 1
else fact := n * fact(n - 1);
end;
var
t,s:real;
i:integer;
begin
writeln('*** Alphaeus is thinking... ***');
writeln('*** OK ***');
writeln();
writeln('Программа вычисляет частичную сумму ряда с заданной точностью');
writeln(' Общий член ряда: an = ((3^n)*n! )/ (2n)!');
writeln('Вычисление прекратится, когда модуль очередного слагаемого станет меньше 0,001');
writeln();
s:=0; i:=1; t:=1;
while t>eps do
begin
t:=(power(3,i)*fact(i))/(2*fact(2*i));
s:=s+t;
writeln('a(',i,')=',t:0:6,' S=',s:0:6);
i:=i+1;
end;
writeln();
writeln('Сумма ряда равна',s:0:6);
end.