Инструменты пользователя

Инструменты сайта


msx:basic_dialogue_programming_language:003

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
msx:basic_dialogue_programming_language:003 [2022-09-17 17:09]
GreyWolf [III.5. Примеры]
msx:basic_dialogue_programming_language:003 [2023-02-19 16:07] (текущий)
GreyWolf
Строка 6: Строка 6:
 <WRAP group 99%> <WRAP group 99%>
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
-<WRAP half column><​WRAP ​justify+<WRAP half column><​WRAP ​right
-… и если ничто уже не помогает — посмотри инструкцию для пользователя.+... и если ничто уже не помогает — 
 +\\ посмотри инструкцию для пользователя.
 <WRAP rightalign>​ <WRAP rightalign>​
 —//Из завещания неизвестного программиста//​ —//Из завещания неизвестного программиста//​
Строка 23: Строка 24:
 <WRAP group 99%> <WRAP group 99%>
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
-<WRAP half column><​WRAP ​justify+<WRAP half column><​WRAP ​right
-квалификация программистов является убывающей функцией от +...квалификация программистов является убывающей функцией от 
-плотности предложений ''​GOTO''​ в создаваемых ими программах.+\\ плотности предложений ''​GOTO''​ в создаваемых ими программах.
 <WRAP rightalign>​ <WRAP rightalign>​
 —//​Э.Дейкстра//​ —//​Э.Дейкстра//​
Строка 97: Строка 98:
 <WRAP group 99%> <WRAP group 99%>
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
-<WRAP half column><​WRAP ​justify>+<WRAP half column><​WRAP ​right>
 ЕСЛИ нельзя,​ но очень хочется,​ ТО можно! ЕСЛИ нельзя,​ но очень хочется,​ ТО можно!
 <WRAP rightalign>​ <WRAP rightalign>​
Строка 526: Строка 527:
 <WRAP group 99%> <WRAP group 99%>
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
-<WRAP half column><​WRAP ​justify+<WRAP half column><​WRAP ​right
-Целые числа сотворил господь бог, всё остальное — дело рук человеческих.+Целые числа сотворил господь бог, ​ 
 +\\всё остальное — дело рук человеческих.
 <WRAP rightalign>​ <WRAP rightalign>​
 —//​Л.Кронекер//​ —//​Л.Кронекер//​
Строка 795: Строка 797:
 <WRAP group 99%> <WRAP group 99%>
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
-<WRAP half column><​WRAP ​justify>+<WRAP half column><​WRAP ​right>
 Три месяца каждую вторую среду он ходил смотреть фильм Три месяца каждую вторую среду он ходил смотреть фильм
-"​Девушка моей мечты",​ но на связь с ним никто не вышел.+\\ "​Девушка моей мечты",​ но на связь с ним никто не вышел.
 <WRAP rightalign>​ <WRAP rightalign>​
 —//​В.Кожевников//​ —//​В.Кожевников//​
Строка 1130: Строка 1132:
 <WRAP group 99%> <WRAP group 99%>
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
-<WRAP half column><​WRAP ​justify+<WRAP half column><​WRAP ​right
-5% текста программы занимают 90% времени её выполнения.<​WRAP rightalign>​+5% текста программы занимают 90%  
 +\\ времени её выполнения.<​WRAP rightalign>​
 —//​Аксиома программирования//​ —//​Аксиома программирования//​
 </​WRAP></​WRAP>​ </​WRAP></​WRAP>​
Строка 1421: Строка 1424:
 <WRAP group 99%> <WRAP group 99%>
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
-<WRAP half column><​WRAP ​justify>+<WRAP half column><​WRAP ​right>
 Метод решения хорош, если с самого начала мы можем предвидеть — и далее Метод решения хорош, если с самого начала мы можем предвидеть — и далее
-подтвердить это, — что, следуя этому методу,​ мы достигнем цели.+\\ подтвердить это, — что, следуя этому методу,​ мы достигнем цели.
 <WRAP rightalign>​ <WRAP rightalign>​
 —//​Г.Лейбниц//​ —//​Г.Лейбниц//​
Строка 1431: Строка 1434:
 <WRAP group 99%> <WRAP group 99%>
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
-<WRAP half column><​WRAP ​justify>+<WRAP half column><​WRAP ​right>
 Истина всегда оказывается проще, чем можно было предположить.<​WRAP rightalign>​ Истина всегда оказывается проще, чем можно было предположить.<​WRAP rightalign>​
 —//​Р.Фейнман//​ —//​Р.Фейнман//​
