// PascalABC.NET 3.2, сборка 1416 от 26.03.2017 // Внимание! Если программа не работает, обновите версию!
function cx(x:real):string; begin if frac(x)=0 then case Trunc(x) of 0: Result:=''; 1: Result:='*exp(x)'; -1:Result:='*exp(-x)' else Result:='*exp('+x+'x)' end else Result:='*exp('+x+'x)' end;
function cx1(x:real):string; begin if frac(x)=0 then case Trunc(x) of 1: Result:=''; -1:Result:='-' else Result:=x.ToString end else Result:=x.ToString end;
begin var b,c:real; Writeln('Введите коэффициенты уравнения y+by''+cy=0'); Read(b,c); var d:=b*b-4*c; if d>0 then begin d:=sqrt(d); var x1:=(-b-d)/2; var x2:=(-b+d)/2; Writeln('y=c1',cx(x1),'+c2',cx(x2)) end else if d=0 then begin var x:=-b/2; if x=0 then Writeln('y=c1+c2*x') else Writeln('y=c1',cx(x),'+c2*x',cx(x)) end else begin var re:=-b/2; var im:=sqrt(-d)/2; if re=0 then Writeln('y=c1*cos(',cx1(im),'x)+c2*sin(',cx1(im),'x)') else Writeln('y=exp(',cx1(re),'x)*(c1*cos(',cx1(im), 'x)+c2*sin(',cx1(im),'x))') end end.
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017 // Внимание! Если программа не работает, обновите версию!
procedure View(fams:array of string; balls:array[,] of integer); begin for var i:=0 to fams.Length-1 do begin Write(fams[i],': '); balls.Row(i).Println end end;
begin var n:=ReadlnInteger('Количество студентов:'); var m:=ReadlnInteger('Количество оценок у студента:'); var afam:=new string[n]; var aball:=new integer[n,m]; for var i:=0 to n-1 do begin afam[i]:=ReadlnString('Студент '+(i+1)+':'); Write('оценки студента: '); for var j:=0 to m-2 do Read(aball[i,j]); Readln(aball[i,m-1]); end; Writeln('*** Принятые сведения ***'); View(afam,aball); var s:=aball.Rows.Select(x->x.All(y->y=5)).Numerate .Where(x->not x[1]).Select(x->x[0]-1).ToArray; var n1:=s.Count; if n1>0 then begin var t:=new string[n1]; var t1:=new integer[n1,m]; for var i:=0 to n1-1 do begin t[i]:=afam[s[i]]; for var j:=0 to m-1 do t1[i,j]:=aball[s[i],j] end; afam:=Copy(t); aball:=copy(t1); Writeln('*** После удаления отличников ***'); View(afam,aball); end end.
Пример Количество студентов: 5 Количество оценок у студента: 3 Студент 1: Иванов И.И. оценки студента: 5 4 5 Студент 2: Петров П.П. оценки студента: 5 5 5 Студент 3: Сидорова Т.С. оценки студента: 5 5 5 Студент 4: Козлова К.К. оценки студента: 4 4 3 Студент 5: Макаров М.М. оценки студента: 4 5 4 *** Принятые сведения *** Иванов И.И.: 5 4 5 Петров П.П.: 5 5 5 Сидорова Т.С.: 5 5 5 Козлова К.К.: 4 4 3 Макаров М.М.: 4 5 4 *** После удаления отличников *** Иванов И.И.: 5 4 5 Козлова К.К.: 4 4 3 Макаров М.М.: 4 5 4
// Внимание! Если программа не работает, обновите версию!
function cx(x:real):string;
begin
if frac(x)=0 then
case Trunc(x) of
0: Result:='';
1: Result:='*exp(x)';
-1:Result:='*exp(-x)'
else Result:='*exp('+x+'x)'
end
else Result:='*exp('+x+'x)'
end;
function cx1(x:real):string;
begin
if frac(x)=0 then
case Trunc(x) of
1: Result:='';
-1:Result:='-'
else Result:=x.ToString
end
else Result:=x.ToString
end;
begin
var b,c:real;
Writeln('Введите коэффициенты уравнения y+by''+cy=0');
Read(b,c);
var d:=b*b-4*c;
if d>0 then begin
d:=sqrt(d);
var x1:=(-b-d)/2;
var x2:=(-b+d)/2;
Writeln('y=c1',cx(x1),'+c2',cx(x2))
end
else
if d=0 then begin
var x:=-b/2;
if x=0 then Writeln('y=c1+c2*x')
else Writeln('y=c1',cx(x),'+c2*x',cx(x))
end
else begin
var re:=-b/2;
var im:=sqrt(-d)/2;
if re=0 then Writeln('y=c1*cos(',cx1(im),'x)+c2*sin(',cx1(im),'x)')
else Writeln('y=exp(',cx1(re),'x)*(c1*cos(',cx1(im),
'x)+c2*sin(',cx1(im),'x))')
end
end.
Примеры
Введите коэффициенты уравнения y''+by'+cy=0
-2 10
y=exp(x)*(c1*cos(3x)+c2*sin(3x))
Введите коэффициенты уравнения y''+by'+cy=0
-4 3
y=c1*exp(x)+c2*exp(3x)
// Внимание! Если программа не работает, обновите версию!
procedure View(fams:array of string; balls:array[,] of integer);
begin
for var i:=0 to fams.Length-1 do begin
Write(fams[i],': ');
balls.Row(i).Println
end
end;
begin
var n:=ReadlnInteger('Количество студентов:');
var m:=ReadlnInteger('Количество оценок у студента:');
var afam:=new string[n];
var aball:=new integer[n,m];
for var i:=0 to n-1 do begin
afam[i]:=ReadlnString('Студент '+(i+1)+':');
Write('оценки студента: ');
for var j:=0 to m-2 do Read(aball[i,j]);
Readln(aball[i,m-1]);
end;
Writeln('*** Принятые сведения ***');
View(afam,aball);
var s:=aball.Rows.Select(x->x.All(y->y=5)).Numerate
.Where(x->not x[1]).Select(x->x[0]-1).ToArray;
var n1:=s.Count;
if n1>0 then begin
var t:=new string[n1];
var t1:=new integer[n1,m];
for var i:=0 to n1-1 do begin
t[i]:=afam[s[i]];
for var j:=0 to m-1 do t1[i,j]:=aball[s[i],j]
end;
afam:=Copy(t);
aball:=copy(t1);
Writeln('*** После удаления отличников ***');
View(afam,aball);
end
end.
Пример
Количество студентов: 5
Количество оценок у студента: 3
Студент 1: Иванов И.И.
оценки студента: 5 4 5
Студент 2: Петров П.П.
оценки студента: 5 5 5
Студент 3: Сидорова Т.С.
оценки студента: 5 5 5
Студент 4: Козлова К.К.
оценки студента: 4 4 3
Студент 5: Макаров М.М.
оценки студента: 4 5 4
*** Принятые сведения ***
Иванов И.И.: 5 4 5
Петров П.П.: 5 5 5
Сидорова Т.С.: 5 5 5
Козлова К.К.: 4 4 3
Макаров М.М.: 4 5 4
*** После удаления отличников ***
Иванов И.И.: 5 4 5
Козлова К.К.: 4 4 3
Макаров М.М.: 4 5 4