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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2011, 22:20   #1
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию Паскаль. Необходимо найти наименьшее абсолютное значение

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

Написал прогу, но есть проблемы:
- не пойму, как найти наименьшее абсолютное значение(в программе выделил красным)
-поставить наименьшее абсолютное значение на 6 место в массиве;
Вот моя программа, помогите пожалуйста!!!

Код:
Program Shalene_Divchisko;
Uses CRT;
type mymasyv=array[1..9] of real;
     Const y:mymasyv=(-1.2,-0.1,8.3,-9.5,6.3,-2.7,9.9,-3.6,-2.8);
     Const n=9;
Var v:mymasyv;
    jnd,ind,j:integer;
    min,max:real;
    
Procedure transform(Var v:mymasyv);
Var j:integer;
Begin
   For j:=1 to n do
     begin
     v[j]:=3*y[j];
     Write(v[j]:7:1);
     end;
end;

Procedure detect(Var v:mymasyv);
Var max,min,amin:real;
    j:integer;
Begin
max:=v[1];
min:=v[1];
amin:=v[1];
   For j:=1 to n do
    If v[j]>max then begin
    max:=v[j];
     end;
     writeln;
    Write(max:7:1);
    writeln;

    
   For j:=1 to n do
    If v[j]<min then begin
    min:=v[j];
    Writeln;
    Writeln(min:7:1);
    end;
    
   for j:=1 to n do
   amin:=abs(v[j]);
   If v[j]<amin then begin
    amin:=v[j];
    writeln;
    Writeln(amin:7:1);
    end;
    end;


Begin
 CLRSCR;
 transform(v);
 Writeln;
 detect(v);
 Readkey
end.
Женька Good вне форума Ответить с цитированием
Старый 20.12.2011, 22:22   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
как найти наименьшее абсолютное значение
Код:
k:=low(a);
For i:=low(a)+1 to high(a) do
if abs(a[i])<abs(a[k]) then k:=i;
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 20.12.2011, 22:24   #3
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
Код:
k:=low(a);
For i:=low(a)+1 to high(a) do
if abs(a[i])<abs(a[k]) then k:=i;
немного не понял, что значит Low(a)?
Женька Good вне форума Ответить с цитированием
Старый 20.12.2011, 22:26   #4
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Low(a) - нижний индекс массива у тебя это 1
high(a) - верхний индекс массива у тебя это n
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 20.12.2011, 22:33   #5
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию

Вот я подставил, так соответствует программе?
amin:=1;
for j:=1 to n do
If abs(v[j])<abs(v[amin]) then amin:=j;
Writeln(amin:7:1);
Женька Good вне форума Ответить с цитированием
Старый 20.12.2011, 22:40   #6
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

да только
Код:
Writeln(v[amin]:7:1);
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 20.12.2011, 22:43   #7
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
да только
Код:
Writeln(v[amin]:7:1);

Mad_Cat,
не подскажешь алгоритм, как заменить 6 элемент одномерного массива на число 5?
Женька Good вне форума Ответить с цитированием
Старый 20.12.2011, 22:57   #8
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
как заменить
не заменить - а вставить)
Код:
buf:=v[amin];
for i:=amin to n-1 do
v[i]:=v[i+1];
For i:=n downto 7 do
v[i]:=v[i-1];
v[6]:=buf;
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 20.12.2011 в 23:00.
Mad_Cat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти наименьшее значение с заданым параметром SMShrek Microsoft Office Excel 3 22.11.2011 14:02
Наименьшее и наибольшее значение функции Ejevila Помощь студентам 4 21.12.2010 01:41
Турбо паскаль:программа находящая сумму ряда(необходимо найти ошибку в коде) Galchonok Помощь студентам 5 12.06.2010 15:10
Задача:Найти наименьшее и наибольшее значение заданной функции с помощью массива.(Pascal) abiturient Помощь студентам 12 08.10.2009 20:35