質問編集履歴

12

誤字の修正

2021/06/07 05:20

投稿

COBOL_TURAI
COBOL_TURAI

スコア2

test CHANGED
File without changes
test CHANGED
@@ -280,35 +280,293 @@
280
280
 
281
281
  PERFORM RECORD-SYORI
282
282
 
283
+ PERFORM ATOSHIMATSU-SYORI
284
+
285
+ STOP RUN.
286
+
287
+
288
+
289
+ *<準備処理>------------------------------------
290
+
291
+ JUNBI-SYORI SECTION.
292
+
293
+ OPEN INPUT KYORI-FILE.
294
+
295
+ OPEN INPUT UNCHIN-FILE.
296
+
297
+
298
+
299
+ MOVE SPACE TO END-FLAG
300
+
301
+ MOVE 1 TO I
302
+
303
+
304
+
305
+ PERFORM
306
+
283
307
  UNTIL END-FLAG = "EOF"
284
308
 
285
- PERFORM ATOSHIMATSU-SYORI
286
-
287
- STOP RUN.
288
-
289
-
290
-
291
- *<準備処理>------------------------------------
292
-
293
- JUNBI-SYORI SECTION.
294
-
295
- OPEN INPUT KYORI-FILE.
296
-
297
- OPEN INPUT UNCHIN-FILE.
298
-
299
-
309
+ READ KYORI-FILE
310
+
311
+ AT END
312
+
313
+ MOVE "EOF" TO END-FLAG
314
+
315
+ NOT AT END
316
+
317
+ MOVE EKIMEI-K TO EKIMEI-WK(I)
318
+
319
+ MOVE KYORI-K TO KYORI-WK(I)
320
+
321
+ ADD 1 TO I
322
+
323
+ END-READ
324
+
325
+ END-PERFORM
326
+
327
+ MOVE SPACE TO END-FLAG.
328
+
329
+
330
+
331
+ *<レコードごとの処理>-----------------------------------
332
+
333
+ RECORD-SYORI SECTION.
334
+
335
+
336
+
337
+ *//入力処理----------------------
338
+
339
+ MOVE 0 TO ICCHI-FLAG
340
+
341
+ PERFORM
342
+
343
+ UNTIL ICCHI-FLAG = 1 OR EKIMEI-JOUSHA = "END"
344
+
345
+ DISPLAY "乗車駅==>" WITH NO ADVANCING
346
+
347
+ ACCEPT EKIMEI-JOUSHA FROM CONSOLE
348
+
349
+
350
+
351
+ *EKIMI-JOUSHAの変数の冒頭部分がなぜか消えている
352
+
353
+ DISPLAY EKIMEI-JOUSHA
354
+
355
+
356
+
357
+ PERFORM JOUSHA-KENSAKU-SYORI
358
+
359
+ END-PERFORM
360
+
361
+
362
+
363
+ IF EKIMEI-JOUSHA = "END"
364
+
365
+ THEN
366
+
367
+ STOP RUN
368
+
369
+ END-IF
370
+
371
+
372
+
373
+ MOVE 0 TO ICCHI-FLAG
374
+
375
+ PERFORM
376
+
377
+ UNTIL ICCHI-FLAG = 1
378
+
379
+ DISPLAY "下車駅==>" WITH NO ADVANCING
380
+
381
+ ACCEPT EKIMEI-GESHA FROM CONSOLE
382
+
383
+ PERFORM GESHA-KENSAKU-SYORI
384
+
385
+ END-PERFORM
386
+
387
+
388
+
389
+ *//最短距離の運賃計算処理-----------
390
+
391
+ IF KYORI-GESHA - KYORI-JOUSHA > 0
392
+
393
+ THEN
394
+
395
+ COMPUTE SOTO-KYORI = KYORI-GESHA - KYORI-JOUSHA
396
+
397
+ ELSE
398
+
399
+ COMPUTE SOTO-KYORI = KYORI-JOUSHA - KYORI-GESHA
400
+
401
+ END-IF
402
+
403
+
404
+
405
+ COMPUTE UTI-KYORI = 21.7 - SOTO-KYORI
406
+
407
+
408
+
409
+ IF SOTO-KYORI <= UTI-KYORI
410
+
411
+ THEN
412
+
413
+ MOVE SOTO-KYORI TO SAIYO-KYORI
414
+
415
+ ELSE
416
+
417
+ MOVE UTI-KYORI TO SAIYO-KYORI
418
+
419
+ END-IF
420
+
421
+ MOVE SAIYO-KYORI TO KYORI-O
422
+
423
+ PERFORM UNCHIN-KENSAKU-SYORI
424
+
425
+
426
+
427
+ *//画面表示------------------------
428
+
429
+
430
+
431
+ *確認用********************************************
432
+
433
+ DISPLAY "乗車駅名 = " WITH NO ADVANCING
434
+
435
+ DISPLAY EKIMEI-JOUSHA
436
+
437
+ DISPLAY "乗車駅距離= " WITH NO ADVANCING
438
+
439
+ DISPLAY KYORI-JOUSHA
440
+
441
+ DISPLAY "下車駅名 = " WITH NO ADVANCING
442
+
443
+ DISPLAY EKIMEI-GESHA
444
+
445
+ DISPLAY "下車駅距離= " WITH NO ADVANCING
446
+
447
+ DISPLAY KYORI-GESHA
448
+
449
+ DISPLAY " "
450
+
451
+ DISPLAY "外回り距離= " WITH NO ADVANCING
452
+
453
+ DISPLAY SOTO-KYORI
454
+
455
+ DISPLAY "内回り距離= " WITH NO ADVANCING
456
+
457
+ DISPLAY UTI-KYORI
458
+
459
+ DISPLAY " "
460
+
461
+ **************************************************
462
+
463
+
464
+
465
+ DISPLAY "距離 = " WITH NO ADVANCING
466
+
467
+ DISPLAY SAIYO-KYORI WITH NO ADVANCING
468
+
469
+ DISPLAY " km"
470
+
471
+
472
+
473
+ DISPLAY "運賃 = " WITH NO ADVANCING
474
+
475
+ DISPLAY UNCHIN-O WITH NO ADVANCING
476
+
477
+ DISPLAY " 円".
478
+
479
+
480
+
481
+ * <乗車駅検索処理>---------------------------------------
482
+
483
+ JOUSHA-KENSAKU-SYORI SECTION.
484
+
485
+ MOVE 1 TO I
486
+
487
+
488
+
489
+ PERFORM
490
+
491
+ UNTIL EKIMEI-WK(I) = EKIMEI-JOUSHA OR I = 20
492
+
493
+ ADD 1 TO I
494
+
495
+ END-PERFORM
496
+
497
+
498
+
499
+ IF EKIMEI-WK(I) = EKIMEI-JOUSHA
500
+
501
+ THEN
502
+
503
+ MOVE 1 TO ICCHI-FLAG
504
+
505
+ MOVE KYORI-WK(I) TO KYORI-JOUSHA
506
+
507
+ END-IF.
508
+
509
+
510
+
511
+ * <下車駅検索処理>--------------------------------------
512
+
513
+ GESHA-KENSAKU-SYORI SECTION.
514
+
515
+ MOVE 1 TO I
516
+
517
+
518
+
519
+ PERFORM
520
+
521
+ UNTIL EKIMEI-WK(I) = EKIMEI-GESHA OR I = 20
522
+
523
+ ADD 1 TO I
524
+
525
+ END-PERFORM
526
+
527
+
528
+
529
+ IF EKIMEI-WK(I) = EKIMEI-GESHA
530
+
531
+ THEN
532
+
533
+ MOVE 1 TO ICCHI-FLAG
534
+
535
+ MOVE KYORI-WK(I) TO KYORI-GESHA
536
+
537
+ END-IF.
538
+
539
+
540
+
541
+ * <運賃検索処理>----------------------------------------
542
+
543
+ UNCHIN-KENSAKU-SYORI SECTION.
300
544
 
