|
#1
|
|||
|
|||
Delphi задание
Разработать программу и тестовый пример для проверки работы программы. В работе использовать статические массивы, задавая их размер 100. Значение n<100 (количество элементов массива) и сами элементы массива вводить с клавиатуры. Тип элементов массива – real, если в задании не указано, что массив целочисленный. Введенный массив необходимо вывести на экран в строку, используя соответствующий формат вывода. Если в результате выполнения задания изменился исходный массив, то результирующий массив тоже нужно вывести на экран. В качестве отчета отсылается папка с соответствующим проектом, тестовый пример приводить не нужно.
Задан массив a1, a2, …, an. Сформировать и вывести на печать массив b1, b2, …bn-1, содержащий все элементы исходного массива А, кроме максимального. |
#2
|
|||
|
|||
Как вариант решения задачи
Код:
const n=100; //кол-во элементов массива var masA:array [1..n] of real; //исходный массив masB:array [1..n-1] of real; //итоговый массив i:integer; //для цикла max:real; //максимальное значение массива А posMax:integer; //позиция максимального значения begin max:=masA[1]; //максимуму присвоили значение первого элемента массива posMax:=i; //первоначальная позиция максимального значения for i:= 2 to n do //поиск максимума if masA[i]>max then begin max:=masA[i]; //нахождение максимального значения массива А posMax:=i; //позиция максимального значения end; {решение через два цикла} for i:=1 to posMax-1 do masB[i]:=masA[i]; //копируем левую часть массива А до максимального значения в массив В for i:=posMax+1 to n do masB[i-1]:=masA[i]; //копируем правую часть массива А после максимального значения в массив В Writeln('Максимальное значение массива '+floattostr(max)); //выведение значения максимума на экран Writeln('Позиция максимальное значение массива '+inttostr(posMax)); //вывод позиции максимального значения for i := 1 to n-1 do writeln('masB['+inttostr(i)+']='+floattostr(masB[i])); //вывод на экран end. Решение через один цикл Код:
for i:= 1 to n do //Исключаем позицию максимального значения (В одном цикле) begin if i<posMax then masB[i]:=masA[i]; //копируем левую часть массива А до максимального значения в массив В if i>posMax then masB[i-1]:=masA[i]; //копируем правую часть массива А после максимального значения в массив В end; Последний раз редактировалось Vladimr, 24.03.2021 в 19:00. |