Строка 1495: Строка 1498:
 <WRAP group 99%> <WRAP group 99%>
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
-<WRAP half column><​WRAP ​justify>+<WRAP half column><​WRAP ​right>
 Прежде чем решать задачу,​ подумай,​ что делать с её решением. Прежде чем решать задачу,​ подумай,​ что делать с её решением.
 <WRAP rightalign>​ <WRAP rightalign>​
Строка 1504: Строка 1507:
 <WRAP group 99%> <WRAP group 99%>
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
-<WRAP half column><​WRAP ​justify+<WRAP half column><​WRAP ​right
-В науке часто недостаточно решить какую–нибудь задачу или группу задач. После этого нужно присмотреться к этим задачам и заново осмыслить,​ какие же вы задачи решили. Нередко,​ решая одну задачу,​мы автоматически находим ответ и на другой вопрос,​ о котором раньше вовсе не думали.+В науке часто недостаточно решить какую–нибудь задачу или ​ 
 +\\группу задач. После этого нужно присмотреться к этим ​ 
 +\\ задачам и заново осмыслить,​ какие же вы задачи решили. ​ 
 +\\ Нередко,​ решая одну задачу,​мы автоматически находим ответ и 
 +\\ на другой вопрос,​ о котором раньше вовсе не думали.
 <WRAP rightalign>​ <WRAP rightalign>​
 —//​Н.Винер//​ —//​Н.Винер//​
Строка 1648: Строка 1655:
 <WRAP group 99%> <WRAP group 99%>
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
-<WRAP half column><​WRAP ​justify+<WRAP half column><​WRAP ​right
-Поверил\\ ​ +...Поверил 
-Я алгеброй гармонию.+\\ Я алгеброй гармонию.
 <WRAP rightalign>​ <WRAP rightalign>​
 —//​А.Пушкин. Моцарт и Сальери//​ —//​А.Пушкин. Моцарт и Сальери//​
Строка 1658: Строка 1665:
 Обратимся теперь к лирике. Вот стихотворение Л.Мартынова (речь в нем идёт о девушке):​ Обратимся теперь к лирике. Вот стихотворение Л.Мартынова (речь в нем идёт о девушке):​
 <WRAP group 99%> <WRAP group 99%>
-<WRAP half column><​WRAP ​justify+<WRAP half column><​WRAP ​right
-Кто геометрическое среднее между атомом и Солнцем?​ \\ +Кто геометрическое среднее между атомом и Солнцем?​ 
-Ты, первое и последнее воплощение красоты. \\ +\\ Ты, первое и последнее воплощение красоты. 
-Не имеющая представления о строении вещества,​ \\ +\\ Не имеющая представления о строении вещества,​ 
-слушающая в изумлении эти непонятные слова. \\ +\\ слушающая в изумлении эти непонятные слова. 
-Неспособная принять их к сведению,​будучи ужасно молодой. \\ +\\ Неспособная принять их к сведению,​будучи ужасно молодой. 
-Вот ведь, какова ты, нечто среднее между атомом и звездой.+\\ Вот ведь, какова ты, нечто среднее между атомом и звездой.
 </​WRAP>​ </​WRAP>​
 <WRAP half column></​WRAP>​ <WRAP half column></​WRAP>​
Строка 1693: Строка 1700:
 <WRAP group 99%> <WRAP group 99%>
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
-<WRAP half column><​WRAP ​justify>+<WRAP half column><​WRAP ​right>
 Бросая в воду камешки,​ смотри на круги, ими образуемые:​ Бросая в воду камешки,​ смотри на круги, ими образуемые:​
-иначе твоё занятие будет простой забавой.+\\ иначе твоё занятие будет простой забавой.
 <WRAP rightalign>​ <WRAP rightalign>​
 —//​Козьма Прутков//​ —//​Козьма Прутков//​
Строка 1703: Строка 1710:
 <WRAP group 99%> <WRAP group 99%>
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
-<WRAP half column><​WRAP ​justify>+<WRAP half column><​WRAP ​right>
 Если я и открыл некоторые новые истины в науках,​ то я могу утверждать,​ что все они либо являются прямыми следствиями пяти или шести главных задач, которые мне удалось решить,​ либо зависят от них; я рассматриваю их как такое же число сражений,​ в которых военное счастье было на моей стороне. Если я и открыл некоторые новые истины в науках,​ то я могу утверждать,​ что все они либо являются прямыми следствиями пяти или шести главных задач, которые мне удалось решить,​ либо зависят от них; я рассматриваю их как такое же число сражений,​ в которых военное счастье было на моей стороне.
 <WRAP rightalign>​ <WRAP rightalign>​
