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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2010, 03:23   #1
art_d
Пользователь
 
Регистрация: 30.09.2010
Сообщений: 22
По умолчанию Работа с 1Д масивами Паскаль

Задача из масива ms[i] вывести наименьшее положительное значение MinV и индекс idet
Код:
for i := 1 to num do
   ms[i] := random * 20 - 10;

 idet:=1;
  While ((ms[i] > 0) AND (I <= Num))Do
  begin
    if (ms[i] < MinV) then
  begin
 for i := 1 to num do
   begin
    MaxV:= ms[i];
    idet:=i;
  end;
  End;
 i:=i+1;
   End;
writeln(MinV,Idet);

Не выводит, что делаю не так?

Последний раз редактировалось Stilet; 24.11.2010 в 09:17.
art_d вне форума Ответить с цитированием
Старый 24.11.2010, 03:31   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от art_d Посмотреть сообщение
Не выводит, что делаю не так?
1) не оформляете код
2) зачем Вам 2 вложенный цикл?
3) MaxV:= ms[i]; -? тут наверно должен быть минимум?

Код:
for i := 1 to num do
ms[i] := random * 20 - 10;

idet:=1;
for i := 1 to num do
if ((ms[i] < MinV) and (ms[i]>0)) then
begin
MinV:= ms[i];
idet:=i;
end;
writeln(MinV,Idet);
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 24.11.2010, 12:36   #3
art_d
Пользователь
 
Регистрация: 30.09.2010
Сообщений: 22
По умолчанию

Да, там мин
1) не оформляете код
2) зачем Вам 2 вложенный цикл?
Что значит оформить код
Что значит вложенный цикл?
art_d вне форума Ответить с цитированием
Старый 24.11.2010, 12:52   #4
art_d
Пользователь
 
Регистрация: 30.09.2010
Сообщений: 22
По умолчанию

Пробовал так, всеравно ничего не выводит

Код:
uses
 crt;
const
 num = 20;
var
 i: integer;
 ms: array[1..num] of real;
 idet: integer;
 MinV: real;
begin
 clrscr;
randomize;

for i := 1 to num do
ms[i] := random * 20 - 10;

idet:=1;
for i := 1 to num do
 if ((ms[i] < MinV) and (ms[i]>0)) then
  begin
   MinV:= ms[i];
   idet:=i;
  end;
writeln(MinV,' ',Idet);

readln;
end.
art_d вне форума Ответить с цитированием
Старый 24.11.2010, 13:23   #5
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Цитата:
ms[i] := random * 20 - 10;
Интересное конечно же заполнение массива, лучше прочитайте про функцию random
Цитата:
if ((ms[i] < MinV)
Т.к. переменная MinV нигде не проинициализирована - ей не присвоено никакое значение, она считается равной нулю, т.е. ваше условие выглядит следующим образом:
Код:
 if ((ms[i] < 0) and (ms[i]>0))
Присвойте перед циклом переменной MinV значение первого элемента и усЁ
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 24.11.2010, 13:52   #6
art_d
Пользователь
 
Регистрация: 30.09.2010
Сообщений: 22
По умолчанию

Работает, но
Если 1-ый элемент отрицательный, то он сравнивает все с ним т.е. ответ получается отрицательный, а нам надо только положительный
art_d вне форума Ответить с цитированием
Старый 24.11.2010, 13:57   #7
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Ну хорошо, перед этим циклом вставьте новый цикл, в котором будет определяться первый положительный элемент, и его и считайте за первый положительный минимум, а затем в следующем цикле, который у вас написан идите не с первого элемента, а индекса того который вы нашли выше
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с масивами. Dukem Помощь студентам 3 25.09.2010 21:43
робота с масивами misha25525 Помощь студентам 6 11.04.2010 13:05
проблема с масивами Холмс Общие вопросы C/C++ 2 05.11.2008 21:51
помогите с масивами tarasfx Паскаль, Turbo Pascal, PascalABC.NET 3 18.10.2007 01:58