301
545
  MOVE SPACE TO END-FLAG
302
546
 
547
+
548
+
549
+ READ UNCHIN-FILE
550
+
551
+ AT END
552
+
553
+ MOVE "EOF" TO END-FLAG
554
+
555
+ NOT AT END
556
+
303
- MOVE 1 TO I
557
+ MOVE UNCHIN-U TO UNCHIN-O
558
+
559
+ END-READ
304
560
 
305
561
 
306
562
 
307
563
  PERFORM
308
564
 
565
+ UNTIL KYORI-O <= KYORI-U OR END-FLAG = "EOF"
566
+
309
- UNTIL END-FLAG = "EOF"
567
+ OR END-FLAG = "EOF"
310
-
568
+
311
- READ KYORI-FILE
569
+ READ UNCHIN-FILE
312
570
 
313
571
  AT END
314
572
 
@@ -316,270 +574,10 @@
316
574
 
317
575
  NOT AT END
318
576
 
319
- MOVE EKIMEI-K TO EKIMEI-WK(I)
320
-
321
- MOVE KYORI-K TO KYORI-WK(I)
577
+ MOVE UNCHIN-U TO UNCHIN-O
322
-
323
- ADD 1 TO I
324
578
 
325
579
  END-READ
326
580
 
327
- END-PERFORM
328
-
329
- MOVE SPACE TO END-FLAG.
330
-
331
-
332
-
333
- *<レコードごとの処理>-----------------------------------
334
-
335
- RECORD-SYORI SECTION.
336
-
337
-
338
-
339
- *//入力処理----------------------
340
-
341
- MOVE 0 TO ICCHI-FLAG
342
-
343
- PERFORM
344
-
345
- UNTIL ICCHI-FLAG = 1 OR EKIMEI-JOUSHA = "END"
346
-
347
- DISPLAY "乗車駅==>" WITH NO ADVANCING
348
-
349
- ACCEPT EKIMEI-JOUSHA FROM CONSOLE
350
-
351
-
352
-
353
- *EKIMI-JOUSHAの変数の冒頭部分がなぜか消えている
354
-
355
- DISPLAY EKIMEI-JOUSHA
356
-
357
-
358
-
359
- PERFORM JOUSHA-KENSAKU-SYORI
360
-
361
- END-PERFORM
362
-
363
-
364
-
365
- IF EKIMEI-JOUSHA = "END"
366
-
367
- THEN
368
-
369
- STOP RUN
370
-
371
- END-IF
372
-
373
-
374
-
375
- MOVE 0 TO ICCHI-FLAG
376
-
377
- PERFORM
378
-
379
- UNTIL ICCHI-FLAG = 1
380
-
381
- DISPLAY "下車駅==>" WITH NO ADVANCING
382
-
383
- ACCEPT EKIMEI-GESHA FROM CONSOLE
384
-
385
- PERFORM GESHA-KENSAKU-SYORI
386
-
387
- END-PERFORM
388
-
389
-
390
-
391
- *//最短距離の運賃計算処理-----------
392
-
393
- IF KYORI-GESHA - KYORI-JOUSHA > 0
394
-
395
- THEN
396
-
397
- COMPUTE SOTO-KYORI = KYORI-GESHA - KYORI-JOUSHA
398
-
399
- ELSE
400
-
401
- COMPUTE SOTO-KYORI = KYORI-JOUSHA - KYORI-GESHA
402
-
403
- END-IF
404
-
405
-
406
-
407
- COMPUTE UTI-KYORI = 21.7 - SOTO-KYORI
408
-
409
-
410
-
411
- IF SOTO-KYORI <= UTI-KYORI
412
-
413
- THEN
414
-
415
- MOVE SOTO-KYORI TO SAIYO-KYORI
416
-
417
- ELSE
418
-
419
- MOVE UTI-KYORI TO SAIYO-KYORI
420
-
421
- END-IF
422
-
423
- MOVE SAIYO-KYORI TO KYORI-O
424
-
425
- PERFORM UNCHIN-KENSAKU-SYORI
426
-
427
-
428
-
429
- *//画面表示------------------------
430
-
431
-
432
-
433
- *確認用********************************************
434
-
435
- DISPLAY "乗車駅名 = " WITH NO ADVANCING
436
-
437
- DISPLAY EKIMEI-JOUSHA
438
-
439
- DISPLAY "乗車駅距離= " WITH NO ADVANCING
440
-
441
- DISPLAY KYORI-JOUSHA
442
-
443
- DISPLAY "下車駅名 = " WITH NO ADVANCING
444
-
445
- DISPLAY EKIMEI-GESHA
446
-
447
- DISPLAY "下車駅距離= " WITH NO ADVANCING
448
-
449
- DISPLAY KYORI-GESHA
450
-
451
- DISPLAY " "
452
-
453
- DISPLAY "外回り距離= " WITH NO ADVANCING
454
-
455
- DISPLAY SOTO-KYORI
456
-
457
- DISPLAY "内回り距離= " WITH NO ADVANCING
458
-
459
- DISPLAY UTI-KYORI
460
-
461
- DISPLAY " "
462
-
463
- **************************************************
464
-
465
-
466
-
467
- DISPLAY "距離 = " WITH NO ADVANCING
468
-
469
- DISPLAY SAIYO-KYORI WITH NO ADVANCING
470
-
471
- DISPLAY " km"
472
-
473
-
474
-
475
- DISPLAY "運賃 = " WITH NO ADVANCING
476
-
477
- DISPLAY UNCHIN-O WITH NO ADVANCING
478
-
479
- DISPLAY " 円".
480
-
481
-
482
-
483
- * <乗車駅検索処理>---------------------------------------
484
-
485
- JOUSHA-KENSAKU-SYORI SECTION.
486
-
487
- MOVE 1 TO I
488
-
489
-
490
-
491
- PERFORM
492
-
493
- UNTIL EKIMEI-WK(I) = EKIMEI-JOUSHA OR I = 20
494
-
495
- ADD 1 TO I
496
-
497
- END-PERFORM
498
-
499
-
500
-
501
- IF EKIMEI-WK(I) = EKIMEI-JOUSHA
502
-
503
- THEN
504
-
505
- MOVE 1 TO ICCHI-FLAG
506
-
507
- MOVE KYORI-WK(I) TO KYORI-JOUSHA
508
-
509
- END-IF.
510
-
511
-
512
-
513
- * <下車駅検索処理>--------------------------------------
514
-
515
- GESHA-KENSAKU-SYORI SECTION.
516
-
517
- MOVE 1 TO I
518
-
519
-
520
-
521
- PERFORM
522
-
523
- UNTIL EKIMEI-WK(I) = EKIMEI-GESHA OR I = 20
524
-
525
- ADD 1 TO I
526
-
527
- END-PERFORM
528
-
529
-
530
-
531
- IF EKIMEI-WK(I) = EKIMEI-GESHA
532
-
533
- THEN
534
-
535
- MOVE 1 TO ICCHI-FLAG
536
-
537
- MOVE KYORI-WK(I) TO KYORI-GESHA
538
-
539
- END-IF.
540
-
541
-
542
-
543
- * <運賃検索処理>----------------------------------------
544
-
545
- UNCHIN-KENSAKU-SYORI SECTION.
546
-
547
- MOVE SPACE TO END-FLAG
548
-
549
-
550
-
551
- READ UNCHIN-FILE
552
-
553
- AT END
554
-
555
- MOVE "EOF" TO END-FLAG
556
-
557
- NOT AT END
558
-
559
- MOVE UNCHIN-U TO UNCHIN-O
560
-
561
- END-READ
562
-
563
-
564
-
565
- PERFORM
566
-
567
- UNTIL KYORI-O <= KYORI-U OR END-FLAG = "EOF"
568
-
569
- OR END-FLAG = "EOF"
570
-
571
- READ UNCHIN-FILE
572
-
573
- AT END
574
-
575
- MOVE "EOF" TO END-FLAG
576
-
577
- NOT AT END
578
-
579
- MOVE UNCHIN-U TO UNCHIN-O
580
-
581
- END-READ
582
-
583
581
  END-PERFORM.