Строка 1759: Строка 1766:
 <WRAP group 99%> <WRAP group 99%>
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
-<WRAP half column><​WRAP ​justify>+<WRAP half column><​WRAP ​right>
 Каждая решённая мною задача становилась образцом,​ который служил впоследствии для решения других задач. Каждая решённая мною задача становилась образцом,​ который служил впоследствии для решения других задач.
 <WRAP rightalign>​ <WRAP rightalign>​
Строка 1768: Строка 1775:
 <WRAP group 99%> <WRAP group 99%>
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
-<WRAP half column><​WRAP ​justify>+<WRAP half column><​WRAP ​right>
 …создаётся впечатление,​ что можно построить целый курс программирования,​ выбирая примеры только из задач сортировки. …создаётся впечатление,​ что можно построить целый курс программирования,​ выбирая примеры только из задач сортировки.
 <WRAP rightalign>​ <WRAP rightalign>​
Строка 1967: Строка 1974:
 <WRAP group 99%> <WRAP group 99%>
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
-<WRAP half column><​WRAP ​justify>+<WRAP half column><​WRAP ​right>
 Верочка же, получив письмо (она его ждала раньше,​ ещё в марте),​ не сразу, а как–то помедлив,​ словно боясь чего–то,​ встала и, взяв со стола старинный костяной нож с инкрустацией (один перламутровый цветок давно выпал, чернело лишь гнездо на месте, куда он был вставлен),​ и вскрыла конверт неловкой рукой. Верочка же, получив письмо (она его ждала раньше,​ ещё в марте),​ не сразу, а как–то помедлив,​ словно боясь чего–то,​ встала и, взяв со стола старинный костяной нож с инкрустацией (один перламутровый цветок давно выпал, чернело лишь гнездо на месте, куда он был вставлен),​ и вскрыла конверт неловкой рукой.
 <WRAP rightalign>​ <WRAP rightalign>​
Строка 1978: Строка 1985:
 <​code>​ <​code>​
 1 '​Пример "​абсолютно нечитабельной"​ программы! 1 '​Пример "​абсолютно нечитабельной"​ программы!
-5 DEFINTN,​I:​INPUTN:​Y$="​Нет":​FORI=700TO799:​IFI\100<>​(IMOD100)\10THENIFI\100<>​IMOD100MOD10THENIF(IMOD100)\10<>​IMOD100MOD10THENIFIMODN=0THENY$="​Есть!":​CLS:​PRINTY$,​I:​ENDELSEIFI=798THENCLS:​PRINTY$:​ENDELSENEXTELSENEXTELSENEXTELSENEXT+5 DEFINTN,​I:​INPUTN:​Y$="​Нет":​FORI=700TO799:​IFI\100<>​(IMOD100)\ 
 +  ​10THENIFI\100<>​IMOD100MOD10THENIF(IMOD100) 
 +  ​\10<>​IMOD100MOD10THENIFIMODN=0THENY$="​Есть!":​CLS:​ 
 +  ​PRINTY$,​I:​ENDELSEIFI=798THENCLS:​PRINTY$:​ 
 +  ​ENDELSENEXTELSENEXTELSENEXTELSENEXT
 run run
 ? 5 ? 5
Строка 2026: Строка 2037:
 10 DEFINT N,​I,​J,​K,​M:​INPUT N:K=1:DIM A(N):​X=RND(-TIME) 10 DEFINT N,​I,​J,​K,​M:​INPUT N:K=1:DIM A(N):​X=RND(-TIME)
 20 FOR I=1 TO N:​A(I)=INT(12*RND(1)):​PRINT A(I);:NEXT 20 FOR I=1 TO N:​A(I)=INT(12*RND(1)):​PRINT A(I);:NEXT
-30 '​Выделение неубывающей подпоследовательности,​ сравнение ее длины с длиной предыдущей выделенной подпоследовательности;​ наибольшая длина запоминается в переменную M (строки 40-70).+30 '​Выделение неубывающей подпоследовательности,​ сравнение ее  
 +    ​длины с длиной предыдущей выделенной подпоследовательности; ​ 
 +    ​наибольшая длина запоминается в переменную M (строки 40-70).
 40 FOR I=1 TO N-1 40 FOR I=1 TO N-1
