Страница 1 из 1
QBasiс, поиск max/min, сортировка
Добавлено: 26 май 2009, 21:55
sprite_by
Никак не могу решить задачи

Может кто-нибудь поможет?
Задача1.
Определить наибольший и наименьший элементы массива X(n). Вывести исходный массив, эти элементы и их прядковые номера. Упорядочить массив X(n) по убыванию. Вывести полученный массив. Исходный массив элементов получить с помощью датчика случайных чисел. Значения буквенных переменных задавать с клавиатуры.
Задача2.
[*Удалено. См. правила раздела Решите мне задачу*]
Re: QBasiс, поиск max/min, сортировка
Добавлено: 28 май 2009, 15:34
Iwan_91
Задача1.
Определить наибольший и наименьший элементы массива X(n). Вывести исходный массив, эти элементы и их прядковые номера. Упорядочить массив X(n) по убыванию. Вывести полученный массив. Исходный массив элементов получить с помощью датчика случайных чисел. Значения буквенных переменных задавать с клавиатуры.
Код: Выделить всё
RANDOMIZE TIMER
CLS
N = 5
DIM A(N)
FOR I = 1 TO N
A(I) = INT(RND * 100)
NEXT I
min = A(1)
max = A(1)
FOR I = 1 TO N
IF min < A(I) THEN
min = A(I)
mi = I
END IF
IF max > A(I) THEN
max = A(I)
ma = I
END IF
NEXT I
PRINT "Massiv";
FOR I = 1 TO N
PRINT A(I);
NEXT I
PRINT
PRINT "Minimalnii"; min; "Nomer"; mi
PRINT "Maxsimalnii"; max; "Nomer"; ma
DIM B(1 TO N)
FOR I = 1 TO N
B(I) = A(I)
NEXT I
FOR j = 1 TO N - 1
FOR I = j + 1 TO N
IF B(j) < B(I) THEN
SWAP B(j), B(I)
END IF
NEXT I
NEXT j
PRINT "Sortirovka"
FOR I = 1 TO N
PRINT B(I)
NEXT I
FOR I = 1 TO N
DO WHILE B(I) = A(I)
B(I) = INT(RND * 100)
LOOP
NEXT I
Re: QBasiс, поиск max/min, сортировка
Добавлено: 29 май 2009, 23:05
sprite_by
чё то не пашет

. Я вот сам попытлся сделать.но чё то тоже не так по-мойму...
Код: Выделить всё
CLS
input "n=",n
PRINT "Massiv: ";
DIM M(N)
FOR I = 1 TO N
M(I) = INT(RND * 100)
PRINT M(I) ;
NEXT I
MAX=M(1)
FOR I = 2 TO N
IF MAX < M(I) THEN MAX=M(I)
NEXT I
PRINT
PRINT "_________"
PRINT "Maximum = "; MAX
FOR I = 1 TO N
M(I) = INT(RND * 100)
PRINT M(I) ;
NEXT I
MIN=M(1)
FOR I = 2 TO N
IF MIN > M(I) THEN MIN=M(I)
NEXT I
PRINT
PRINT "_________"
PRINT "Minimum = "; MIN
FOR I = 1 TO N
M(I) = INT(RND * 100)
PRINT M(I);
NEXT I
FOR I = 1 TO N - 1
FOR J = I + 1 TO N
IF (M(I) > M(J)) THEN SWAP M(I), M(J)
NEXT J
NEXT I
PRINT
PRINT "Sort massiv:"
FOR I = 1 TO N
PRINT M(I);
NEXT I
выводит разный исходный массив в max и min...
Re: QBasiс, поиск max/min, сортировка
Добавлено: 29 май 2009, 23:29
Iwan_91
Сейчас будем делать. Не пойму, что значит
Значения буквенных переменных задавать с клавиатуры.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Код: Выделить всё
RANDOMIZE TIMER
CLS
INPUT "n=", N
PRINT "Massiv: ";
DIM M(N)
FOR i = 1 TO N
M(i) = INT(RND * 100)
PRINT M(i);
NEXT i
MAX = M(1)
MIN = M(1)
FOR i = 2 TO N
IF MAX < M(i) THEN
MAX = M(i)
ma = i
END IF
IF MIN > M(i) THEN
MIN = M(i)
mi = i
END IF
NEXT i
PRINT
PRINT "_________"
PRINT "Maximum = "; MAX; "Number ="; ma
PRINT "Minimum = "; MIN; "Number ="; mi;
FOR i = 1 TO N - 1
FOR J = i + 1 TO N
IF (M(i) > M(J)) THEN SWAP M(i), M(J)
NEXT J
NEXT i
PRINT
PRINT "Sort massiv:"
FOR i = 1 TO N
PRINT M(i);
NEXT i
Все было верно, только зачем каждый раз массив новыми случайными числами заполнять.
Как понимать
Исходный массив элементов получить с помощью датчика случайных чисел
P.S. Добавил связку с выводом номера и нахождение минимального максимального свернул в один цикл.
P.P.S Если нужно сортировка по убыванию, то поменяй знак
P.P.S.S. Исправил свою версию. (Писал просто прямо здесь:rolleyes

Re: QBasiс, поиск max/min, сортировка
Добавлено: 30 май 2009, 06:39
sprite_by
О-о-о!!! спасибо !!!!!всё работает

Randomize timer это и есть датчик случайных чисел.
Re: QBasiс, поиск max/min, сортировка
Добавлено: 30 май 2009, 18:55
Iwan_91
Какая второя задача?
Re: QBasiс, поиск max/min, сортировка
Добавлено: 31 май 2009, 17:59
sprite_by
да ладно я уже сдал её

. если хочешь могу написать, она тоже жёсткая!!!
Re: QBasiс, поиск max/min, сортировка
Добавлено: 31 май 2009, 23:17
Iwan_91
Напиши.Интересно.
Re: QBasiс, поиск max/min, сортировка
Добавлено: 02 июн 2009, 22:01
sprite_by
Задача2.
Дана матрица целых чисел X(n,m). Определить номер строки матрицы, сумма элементов которой минимальна. Вывести исходную матрицу,минимальную сумму и номер соответствующей строки. Значения буквенных переменных задавать с клавиатуры.
Код: Выделить всё
CLS
INPUT "n="; n
INPUT "m="; m
DIM a(n, m), summ(n)
FOR i = 1 TO n
FOR j = 1 TO m
a(i, j) = INT(RND(1) * 20) + 1
PRINT a(i, j);
NEXT j
PRINT
NEXT i
FOR i = 1 TO n
s = 0
FOR j = 1 TO m
s = s + a(i, j)
NEXT j
summ(i) = s
NEXT i
PRINT "___________"
PRINT " isx matrica"; " summu po strokam"
FOR i = 1 TO n
FOR j = 1 TO m
PRINT a(i, j);
NEXT j
PRINT " "; summ(i)
NEXT i
PRINT
FOR i = 2 TO n
IF summ(i) < summ(i - 1) THEN
min = summ(i)
k = i
END IF
NEXT i
PRINT "__________"
PRINT "min summa="; min
PRINT "nomer stroki="; k
END