584
582
 
585
583
 

11

いただいた修正点をもとに更新

2021/06/07 05:20

投稿

COBOL_TURAI
COBOL_TURAI

スコア2

test CHANGED
File without changes
test CHANGED
@@ -214,8 +214,6 @@
214
214
 
215
215
  02 KYORI-K PIC 99V9.
216
216
 
217
- *初回質問時にご指摘いただき、解決した箇所
218
-
219
217
  02 FILLER PIC X(2).
220
218
 
221
219
 
@@ -228,8 +226,6 @@
228
226
 
229
227
  02 UNCHIN-U PIC 9(4).
230
228
 
231
- *初回質問時にご指摘いただき、解決した箇所
232
-
233
229
  02 FILLER PIC X(2).
234
230
 
235
231
 
@@ -240,16 +236,8 @@
240
236
 
241
237
  01 I PIC 9(2).
242
238
 
243
- *次の問題個所 改善されなかったためコメントアウト中
244
-
245
- * 01 EKIMEI-JOUSHA PIC X(14).
246
-
247
239
  01 EKIMEI-JOUSHA PIC X(12).
248
240
 
249
- *次の問題個所 改善されなかったためコメントアウト中
250
-
251
- * 01 EKIMEI-GESHA PIC X(14).
252
-
253
241
  01 EKIMEI-GESHA PIC X(12).
254
242
 
255
243
  01 KYORI-JOUSHA PIC 99V9.
@@ -264,6 +252,8 @@
264
252
 
265
253
  01 SAIYO-KYORI PIC Z9.9.
266
254
 
255
+ 01 KYORI-O PIC 9(2).
256
+
267
257
  01 UNCHIN-O PIC Z999.
268
258
 
269
259
 
@@ -280,8 +270,6 @@
280
270
 
281
271
 
282
272
 
283
-
284
-
285
273
  PROCEDURE DIVISION.
286
274
 
287
275
  *<主処理>--------------------------------------
@@ -360,9 +348,13 @@
360
348
 
361
349
  ACCEPT EKIMEI-JOUSHA FROM CONSOLE
362
350
 