-50 IF A(I)<​=A(I+1) THEN K=K+1:IF K>M THEN M=K:​J=I+1:​NEXT I ELSE NEXT I ELSE K=1:NEXT I+50 IF A(I)<​=A(I+1) THEN K=K+1:IF K>M THEN M=K:J=I+1: 
 +   NEXT I ELSE NEXT I ELSE K=1:NEXT I
 60 ?:?"​Наибольшая длина:";​M:​PRINT"​Подпоследовательность:";​ 60 ?:?"​Наибольшая длина:";​M:​PRINT"​Подпоследовательность:";​
 70 FOR I=J-M+1 TO J:PRINT A(I);:NEXT 70 FOR I=J-M+1 TO J:PRINT A(I);:NEXT
Строка 2101: Строка 2115:
 20 DEFINT H,​I-K,​M:​INPUT"​Число точек";​H:​D=RND(-TIME):​M=2*H 20 DEFINT H,​I-K,​M:​INPUT"​Число точек";​H:​D=RND(-TIME):​M=2*H
 30 DIM A(M),​B(M),​C(M):​IF H<3 THEN RUN 20 30 DIM A(M),​B(M),​C(M):​IF H<3 THEN RUN 20
-40 FOR I=1 TO M:​A(I)=INT(190*RND(1)):​B(I)=A(I):​C(I)=A(I):​NEXT:​S=0:​P=900 '​Генерируем три одинаковых массива координат точек плоскости случайным образом.+40 FOR I=1 TO M:​A(I)=INT(190*RND(1)):​B(I)=A(I):​C(I)=A(I):​NEXT:​S=0:​P=900 ​ 
 +   '​Генерируем три одинаковых массива координат точек плоскости случайным образом.
 50 FOR I=2 TO M STEP 2 50 FOR I=2 TO M STEP 2
 60 FOR J=2 TO M STEP 2 60 FOR J=2 TO M STEP 2
 70 FOR K=2 TO M STEP 2 70 FOR K=2 TO M STEP 2
-80 U=SQR((A(I)-B(J))^2+(A(I-1)-B(J-1))^2):​Q=SQR((A(I)-C(K))^2+(A(I-1)-C(K-1))^2):​W=SQR((B(J)-C(K))^2+(B(J-1)-C(K-1))^2):​G=U+Q+W '​Нашли периметр треугольника.+80 U=SQR((A(I)-B(J))^2+(A(I-1)-B(J-1))^2):​Q=SQR((A(I)-C(K))^2+(A(I-1)-C(K-1))^2):​ 
 +   W=SQR((B(J)-C(K))^2+(B(J-1)-C(K-1))^2):​G=U+Q+W '​Нашли периметр треугольника.
 90 V=SQR((G/​2)*(G/​2-U)*(G/​2-Q)*(G/​2-W)) '​Нашли его площадь. 90 V=SQR((G/​2)*(G/​2-U)*(G/​2-Q)*(G/​2-W)) '​Нашли его площадь.
-100 IF V<1.E-10 THEN 130'​Этим оператором гарантируем,​ что взяты три различные точки, не лежащие на одной прямой. +100 IF V<1.E-10 THEN 130'​Этим оператором гарантируем,​ что взяты три ​ 
-110 IF G<P THEN P=G:​A1=A(I):​A2=A(I-1):​B1=B(J):​B2=B(J-1):​C1=C(K):​C2=C(K-1)'​Ищем треугольник с наименьшим периметром и запоминаем координаты его вершин. +                         различные точки, не лежащие на одной прямой. 
-120 IF V>S THEN S=V:​A3=A(I):​A4=A(I-1):​B3=B(J):​B4=B(J-1):​C3=C(K):​C4=C(K-1)'​Ищем треугольник наибольшей площади и запоминаем координаты его вершин+110 IF G<P THEN P=G:​A1=A(I):​A2=A(I-1):​B1=B(J):​B2=B(J-1):​C1=C(K):​C2=C(K-1) 
 +    ​'​Ищем треугольник с наименьшим периметром и запоминаем координаты его вершин. 
 +120 IF V>S THEN S=V:​A3=A(I):​A4=A(I-1):​B3=B(J):​B4=B(J-1):​C3=C(K):​C4=C(K-1) 
 +    ​'​Ищем треугольник наибольшей площади и запоминаем координаты его вершин
 130 NEXT K,J,I 130 NEXT K,J,I
-140 PRINT"​Вершины треугольника наиб.площади:​(";​A3;",";​A4;"​),​(";​B3;",";​B4;"​),​(";​C3;",";​C4;"​);"​+140 PRINT"​Вершины треугольника наиб.площади:​ 
 +    ​(";​A3;",";​A4;"​),​(";​B3;",";​B4;"​),​(";​C3;",";​C4;"​);"​
 150 PRINT"​Площадь треугольника:";​S 150 PRINT"​Площадь треугольника:";​S
