0 / 0 / 0
Регистрация: 03.09.2010
Сообщений: 3
1

Поиск максимального элемента в масиве не работает...

03.09.2010, 22:24. Показов 555. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, пожалуйста посмотрите, я уже весь мозг разорвал себе, над пустяковым кодом!!!
Программа работает, только поиск по массиву осуществляется с переменным успехом.
К примеру, вывожу массив, смотрю значения в массиве, потом ищу максимальный элемент в нем и вывожу его значение и номер где оно находится, делую пару итераций, а поиск уже выдает не те значения.
Код:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
program lol;
uses crt;
const lc=6; nb=4;
      tspriv=2;
      bc:array[1..lc,1..nb] of real=((1,3,6,7),(9,5,3,2),(3,1,3,5),(4,2,3,2),(7,4,2,4),(3,2,6,7));
      zo:array[1..lc] of real=(6,8,5,2,1,3);
 
var   i,k,m,mmax:integer;
      zmax,u,u1,u2,ud,up,uo,z1,z2:real;
      c1sp,c2sp:array [1..nb] of real;
      key:char;
      z:array[1..lc] of real;
      
 
    
begin
c1sp[1]:=0.561; c1sp[2]:=1.56461; c1sp[3]:=1.2268; c1sp[4]:=0.012;
c2sp[1]:=1.6846126016416; c2sp[2]:=1.0101012; c2sp[3]:=0.144554; c2sp[4]:=1.57575;
 
zmax:=0;
mmax:=1;
 
repeat
clrscr;
 for m:=1 to lc do
  begin
  u:=0;
  u1:=0;
  u2:=-0;
  for k:=1 to nb do
   begin
   u:=u+sqr(bc[m,k]);
   u1:=u1+bc[m,k]*c1sp[k];
   u2:=u2+bc[m,k]*c2sp[k];
   end;
  if u2=0 then z[m]:=zmax
   else
    if zo[m]=0 then
     else
      z[m]:=abs((u1/u2-zo[m]))/zo[m];
 
          writeln('m=',m,'  zm=',z[m]);
 
 end;
 ud:=u;
 up:=u1;
 uo:=u2;
 
 zmax:=0;
 for m:=1 to lc do
  if zmax<z[m] then
   begin
    zmax:=z[m];
    mmax:=m;
   end;
                               writeln('mmax=',mmax,'  zmax= ',zmax);
 if ud=0 then
   else
    begin
     if zo[mmax]>1 then
      begin
      z1:=tspriv;
      z2:=z1/zo[mmax];
      end
       else
        begin
        z2:=tspriv;
        z1:=z2/zo[mmax];
        end;
    end;
 for k:=1 to nb do
  begin
   c1sp[k]:=c1sp[k]-(up-z1)*bc[m,k]/ud;
   c2sp[k]:=c2sp[k]-(uo-z2)*bc[m,k]/ud;
  end;
  
 
 
key:=readkey;
until key=#13;
   
end.
В чем проблема? Плиз взгляните, поиск макс, осуществляется с 50-й строчки по 56-ю, вывод значений 57-я строка.

Выходные значения:
Итерация 1
m=1 zm=0.872589541103787
m=2 zm=0.912928501326062
m=3 zm=0.902784649629017
m=4 zm=0.632300867185277
m=5 zm=0.43424068764317
m=6 zm=0.784642820099476
mmax=2 zmax= 0.912928501326062 Верно

Итерация 2
m=1 zm=1.35456182196842
m=2 zm=0.889847980160631
m=3 zm=0.973065189711841
m=4 zm=0.361418316216059
m=5 zm=0.408729951297141
m=6 zm=1.66666666666667
mmax=6 zmax= 1.66666666666667 Верно

Итерация 3
m=1 zm=1.50446305761249
m=2 zm=0.892810212608571
m=3 zm=0.976091159504977
m=4 zm=0.399996742319948
m=5 zm=0.426918707783676
m=6 zm=4.44089209850063E-16
mmax=1 zmax= 1.50446305761249 Не верно
0
03.09.2010, 22:24
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.09.2010, 22:24
Ответы с готовыми решениями:

Поиск максимального элемента массива
Добрый день, уважаемые формучане. Суть программы я думаю ясна. var i,max,a,position:integer; mass:array of integer; begin for...

Поиск максимального элемента массива
Уважаемые форумчане...мне очень нужна ваша помощь...пожалуйста Задание 1: Поиск максимального элемента...

поиск максимального элемента матрица A(n x n)
помогите написать прогу на паскале Составьте программу поиска минимального элемента, расположенного под главной диагональю, и...

4
Почетный модератор
 Аватар для Puporev
