Определить самый тяжелый вагон состава, его порядковый номер - Turbo Pascal
Формулировка задачи:
Даны сведения о массах вагонов состава - массив А [15].
1) определить самый тяжелый вагон состава, его порядковый номер, самый легкий вагон, его порядковый номер.
2)сформировать новый состав из последних 8 вагонов - массив В [8].
3)определить общую массу вагонов в массиве В.
4)определить общую массу вагонов в массиве А.
Решение задачи: «Определить самый тяжелый вагон состава, его порядковый номер»
textual
Листинг программы
const
n=15; //количество вагонов 1-го состава
m=8; //количество вагонов 2-го состава
var
a: array[1..n] of integer; //массив A - первый состав
b: array[1..m] of integer; //масссив B - второй состав
i,max,min,i_max,i_min,sum1,sum2,k: integer;
begin
sum1:=0; sum2:=0; //изначально обнуляем суммы масс составов
for i:=1 to n do // от 1 до 15
begin
write('Введите массу ',i,'-го вагона: '); //вывод приглашения ввода
readln(a[i]); //считываем массу вагона
end;
i_max:=1; // за максимальную массу принимаем массу 1-го вагона
i_min:=1; // за минимальную массу принимаем массу 1-го вагона
writeln('Массы вагонов состава A :'); // вывод строки на экран
for i:=1 to n do // от 1 до 15
begin
if a[i]>a[i_max] then // если очередной вагон тяжелее максимального то..
i_max:=i; // принимаем его за самый тяжелый
if a[i]<a[i_min] then // если очередной вагон легче минимального то..
i_min:=i; // принимаем его за самый легкий
sum1:=sum1+a[i]; // массу каждого прибавляем к первой сумме
write(a[i],' '); // ввыводим на экран массу каждого
end;
writeln;
writeln('Самый тяжелый вагон состава: ',a[i_max],'[',i_max,'-й]');
writeln('Самый легкий вагон состава: ',a[i_min],'[',i_min,'-й]');
writeln('Общая масса состава A: ',sum1);
k:=0; // счетчик вагонов 2-го состава
writeln('Массы вагонов состава B: ');
for i:=n-m+1 to n do // проходим по вагонам от 8-го до 15-го вагонов 1-го состава
begin
inc(k); // увеличиваем счетчик на 1
b[k]:=a[i]; // очередному вагону 2-го состава присваиваем массу очередного вагона 1-го состава
write(b[k],' '); // выводим на экран
sum2:=sum2+b[k]; // считаем сумму масс вагонов 2-го состава
end;
writeln;
writeln('Общая масса состава B: ',sum2);
readln;
end.
Объяснение кода листинга программы
- Переменная
nинициализируется значением 15. Это количество вагонов первого состава. - Переменная
mинициализируется значением 8. Это количество вагонов второго состава. - Создается массив
a, который будет хранить массы вагонов первого состава. - Создается массив
b, который будет хранить массы вагонов второго состава. - Создаются переменные
i,max,min,i_max,i_min,sum1,sum2,k. Все они инициализируются начальными значениями. - Запускается цикл
for, который идет от 1 до 15 (n). Внутри этого цикла пользователь вводит массу каждого вагона первого состава. - Внутри цикла
ifпроверяется, является ли текущий вагон тяжелее максимального. Если это так, тоi_maxобновляется, чтобы хранить индекс этого вагона. - Также внутри цикла
ifпроверяется, является ли текущий вагон легче минимального. Если это так, тоi_minобновляется, чтобы хранить индекс этого вагона. - Суммы масс обоих составов обновляются.
- Выводится информация о массе каждого вагона первого состава, а также о самом тяжелом и самом легком вагонах.
- Запускается еще один цикл
for, который идет отn-m+1доn. Это проходят по вагонам второго состава, начиная с восьмого вагона первого состава. - Внутри этого цикла масса каждого вагона второго состава присваивается переменной
b[k]. - Выводится информация о массе каждого вагона второго состава.
- Сумма масс второго состава обновляется.
- Программа завершается, и пользователю предлагается ввести данные для следующего запуска.