-160 PRINT"​Вершины треугольника наим.периметра:​(";​A1;",";​A2;"​),​(";​B1;",";​B2;"​),​(";​C1;",";​C2;"​);"​+160 PRINT"​Вершины треугольника наим.периметра:​ 
 +    ​(";​A1;",";​A2;"​),​(";​B1;",";​B2;"​),​(";​C1;",";​C2;"​);"​
 170 PRINT"​Периметр треугольника:";​P 170 PRINT"​Периметр треугольника:";​P
 180 FOR I=1 TO 5000:NEXT '​Задержка по времени (≈13 секунд)! 180 FOR I=1 TO 5000:NEXT '​Задержка по времени (≈13 секунд)!
Строка 2144: Строка 2165:
 20 DIM X(N),​Y(N),​Z(N):​U=RND(-TIME) 20 DIM X(N),​Y(N),​Z(N):​U=RND(-TIME)
 25 PRINT " X  Y  Z " 25 PRINT " X  Y  Z "
-30 FOR I=1 TO N:​X(I)=INT(11*RND(1)-5):​Y(I)=INT(11*RND(1)-5):​Z(I)=INT(11*RND(1)-5):​PRINTX(I)Y(I)Z(I):​NEXT+30 FOR I=1 TO N:​X(I)=INT(11*RND(1)-5):​Y(I)=INT(11*RND(1)-5):​ 
 +                ​Z(I)=INT(11*RND(1)-5):​PRINTX(I)Y(I)Z(I):​NEXT
 35 '​Подсчет количества точек,​лежащих в шаре (строки 40-60). 35 '​Подсчет количества точек,​лежащих в шаре (строки 40-60).
 40 FOR I=1 TO N 40 FOR I=1 TO N
Строка 2157: Строка 2179:
 110 IF X(I)+Y(I)+Z(I)=<​3 AND (X(I))^2+(Y(I))^2+(Z(I))^2<​=25 THEN B=B+1NEXT ELSE NEXT 110 IF X(I)+Y(I)+Z(I)=<​3 AND (X(I))^2+(Y(I))^2+(Z(I))^2<​=25 THEN B=B+1NEXT ELSE NEXT
 120 PRINT "​Количество точек,​принадлежащих пересечению шара и полупространства:";​B 120 PRINT "​Количество точек,​принадлежащих пересечению шара и полупространства:";​B
-125 '​Подсчет количества точек,​принадлежащих объединению шара и полупространства (строки 130-140)+125 '​Подсчет количества точек,​принадлежащих объединению шара и  
 +     полупространства (строки 130-140)
 130 P=C-B+K 130 P=C-B+K
 140 PRINT "​Количество точек,​принадлежащих объединению шара и полупространства:";​P 140 PRINT "​Количество точек,​принадлежащих объединению шара и полупространства:";​P
Строка 2188: Строка 2211:
 40 K=N*M:DIM B(K) 40 K=N*M:DIM B(K)
 50 FORI=1TO N:FOR J=1 TO M:​Y=M*(I-1)+J:​B(Y)=A(I,​J):​NEXTJ,​I 50 FORI=1TO N:FOR J=1 TO M:​Y=M*(I-1)+J:​B(Y)=A(I,​J):​NEXTJ,​I
-60 '​Этот блок (строки 70-110) позволяет найти минимальное число элементов,​ встречающихся в массиве более одного раза.+60 '​Этот блок (строки 70-110) позволяет найти минимальное число элементов, ​ 
 +    ​встречающихся в массиве более одного раза.
 70 FOR Y=1 TO K-1:FOR L=Y+1 TO K 70 FOR Y=1 TO K-1:FOR L=Y+1 TO K
 80 IF B(Y)<​B(L) THEN 90 ELSE SWAP B(Y),B(L) 80 IF B(Y)<​B(L) THEN 90 ELSE SWAP B(Y),B(L)
 90 NEXT:NEXT 90 NEXT:NEXT
 100 FOR I=1 TO K-1 100 FOR I=1 TO K-1
-110 IF B(I)=B(I+1) THEN PRINT"​Минимальное число:";​B(I) ELSE NEXTI:​PRINT"​Такого элемента нет!"​+110 IF B(I)=B(I+1) THEN PRINT"​Минимальное число:";​B(I) ELSE NEXTI: 
 +    ​PRINT"​Такого элемента нет!"​
 run run
 ? 3,4 ? 3,4