351
+
352
+
353
+ *EKIMI-JOUSHAの変数の冒頭部分がなぜか消えている
354
+
363
- DISPLAY EKIMEI-JOUSHA
355
+ DISPLAY EKIMEI-JOUSHA
364
-
365
- *確認用  MOVE "サクラノミヤ" TO EKIMEI-JOUSHA
356
+
357
+
366
358
 
367
359
  PERFORM JOUSHA-KENSAKU-SYORI
368
360
 
@@ -370,61 +362,67 @@
370
362
 
371
363
 
372
364
 
373
- IF EKIMEI-JOUSHA NOT = "END"
365
+ IF EKIMEI-JOUSHA = "END"
374
366
 
375
367
  THEN
376
368
 
369
+ STOP RUN
370
+
371
+ END-IF
372
+
373
+
374
+
377
- MOVE 0 TO ICCHI-FLAG
375
+ MOVE 0 TO ICCHI-FLAG
378
-
376
+
379
- PERFORM
377
+ PERFORM
380
-
378
+
381
- UNTIL ICCHI-FLAG = 1
379
+ UNTIL ICCHI-FLAG = 1
382
-
380
+
383
- DISPLAY "下車駅==>" WITH NO ADVANCING
381
+ DISPLAY "下車駅==>" WITH NO ADVANCING
384
-
382
+
385
- ACCEPT EKIMEI-GESHA FROM CONSOLE
383
+ ACCEPT EKIMEI-GESHA FROM CONSOLE
386
-
387
- *確認用  MOVE "ニシクジョウ" TO EKIMEI-GESHA
384
+
388
-
389
- PERFORM GESHA-KENSAKU-SYORI
385
+ PERFORM GESHA-KENSAKU-SYORI
390
-
386
+
391
- END-PERFORM
387
+ END-PERFORM
392
388
 
393
389
 
394
390
 
395
391
  *//最短距離の運賃計算処理-----------
396
392
 
397
- IF KYORI-GESHA - KYORI-JOUSHA > 0
393
+ IF KYORI-GESHA - KYORI-JOUSHA > 0
398
-
394
+
399
- THEN
395
+ THEN
400
-
396
+
401
- COMPUTE SOTO-KYORI = KYORI-GESHA - KYORI-JOUSHA
397
+ COMPUTE SOTO-KYORI = KYORI-GESHA - KYORI-JOUSHA
402
-
398
+
403
- ELSE
399
+ ELSE
404
-
400
+
405
- COMPUTE SOTO-KYORI = KYORI-JOUSHA - KYORI-GESHA
401
+ COMPUTE SOTO-KYORI = KYORI-JOUSHA - KYORI-GESHA
406
-
402
+
407
- END-IF
403
+ END-IF
408
-
409
-
410
-
404
+
405
+
406
+
411
- COMPUTE UTI-KYORI = 21.7 - SOTO-KYORI
407
+ COMPUTE UTI-KYORI = 21.7 - SOTO-KYORI
412
-
413
-
414
-
408
+
409
+
410
+
415
- IF SOTO-KYORI <= UTI-KYORI
411
+ IF SOTO-KYORI <= UTI-KYORI
416
-
412
+
417
- THEN
413
+ THEN
418
-
414
+
419
- MOVE SOTO-KYORI TO SAIYO-KYORI
415
+ MOVE SOTO-KYORI TO SAIYO-KYORI
420
-
416
+
421
- ELSE
417
+ ELSE
422
-
418
+
423
- MOVE UTI-KYORI TO SAIYO-KYORI
419
+ MOVE UTI-KYORI TO SAIYO-KYORI
424
-
420
+
425
- END-IF
421
+ END-IF
422
+
426
-
423
+ MOVE SAIYO-KYORI TO KYORI-O
424
+
427
- PERFORM UNCHIN-KENSAKU-SYORI
425
+ PERFORM UNCHIN-KENSAKU-SYORI
428
426
 
429
427
 
430
428
 
@@ -434,67 +432,95 @@
434
432
 
435
433
  *確認用********************************************
436
434
 
437
- DISPLAY "乗車駅名 = " WITH NO ADVANCING
435
+ DISPLAY "乗車駅名 = " WITH NO ADVANCING
438
-
436
+
439
- DISPLAY EKIMEI-JOUSHA
437
+ DISPLAY EKIMEI-JOUSHA
440
-
438
+
441
- DISPLAY "乗車駅距離= " WITH NO ADVANCING
439
+ DISPLAY "乗車駅距離= " WITH NO ADVANCING
442
-
440
+
443
- DISPLAY KYORI-JOUSHA
441
+ DISPLAY KYORI-JOUSHA
444
-
442
+
445
- DISPLAY "下車駅名 = " WITH NO ADVANCING
443
+ DISPLAY "下車駅名 = " WITH NO ADVANCING
446
-
444
+
447
- DISPLAY EKIMEI-GESHA
445
+ DISPLAY EKIMEI-GESHA
448
-
446
+
449
- DISPLAY "下車駅距離= " WITH NO ADVANCING
447
+ DISPLAY "下車駅距離= " WITH NO ADVANCING
450
-
448
+
451
- DISPLAY KYORI-GESHA
449
+ DISPLAY KYORI-GESHA
452
-
450
+
453
- DISPLAY ""
451
+ DISPLAY " "
454
-
452
+
455
- DISPLAY "外回り距離= " WITH NO ADVANCING
453
+ DISPLAY "外回り距離= " WITH NO ADVANCING
456
-
454
+
457
- DISPLAY SOTO-KYORI
455
+ DISPLAY SOTO-KYORI
458
-
456
+
459
- DISPLAY "内回り距離= " WITH NO ADVANCING
457
+ DISPLAY "内回り距離= " WITH NO ADVANCING
460
-
458
+
461
- DISPLAY UTI-KYORI
459
+ DISPLAY UTI-KYORI
462
-
460
+
463
- DISPLAY ""
461
+ DISPLAY " "
464
462
 
465
463
  **************************************************
466
464
 
467
465
 
468
466
 
