Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] текст программы на Basic

Ответить
Настройки темы
Разное - [решено] текст программы на Basic

Новый участник


Сообщения: 3
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Dasgaf
Дата: 19-12-2012
Вложения
Тип файла: rar Расчет модели.rar
(35.8 Kb, 8 просмотров)
Здравствуйте, помогите пожалуйста разобраться с программой на basic, программа предназначена для расчёта диагностических моделей в дорожностроительной техники, изначально говорили что в ней что то не так она не выводила результаты на печать но была рабочей запускали при мне, скинули мне её на флешку а придя домой обнаружил что она совсем не запускается а в файле D-4.bas какие то иероглифы, подумал что у меня проблемы как в этой теме но я вроде сделал всё как там описано не помогло, вообщем если нетрудно посмотрите пожалуйста, буду очень благодарен.

Отправлено: 17:52, 19-12-2012

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Dasgaf, не пробовали делить мысль на несколько отдельных предложений?

Цитата Dasgaf:
она совсем не запускается »
Запускается:


Цитата Dasgaf:
а в файле D-4.bas какие то иероглифы »
Обычная OEM/866 кодировка:
читать дальше »
Код: Выделить весь код
10 CLS : KEY OFF: PRINT : PRINT : CLEAR
20 PRINT TAB(10); "ПРОГРАММА РАСЧЕТА ИНФОРМАТИВНЫХ ХАРАКТЕРИСТИК";
30 PRINT " ДИАГНОСТИЧЕСКИХ": PRINT TAB(35); "МОДЕЛЕЙ": PRINT
33 INPUT " Ваша  фамилия - ", FAM$
40 PRINT TAB(23); "ВВОД ИСХОДНЫХ ДАННЫХ ПО МОДЕЛИ"
50 INPUT "Число уровней (максимум - 6)            -", Z2: Z = Z2 + 1
60 DIM B3(Z), B4(Z)
70 FOR Z = 1 TO Z2: PRINT "   Уровень "; Z;
80 INPUT ".   Последний номер прямого параметра  - ", B3(Z): NEXT Z
90 INPUT "Количество косвенных параметров (КП)           - ", D2
100 INPUT "Мах.число нижележащих ПП, приходящихся на 1 ПП - ", E1
120 N1 = B3(1): N3 = B3(Z2 - 1): N2 = B3(Z2): N = N2 + 1: D = D2 + 1: Z = Z2 + 1
130 DIM B(N), B1(N3 + 1, E1 + 1), B2(N)
140 DIM S$(N), R$(D), A(D), A1(D), A2(D, Z)
150 DIM P(N3 + 1), H1(N), H(Z), V(E1 + 1), T(N), K(N), K1(N)
160 FOR N = 1 TO N2: K(N) = 1: NEXT N
165 INPUT "Режим ввода. С дисплея - 0, с дискеты - 1      - ", E5
168 IF E5 = 1 GOTO 2310 ELSE 250
170 PRINT : PRINT "ВЫБОР РЕЖИМА РАБОТЫ "
180 PRINT "   1 - исходные данные по модели "
190 PRINT "   2 - информативные хар-ки ПП. (5 - повторный вывод)"
200 PRINT "   3 - информативные хар-ки КП. (6 - повторный вывод)"
210 PRINT "   4 - алгоритм поиска дефекта. (7 - повт. вывод)"
215 INPUT "   8 - запись данных на дискету                   - ", E5
217 IF E5 = 8 GOTO 2260
220 INPUT "ПЕЧАТЬ ?   1 - ДА  ", J: PRINT : PRINT
230 ON E5 GOTO 1980, 420, 920, 1240, 620, 1020, 1310
240 STOP
250 PRINT : PRINT TAB(15); "ВВОД ДАННЫХ ПО ДИАГНОСТИЧЕСКОЙ МОДЕЛИ"
260 FOR N = 0 TO N2: PRINT "Элемент "; N: GOSUB 1860: NEXT N
270 PRINT : PRINT "ИСПРАВЛЕНИЯ ПО МОДЕЛИ (при необходимости)"
280 INPUT "   Ввести номер ПП - ", N: IF N = 0 GOTO 300
290 GOSUB 1860: GOTO 270
300 PRINT : PRINT TAB(20); "ВВОД НАЗВАНИЙ ПРЯМЫХ ПАРАМЕТРОВ"
310 AA$ = "** допустимая длина названия **"
320 FOR N = 1 TO N2: G = (N + 4) / 5
330 IF G = INT(G) THEN PRINT TAB(11); AA$
340 PRINT TAB(5); "  "; N; : INPUT " ", S$(N): NEXT N
350 PRINT : PRINT TAB(20); "ВВОД НАЗВАНИЙ КОСВЕННЫХ ПАРАМЕТРОВ"
360 FOR D = 1 TO D2: G = (D + 4) / 5
370 IF G = INT(G) THEN PRINT TAB(11); AA$
380 PRINT TAB(5); "  "; D; : INPUT " ", R$(D): NEXT D
390 PRINT : PRINT TAB(20); "ВВОД КРАТНОСТИ ЭЛЕМЕНТОВ"
400 INPUT "Номер элемента     - ", N: IF N = 0 GOTO 170
410 INPUT "   количество    - ", K(N): GOTO 400
420 N4 = 0: N5 = 0: N = 1
430 C = B(N): IF C = 0 THEN K1(N) = K(N) ELSE K1(N) = K(N) * K1(C)
440 N5 = N5 + K1(N)
450 IF N > N3 THEN N4 = N4 + K1(N)
460 IF N < N2 THEN N = N + 1: GOTO 430
470 H3 = LOG(N4) / LOG(2): P1 = 1 / N4
480 N = N3
490 P = 0: FOR E = 1 TO E1: C = B1(N, E): IF C = 0 GOTO 520
500 IF C > N3 THEN P2 = P1 * K(C) ELSE P2 = P(C) * K(C)
510 P = P + P2: NEXT E
520 P(N) = P
530 IF N > 1 THEN N = N - 1: GOTO 490
540 H2 = 0: Z = 1: H(1) = 0: B4(1) = 0
550 FOR N = 1 TO N2: C = B(N): IF C = 0 THEN P2 = 1 ELSE P2 = P(C)
560 IF N > N3 THEN P = P1 ELSE P = P(N)
570 H1 = -P * LOG(P / P2) / LOG(2): H1(N) = H1
580 H2 = H2 + H1 * K1(N)
590 IF B3(Z) < N THEN Z = Z + 1: H(Z) = 0: B4(Z) = 0
600 H(Z) = H(Z) + H1 * K1(N): B4(Z) = B4(Z) + K1(N)
610 NEXT N
620 AA$ = "                    ОБЩИЕ ДАННЫЕ ПО ДИАГНОСТИЧЕСКОЙ МОДЕЛИ"
630 AB$ = "        КОЛИЧЕСТВО ПРЯМЫХ ПАРАМЕТОВ НА НИЖНЕМ УРОВНЕ  - "
640 AC$ = "        ПОЛНАЯ НЕОПРЕДЕЛЕННОСТЬ СИСТЕМЫ               - "
650 AD$ = "        СУММАРНАЯ НЕОПРЕДЕЛЕННОСТЬ СИСТЕМЫ            - "
660 AE$ = "N уровня  Неопределенность  Количество прямых параметров"
670 IF J = 1 GOTO 700
680 PRINT AA$: GOSUB 1950: PRINT AB$; N4: PRINT AC$; H3
690 PRINT AD$; H2: GOSUB 1950: PRINT TAB(8); AE$: GOTO 720
700 LPRINT AA$: GOSUB 1950: LPRINT AB$; N4: LPRINT AC$; H3
710 LPRINT AD$; H2: GOSUB 1950: LPRINT TAB(8); AE$
720 GOSUB 1950: FOR Z = 1 TO Z2
730 IF J = 1 GOTO 750
740 PRINT TAB(10); Z; TAB(20); H(Z); TAB(46); B4(Z): GOTO 760
750 LPRINT TAB(10); Z; TAB(20); H(Z); TAB(46); B4(Z)
760 NEXT Z: GOSUB 1950: IF J <> 1 THEN PRINT  ELSE LPRINT
770 AA$ = "ИНФОРМАТИВНЫЕ ХАРАКТЕРИЛ-ВО ИНФОР-ТЬ   ПОЛНОТА КОНТРОЛЯ"
780 AB$ = "                            ПАРАМЕТРОВ"
790 AC$ = "         ПРЯМОЙ ПАРАМЕТР       НЕОПРЕДЕЛЕННОСТЬ"
800 AD$ = "      КОСВЕННЫЙ ПАРАМЕТР"
810 IF J = 1 GOTO 830
820 PRINT TAB(15); AA$: PRINT AB$: GOSUB 1950: PRINT AC$; AD$: GOTO 840
830 LPRINT TAB(15); AA$: LPRINT AB$: GOSUB 1950: LPRINT AC$; AD$
840 GOSUB 1950: FOR N = 1 TO N2: D = B2(N): IF J = 1 GOTO 880
850 PRINT N; S$(N); : IF K(N) > 1 THEN PRINT "("; K(N); "узл.)";
860 PRINT TAB(39); : PRINT USING "#.###"; H1(N); : PRINT TAB(44); D;
870 PRINT USING "\                              \"; R$(D): GOTO 910
880 LPRINT N; S$(N); : IF K(N) > 1 THEN LPRINT "("; K(N); "узл.)";
890 LPRINT TAB(39); : LPRINT USING "#.###"; H1(N); : LPRINT TAB(44); D;
900 LPRINT USING "\                             \"; R$(D)
910 NEXT N: GOSUB 1950: GOTO 170
920 FOR D = 1 TO D2: A(D) = 0: A1(D) = 0: NEXT D: Z = 1: H1 = 0
930 N = 1
940 D = B2(N): IF D = O GOTO 980
950 IF N > N3 THEN P2 = P1 * K1(N)
960 A(D) = A(D) + P2: A1(D) = A1(D) + K(N)
970 A2(D, Z) = A2(D, Z) + H1(N) * K1(N) / H1(Z)
980 IF N = N2 GOTO 1020
990 N = N + 1
1000 IF N > B3(Z) THEN Z = Z + 1
1010 GOTO 940
1020 AA$ = "              ИНФОРМАЦИОННЫЕ ХАРАКТЕРИСТИКИ КОСВЕННЫХ"
1030 AB$ = "                               ПАРАМЕТРОВ"
1040 AC$ = "         КОСВЕННЫЙ ПАРАМЕТР"
1050 AD$ = "        KOЛ-ВО ИНФОР-ТЬ    ПОЛНОТА КОНТРОЛЯ"
1060 AE$ = "ОПРЕД.ПАР. БИТ  ОБЩАЯ     ПО УРОВНЯМ"
1070 IF J = 1 GOTO 1100
1080 PRINT AA$: PRINT AB$: GOSUB 1950: PRINT AC$; AD$
1090 PRINT TAB(32); AE$: PRINT TAB(53); : GOTO 1120
1100 LPRINT AA$: LPRINT AB$: GOSUB 1950: LPRINT AC$; AD$
1110 LPRINT TAB(32); AE$: LPRINT TAB(53);
1120 FOR Z = 1 TO Z2: IF J = 1 THEN LPRINT Z; "  ";  ELSE PRINT Z; "  ";
1130 NEXT Z: GOSUB 2210
1140 GOSUB 1950: FOR D = 1 TO D2: IF J <> 1 GOTO 1150 ELSE 1190
1150 PRINT D; R$(D); TAB(37); A1(D);
1160 PRINT USING "#.###_ "; A(D); A(D) / H2;
1170 FOR Z = 1 TO Z2: PRINT USING "#.##_ "; A2(D, Z); : NEXT Z
1180 PRINT : GOTO 1220
1190 LPRINT D; R$(D); TAB(37); A1(D);
1200 LPRINT USING "#.###_ "; A(D); A(D) / H2;
1210 FOR Z = 1 TO Z2: LPRINT USING "#.##_ "; A2(D, Z); : NEXT Z: LPRINT
1220 NEXT D: GOSUB 1950: GOSUB 2210
1230 GOTO 170
1240 N = 0
1250 V(0) = 10000: FOR E = 1 TO E1: I = B1(N, E): IF I = 0 GOTO 1300
1260 C = E: V2 = H1(I) / T(I)
1270 IF V2 <= V(C - 1) THEN V(C) = V2: B1(N, C) = I: GOTO 1290
1280 V(C) = V(C - 1): B1(N, C) = B1(N, C - 1): C = C - 1: GOTO 1270
1290 NEXT E
1300 IF N < N3 THEN N = N + 1: GOTO 1250
1310 AA$ = "АЛГОРИТМ ПОИСКА ДЕФЕКТА"
1320 IF J = 1 THEN LPRINT TAB(25); AA$ ELSE PRINT TAB(25); AA$
1330 GOSUB 1950: G = 32 / (Z2 - 1)
1340 FOR Q1 = 1 TO E1: L1 = B1(0, Q1)
1350 FOR M1 = 1 TO K(L1): IF L1 = 0 GOTO 1850
1360 IF J <> 1 THEN PRINT L1; S$(L1);  ELSE LPRINT L1; S$(L1);
1370 IF K(L1) = 1 THEN GOSUB 2210: GOTO 1390
1380 IF J <> 1 THEN PRINT M1 ELSE LPRINT M1
1390  FOR Q2 = 1 TO E1: IF L1 > N3 GOTO 1830 ELSE L2 = B1(L1, Q2)
1400  FOR M2 = 1 TO K(L2): IF L2 = 0 GOTO 1830
1410 IF J = 1 THEN LPRINT TAB(G); L2; S$(L2); : GOTO 1430
1420 PRINT TAB(G); L2; S$(L2);
1430 IF K(L2) = 1 THEN GOSUB 2210: GOTO 1450
1440 IF J <> 1 THEN PRINT M2 ELSE LPRINT M2
1450 IF Z2 = 2 GOTO 1810
1460   FOR Q3 = 1 TO E1: IF L2 > N3 GOTO 1810 ELSE L3 = B1(L2, Q3)
1470   FOR M3 = 1 TO K(L3): IF L3 = 0 GOTO 1810
1480 IF J = 1 THEN LPRINT TAB(G * 2); L3; S$(L3); : GOTO 1500
1490 PRINT TAB(G * 2); L3; S$(L3);
1500 IF K(L3) = 1 THEN GOSUB 2210: GOTO 1520
1510 IF J <> 1 THEN PRINT M3 ELSE LPRINT M3
1520 IF Z2 = 3 GOTO 1790
1530    FOR Q4 = 1 TO E1: IF L3 > N3 GOTO 1790 ELSE L4 = B1(L3, Q4)
1540    FOR M4 = 1 TO K(L4): IF L4 = 0 GOTO 1790
1550 IF J = 1 THEN LPRINT TAB(G * 3); L4; S$(L4); : GOTO 1570
1560 PRINT TAB(G * 3); L4; S$(L4);
1570 IF K(L4) = 1 THEN GOSUB 2210: GOTO 1590
1580 IF J <> 1 THEN PRINT M4 ELSE LPRINT M4
1590 IF Z2 = 4 GOTO 1770
1600     FOR Q5 = 1 TO E1: IF L4 > N3 GOTO 1770 ELSE L5 = B1(L4, Q5)
1610     FOR M5 = 1 TO K(L5): IF L5 = 0 GOTO 1770
1620 IF J = 1 THEN LPRINT TAB(G * 4); L5; S$(L5); : GOTO 1640
1630 PRINT TAB(G * 4); L5; S$(L5);
1640 IF K(L5) = 1 THEN GOSUB 2210: GOTO 1660
1650 IF J <> 1 THEN PRINT M5 ELSE LPRINT M5
1660 IF Z2 = 5 GOTO 1750
1670      FOR Q6 = 1 TO E1: IF L5 > N3 GOTO 1750 ELSE L6 = B1(L5, Q6)
1680      FOR M6 = 1 TO K(L6): IF L6 = 0 GOTO 1750
1690 IF J = 1 THEN LPRINT TAB(G * 5); L6; S$(L6); : GOTO 1710
1700 PRINT TAB(G * 5); L6; S$(L6);
1710 IF K(L6) = 1 THEN GOSUB 2210: GOTO 1730
1720 IF J <> 1 THEN PRINT M6 ELSE PRINT M6
1730      NEXT M6
1740      NEXT Q6
1750     NEXT M5
1760     NEXT Q5
1770    NEXT M4
1780    NEXT Q4
1790   NEXT M3
1800   NEXT Q3
1810  NEXT M2
1820  NEXT Q2
1830 NEXT M1
1840 NEXT Q1
1850 GOSUB 1950: GOTO 170
1860 IF N > N3 GOTO 1900
1870 FOR E = 1 TO E1: PRINT TAB(6); E;
1880 INPUT "Нижестоящий прямой параметр  - ", B1: IF B1 = 0 GOTO 1900
1890 B(B1) = N: B1(N, E) = B1: NEXT E
1900 IF N = 0 GOTO 1940
1910 INPUT "          Косвенный параметр            - ", B2(N)
1920 INPUT "            Время получения информации  - ", T(N)
1930 IF T(N) = 0 THEN T(N) = 1
1940 RETURN
1950 IF J = 1 THEN LPRINT " ";  ELSE PRINT " ";
1960 FOR I = 1 TO 17: IF J = 1 THEN LPRINT "----";  ELSE PRINT "----";
1970 NEXT I: GOSUB 2210: RETURN
1980 AA$ = "ИСХОДНЫЕ ДАННЫЕ ПО ДИАГНОСТИЧЕСКОЙ МОДЕЛИ"
1990 AB$ = "  N  название прямого параметра"
2000 AC$ = "    КП Т,мин КР.   Нижележащие ПП": AE$ = "Уровень "
2010 IF J = 1 GOTO 2030
2020 PRINT "Расчет пpоизвел(а) - "; FAM$; "      "; DATE$
2025 PRINT TAB(20); AA$: GOSUB 1950: PRINT AB$; AC$: GOTO 2040
2030 LPRINT "Расчет пpоизвел(а) - "; FAM$; "     "; DATE$
2035 LPRINT TAB(20); AA$: GOSUB 1950: LPRINT AB$; AC$
2040 GOSUB 1950: N = 0: Z = 0: GOSUB 2230
2050 IF N = (B3(Z) + 1) THEN Z = Z + 1: GOSUB 2230
2060 IF J = 1 GOTO 2090
2070 PRINT N; S$(N); TAB(36); B2(N); : PRINT USING "###.#_ "; T(N);
2080 PRINT K(N); : GOTO 2110
2090 LPRINT N; S$(N); TAB(36); B2(N); : LPRINT USING "###.#_ "; T(N);
2100 LPRINT K(N);
2110 IF N > N3 GOTO 2150
2120 FOR E = 1 TO E1: IF B1(N, E) = 0 GOTO 2150
2130 IF J = 1 THEN LPRINT B1(N, E);  ELSE PRINT B1(N, E);
2140 NEXT E
2150 GOSUB 2210: IF N < N2 THEN N = N + 1: GOTO 2050
2160 GOSUB 1950: AD$ = "  N  Название косвенного параметра"
2170 IF J = 1 THEN LPRINT AD$ ELSE PRINT AD$
2180 GOSUB 1950
2190 FOR D = 1 TO D2: IF J = 1 THEN LPRINT D; R$(D) ELSE PRINT D; R$(D)
2200 NEXT D: GOSUB 1950: GOTO 170
2210 IF J = 1 THEN LPRINT  ELSE PRINT
2220 RETURN
2230 IF J = 1 THEN LPRINT TAB(12); AE$; Z ELSE PRINT TAB(12); AE$; Z
2240 RETURN
2250 STOP
2260 INPUT "Имя файла  ", MM$
2265 OPEN "O", #1, MM$
2270 FOR N = 0 TO N2: PRINT #1, USING "&"; S$(N)
2275 IF N > N3 GOTO 2290
2280 FOR E = 1 TO E1: PRINT #1, USING "##."; B1(N, E): NEXT E
2290 PRINT #1, USING "##."; B2(N); K(N)
2300 PRINT #1, USING "###.#"; T(N): NEXT N
2302 FOR D = 1 TO D2: PRINT #1, USING "&"; R$(D): NEXT D: CLOSE 1
2304 GOTO 170
2310 INPUT "Имя файла  ", MM$
2315 OPEN "I", #2, MM$
2320 FOR N = 0 TO N2: INPUT #2, S$(N)
2325 IF N > N3 GOTO 2340
2330 FOR E = 1 TO E1: INPUT #2, B1(N, E): NEXT E
2340 INPUT #2, B2(N), K(N), T(N): NEXT N
2350 FOR D = 1 TO D2: INPUT #2, R$(D): NEXT D: CLOSE 2
2352 FOR N = 1 TO N3: FOR E = 1 TO E1
2354 B1 = B1(N, E): IF B1 = 0 THEN 2358 ELSE B(B1) = N
2356 NEXT E
2358 NEXT N
2360 GOTO 170
2400 STOP