Строка 2214: Строка 2239:
 NEW NEW
 Ok Ok
-5 '​Идентификация массива A(N,M) псевдослучайными целыми числами и вывод его на экран дисплея для контроля (строки 10-20).+5 '​Идентификация массива A(N,M) псевдослучайными целыми числами и  
 +   вывод его на экран дисплея для контроля (строки 10-20).
 10 DEFINT N,​M,​I,​J,​Y,​K,​L:​INPUT N,M:DIM A(N,​M):​X=RND(-TIME) 10 DEFINT N,​M,​I,​J,​Y,​K,​L:​INPUT N,M:DIM A(N,​M):​X=RND(-TIME)
-20 FOR I=1 TO N:FOR J=1 TO M:​A(I,​J)=INT(10*RND(1)):?​A(I,​J);:​NEXT J:?:​NEXTI:​IF N+M=2 THEN ?"​Один-одинешенек!":​END+20 FOR I=1 TO N:FOR J=1 TO M:​A(I,​J)=INT(10*RND(1)):?​A(I,​J);:​ 
 +   NEXT J:?:​NEXTI:​IF N+M=2 THEN ?"​Один-одинешенек!":​END
 30 '​Идентификация дополнительного массива B (строки 40-50). 30 '​Идентификация дополнительного массива B (строки 40-50).
 40 K=N*M:DIM B(K) 40 K=N*M:DIM B(K)
Строка 2224: Строка 2251:
 80 IF B(Y)<​B(L) THEN 90 ELSE SWAP B(Y),B(L) 80 IF B(Y)<​B(L) THEN 90 ELSE SWAP B(Y),B(L)
 90 NEXT:NEXT 90 NEXT:NEXT
-93 '​Подсчет количества различных элементов в массиве B и вывод результата на экран дисплея (строки 95-120).+93 '​Подсчет количества различных элементов в массиве B и  
 +    ​вывод результата на экран дисплея (строки 95-120).
 95 U=1 95 U=1
 100 FOR I=1 TO K-1 100 FOR I=1 TO K-1
Строка 2255: Строка 2283:
 20 FOR I=1 TO M:FOR J=1 TO N 20 FOR I=1 TO M:FOR J=1 TO N
 30 A(I,​J)=INT(11*RND(1)-5):​PRINT A(I,​J);:​NEXTJ:?:​NEXT I 30 A(I,​J)=INT(11*RND(1)-5):​PRINT A(I,​J);:​NEXTJ:?:​NEXT I
-45 IF M=1 AND N=1 THEN IF A(1,1)<0 THEN ?"​Искомый элемент:";​A(1,​1):​END ELSE ?"​Такого элемента нет!":​END'​Случай M=N=1 +45 IF M=1 AND N=1 THEN IF A(1,1)<0 THEN ?"​Искомый элемент:";​ 
-47 '​Нахождение отрицательного элемента массива A, у которого сумма индексов минимальна (строки 50-70).+   A(1,1):END ELSE ?"​Такого элемента нет!":​END'​Случай M=N=1 
 +47 '​Нахождение отрицательного элемента массива A, у которого ​ 
 +    ​сумма индексов минимальна (строки 50-70).
 50 FOR I=1 TO M:FOR J=1 TO N 50 FOR I=1 TO M:FOR J=1 TO N
-60 IF A(I,J)<0 THEN IF I+J<K THEN K=I+J:​C=A(I,​J):​NEXTJ:​NEXTI ELSE NEXT J:NEXT I ELSE NEXT J:NEXT I+60 IF A(I,J)<0 THEN IF I+J<K THEN K=I+J:​C=A(I,​J):​NEXTJ:​NEXTI ​ 
 +   ELSE NEXT J:NEXT I ELSE NEXT J:NEXT I
 70 PRINT"​Искомый отрицат.элемент:";​C 70 PRINT"​Искомый отрицат.элемент:";​C
 run run
Строка 2282: Строка 2313:
 Ok Ok
 10 INPUT"​FORMAT";​A$ 10 INPUT"​FORMAT";​A$
