Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.03.2021, 07:32
daria.ivanova daria.ivanova вне форума
Прохожий
 
Регистрация: 24.03.2021
Сообщения: 1
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Delphi задание

Разработать программу и тестовый пример для проверки работы программы. В работе использовать статические массивы, задавая их размер 100. Значение n<100 (количество элементов массива) и сами элементы массива вводить с клавиатуры. Тип элементов массива – real, если в задании не указано, что массив целочисленный. Введенный массив необходимо вывести на экран в строку, используя соответствующий формат вывода. Если в результате выполнения задания изменился исходный массив, то результирующий массив тоже нужно вывести на экран. В качестве отчета отсылается папка с соответствующим проектом, тестовый пример приводить не нужно.

Задан массив a1, a2, …, an. Сформировать и вывести на печать массив b1, b2, …bn-1, содержащий все элементы исходного массива А, кроме максимального.
Ответить с цитированием
  #2  
Старый 24.03.2021, 11:32
Vladimr Vladimr вне форума
Прохожий
 
Регистрация: 17.03.2021
Сообщения: 45
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Как вариант решения задачи

Код:
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.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:08.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter