/*
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;
}
Во время работы с компьютером
(А1:А3) это сумма с 1 по 3,т.е.
6+8+10=24
Ответ:24
Const
nn = 20;
mm = 20;
var
a: array[1..nn, 1..mm] of integer;
i, j, m, n, n1,n2,sj: integer;
begin
{ Формирование массива и вывод его элементов.
Попутный подсчет количества четных и нечетных элементов }
n1:=0; n2:=0;
Write('Введите через пробел число строк и столбцов массива: ');
Readln(n, m);
Randomize;
Writeln('Исходный массив');
for i := 1 to n do
begin
for j := 1 to m do
begin
a[i, j] := Random(101) - 50;
Write(a[i, j]:4);
if (a[i,j] mod 2=0) then n2:=n2+1 else n1:=n1+1
end;
Writeln
end;
{ Сравнение и ветвление }
if n2>n1 then
{ Уменьшить вдвое все положительные элементы }
begin
Writeln('Результирующий массив');
for i:=1 to n do
begin
for j:=1 to m do
begin
if a[i,j]>0 then a[i,j]:=a[i,j] div 2;
Write(a[i,j]:4)
end;
Writeln
end
end
else
begin
{ Найти суммы отрицательных элементов каждого столбца }
Writeln('Суммы отрицательных элементов по столбцам');
for j:=1 to m do
begin
sj:=0;
for i:=1 to n do
if a[i,j]<0 then sj:=sj+a[i,j];
Write(sj,' ')
end
end
end.
<u>Тестовое решение:</u>
Введите через пробел число строк и столбцов массива: 8 5
Исходный массив
13 -23 25 2 -36
-19 47 -7 -24 -34
-21 12 -29 46 -46
18 -3 12 -26 -8
-36 -39 -27 -48 -44
-25 -4 -23 -11 -15
49 24 -5 28 32
-37 -32 -34 39 45
Суммы отрицательных элементов по столбцам
-138 -101 -125 -109 -183