Никак не могу решить задачи Может кто-нибудь поможет?
Задача1.
Определить наибольший и наименьший элементы массива X(n). Вывести исходный массив, эти элементы и их прядковые номера. Упорядочить массив X(n) по убыванию. Вывести полученный массив. Исходный массив элементов получить с помощью датчика случайных чисел. Значения буквенных переменных задавать с клавиатуры.
Задача2.
[*Удалено. См. правила раздела Решите мне задачу*]
QBasiс, поиск max/min, сортировка
Задача1.
Определить наибольший и наименьший элементы массива X(n). Вывести исходный массив, эти элементы и их прядковые номера. Упорядочить массив X(n) по убыванию. Вывести полученный массив. Исходный массив элементов получить с помощью датчика случайных чисел. Значения буквенных переменных задавать с клавиатуры.
Определить наибольший и наименьший элементы массива 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
чё то не пашет . Я вот сам попытлся сделать.но чё то тоже не так по-мойму...
выводит разный исходный массив в max и min...
Код: Выделить всё
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...
Сейчас будем делать. Не пойму, что значит
Значения буквенных переменных задавать с клавиатуры.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Все было верно, только зачем каждый раз массив новыми случайными числами заполнять.
Как понимать
P.P.S Если нужно сортировка по убыванию, то поменяй знак
P.P.S.S. Исправил свою версию. (Писал просто прямо здесь:rolleyes
Значения буквенных переменных задавать с клавиатуры.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Код: Выделить всё
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 Если нужно сортировка по убыванию, то поменяй знак
Код: Выделить всё
IF (M(i) > M(J)) THEN SWAP M(i), M(J)
О-о-о!!! спасибо !!!!!всё работает
Randomize timer это и есть датчик случайных чисел.
Randomize timer это и есть датчик случайных чисел.
Какая второя задача?
да ладно я уже сдал её . если хочешь могу написать, она тоже жёсткая!!!
Напиши.Интересно.
Задача2.
Дана матрица целых чисел X(n,m). Определить номер строки матрицы, сумма элементов которой минимальна. Вывести исходную матрицу,минимальную сумму и номер соответствующей строки. Значения буквенных переменных задавать с клавиатуры.
Дана матрица целых чисел 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