-15 '​FORMAT-строковое выражение,​ состоящее из символов "#"​ и десятичной точки (например,​ ##.###); используется в операторе ''​PRINTUSING''​ (строка 210) для вывода элементов массива с требуемой точностью.+15 '​FORMAT-строковое выражение,​ состоящее из символов "#"​ и 
 +     десятичной точки (например,​ ##.###); используется в  
 +     операторе ''​PRINTUSING''​ (строка 210) для вывода элементов массива с требуемой точностью.
 16 '​Точность определяется количеством символов "#",​ стоящих правее десятичной точки. 16 '​Точность определяется количеством символов "#",​ стоящих правее десятичной точки.
 20 DEFINT N,​I,​J:​INPUT"​Число строк (столбцов)";​N 20 DEFINT N,​I,​J:​INPUT"​Число строк (столбцов)";​N
 30 DIM A(N,​N),​B(N,​N):​K=RND(-TIME) 30 DIM A(N,​N),​B(N,​N):​K=RND(-TIME)
-35 '​Формирование матрицы ​ A, элементами которой являются случайные числа (для облегчения тестирования программы!).+35 '​Формирование матрицы ​ A, элементами которой являются ​ 
 +    ​случайные числа (для облегчения тестирования программы!).
 40 FOR I=1 TO N:FOR J=1 TO N 40 FOR I=1 TO N:FOR J=1 TO N
 50 A(I,​J)=INT(10*RND(1)):​PRINT A(I,J); 50 A(I,​J)=INT(10*RND(1)):​PRINT A(I,J);
 60 NEXT J:​PRINT:​NEXT I:​PRINT"​Результат сглаживания"​ 60 NEXT J:​PRINT:​NEXT I:​PRINT"​Результат сглаживания"​
 70 IF N=2 THEN 160 ELSE IF N=1 THEN ?"​Спорный вопрос!":​END 70 IF N=2 THEN 160 ELSE IF N=1 THEN ?"​Спорный вопрос!":​END
-75 '​Программные строки 80-190 позволяют сгладить матрицу A(N,​N).Результат сглаживания - матрица B(N,N).+75 '​Программные строки 80-190 позволяют сгладить матрицу A(N,N). 
 +    ​Результат сглаживания - матрица B(N,N).
 80 FOR I=2 TO N-1:FOR J=2 TO N-1 80 FOR I=2 TO N-1:FOR J=2 TO N-1
 90 B(I,​J)=(A(I-1,​J)+A(I,​J-1)+A(I,​J+1)+A(I+1,​J))/​4:​NEXT J,I 90 B(I,​J)=(A(I-1,​J)+A(I,​J-1)+A(I,​J+1)+A(I+1,​J))/​4:​NEXT J,I
Строка 2326: Строка 2361:
 20 DIM A(M,​M):​X=RND(-TIME) 20 DIM A(M,​M):​X=RND(-TIME)
 30 FOR I=1 TO M:FOR J=1 TO M:​A(I,​J)=INT(10*RND(1)):​PRINT A(I,​J);:​NEXTJ:​PRINT:​NEXT I 30 FOR I=1 TO M:FOR J=1 TO M:​A(I,​J)=INT(10*RND(1)):​PRINT A(I,​J);:​NEXTJ:​PRINT:​NEXT I
-35 '​Нахождение максимальной среди сумм элементов диагоналей,​ расположенных выше главной (строки 40-50).+35 '​Нахождение максимальной среди сумм элементов диагоналей, ​ 
 +    ​расположенных выше главной (строки 40-50).
 40 FOR K=1 TO M-1:FOR I=1 TO M:FOR J=1 TO M 40 FOR K=1 TO M-1:FOR I=1 TO M:FOR J=1 TO M
-50 IF J=I+K THEN B=B+A(I,​J):​NEXT J:NEXT I ELSE NEXTJ:​NEXTI:​IF B>C THEN C=B:​B=0:​NEXT K ELSE B=0:NEXT K +50 IF J=I+K THEN B=B+A(I,​J):​NEXT J:NEXT I ELSE NEXTJ:​NEXTI:​ 
-55 '​Нахождение максимальной среди сумм элементов диагоналей,​ расположенных ниже главной (строки 60-70).+   IF B>C THEN C=B:​B=0:​NEXT K ELSE B=0:NEXT K 
 +55 '​Нахождение максимальной среди сумм элементов диагоналей, ​ 
 +    ​расположенных ниже главной (строки 60-70).
 60 FOR K=1 TO M-1:FOR I=1 TO M:FOR J=1 TO M 60 FOR K=1 TO M-1:FOR I=1 TO M:FOR J=1 TO M
-70 IF J=I-K THEN B=B+A(I,​J):​NEXT J:NEXTI ELSE NEXTJ:​NEXTI:​IF B>D THEN D=B:​B=0:​NEXT K ELSE B=0:NEXT K +70 IF J=I-K THEN B=B+A(I,​J):​NEXT J:NEXTI ELSE NEXTJ:​NEXTI:​ 
-80 IF C>D THEN PRINT C ELSE PRINT D '​Сравнение этих максимумов и вывод большего на экран дисплея.+   IF B>D THEN D=B:​B=0:​NEXT K ELSE B=0:NEXT K 
 +80 IF C>D THEN PRINT C ELSE PRINT D  
 +   '​Сравнение этих максимумов и вывод большего на экран дисплея.
 run run
 ? 4 ? 4
Строка 2367: Строка 2407:
 Ok Ok
 10 DEFINT M,​N,​I,​J,​K,​A:​INPUT"​Введите M и N";M,N 10 DEFINT M,​N,​I,​J,​K,​A:​INPUT"​Введите M и N";M,N
-Кто геометрическое среднее между атомом и Солнцем?​ \\ 
 20 INPUT"​Числовой отрезок[X,​Y]";​X,​Y 20 INPUT"​Числовой отрезок[X,​Y]";​X,​Y
 30 Z=RND(-TIME):​DIM B(M,​N),​A(M,​N) 30 Z=RND(-TIME):​DIM B(M,​N),​A(M,​N)
Строка 2398: Строка 2437:
 NEW NEW
 Ok Ok
-10 DEFINT M,​N,​I,​J,​A,​K:​INPUT"​Введите M и N";​M,​N:​X=RND(-TIME):​DIM A(M,N):IF M<1 OR N<1 THEN RUN 10+10 DEFINT M,​N,​I,​J,​A,​K:​INPUT"​Введите M и N";​M,​N:​X=RND(-TIME):​DIM A(M,N): 
 +   IF M<1 OR N<1 THEN RUN 10
 30 FOR I=1 TO M:FOR J=1 TO N 30 FOR I=1 TO M:FOR J=1 TO N
-40 A(I,​J)=INT(30*RND(1)+1):​IF A(I,J)=2 THEN PRINTUSING"​\ ​ \";​STR$(A(I,​J))+"​*";:​NEXT:​PRINT:​NEXT+40 A(I,​J)=INT(30*RND(1)+1):​IF A(I,J)=2 THEN PRINTUSING"​\ ​ \";​STR$(A(I,​J))+"​*";:​ 
 +   NEXT:​PRINT:​NEXT
 50 K=0:FOR K=2 TO A(I,J)-1 50 K=0:FOR K=2 TO A(I,J)-1
-60 IF A(I,​J)/​K<>​FIX(A(I,​J)/​K) THEN NEXT K:​PRINTUSING"​\ ​ \";​STR$(A(I,​J))+"​*";:​NEXT J:​PRINT:​NEXT I ELSE Y=Y+1:PRINT USING"​\ ​ \";​STR$(A(I,​J))+"​ ";:​NEXT J:​PRINT:​NEXT I+60 IF A(I,​J)/​K<>​FIX(A(I,​J)/​K) THEN NEXT K:​PRINTUSING"​\ ​ \";​STR$(A(I,​J))+"​*";:​ 
 +   NEXT J:​PRINT:​NEXT I ELSE Y=Y+1:PRINT USING"​\ ​ \";​STR$(A(I,​J))+"​ ";:​NEXT J:​PRINT:​NEXT I
 70 PRINT"​Звездочками отмечены простые числа;​составных чисел в Вашем массиве";​Y 70 PRINT"​Звездочками отмечены простые числа;​составных чисел в Вашем массиве";​Y
 run run
Строка 2423: Строка 2465:
 20 INPUT"​Числовой отрезок[X,​Y]";​X,​Y 20 INPUT"​Числовой отрезок[X,​Y]";​X,​Y
 30 Z=RND(-TIME):​DIM A[M,​N],​Q[M,​N],​L[N],​F[N] 30 Z=RND(-TIME):​DIM A[M,​N],​Q[M,​N],​L[N],​F[N]
-40 '​Заполняем массив A[M,N] случайными целыми числами из отрезка [X,Y] и копируем его в массив Q[M,​N](строки 50-70)+40 '​Заполняем массив A[M,N] случайными целыми числами из отрезка [X,Y] и  
 +    ​копируем его в массив Q[M,​N](строки 50-70)
 50 FOR I=1 TO M:FOR J=1 TO N 50 FOR I=1 TO M:FOR J=1 TO N
 60 A[I,​J]=INT((Y-X+1)*RND(1)+X):​Q[I,​J]=A[I,​J] 60 A[I,​J]=INT((Y-X+1)*RND(1)+X):​Q[I,​J]=A[I,​J]
msx/basic_dialogue_programming_language/003.1663423763.txt.gz · Последние изменения: 2022-09-17 17:09 — GreyWolf