469
- DISPLAY "距離 = " WITH NO ADVANCING
467
+ DISPLAY "距離 = " WITH NO ADVANCING
470
-
468
+
471
- DISPLAY SAIYO-KYORI WITH NO ADVANCING
469
+ DISPLAY SAIYO-KYORI WITH NO ADVANCING
472
-
470
+
473
- DISPLAY " km"
471
+ DISPLAY " km"
474
-
475
-
476
-
472
+
473
+
474
+
477
- DISPLAY "運賃 = " WITH NO ADVANCING
475
+ DISPLAY "運賃 = " WITH NO ADVANCING
478
-
476
+
479
- DISPLAY UNCHIN-O WITH NO ADVANCING
477
+ DISPLAY UNCHIN-O WITH NO ADVANCING
480
-
478
+
481
- DISPLAY " 円"
479
+ DISPLAY " 円".
480
+
481
+
482
+
483
+ * <乗車駅検索処理>---------------------------------------
484
+
485
+ JOUSHA-KENSAKU-SYORI SECTION.
486
+
487
+ MOVE 1 TO I
488
+
489
+
490
+
491
+ PERFORM
492
+
493
+ UNTIL EKIMEI-WK(I) = EKIMEI-JOUSHA OR I = 20
494
+
495
+ ADD 1 TO I
496
+
497
+ END-PERFORM
498
+
499
+
500
+
501
+ IF EKIMEI-WK(I) = EKIMEI-JOUSHA
502
+
503
+ THEN
504
+
505
+ MOVE 1 TO ICCHI-FLAG
506
+
507
+ MOVE KYORI-WK(I) TO KYORI-JOUSHA
482
508
 
483
509
  END-IF.
484
510
 
485
-
486
-
511
+
512
+
487
- * <車駅検索処理>---------------------------------------
513
+ * <車駅検索処理>--------------------------------------
488
-
514
+
489
- JOUSHA-KENSAKU-SYORI SECTION.
515
+ GESHA-KENSAKU-SYORI SECTION.
490
516
 
491
517
  MOVE 1 TO I
492
518
 
493
-
519
+
494
520
 
495
521
  PERFORM
496
522
 
497
- UNTIL EKIMEI-WK(I) = EKIMEI-JOUSHA OR I = 20
523
+ UNTIL EKIMEI-WK(I) = EKIMEI-GESHA OR I = 20
498
524
 
499
525
  ADD 1 TO I
500
526
 
@@ -502,59 +528,43 @@
502
528
 
503
529
 
504
530
 
505
- IF EKIMEI-WK(I) = EKIMEI-JOUSHA
531
+ IF EKIMEI-WK(I) = EKIMEI-GESHA
506
532
 
507
533
  THEN
508
534
 
509
535
  MOVE 1 TO ICCHI-FLAG
510
536
 
511
- MOVE KYORI-WK(I) TO KYORI-JOUSHA
537
+ MOVE KYORI-WK(I) TO KYORI-GESHA
512
538
 
513
539
  END-IF.
514
540
 
515
541
 
516
542
 
517
- * <下車駅検索処理>--------------------------------------
543
+ * <運賃検索処理>----------------------------------------
518
-
544
+
519
- GESHA-KENSAKU-SYORI SECTION.
545
+ UNCHIN-KENSAKU-SYORI SECTION.
520
-
546
+
521
- MOVE 1 TO I
547
+ MOVE SPACE TO END-FLAG
548
+
549
+
550
+
551
+ READ UNCHIN-FILE
552
+
553
+ AT END
554
+
555
+ MOVE "EOF" TO END-FLAG
556
+
557
+ NOT AT END
558
+
559
+ MOVE UNCHIN-U TO UNCHIN-O
560
+
561
+ END-READ
522
562
 
523
563
 
524
564
 
525
565
  PERFORM
526
566
 
527
- UNTIL EKIMEI-WK(I) = EKIMEI-GESHA OR I = 20
567
+ UNTIL KYORI-O <= KYORI-U OR END-FLAG = "EOF"
528
-
529
- ADD 1 TO I
530
-
531
- END-PERFORM
532
-
533
-
534
-
535
- IF EKIMEI-WK(I) = EKIMEI-GESHA
536
-
537
- THEN
538
-
539
- MOVE 1 TO ICCHI-FLAG
540
-
541
- MOVE KYORI-WK(I) TO KYORI-GESHA
542
-
543
- END-IF.
544
-
545
-
546
-
547
- * <運賃検索処理>----------------------------------------
548
-
549
- UNCHIN-KENSAKU-SYORI SECTION.
550
-
551
- MOVE SPACE TO END-FLAG
552
-
553
- MOVE 1 TO I
554
-
555
- PERFORM
556
-
557
- TEST AFTER UNTIL SAIYO-KYORI <= KYORI-U
558
568
 
559
569
  OR END-FLAG = "EOF"
560
570
 

10

いただいた修正点をもとに更新

2021/06/07 04:18

投稿

COBOL_TURAI
COBOL_TURAI

スコア2

test CHANGED
File without changes
test CHANGED
@@ -154,6 +154,22 @@
154
154
 
155
155
  ACCEPT文記述の箇所でも、変数に値を上手く受け取れない問題が発生。受け取る変数の定義にも改行コード分の領域を定義したりしてみても改善されず
156
156
 
157
+ ➤ACCEPTは行指向なので、改行いらない
158
+
159
+
160
+
161
+ 【問題分析】
162
+
163
+ ①ACCEPTで受け取った変数の冒頭の値が、空白で置き換えられている
164
+
165
+ ②ACCEPT後に書いたDISPLAY文での固定文字列表示の冒頭も空白で置き換えられている
166
+
167
+ ③②の後で、変数の値を表示するとしっかり値が受け取られている
168
+
169
+
170
+
171
+ `現状原因不明`
172
+
157
173
 
158
174
 
159
175
  ### 該当のソースコード

9

いただいた修正点をもとに更新

2021/06/06 22:58

投稿

COBOL_TURAI
COBOL_TURAI

スコア2

test CHANGED
File without changes
test CHANGED
@@ -582,7 +582,11 @@
582
582
 
