OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

数学のBasicなのですが・・。

  • 困ってます
  • 質問No.158506
  • 閲覧数32
  • ありがとう数4
  • 気になる数0
  • 回答数5
  • コメント数0

 数学のコンピューターを独学でやり始めたのですが、分からないことがたくさんあって、頼れる人がいなくて質問したのですが、
 配列変数とかいうのがよく分からなくて、
  DIM 変数名(n)  っていうのは、番号つき変数を0からn番まで用意するということは分かりました。

 ○配列変数→大量のデータを一気に出力という題目のところがありまして、

 ■N個の数値を入力して、逆の順序で出力するプログラム

 10 INPUT ”データ数”;N
 20 DIM A(N)
 30 FOR K=1 TO N
 40 INPUT ”データ”;A(K)
 50 NEXT K
 60 FOR K=1 TO N
 70 I=N+1-K
 80 PRINT A(I);
 90 NEXT K
 100 END

 で まず、 10行目はデータ数って書いてあって、40行目はデータと書いてあって、その違いが分かりません。
 
 それとFOR~NEXT文は挟まった動作を繰り返すんですよね!?
 で、60行目と90行目は2文挟まっているのですが、この2文とも繰り返すということなのでしょうか?
 分かってる方にとってはくだらない質問と思いますが、どうか教えてください。
 お願いします。
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.4
レベル12

ベストアンサー率 45% (210/459)

こんにちは。itohhといいます。

解説すると以下のようになります。
>10 INPUT ”データ数”;N
Nにキー入力された数値が入ります。

>20 DIM A(N)
上記で入力されたN分だけ配列を確保します。

>30 FOR K=1 TO N
>40 INPUT ”データ”;A(K)
>50 NEXT K
Kを1からNまで1ずつ増やして行きます。
そして、KがNになるまで40行を実行します。
(配列AのK番目にキー入力された値を代入する)

>60 FOR K=1 TO N
>70 I=N+1-K
>80 PRINT A(I);
>90 NEXT K
Kを1からNまで1ずつ増やして行きます。
そして、KがNになるまで70行と80行を実行します。
この場合、IにはNから1まで減算された値が入ります。そして、I番目の
配列Aの値をプリントします。
つまり、40行で入力された値を逆の順番にプリントすると言うことです。

ここは、もっと簡単に出来ますよ。
>60 FOR K=N TO 1 STEP -1
>80 PRINT A(K);
>90 NEXT K
KをNから1まで1ずつ減らして行きます。
これでも同じ結果がプリントできると思います。

100 END
プログラムを終了します。

素のBASICは久々なので文法的に間違っているかもしれないところは指摘できません。

こんなところでいいでしょうか?
お礼コメント
noname#2746

めちゃ詳しいご回答ありがとうございます!
おかげで助かりました。まだまだ分からないことがたくさん出てくると思うのですが、また教えてくださいね!ホントご回答ありがとうございました。
投稿日時 - 2001-10-28 02:07:15
-PR-
-PR-

その他の回答 (全4件)

  • 回答No.1
レベル14

ベストアンサー率 39% (813/2055)

10行目のデータ数は配列の数です 40行目のデータ は配列の中の数です >60行目と90行目は2文挟まっているのですが  はいそうです(何行でも挟まっているの全てです) がんばって下さい。 ...続きを読む
10行目のデータ数は配列の数です
40行目のデータ は配列の中の数です
>60行目と90行目は2文挟まっているのですが
 はいそうです(何行でも挟まっているの全てです)
がんばって下さい。
お礼コメント
noname#2746

ご回答ありがとうございます。感謝です。助かります。
投稿日時 - 2001-10-28 02:10:18
  • 回答No.2
レベル12

ベストアンサー率 34% (273/789)

> 10行目はデータ数って書いてあって、 > 40行目はデータと書いてあって… 変数Nは「何個のデータを入力するのか」と言う意味で「データ数」と言うことです。変数A(1)~A(K)までが実際の入力されるデータです。 > …この2文とも繰り返すということなのでしょうか? 上記のプログラムではその通りです。ただし、forループ内にif文などがればそれによって実行されない文も出てきますし、g ...続きを読む
> 10行目はデータ数って書いてあって、
> 40行目はデータと書いてあって…

変数Nは「何個のデータを入力するのか」と言う意味で「データ数」と言うことです。変数A(1)~A(K)までが実際の入力されるデータです。

> …この2文とも繰り返すということなのでしょうか?

上記のプログラムではその通りです。ただし、forループ内にif文などがればそれによって実行されない文も出てきますし、goto文があればforループから抜け出します。

じゃあ、がんばって!
補足コメント
noname#2746

ということは、
まず10行目で、N個のデータを入力すると言っておいて、
20行目で番号付き変数をN個用意して、
3,4,50行目からよく分からないです・・・・。
またまた質問で申し訳ないのですが、教えてください。お願いします。
投稿日時 - 2001-10-27 23:22:43
お礼コメント
noname#2746

はい!頑張ります!温かいお言葉と、ご回答感謝です。
投稿日時 - 2001-10-28 02:09:36
  • 回答No.3
レベル11

ベストアンサー率 33% (131/392)

回答は、k_ebaさんが書かれていますが、蛇足ですが書かせてください。 10行目で、例えば、5と入れると、 20行目で、A(1)、A(2)、A(3)、A(4)、A(5)という入れ物が出来ます(本当はA(0)も出来ています、しかも、メモリ上に連続に出来ます)。 40行目で、Kが1のとき、A(1)に値が代入されます、 40行目で、Kが2のとき、A(2)に値が代入されます、 ・・・ 40行目で、 ...続きを読む
回答は、k_ebaさんが書かれていますが、蛇足ですが書かせてください。

10行目で、例えば、5と入れると、
20行目で、A(1)、A(2)、A(3)、A(4)、A(5)という入れ物が出来ます(本当はA(0)も出来ています、しかも、メモリ上に連続に出来ます)。
40行目で、Kが1のとき、A(1)に値が代入されます、
40行目で、Kが2のとき、A(2)に値が代入されます、
・・・
40行目で、Kが5のとき、A(5)に値が代入されます。

80 PRINT A(I);の;を削除すると、入力したデータが縦に表示されます。

また、60行以降は次のようにも書くことが出来ます。
 60 FOR K=N TO 1 STEP -1
 70 '
 80 PRINT A(I);
 90 NEXT K
STEP -1でNから1づつ減らして行きます。

では、頑張りなさい!
お礼コメント
noname#2746

はい頑張ります!どうもご回答ありがとうございました。助かりました。
投稿日時 - 2001-10-28 02:08:18
  • 回答No.5
レベル12

ベストアンサー率 45% (210/459)

こんにちは。itohhといいます。 すみません、回答がbrogieさんとダブってしまいました。 アドバイスを書いている間に先を越されてしまいました。(^_^;
こんにちは。itohhといいます。

すみません、回答がbrogieさんとダブってしまいました。
アドバイスを書いている間に先を越されてしまいました。(^_^;
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