Летом ребята отправились в путешествие. Вася проплыл 70 км на
пароходе, проехал 30 км на поезде и пролетел 110 км на самолете. Никита
проплыл на пароходе 90 км, проехал на поезде 10 км и пролетел на самолете
65 км. Толя пролетел на самолете 250 км, проехал поездом 15 км и проплыл
на пароходе 35 км. Петя проехал на поезде 40 км, пролетел на самолете 135
км и проплыл на пароходе 50 км.
1. Построить на основе вышеперечисленных данных электронную таблицу.
2. Добавить к таблице столбец, в котором будет отображаться общее
количество километров, которое проехал каждый из ребят.
3. Вычислить общее количество километров, которое ребята проехали на
поезде, пролетели на самолете и проплыли на пароходе (на каждом виде
транспорта по отдельности).
4. Вычислить суммарное количество километров, которое дети проехали в
сумме.
5. Определить максимальное и минимальное количество километров,
которое дети проехали на поезде
type omas=array[1..n] of integer;
Procedure Del (var z:omas; k:byte);
var i:byte;
begin
for i:=k to n-1 do z[i]:=z[i+1];
z[n]:=0;
end;
var a:omas; i,b:integer;
begin
Randomize;
for i:=1 to n do
begin
a[i]:=random(20);
write(a[i]:4);
end;
writeln;
b:=6;
i:=1;
while (i<=n)and(a[i]<>b) do i:=i+1;
if i<=n then
begin
Del(a,i);
writeln('Размерность массива = ',n-1);
for i:=1 to n-1 do write(a[i]:4);
writeln;
end else writeln('Массив не изменился');
end.
Пример:
12 13 6 7 17 1 18 17 3 2 12 3 16 6 7 13 0 2 5 18
Размерность массива = 19
12 13 7 17 1 18 17 3 2 12 3 16 6 7 13 0 2 5 18
Чтобы решить эту задачу, воспользуемся методом программирования:
1) напишем функцию, которая получает число в качестве аргумента и моделируя процесс преобразивания из условия возвращает результат:
int f(int n){
int d[4];
for(int i = 0; i < 4; i++){
d[3 - i] = n % 10;
n /= 10;
}
int u = d[0] + d[3], v = d[1] + d[2];
string res;
u < v ? res += to_string(u) + to_string(v) : res += to_string(v) + to_string(u);
return stoi(res);
}
2) так как нам нужно найти наибольшее четырехзначаное число, дающее результат 815, то запускаем цикл, идущий от самого большого четырехзначного числа(9999) до самого маленького(1000), и как только нам встретится число, дающее в результате нужное число(815), выведем его в консоль, и закончим работу программы, то, что выведет программа и будет ответом:
полный код(результат работы на фото) :
#include <iostream>
using namespace std;
int f(int n){
int d[4];
for(int i = 0; i < 4; i++){
d[3 - i] = n % 10;
n /= 10;
}
int u = d[0] + d[3], v = d[1] + d[2];
string res;
u < v ? res += to_string(u) + to_string(v) : res += to_string(v) + to_string(u);
return stoi(res);
}
int main(){
for(int i = 9999; i >= 1000; i--){
if(f(i) == 815){
cout << i;
return 0;
}
}
}
ответ: 9806