Задан массив e из 13-ти элементов.вычислить количество элементов, в интервал от -2,5 до +3,5.нарисовать схему алгоритма, написать тесты и код программы.паскаль
/* 1. Описать класс с именем MARSH, содержащую следующие, поля: • BEGST — название начального пункта маршрута; • TERM — название конечного пункта маршрута; • NUMER — номер маршрута. 2. Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в массив TRAFIC, состоящий из 3 элементов типа MARSH; • вывод на экран информации о маршруте, номер которого введен с клавиатуры; • если таких маршрутов нет, выдать на дисплей соответствующее сообщение. */
// 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.
1. Описать класс с именем MARSH, содержащую следующие, поля:
• BEGST — название начального пункта маршрута;
• TERM — название конечного пункта маршрута;
• NUMER — номер маршрута.
2. Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив TRAFIC, состоящий из 3 элементов типа MARSH;
• вывод на экран информации о маршруте, номер которого введен с клавиатуры;
• если таких маршрутов нет, выдать на дисплей соответствующее сообщение.
*/
#include <iostream>
using namespace std;
class MARSH
{
public:
string BEGST, TERM, NUMER;
MARSH(string b, string t, string n)
: BEGST(b), TERM(t), NUMER(n)
{
}
MARSH() {}
void info() {
cout << "Маршрут №" << NUMER
<< " (" << BEGST << '-'
<< TERM << ')';
}
};
int main()
{
MARSH TRAFFIC[3];
string b, t, n;
for (int i = 0; i < 3; i++) {
cout << "Ввод данных для маршрута " << i << ':' << endl;
cout << "Название начального пункта маршрута: ";
cin >> b;
cout << "Название конечного пункта маршрута: ";
cin >> t;
cout << "Номер маршрута: ";
cin >> n;
cout << endl;
TRAFFIC[i] = MARSH(b, t, n);
}
cout << endl << "Введите номер маршрута: ";
cin >> n;
MARSH m;
for (int i = 0; i < 3; i++) {
m = TRAFFIC[i];
if (m.NUMER == n) {
m.info();
return 0;
}
}
cout << "Нет маршрута с таким номером!" << endl;
return 1;
}
// Внимание! Если программа не работает, обновите версию!
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)