583
583
  ```
584
584
 
585
- 変数に上手く入力値が入らない
585
+ 変数に上手く入力値が入らない
586
+
587
+ ➤配列に一致する入力値が見つからず、常に駅名の再入力処理に戻される
588
+
589
+ ➤ENDを入力して終了する処理も同様に、値が上手く入らないため再入力処理に戻される
586
590
 
587
591
 
588
592
 

8

いただいた修正点をもとに更新

2021/06/06 12:38

投稿

COBOL_TURAI
COBOL_TURAI

スコア2

test CHANGED
File without changes
test CHANGED
@@ -570,6 +570,20 @@
570
570
 
571
571
  ```
572
572
 
573
+ ACCEPTで入力値を受け取った変数`EKIMEI-JOUSHA`の確認
574
+
575
+ ```
576
+
577
+ 乗車駅==>サクラノミヤ
578
+
579
+
580
+
581
+ 乗車駅==>
582
+
583
+ ```
584
+
585
+ …変数に上手く入力値が入らない
586
+
573
587
 
574
588
 
575
589
 

7

誤字の修正

2021/06/06 12:33

投稿

COBOL_TURAI
COBOL_TURAI

スコア2

test CHANGED
File without changes
test CHANGED
@@ -478,7 +478,7 @@
478
478
 
479
479
  PERFORM
480
480
 
481
- UNTIL EKIMEI-WK(I) = EKIMEI-JOUSHA OR I = 13
481
+ UNTIL EKIMEI-WK(I) = EKIMEI-JOUSHA OR I = 20
482
482
 
483
483
  ADD 1 TO I
484
484
 

6

いただいた修正点をもとに更新

2021/06/06 12:14

投稿

COBOL_TURAI
COBOL_TURAI

スコア2

test CHANGED
File without changes
test CHANGED
@@ -164,7 +164,7 @@
164
164
 
165
165
  ```COBOL
166
166
 
167
- IDENTIFICATION DIVISION.
167
+ IDENTIFICATION DIVISION.
168
168
 
169
169
  PROGRAM-ID. ARRAN5.
170
170
 

5

いただいた修正点をもとに更新

2021/06/06 12:10

投稿

COBOL_TURAI
COBOL_TURAI

スコア2

test CHANGED
File without changes
test CHANGED
@@ -232,7 +232,7 @@
232
232
 
233
233
  *次の問題個所 改善されなかったためコメントアウト中
234
234
 
235
- * 01 EKIMEI-GESHA PIC X(12).
235
+ * 01 EKIMEI-GESHA PIC X(14).
236
236
 
237
237
  01 EKIMEI-GESHA PIC X(12).
238
238
 

4

いただいた修正点をもとに更新

2021/06/06 12:08

投稿

COBOL_TURAI
COBOL_TURAI

スコア2

test CHANGED
File without changes
test CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
  ・乗車駅にENDを入力するとプログラムを終了
32
32
 
33
- ・入力した駅が該当しない場合は、再度駅名入力させる
33
+ ・入力した駅が該当しない場合は、再度駅名入力させる
34
34
 
35
35
 
36
36
 
@@ -152,7 +152,7 @@
152
152
 
153
153
  ### 次の問題点
154
154
 
155
- ACCEPT文記述の箇所で、変数に値を上手く受け取れない問題が発生。受け取る変数の定義にも改行コード分の領域を定義したりしてみても改善されず
155
+ ACCEPT文記述の箇所で、変数に値を上手く受け取れない問題が発生。受け取る変数の定義にも改行コード分の領域を定義したりしてみても改善されず
156
156
 
157
157
 
158
158
 

3

いただいた修正点をもとに更新

2021/06/06 12:05

投稿

COBOL_TURAI
COBOL_TURAI

スコア2

test CHANGED
File without changes
test CHANGED
@@ -132,6 +132,30 @@
132
132
 
133
133
 
134
134
 
135
+ ### 試したこと
136
+
137
+
138
+
139
+ 駅名に半角カナ文字を利用して データ部では英数字項目(x)で定義していましたが、これに問題があるのかと思い、`KYORI-FILE.DAT`の`EKIMEI-K`を全角カナで書き直して、データ定義部で「PIC N(12)」を指定したのですが、これでも上手くいきませんでした。
140
+
141
+
142
+
143
+
144
+
145
+ ### ご指摘いただいて、試したこと
146
+
147
+ ・2つの入力ファイルの改行コードを考慮して、データ定義部で改行コード分の領域を取る
148
+
149
+ ➤解決
150
+
151
+
152
+
153
+ ### 次の問題点
154
+
155
+ ACCEPT文記述の箇所で、変数に値を上手く受け取れない問題が発生。受け取る変数の定義にも改行コード分の領域を定義したりしてみても改善されず
156
+
157
+
158
+
135
159
  ### 該当のソースコード
136
160
 
137
161
  `ARRAN5.COB`
@@ -140,7 +164,7 @@
140
164
 
141
165
  ```COBOL
142
166
 
143
- IDENTIFICATION DIVISION.
167
+ IDENTIFICATION DIVISION.
144
168
 
145
169
  PROGRAM-ID. ARRAN5.
146
170
 
@@ -174,6 +198,10 @@
174
198
 
175
199
  02 KYORI-K PIC 99V9.
176
200
 
201
+ *初回質問時にご指摘いただき、解決した箇所
202
+
203
+ 02 FILLER PIC X(2).
204
+
177
205
 
178
206
 
179
207
  FD UNCHIN-FILE.
@@ -184,6 +212,10 @@
184
212
 
185
213
  02 UNCHIN-U PIC 9(4).
186
214
 
215
+ *初回質問時にご指摘いただき、解決した箇所
216
+
217
+ 02 FILLER PIC X(2).
218
+
187
219
 
188
220
 
189
221
  WORKING-STORAGE SECTION.
@@ -192,13 +224,21 @@
192
224
 
193
225
  01 I PIC 9(2).
194
226
 
227
+ *次の問題個所 改善されなかったためコメントアウト中
228
+
229
+ * 01 EKIMEI-JOUSHA PIC X(14).
230
+
195
231
  01 EKIMEI-JOUSHA PIC X(12).
196
232
 
233
+ *次の問題個所 改善されなかったためコメントアウト中
234
+
235
+ * 01 EKIMEI-GESHA PIC X(12).
236
+
197
237
  01 EKIMEI-GESHA PIC X(12).
198
238
 