64305 / 47602 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
03.09.2010, 22:28 2
mmax=1 zmax= 1.50446305761249 Не верно
Почему? Это вроде самое большое значение.
0
0 / 0 / 0
Регистрация: 03.09.2010
Сообщений: 3
03.09.2010, 22:30  [ТС] 3
Цитата Сообщение от Prony Посмотреть сообщение
m=6 zm=4.44089209850063E-16
А это?
0
Почетный модератор
 Аватар для Puporev
64305 / 47602 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
03.09.2010, 22:31 4
Вот напишите
Pascal
1
writeln('mmax=',mmax,'  zmax= ',zmax:0:6);
и увидите что число, которое вы видимо принимаете за большее
Цитата Сообщение от Prony Посмотреть сообщение
4.44089209850063E-16
превратится в ноль, ибо это 4^-16

Добавлено через 58 секунд
Арифметику типа повторить нужно.
0
0 / 0 / 0
Регистрация: 03.09.2010
Сообщений: 3
03.09.2010, 22:37  [ТС] 5
Бл..... пора очки покупать...
0
03.09.2010, 22:37
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.09.2010, 22:37
Помогаю со студенческими работами здесь

Поиск максимального и минимального элемента массива
поиск максимального и минимального элемента с помощью массива!

Рекурсия: поиск максимального элемента массива
Помогите ,пожалуйста , переделать рекурсивную функцию поиска максимума в массиве,а то рекурсию начал изучать недавно ,вот моя функция : ...

Поиск максимального значения элемента в матрице
Здравствуйте. Дана матрица целых чисел MxN. Надо найти номер строки и столбца наибольшего элемента. Программа работает за одним...

Поиск минимального и максимального элемента файла
Добрый день!! помогите пожалуйста с заданием:cry: Для файла s, состоящего из целых чисел, определите процедуру, которая находит значения...

Поиск максимального и минимального элемента в массиве
Помогите отредактировать программу. Задание: Ввести двумерный массив, найти индексы и значения максимального и минимального элемента. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Обработка массивов с помощью циклов в JavaScript
hw_wired 12.02.2025
Массивы в JavaScript - это упорядоченные наборы элементов, где каждый элемент имеет свой индекс, начиная с нуля. Они невероятно гибки в использовании, позволяя хранить данные любых типов - числа,. . .
Создание каталога и всех родительских каталогов с помощью Python
hw_wired 12.02.2025
Работа с файловой системой - одна из ключевых задач при разработке программного обеспечения. Особенно часто возникает потребность создавать каталоги для хранения файлов, логов, временных данных и. . .
Возврат файла к состоянию указанного коммита Git
hw_wired 12.02.2025
Git - распределенная система контроля версий, без которой сложно представить современную разработку программного обеспечения. Когда речь заходит о восстановлении файлов, Git предоставляет целый. . .
Сброс локальной ветки Git до состояния HEAD удаленного репозитория
hw_wired 12.02.2025
Работая в команде разработчиков, часто сталкиваешься с ситуацией, когда локальная версия кода существенно отличается от той, что находится в центральном репозитории. Такое расхождение может. . .
Запрет подсветки выделения текста с помощью CSS
hw_wired 12.02.2025
Выделение текста - одна из базовых возможностей взаимодействия пользователя с контентом на веб-странице. Однако в некоторых случаях стандартное поведение выделения может нарушать задуманный дизайн. . .
Выполнение другой программы из приложения Python
hw_wired 12.02.2025
При разработке современных приложений часто возникает потребность в запуске и взаимодействии с другими программами прямо из кода. Python предоставляет множество эффективных средств для выполнения. . .
Отличия между let и var в JavaScript
hw_wired 12.02.2025
Работа с переменными - один из основных моментов при написании программ на JavaScript. От правильного объявления и использования переменных зависит не только читаемость кода, но и его надежность, а. . .
Подключение файла JavaScript в других файлах JavaScript
hw_wired 12.02.2025
Самый современный и рекомендуемый способ подключения JavaScript-файлов - использование системы модулей ES6 с ключевыми словами 'import' и 'export'. Этот подход позволяет явно указывать зависимости. . .
Отмена изменений, не внесенных в индекс Git
hw_wired 12.02.2025
Управление изменениями в Git - одна из важнейших задач при разработке программного обеспечения. В процессе работы часто возникают ситуации, когда нужно отменить внесенные изменения, которые еще не. . .
Что такое px, dip, dp, and sp в Android
hw_wired 12.02.2025
При разработке мобильных приложений для Android одним из ключевых вызовов становится адаптация интерфейса под различные устройства. А ведь их действительно немало - от компактных смартфонов до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru