Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2016, 15:56   #1
newera1
Новичок
Джуниор
 
Регистрация: 21.11.2016
Сообщений: 1
По умолчанию Составьте программу нахождения максимального и минимального значения одномерного массива К(N)=sin(N)*N)

Составьте программу нахождения максимального и минимального значения одномерного массива К(N)=sin(N)*N).Сформулируйте новый массив B(N) ,в котором поменяйте местами максимальный и минимальный элемент массива K(N).
newera1 вне форума Ответить с цитированием
Старый 21.11.2016, 16:05   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от newera1 Посмотреть сообщение
К(N)=sin(N)*N)
где ошибка?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 22.11.2016, 13:20   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Какой диапазон этой самой N ?
digitalis вне форума Ответить с цитированием
Старый 27.11.2016, 11:55   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
const n=100;
      dx=0.1;
      a=-3;
var k,b:array[0..n-1] of real;
    i,imin,imax:integer;
begin
   For i:=0 to n-1 do
      k[i]:=Sin(a+i*dx)*(a+i*dx);
   imin:=0;
   imax:=0;
   For i:=1 to n-1 do
   begin
      If k[imin]>k[i] then
         imin:=i;
      If k[imax]<k[i] then
         imax:=i;
   end;
   Writeln('K(',imin,') = ',k[imin]:5:8);
   Writeln('K(',imax,') = ',k[imax]:5:8);
   For i:=0 to n-1 do
   begin
      b[i]:=k[i];
      If i=imin then
         b[i]:=k[imax];
      If i=imax then
         b[i]:=k[imin];
      Writeln(b[i]:5:8);
   end;
   Readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 28.11.2016, 12:21   #5
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Как для любителя - сойдет. В нашей деревне профи написал бы так :
Код:
const n=100;
      dx=0.1;
      a=-3;
var k,b:array[0..n-1] of real;
    i,imn,imx:integer;
    a,x,y,amin,amax: real ; 
begin
   amin := 0;
   amax := 0;
   For i:=1 to n-1 do
   begin
      x := a+i*dx ;
      y := Sin(x)*x;
      If y > amax then 
         begin amax := y; imx := i end else
      If y < amin then 
         begin amin := y; imn := i end ;
      k[i] := y ; b[i] := y ;
   end;
   b[imx] := amin ; b[imn] := amax ;
end.
ну это не считая вывода.
Кстати, amin := 0; amax := 0; в данном конкретном случае нормально, учитывая специфику функции, но в общем случае amin := <очень_большое_число>; amax := - <очень_большое_число>;

Последний раз редактировалось digitalis; 28.11.2016 в 13:08.
digitalis вне форума Ответить с цитированием
Старый 28.11.2016, 12:28   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А в той деревне не в курсе, что минимум вполне может быть больше 0, или максимум отрицательным? Ну так, чисто теоретически, особенно при манипуляциях с синусом в частности

PS пока писал, оказалось, что в курсе
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 28.11.2016 в 12:43.
Аватар вне форума Ответить с цитированием
Старый 28.11.2016, 12:50   #7
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

В последней своей фразе я именно это и сказал - касаемо общего случая. А в данном частном, учитывая именно синус, тут все нормально: синус бывает и больше нуля, и меньше, при умножении на положительное число эта ситуевина сохраняется. Хотя возможно так подобрать n и dx, что все значения будут лежать слева (справа) от нуля. Тогда снимаем мое согласие "в данном случае можно" и действуем по общему правилу в последней фразе.
n = 10 ; dx = 0.1
Кстати, прога предыдущего оратора, не в обиду ему будь сказана, может быть внесена в FAQ ошибок стиля начинающего проггера: здесь и многократный цикл, когда одного более чем, и многократное вычисление в цикле выражения, опять же многократное использование в цикле элемента массива - все это пустая загрузка вычислительного процесса. Могут возразить: компилятор оптимизирует и выбросит лишнее. Может быть. Но мудрые люди утверждают: наилучший оптимизатор находится между ушей По моему глубокому убеждению, если проггер с младых лет не учится писать оптимально, он рискует до седин остаться "индусским быдлкодером" . Хотя есть другое мнение:
- Акуля, чаму шыеш кашулю не адтуля ?
- А я яе перашываць буду, матуля . (бел.)

ИЧСХ, студенты тут не только ленивые, но и неблагодарные : накропаешь ему - а он ни спасиба, ни плюсика. В delphi.int.ru контингент был повоспитанней. Сначала это меня возмущало, а потом: чего это я? Разве пишу для того, чтобы страна получила очередного неуча, которых и так миллионы ? Конечно, нет - просто для разминки мозгов, как утренняя пробежка.

Последний раз редактировалось digitalis; 28.11.2016 в 18:12.
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составьте программу нахождения значение максимального элемента двухмерного массива размером N x N PascalABC_ Паскаль, Turbo Pascal, PascalABC.NET 5 24.06.2015 11:58
Написать процедуру нахождения максимального из элементов sin(a1),sin(a2),..sin(an),где а-элемент массива Dimon79 Паскаль, Turbo Pascal, PascalABC.NET 5 24.06.2015 11:19
Блок схема:Составьте программу нахождения максимального их чисел, встречающихся в заданном двухмерном мас sa-dmit Паскаль, Turbo Pascal, PascalABC.NET 2 24.06.2010 21:40