199
- 01 KYORI-JOUSHA PIC 9(3).
239
+ 01 KYORI-JOUSHA PIC 99V9.
200
-
240
+
201
- 01 KYORI-GESHA PIC 9(3).
241
+ 01 KYORI-GESHA PIC 99V9.
202
242
 
203
243
  01 ICCHI-FLAG PIC 9(1).
204
244
 
@@ -206,7 +246,9 @@
206
246
 
207
247
  01 UTI-KYORI PIC 99V9.
208
248
 
209
- 01 SAIYO-KYORI PIC 99V9.
249
+ 01 SAIYO-KYORI PIC Z9.9.
250
+
251
+ 01 UNCHIN-O PIC Z999.
210
252
 
211
253
 
212
254
 
@@ -218,6 +260,8 @@
218
260
 
219
261
  03 KYORI-WK PIC 99V9.
220
262
 
263
+
264
+
221
265
 
222
266
 
223
267
 
@@ -228,12 +272,8 @@
228
272
 
229
273
  MAIN SECTION.
230
274
 
231
- DISPLAY "JUNBI-MAE"
232
-
233
275
  PERFORM JUNBI-SYORI
234
276
 
235
- DISPLAY "JUNBI-ATO"
236
-
237
277
  PERFORM RECORD-SYORI
238
278
 
239
279
  UNTIL END-FLAG = "EOF"
@@ -274,15 +314,9 @@
274
314
 
275
315
  MOVE EKIMEI-K TO EKIMEI-WK(I)
276
316
 
277
- * MOVE KYORI-K TO KYORI-WK(I)
317
+ MOVE KYORI-K TO KYORI-WK(I)
278
-
279
- * DISPLAY EKIMEI-WK(I) WITH NO ADVANCING
318
+
280
-
281
- DISPLAY EKIMEI-WK(I) WITH NO ADVANCING
282
-
283
- * DISPLAY KYORI-WK(I)
284
-
285
- ADD 1 TO I
319
+ ADD 1 TO I
286
320
 
287
321
  END-READ
288
322
 
@@ -304,12 +338,16 @@
304
338
 
305
339
  PERFORM
306
340
 
307
- UNTIL ICCHI-FLAG = 1
341
+ UNTIL ICCHI-FLAG = 1 OR EKIMEI-JOUSHA = "END"
308
342
 
309
343
  DISPLAY "乗車駅==>" WITH NO ADVANCING
310
344
 
311
345
  ACCEPT EKIMEI-JOUSHA FROM CONSOLE
312
346
 
347
+ DISPLAY EKIMEI-JOUSHA
348
+
349
+ *確認用  MOVE "サクラノミヤ" TO EKIMEI-JOUSHA
350
+
313
351
  PERFORM JOUSHA-KENSAKU-SYORI
314
352
 
315
353
  END-PERFORM
@@ -320,6 +358,8 @@
320
358
 
321
359
  THEN
322
360
 
361
+ MOVE 0 TO ICCHI-FLAG
362
+
323
363
  PERFORM
324
364
 
325
365
  UNTIL ICCHI-FLAG = 1
@@ -328,6 +368,8 @@
328
368
 
329
369
  ACCEPT EKIMEI-GESHA FROM CONSOLE
330
370
 
371
+ *確認用  MOVE "ニシクジョウ" TO EKIMEI-GESHA
372
+
331
373
  PERFORM GESHA-KENSAKU-SYORI
332
374
 
333
375
  END-PERFORM
@@ -372,6 +414,42 @@
372
414
 
373
415
  *//画面表示------------------------
374
416
 
417
+
418
+
419
+ *確認用********************************************
420
+
421
+ DISPLAY "乗車駅名 = " WITH NO ADVANCING
422
+
423
+ DISPLAY EKIMEI-JOUSHA
424
+
425
+ DISPLAY "乗車駅距離= " WITH NO ADVANCING
426
+
427
+ DISPLAY KYORI-JOUSHA
428
+
429
+ DISPLAY "下車駅名 = " WITH NO ADVANCING
430
+
431
+ DISPLAY EKIMEI-GESHA
432
+
433
+ DISPLAY "下車駅距離= " WITH NO ADVANCING
434
+
435
+ DISPLAY KYORI-GESHA
436
+
437
+ DISPLAY ""
438
+
439
+ DISPLAY "外回り距離= " WITH NO ADVANCING
440
+
441
+ DISPLAY SOTO-KYORI
442
+
443
+ DISPLAY "内回り距離= " WITH NO ADVANCING
444
+
445
+ DISPLAY UTI-KYORI
446
+
447
+ DISPLAY ""
448
+
449
+ **************************************************
450
+
451
+
452
+
375
453
  DISPLAY "距離 = " WITH NO ADVANCING
376
454
 
377
455
  DISPLAY SAIYO-KYORI WITH NO ADVANCING
@@ -382,7 +460,7 @@
382
460
 
383
461
  DISPLAY "運賃 = " WITH NO ADVANCING
384
462
 
385
- DISPLAY UNCHIN-U WITH NO ADVANCING
463
+ DISPLAY UNCHIN-O WITH NO ADVANCING
386
464
 
387
465
  DISPLAY " 円"
388
466
 
@@ -394,15 +472,13 @@
394
472
 
395
473
  JOUSHA-KENSAKU-SYORI SECTION.
396
474
 
397
- MOVE 0 TO ICCHI-FLAG
398
-
399
475
  MOVE 1 TO I
400
476
 
401
477
 
402
478
 
403
479
  PERFORM
404
480
 
405
- UNTIL EKIMEI-WK(I) = EKIMEI-JOUSHA
481
+ UNTIL EKIMEI-WK(I) = EKIMEI-JOUSHA OR I = 13
406
482
 
407
483
  ADD 1 TO I
408
484
 
@@ -426,15 +502,13 @@
426
502
 
427
503
  GESHA-KENSAKU-SYORI SECTION.
428
504
 
429
- MOVE 0 TO ICCHI-FLAG
430
-
431
505
  MOVE 1 TO I
432
506
 
433
507
 
434
508
 
435
509
  PERFORM
436
510
 
