Определить есть ли среди цифр одинаковые, вывести их - QBasic
Формулировка задачи:
Помогите пожалуйста.Определить есть ли среди цифр массива одинковые, вывести их
Решение задачи: «Определить есть ли среди цифр одинаковые, вывести их»
textual
Листинг программы
CLS RANDOMIZE TIMER INPUT "N = "; n DIM A(1 TO n) AS INTEGER DIM b(9) AS INTEGER FOR i = 1 TO n A(i) = 9 * RND PRINT A(i); NEXT i: PRINT : PRINT FOR i = 0 TO 9 FOR j = 1 TO n IF i = A(j) THEN b(i) = b(i) + 1 NEXT j, i FOR i = 0 TO 9 IF b(i) > 1 THEN k = 1 NEXT i IF k THEN PRINT "YES"; ELSE PRINT "NO" FOR i = 0 TO 9 IF b(i) > 1 THEN PRINT i; NEXT i END
Объяснение кода листинга программы
CLS- очистка экранаRANDOMIZE TIMER- установка случайного числа для повторного вызова функцииINPUTN =; n- запрос на ввод числа для определения количества цифрDIM A(1 TO n) AS INTEGER- создание массиваAдля хранения цифрDIM b(9) AS INTEGER- создание массиваbдля подсчета повторяющихся цифрFOR i = 1 TO n- цикл для заполнения массиваAслучайными числами от 0 до 9A(i) = 9 * RND- присваивание случайного числа элементу массиваAPRINT A(i);- печать значения элемента массиваANEXT i- переход к следующему элементу циклаPRINT : PRINT- печать двух символов для разделения элементов массиваAFOR i = 0 TO 9- цикл для подсчета повторяющихся цифр в массивеAFOR j = 1 TO n- вложенный цикл для сравнения текущей цифры с каждой цифрой массиваAIF i = A(j) THEN b(i) = b(i) + 1- увеличение счетчика повторяющихся цифр при совпаденииNEXT j, i- переход к следующему элементу внешнего циклаFOR i = 0 TO 9- цикл для вывода повторяющихся цифрIF b(i) > 1 THEN k = 1- присвоение переменнойkзначения 1 при наличии повторяющихся цифрNEXT i- переход к следующему элементу циклаIF k THEN PRINTYES; ELSE PRINTNO`` - вывод сообщения о наличии или отсутствии повторяющихся цифрFOR i = 0 TO 9- цикл для вывода повторяющихся цифрIF b(i) > 1 THEN PRINT i;- печать значения переменнойiпри наличии повторяющихся цифрEND- завершение программы