С печатью на современные принтеры — да, могут быть проблемы.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:18, 19-12-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Большое спасибо за столь скорый ответ, если вас не затруднит подскажите пожалуйста как мне запустить её у себя на компьютере, к сожалению очень далёк от программирования .

Отправлено: 18:24, 19-12-2012 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать



Dasgaf, мне сложно сказать что-либо определённое — у меня под Windows XP исполняемый файл запускается без каких-либо проблем. Пробовал на двух разных машинах.

Ну, попробуйте в QBasic'е: SampleWithQBasic.7z. Используйте приложенный пакетный файл для запуска.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:30, 19-12-2012 | #4


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Да, действительно всё запустилось в Qbasic ещё раз большое спасибо за помощь!

Отправлено: 19:47, 19-12-2012 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] текст программы на Basic

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Подбор - [решено] Upgrade Vista Home Basic --> 7 Home Basic/Premium на ноутбуке возможно? (физлицо) true_Sirin Лицензирование продуктов Microsoft 2 14-12-2011 01:29
FreeRIP Basic 3.2 OSZone Software Новости программного обеспечения 0 27-10-2009 13:30
Нужна программа, определяющая, каким инсталлятором запакована программа yaryar Программное обеспечение Windows 3 24-06-2008 10:56
Visual Basic DevilHaker Программирование и базы данных 3 15-01-2006 09:52
Visual basic carlos Программирование и базы данных 1 04-08-2003 02:03




 
Переход