437
- UNTIL EKIMEI-WK(I) = EKIMEI-GESHA
511
+ UNTIL EKIMEI-WK(I) = EKIMEI-GESHA OR I = 20
438
512
 
439
513
  ADD 1 TO I
440
514
 
@@ -474,6 +548,10 @@
474
548
 
475
549
  MOVE "EOF" TO END-FLAG
476
550
 
551
+ NOT AT END
552
+
553
+ MOVE UNCHIN-U TO UNCHIN-O
554
+
477
555
  END-READ
478
556
 
479
557
  END-PERFORM.
@@ -494,6 +572,8 @@
494
572
 
495
573
 
496
574
 
575
+
576
+
497
577
  ### 他、実行に利用しているファイル
498
578
 
499
579
  `KYORI-FILE.DAT`
@@ -576,66 +656,6 @@
576
656
 
577
657
  ```
578
658
 
579
- ### 試したこと
580
-
581
-
582
-
583
- 駅名に半角カナ文字を利用して データ部では英数字項目(x)で定義していましたが、これに問題があるのかと思い、`KYORI-FILE.DAT`の`EKIMEI-K`を全角カナで書き直して、データ定義部で「PIC N(12)」を指定したのですが、これでも上手くいきませんでした。
584
-
585
-
586
-
587
- ### 全角用に変えた`KYORI-FILE.DAT`
588
-
589
- `KYORIFILE-ZENKAKU.DAT`
590
-
591
- ```DAT
592
-
593
- テンマ         016
594
-
595
- サクラノミヤ      024
596
-
597
- キヨウバシ       042
598
-
599
- オオサカジヨウコウエン 050
600
-
601
- モリノミヤ       059
602
-
603
- タマツクリ       068
604
-
605
- ツルハシ        077
606
-
607
- モモダニ        085
608
-
609
- テラダチョウ      097
610
-
611
- テンノウジ       107
612
-
613
- シンイマミヤ      117
614
-
615
- イマミヤ        129
616
-
617
- アシハラバシ      135
618
-
619
- タイシヨウ       147
620
-
621
- ベンテンチョウ     165
622
-
623
- ニシクジヨウ      181
624
-
625
- ノダ          193
626
-
627
- フクシマ        207
628
-
629
- オオサカ        217
630
-
631
- ```
632
-
633
- ### ご指摘いただいて、試したこと
634
-
635
- ・2つの入力ファイルの改行コードを考慮して、データ定義部で改行コード分の領域を取る
636
-
637
- ➤解決ならず
638
-
639
659
 
640
660
 
641
661
  ### 補足情報(FW/ツールのバージョンなど)

2

いただいた修正点をもとに更新

2021/06/06 12:00

投稿

COBOL_TURAI
COBOL_TURAI

スコア2

test CHANGED
File without changes
test CHANGED
@@ -630,6 +630,14 @@
630
630
 
631
631
  ```
632
632
 
633
+ ### ご指摘いただいて、試したこと
634
+
635
+ ・2つの入力ファイルの改行コードを考慮して、データ定義部で改行コード分の領域を取る
636
+
637
+ ➤解決ならず
638
+
639
+
640
+
633
641
  ### 補足情報(FW/ツールのバージョンなど)
634
642
 
635
643
  【OS】Windows10

1

誤字の修正

2021/06/06 07:21

投稿

COBOL_TURAI
COBOL_TURAI

スコア2

test CHANGED
File without changes
test CHANGED
@@ -6,19 +6,19 @@
6
6
 
7
7
 
8
8
 
9
- 入力ファイルとして、KYORI-FILEとUNCHIN-FILEがあります。
9
+ 入力ファイルとして、`KYORI-FILE``UNCHIN-FILE`があります。
10
10
 
11
11
 
12
12
 
13
13
  ■`KYORI-FILE.DAT`
14
14
 
15
- 項目EKIMEI-Kは大阪環状線の各駅名、項目KYORI-Kは大阪駅を基準にそれぞれの駅に外回りで到達するまでの距離が入っている。KYORI-Kは小数第一位まで表示する
15
+ 項目`EKIMEI-K`は大阪環状線の各駅名、項目`KYORI-K`は大阪駅を基準にそれぞれの駅に外回りで到達するまでの距離が入っている。`KYORI-K`は小数第一位まで表示する
16
16
 
17
17
 
18
18
 
19
19
  ■`UNCHIN-FILE.DAT`
20
20
 
21
- 項目KYORI-Uは距離、UNCHIN-UはKYORI-U当たりにかかる運賃が入っている
21
+ 項目`KYORI-U`は距離、`UNCHIN-U``KYORI-U`当たりにかかる運賃が入っている
22
22
 
23
23
 
24
24
 
@@ -134,7 +134,7 @@
134
134
 
135
135
  ### 該当のソースコード
136
136
 
137
- ARRAN5.COB
137
+ `ARRAN5.COB`
138
138
 
139
139
 
140
140
 
@@ -496,7 +496,7 @@
496
496
 
497
497
  ### 他、実行に利用しているファイル
498
498
 
499
- KYORI-FILE.DAT
499
+ `KYORI-FILE.DAT`
500
500
 
501
501
  ```DAT
502
502
 
@@ -542,7 +542,7 @@
542
542
 
543
543
 
544
544
 
545
- UNCHIN-FILE.DAT
545
+ `UNCHIN-FILE.DAT`
546
546
 
547
547
  ```DAT
548
548
 
@@ -580,7 +580,7 @@
580
580
 
581
581
 
582
582
 
583
- 駅名に半角カナ文字を利用して データ部では英数字項目(x)で定義していましたが、これに問題があるのかと思い、KYORI-FILE.DATの`EKIMEI-K`を全角カナで書き直して、データ定義部で「PIC N(12)」を指定したのですが、これでも上手くいきませんでした。
583
+ 駅名に半角カナ文字を利用して データ部では英数字項目(x)で定義していましたが、これに問題があるのかと思い、`KYORI-FILE.DAT`の`EKIMEI-K`を全角カナで書き直して、データ定義部で「PIC N(12)」を指定したのですが、これでも上手くいきませんでした。
584
584
 
585
585
 
586
586