Помощь - Поиск - Пользователи - Календарь
Полная версия: программа ранжирования
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
МОСКВА
используя программу ранжирования, найти произведение 3-х наименьших элементов массива, массив одномерный, рандом из отрицательных и положэительных чисел.
люди, что такое ранжирование? объясните плиз алгоритм...остальное сам напишу. smile.gif
volvo
МОСКВА, а случайно "ранжирование" и "сортировка" не одно и то же?
МОСКВА
не знаю, возможно, чет я такое слово первый раз слышу +)ранжирование! хех +)
МОСКВА
да, видимо это сортировка, ну здесь оно пало что делает это слово....просто найти надо произведение 3-х наименьших, след. над найти(отсортировать). ты прав. знаешь как это можно сделать?
2 цикла нав будет.....а дальше не знаю.... mega_chok.gif
МОСКВА
в факе написано как искать один минимальный элемент, а мне нужно то 3, вот в чем проблема то.+((
volvo
МОСКВА, сортируй по возрастанию и бери три первых НЕповторяющихся элемента...
МОСКВА
млин, не врубаюсь как это сделать +(( blink.gif
volvo
Цитата
не врубаюсь как это сделать

Что именно? Взять 3 первых неповторяющихся элемента?
{ здесь сортируешь массив - ссылку тебе дали ... }
i := 1;
a := arr[i]; while arr[i] = a do inc(i);
b := arr[i]; while arr[i] = b do inc(i);
c := arr[i];

a, b, c - три минимальных элемента массива...
CL
а) Берешь любую сортировку (тебе, наверное, сойдет и bubble)
б) Сортируешь по возростанию
в) Считаешь a[1]*a[2]*a[3], где a - массив.
volvo
CL,
молодец !!! Только вот думать не приучен, видно...
Допустим, после сортировки имеешь массив:
<1, 1, 1, 1, 3, 4, 5, 6>

И что ты получишь? В теме не зря "ранжирование" упоминается - это сортировка без повторов !!!
МОСКВА
Код
program lab3_3;
uses crt;
var
M: array [1..100] of integer;
a,b,i,S:integer;
min1,min2,min3:integer;

BEGIN
clrscr;
randomize;
writeln('enter a');
readln(a);

for b:=1 to a do
begin
M[b]:=random(100)-50;

writeln('  ',M[b]);
min1:=M[1];Min2:=M[2]; Min3:=M[3];
for a:=1 to i do
if min1>M[a] then
min1:=a;


     end;
       
readkey;
END.

я это вставлял, ток видимо удалили +(
объясните все плиз попорядку, то что без повотров это ясен пень, а как это на практике сделать, никогда такое не делал...
сортировка bubble как её вставить в мою прогу?
выше код, что нужно исправить? unsure.gif
МОСКВА
проверяем на неповторяемость
Код
if (Min1<>min2) and (min2<>min3) and (min1<>min3) then

дальше на минимальность, и куда эту сортировку минимальности вставить??
volvo
Послушай, МОСКВА, тебе ясно было написано, КАК взять неповторяющиеся 3 элемента... Ты предпочел НЕ делать так как правильно, а оставить свой бред... Чего ты еще теперь хочешь? Делай как знаешь !!!
kuzya
и как volvo всё это...

даю:
 uses crt;
var
M,Min: array [1..100] of integer;
a,c,j,i,o:integer;
min1,min2,min3:integer;

BEGIN
clrscr;
randomize;
writeln('enter a');
readln(a);

for i:=1 to a do M[i]:=random(100)-50; {заполняем массив}

for i:=1 to a do begin
for j:=1 to a-1 do
if M[j+1]<M[j] then begin
c:=M[j]; M[j]:=M[j+1]; M[j+1]:=c;
{сортируем по убыванмю, с - просто дополнительная переменная}
end;
end;

for i:=1 to a-1 do if M[i]<>M[i+1] then begin inc(o); min[o]:=M[i]; end;
{добавляем все члены массива M в Min без одинаковых членов}
writeln;
write(Min[1],' ',Min[2],' ',Min[3]);
readkey;
END.
kuzya
ещё есть вопросы? wacko.gif smile.gif smile.gif
volvo
Цитата
ещё есть вопросы?

Есть... Во-первых, почему не пользуешься кнопкой "Правка"...
Во вторых, чем тебе не угодил способ БЕЗ доп. массива, как я показал?

Ну, и наконец, что, в FAQ-е сортировка не работает? Так и будем для каждой задачи ЗАНОВО это переписывать???

P.S. Нет, еще четвертое: при сортировке "по убыванию" ты не получишь минимальные значения... Почему? Догадайся сам...
МОСКВА
give_rose.gif пасиб большое! +)
Москва
volvo, я с сортировкой в факе не разобрался... norespect.gif

Это ты себе такой значок покажи... Ты ПРОБОВАЛ разобраться вообще? Тогда покажи, КАК ты пробовал вставить сортировку из FAQ в свою программу.
volvo
Все... Флейм удален - тема закрыта !!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.