BASICでこんなプログラム作れるの?

このエントリーをはてなブックマークに追加
1音楽好き中学生
こんな問題見つけたんですけど、ホントに作れるんですか?

10人の身長と体重を測定する。(身長は小数点第1位まで表記)
身長170cm以上の人の人数と体重の平均。
体重 68kg未満の人の人数と身長の平均。
(ただし、170.0cmの人を1人入れよ)

できればお願いします。
2デフォルトの名無しさん:04/10/09 13:54:39
余裕で2ゲトズサー
 ̄ ̄V ̄ ̄ ̄ ̄ ̄
  ∧ ∧
⊂(゚Д゚⊂⌒^つ≡3
3デフォルトの名無しさん:04/10/09 13:56:01
>>1
簡単
工房でもわかるぞ
4デフォルトの名無しさん:04/10/09 14:01:03
身長体重を測るための制御プログラムも必要ですか?
5デフォルトの名無しさん:04/10/09 14:01:06
身長と体重を測定するのが至難の業。
どうやってソフトで計測するのか。
6音楽好き中学生:04/10/09 14:01:27
分かる人教えてください。
どうしても実行しても答えが出ません。(0人とかなったり・・・)

皆さんお願いしますm(_ _)m
7デフォルトの名無しさん:04/10/09 14:12:20
>>6
オナニーが終わって暇してるから教えてあげる。
まずはここまでに書いたコードを出せば?
8デフォルトの名無しさん:04/10/09 14:21:59
>>1>>6
今回は偶然機嫌の良い人が居たから良かったが、
普段は単発の質問スレ立てると、物凄く怒られるし荒らされる。
今回は運が良かったんだろうが、次からは止めておけ。

次にスレ立てる時はローカルルール読んでこいよ。
9デフォルトの名無しさん:04/10/09 14:23:53
>>1に言い忘れ。
荒らされたくなければ、メール欄にはsageと入れておく事をおすすめする。
10デフォルトの名無しさん:04/10/09 15:15:46
LET NUMBER=4 !人数
DIM HEIGHT(NUMBER) !身長を格納する配列
DIM WEIGHT(NUMBER) !体重を格納する配列

PRINT NUMBER;"人の身長と体重を入力します。"
PRINT "身長は小数点第1位まで表記してね!"
PRINT "身長170.0cmの人を1人入れてね!"
FOR I=1 TO NUMBER
PRINT I;"人目いきまーす。"
INPUT PROMPT "身長は? ":HEIGHT(I)
INPUT PROMPT "体重は? ":WEIGHT(I)
NEXT I

PRINT "身長170cm以上の人の人数と体重の平均を求めます。"
LET HNUM=0 !身長170cm以上の人の人数
LET WSUM=0 !体重の合計
FOR I=1 TO NUMBER
IF HEIGHT(I)>=170 THEN !身長170cm以上なら
LET HNUM=HNUM+1 !人数を加算
LET WSUM=WSUM+WEIGHT(I) !体重を加算
END IF
NEXT I
LET WAVG=WSUM/HNUM !体重の平均
PRINT "身長170cm以上の人は";HNUM;"人です。"
PRINT "その人たちの体重の平均は";WAVG;"kgです。"
11デフォルトの名無しさん:04/10/09 15:16:10

PRINT "体重68kg未満の人の人数と身長の平均を求めます。"
LET WNUM=0 !体重68kg未満の人の人数
LET HSUM=0 !身長の合計
FOR I=1 TO NUMBER
IF WEIGHT(I)<68 THEN !体重68kg未満なら
LET WNUM=WNUM+1 !人数を加算
LET HSUM=HSUM+HEIGHT(I) !身長を加算
END IF
NEXT I
LET HAVG=HSUM/WNUM !身長の平均
PRINT "体重68kg未満の人は";WNUM;"人です。"
PRINT "その人たちの身長の平均は";HAVG;"cmです。"

END
12デフォルトの名無しさん:04/10/09 15:16:44
画像処理で身長と体重を測定するのか?そいつはむずかしいぜ
13デフォルトの名無しさん:04/10/09 15:22:19
測定も難しいが、
>(ただし、170.0cmの人を1人入れよ)
要求定義不能。
14デフォルトの名無しさん:04/10/09 15:24:40
>10-11
これ、何BASIC?
!以降はコメントなんだよね。
15音楽好き中学生:04/10/09 15:29:50
教えていただいて、ありがとうございます。
解説もついててホントに分かりやすいです。

しかし、身長は入力式じゃなくて、最初に10人分任意で設定しておいて、READ で読み込む方法なのですが、できますか?

説明不足でホントに申し訳ありません。
16デフォルトの名無しさん:04/10/09 15:34:19
17デフォルトの名無しさん:04/10/09 15:44:33
>>15
身長と体重の入力部分を↓こんな風に変えればいいじゃん。

REM 10人の身長と体重を測定する。(身長は小数点第1位まで表記)
REM (ただし、170.0cmの人を1人入れよ)
REM 身長データ
DATA 170.0,150.0,160.0,169.9,170.5,180.6,190.5,200.6,300.9,400.5
READ HEIGHT(1),HEIGHT(2),HEIGHT(3),HEIGHT(4),HEIGHT(5)...(ry
REM 体重データ
(ry

あるいは
REM 1人目
DATA 170.0,69
READ HEIGHT(1), WEIGHT(1)
REM 2人目
(ry

HEIGHT,WEIGHTはもっと短い変数でもいいかもね。

あと、配列の基数がデフォルトで1でない環境では
DIM HEIGHT(1 TO 10) みたいに宣言するか、
FOR I=1 TO NUMBER-1 みたいにしなきゃいけません。
18デフォルトの名無しさん:04/10/09 15:49:39
>>17
>あと、配列の基数がデフォルトで1でない環境では
>DIM HEIGHT(1 TO 10) みたいに宣言するか、
>FOR I=1 TO NUMBER-1 みたいにしなきゃいけません。

訂正。

配列の基数がデフォルトで1でない環境では
(1) DIM HEIGHT(1 TO 10) みたいに宣言するか、
(2) OPTION BASE 1 と宣言するか、
(3) プログラム中の1で始まっている部分をすべて0に
しなきゃいけません。
例: FOR I=1 TO NUMBER → FOR I=0 TO NUMBER-1
  HEIGHT(1) → HEIGHT(0), HEIGHT(10) → HEIGHT(9) 等
19デフォルトの名無しさん:04/10/09 16:00:57
LET NUMBER=10 !人数
DIM HEIGHT(NUMBER) !身長を格納する配列
DIM WEIGHT(NUMBER) !体重を格納する配列

REM 10人の身長と体重を測定する。(身長は小数点第1位まで表記)
REM (ただし、170.0cmの人を1人入れよ)
REM 身長データ
DATA 170.0,150.0,160.0,169.9,170.5,180.6,190.5,200.6,300.9,400.5
READ HEIGHT(1),HEIGHT(2),HEIGHT(3),HEIGHT(4),HEIGHT(5),HEIGHT(6),HEIGHT(7),HEIGHT(8),HEIGHT(9),HEIGHT(10)
REM 体重データ
DATA 10,20,30,40,50,60,70,80,90,100
READ WEIGHT(1),WEIGHT(2),WEIGHT(3),WEIGHT(4),WEIGHT(5),WEIGHT(6),WEIGHT(7),WEIGHT(8),WEIGHT(9),WEIGHT(10)

としたら

身長170cm以上の人の人数と体重の平均を求めます。
身長170cm以上の人は 7 人です。
その人たちの体重の平均は 65.7142857142857 kgです。
体重68kg未満の人の人数と身長の平均を求めます。
体重68kg未満の人は 6 人です。
その人たちの身長の平均は 166.833333333333 cmです。

となりました。宿題じゃなかったら小数点以下を切りつめたいところ。

> LET WAVG=WSUM/HNUM !体重の平均
→ LET WAVG=ROUND(WSUM/HNUM,2) !体重の平均
> LET HAVG=HSUM/WNUM !身長の平均
→ LET HAVG=ROUND(HSUM/WNUM,2) !身長の平均

とかね。
201:04/10/09 17:48:26
お前らの言ってる事が難しすぎる
21音楽好き中学生:04/10/10 02:16:32
できました!
皆さん本当にありがとうございました。
皆さんすごいですね。
僕も、皆さんみたいに頭がよくなりたいです。
22デフォルトの名無しさん:04/10/10 02:34:18
>>21
体重68kg未満の人が0人だったら
> LET HAVG=HSUM/WNUM !身長の平均
のところで 0 で除算したとかいうエラーが出ないか?

試していないが。
23デフォルトの名無しさん:04/10/10 03:03:24
>>15
あとから問題の条件増やすな。
回答者に迷惑かけることになる。

>>21
みんな親切な人でよかったな。
24デフォルトの名無しさん:04/10/10 09:57:17
考えりゃ小学生でもできるのに。

これからまぁ精進しなされ。
25デフォルトの名無しさん:04/10/10 17:31:15
このスレは用済みなので
MMRが乗っ取ってもいいんですね?
26デフォルトの名無しさん:04/10/10 18:00:54
ワクチンが乗っ取ってどーすんの。
27デフォルトの名無しさん:04/10/11 12:22:59

      ,.ィ , - 、._     、
.      ,イ/ l/       ̄ ̄`ヽ!__
     ト/ |' {              `ヽ.            ,ヘ
    N│ ヽ. `                 ヽ         /ヽ /  ∨
   N.ヽ.ヽ、            ,        }    l\/  `′
.  ヽヽ.\         ,.ィイハ       |   _|
   ヾニー __ _ -=_彡ソノ u_\ヽ、   |  \  MMRはワクチンじゃなくて 
.      ゙̄r=<‐モミ、ニr;==ェ;ュ<_ゞ-=7´ヽ   > マガジンで連載されていた漫画の名前だ!
.       l    ̄リーh ` ー‐‐' l‐''´冫)'./ ∠__ このAAは事実を元にしたフィクションです! 
       ゙iー- イ'__ ヽ、..___ノ   トr‐'    /    
       l   `___,.、     u ./│    /_ 
.        ヽ.  }z‐r--|     /  ト,        |  ,、
           >、`ー-- '  ./  / |ヽ     l/ ヽ   ,ヘ
      _,./| ヽ`ー--‐ _´.. ‐''´   ./  \、       \/ ヽ/
-‐ '''"  ̄ /  :|   ,ゝ=<      /    | `'''‐- 、.._
     /   !./l;';';';';';';\    ./    │   _
      _,> '´|l. ミ:ゝ、;';';_/,´\  ./|._ , --、 | i´!⌒!l  r:,=i   
.     |     |:.l. /';';';';';|=  ヽ/:.| .|l⌒l lニ._ | ゙ー=':| |. L._」 ))
      l.    |:.:.l./';';';';';';'!    /:.:.| i´|.ー‐' | / |    |. !   l
.     l.   |:.:.:.!';';';';';';';'|  /:.:.:.:!.|"'|.   l'  │-==:|. ! ==l   ,. -‐;
     l   |:.:.:.:l;';';';';';';';| /:.:.:.:.:| i=!ー=;: l   |    l. |   | /   //
       l  |:.:.:.:.:l;';';';';';';'|/:.:.:.:.:.:.!│ l    l、 :|    | } _|,.{::  7 ))
        l  |:.:.:.:.:.:l;';';';';'/:.:.:.:.:.:.:.:| |__,.ヽ、__,. ヽ._」 ー=:::レ'  ::::::|;   7
.      l |:.:.:.:.:.:.l;';';'/:.:.:.:.:.:.:.:.:.|. \:::::\::::: ヽ  ::::::!′ :::|   .:/
28デフォルトの名無しさん:04/10/11 12:37:48
ageんな。

MRSAにでも感染して氏ね。
29デフォルトの名無しさん:04/10/11 22:31:24
なんか昔みたサンプルプログラムで

0〜9までをランダムにとりだす(たとえば3,7,9,1,2,4,5,0,6,8とか列挙させる)

というのがあって、最も能率のいい方法っていうのがどんなだったか
いまだにわからん。うまく組める人いたら教えてください。

すくなくともいちいち0〜9をランダムに候補にあげて、
それがすでに列挙済みかどうか判定して、列挙済みだったら候補をあげなおすって言う
のではないはず。ていうかそうしなくてももっとうまい方法があるっていう問題だった。
3029:04/10/11 22:38:34
ゴメン

「0〜9までをランダムに、ただし同じ数字が重複しないように全部とりだす」

だなたぶん。

まぁべつに範囲は0〜9じゃなくても100でも1000でもなんでもいいんだろうけど。
31デフォルトの名無しさん:04/10/11 22:51:10
「数字 重複 ランダム 取り出し」
でぐぐったらそれらしいのがいくつかあったよー
3229:04/10/11 22:56:36
>>31

ググッた

>1. 配列の要素を1〜9でそれぞれ初期化する。
>2. 1〜9の乱数Rを取り出し、R番目と9番目の要素を入れ替える。
>3. 1〜8の乱数Rを取り出し、R番目と8番目の要素を入れ替える。
>4. 1〜7の乱数Rを取り出し、R番目と7番目の要素を入れ替える。
>(中略)
>9. 1〜2の乱数Rを取り出し、R番目と2番目の要素を入れ替える。

こういう方法か・・・
これなら範囲分の回数だけループを繰り返すだけだから
おそらく最も効率がいいっすね。いや、数学的なことはよくわからないですが。
33デフォルトの名無しさん:04/10/12 06:18:29
>>32
それやると一様な乱数にならず偏りが出てくる
34デフォルトの名無しさん:04/10/13 02:06:07
>>33
実験して精度しらべてみたけど均等にできたよ。いちおうCのソース上げとく
(実はCで組んだのこれが初めてなんで、おかしかったらどんどん指摘して欲しい)

//シャッフルの精度を調べるプログラム

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define RANGE 10
#define LOOP 100000

int main()
{
srand( (unsigned)time( NULL ) );
unsigned int i,j,k,r,tmp1;
unsigned int num[RANGE+1];
unsigned long count1[RANGE+1][RANGE+1];

//配列初期化
for (i=0; i<=RANGE; i++)
for (j=0; j<=RANGE; j++)
count1[j][i] = 0;

//ループ
for (j=0; j<LOOP; j++)
{
//1から整列して代入
for (i=1; i<=RANGE; i++)
num[i]=i;
35続き:04/10/13 02:07:57
//シャッフル
for (i=RANGE; i>=1; i--)
{
r=(int)(rand() / (double)(RAND_MAX + 1) * i)+1;
tmp1=num[r];
num[r]=num[i];
num[i]=tmp1;
//printf ("r:%2d,num[%2d]:%2d ",r,i,num[i]);
}

//シャッフルのデータの集計
for (i=1; i<=RANGE; i++)
{
count1[i][num[i]]++;
}
}

//最終的なデータの統計表示
printf ("\n");
for (k=1; k<=RANGE; k++)
{
for (i=1; i<=RANGE; i++)
printf ("num[%d]が%dだった回数 : %d\n",k,i,count1[k][i]);
printf("\n");
}

printf("範囲 = 1 〜 %d\n",RANGE);
printf("\n繰り返した回数 = %d\n\n",j);

}
36デフォルトの名無しさん:04/10/13 03:00:02
あちゃー
残念だがスレ違いだ
37デフォルトの名無しさん:04/10/13 11:17:45
>34-35
BASICのスレだけどツッコミキボンヌのようなので
・Cの場合コメントは//使わず/*〜*/にした方が吉。
・int main()なんだから最後にreturn 0とか入れましょう。

さて、んじゃVBで実装してみますか。
38デフォルトの名無しさん:04/10/13 15:27:14
>>36
重々承知してますがもはやBASIC使える環境じゃないんでw
慣れないCでやったってわけです
>>37
勉強になります。thx
39デフォルトの名無しさん:04/10/13 23:35:33
basicではなかったと思うが、高校生対象のコンテストで、
○○ソートを少ないステップ数で効率的に行え。といった問題があった。(どのようなソートだったかは覚えていない)

大賞に選ばれたものは(確かCだった)数行のものでしたが、いくらか追っかけてもなぜこれが??でした。
アルゴがわかっていたって、とても自分には作成できないものでした。

上には上がいるものだな。と思った以上に
BASIC、C、アセンブラなどといった言語の優位性などはとてもチープと思いました
40デフォルトの名無しさん:04/11/17 16:39:08
誰か、N88BASICでこのプログラム作ってください。お願いします。

正六角形の中心から対角線方向を選んで進むランダム・ウォークを行うプログラムを次の二通りで作成する。
 1) サイコロで方向を決め、IF文で各方向に移動距離を計算するプログラム。
 2) 最初に6方向の移動距離を計算して配列(DIM)に保存し、利用するプログラム。

41デフォルトの名無しさん:04/11/17 20:15:14
座標軸をちょっと変換すれば
移動方向は (1,0) (-1,0) (0,1) (0,-1) (1,1) (-1,-1) の6つだろ。
いちいち移動距離なんて計算すんなよ。
42デフォルトの名無しさん:04/11/18 08:31:06
宿題は宿題スレへ
43デフォルトの名無しさん:04/11/19 16:48:37
→ ← ↓ ↑ / \

\ |
 \|
ーー+ーー
  |\
  | \

六角家まずぃ。
44デフォルトの名無しさん:04/11/22 00:06:37
>>39
クイックソートなら、ふつーのBASICには再帰がないので
どうあがいても無理。

45デフォルトの名無しさん:04/11/22 00:42:50
>44
クイックソートは再帰使わなくてもループで実装できた希ガス。
コード忘れたけどorz
46デフォルトの名無しさん:04/11/22 14:48:01
47デフォルトの名無しさん:04/11/22 16:45:23
全ての再帰はループに置き換え可能です。
48デフォルトの名無しさん:04/11/23 00:29:27
>>47
無限に続く漸化式も一つの式にまとめられるように
全ての再帰もループに置き換えが効くな。
49デフォルトの名無しさん:04/11/26 12:16:15
>>48
テーラー展開とか?
50デフォルトの名無しさん:04/11/26 15:04:46
>>1
なんでそんな勉強してるの?
なんでもかんでも手続き型でやってると、
ホスト系馬鹿みたいになっちゃって設計センスまで馬鹿になっちゃうから、
最初っからデータベースでやるべし。
51デフォルトの名無しさん:04/11/26 15:12:15
高校数学のコンピュータって確かBASICだよね
52デフォルトの名無しさん:04/11/26 15:39:55
対角線って頂点から出るものだから、中心から選ぶのは難しいね。
53デフォルトの名無しさん:04/11/26 15:50:35
>>1の宿題の手伝いを必死でするスレはここですか?
54デフォルトの名無しさん:04/11/26 17:58:25
>>44
配列を使ってスタックを自前で実装すれば可能。

スタック領域が少ない組み込みで
再帰処理を非再帰バージョンに書き直すのはわりと
ありがちな状況

ちなみにローカル変数が使えるVBとかなら
再帰可能だからふつーに組める。
55デフォルトの名無しさん:04/11/27 07:12:50
ああ、疲れてるんだな。
>>10-11のLETで笑いが止まらねえ。
56デフォルトの名無しさん:04/11/27 11:01:40
JavaのsetterもLETとそんなに変わらんがな。
BASICはJavaより30年進んでんだよ。
57デフォルトの名無しさん:04/12/03 11:45:50
BASICでOS。これ最強。
58デフォルトの名無しさん:04/12/04 03:25:18
Disk BASIC とか?
59デフォルトの名無しさん:04/12/04 03:40:28
考えてみればROM BASICって立派なOSだよなぁ。
……いやまぁそりゃしょぼいけどさ……
60デフォルトの名無しさん:04/12/06 14:20:15
MZ-80シリーズはテープからBASICロードしてたからさらにOSぽ
61デフォルトの名無しさん:04/12/06 23:15:35
>60
懐かしいなぁ〜
クリーンコンピュータってのが売りだったんだよねー
その気になればテープからUNIXEN読み込ませて……てのもありだったのかなw
62デフォルトの名無しさん:04/12/08 11:37:47
そういえば AhSKI!(ASCII のパロディ版)でUNI×(ユニクロス)っていう
BASIC で実現したUNIX風のファイル管理ソフトがありましたね。
これこそまさに「BASICでこんなプログラム作れるの?」という
話題にふさわしいネタかも知れない。
昔は目の前にはBASICしか無かったんだから全ての欲望は
BASIC で解決するしかなかったからなぁ……
63デフォルトの名無しさん:04/12/09 01:46:56
>62
何を言う。そこでハンドアセンブルの密林に分け入る道もあっただろう。

漏れは入り口で引き返してきたっす´`,、(´∀`)´`,、
懐かしいぜ、Z80ニーモニック表。
64デフォルトの名無しさん:04/12/09 09:20:32
大したことない香具師ばっかだな
65デフォルトの名無しさん:04/12/09 12:40:27
自慢野郎がやってきましたぜ・・・
( ´д)ヒソ(´д`)ヒソ(д` )
66デフォルトの名無しさん:04/12/09 14:07:09
BASICでアセンブラ作ったよ。
それで作ったアセンブラで高速化ルーチン作ったよ。
最後はオールアセンブラでアセンブラ。
でもローダーはBASICのDATA文。

懐かしい、なにもかもが、懐かしい。
67デフォルトの名無しさん:04/12/09 19:02:02
RST 00H
68デフォルトの名無しさん:04/12/20 21:35:32
POKEとPEEKでだいたいOK
ペンティアムでもOK
問題ない。
69デフォルトの名無しさん:04/12/20 23:07:18
EXEC&1058H
70 あけおめ! :05/01/01 18:09:24
>>66
なんかロビンソン・クルーソーみたいですね(イイ!!意味で)
71デフォルトの名無しさん:05/01/30 21:26:49
積分で書いたグラフを回転させて出来たやつの体積を求めるプログラムって出来る?
FullBasicで。
72デフォルトの名無しさん:05/01/30 21:36:28
構造化BASIC、RATBASてあったな。
確かN88-BASIC上で動くソースリスト付き書籍があったはず。
73デフォルトの名無しさん:05/01/30 21:43:35
明日提出で困ってるんですがorz
74デフォルトの名無しさん:05/01/30 21:48:27
Cみたいに誰かがやってくれるスレはないんでつか…
75デフォルトの名無しさん:05/01/30 21:48:59
>>73
>明日提出で困ってるんですがorz
手遅れです。諦めましょう。
76デフォルトの名無しさん:05/01/30 22:17:24
せめてヒント下さい
77デフォルトの名無しさん:05/01/30 23:07:10
basicってどんなbasicなんだろ
グラフは最初から指定してあるのかな
どの軸で回転させるのかな〜
78デフォルトの名無しさん:05/01/30 23:12:03
BasicはFullBasicです。
与えた関数の式を積分してX軸を回転軸にして回転させるつもりなんですが…
79デフォルトの名無しさん:05/01/30 23:19:00
さらに範囲は指定できるようにしたいのですが。
80デフォルトの名無しさん:05/01/30 23:26:32
数式処理なのか数値積分なのか?
後者なら軸からの距離を半径とする薄い円柱の体積を足し合わせるだけなんだが
81デフォルトの名無しさん:05/01/30 23:30:14
検定あった。
82デフォルトの名無しさん:05/01/30 23:53:14
>>1
なんで出来ないのか?
それが分からない。
ネタ?
83デフォルトの名無しさん:05/01/31 00:04:54
>>82
>>21で解決済み
84デフォルトの名無しさん:05/01/31 00:19:10
多分数値積分だと思うんですが…
8571:05/01/31 00:20:44
PRINT "入力した値が大きすぎる場合グラフが意味を持ちません"
INPUT PROMPT "xの係数を正の値で入力してください":a
INPUT PROMPT "xの乗数を入力してください":b
INPUT PROMPT "このグラフの求めたい範囲の始点を入力してください":c
INPUT PROMPT "このグラフの求めたい範囲の終点を入力してください":d

SET WINDOW -(d+1) ,(d+1) ,-(b*50),(b*50)
DRAW GRID (1, 10)

SET LINE COLOR 2
FOR x =-50 TO 50 STEP 0.1
LET y=a*(x)^b
PLOT LINES :x,y;
NEXT x

SET LINE COLOR 1
FOR y =-(50*b) TO (50*b) STEP 0.1
LET x = c
PLOT LINES :x,y;
NEXT y
PLOT LINES
8671:05/01/31 00:21:28
続き

SET LINE COLOR 1
FOR y =-(50*b) TO (50*b) STEP 0.1
LET x = d
PLOT LINES :x,y;
NEXT y
PLOT LINES

LET Y0=(a*(c)^b)
LET Y1=(a*(d)^b)

SET AREA COLOR 4
PLOT AREA:c,0;c,Y0;d,y1;d,0

LET S=((a*(d^(b+1)))/(b+1))-((a*(c^(b+1)))/(b+1))

PRINT "この赤い範囲の面積は";S

END
8771:05/01/31 00:22:10
これを改造して作れないでしょうか?
8871:05/01/31 00:44:50
あうぅ
8971:05/01/31 00:50:36
どうしたらいいでしょうか?
90デフォルトの名無しさん:05/01/31 00:54:11
>LET S=((a*(d^(b+1)))/(b+1))-((a*(c^(b+1)))/(b+1))
定積分の公式のようですが、回転体の不定積分のやり方忘れちゃいました。
 ∫π*(a*x^b)^2・dx
 =π*a^2*∫x^(2*b)・dx
 =π*a^2*x^(2*b+1)/(2*b+1)
こんなんだっけ?
で、xにdとcを入れて引き算かな。
9171:05/01/31 01:46:01
大体出来たんですが、積分関数のグラフを書く方法が良く分かりません
9275:80:90:05/01/31 01:59:06
長半径y、短半径y/2の楕円を下の辺りに重ねて描くと3Dぽくなるよ。

FOR x =-50 TO 50 STEP 0.1
LET y=a*(x)^b
PLOT LINES :x,y; ←ここら辺
NEXT x
9371:05/01/31 02:09:48
>>92
どういうことですか?
9492:75:80:90:05/01/31 02:18:43
>>93
回転体の表示がしたいと勝手に解釈してました。
 y=π*a^2*x^(2*b+1)/(2*b+1)
のグラフを描きたいのでしょうか。
9571:05/01/31 02:22:22
>>94
回転体の表示もしたいのですが、よく分からないので求めるために回転させる部分を赤く塗りつぶしてました。
それとは別にy=ax^nを積分したもののグラフを表示したかったんです
9671:05/01/31 02:22:52
楕円の書き方とか分かりませんm(__)m
9794:92:75:80:90:05/01/31 02:37:54
>>95
y=ax^nのグラフは描けているようですので、y=ax^nを積分したy=ax^(n+1)/(n+1)のグラフを表示するのは如何でしょうか。

>>96
PLOT LINESがあるならPLOT CIRCLESとかがありそうなんですけど、FullBasicの描画命令は分かりませんです。
9897:94:92:75:80:90:05/01/31 02:47:24
描きたいのはy=π*a^2*x^(2*n+1)/(2*n+1)かな。
9971:05/01/31 02:52:19
書きたいのはy=ax^(n+1)/(n+1)なんですが何故かうまくいきません
そして回転体も書きたいんですが良く分からない感じです
10098:97:94:92:75:80:90:05/01/31 03:07:46
>>99
>書きたいのはy=ax^(n+1)/(n+1)なんですが何故かうまくいきません
具体的にどうなりますか?
積分すると偶関数と奇関数が入れ替わるのでx<0で積分値が負になったりするのとは違いますよね。


PLOT LINESで楕円風の多角形でも描きますか?
10171:05/01/31 03:48:19
グラフ書けました。
今気づいたんですが、範囲を負の数から始めていると面積がちゃんと出ないことに気付きました。
-15から15にすると面積が0に…
102100:98:97:94:92:75:80:90:05/01/31 03:59:00
>>101:71
おめでとう。
10371:05/01/31 04:04:11
面積解決しました。
定義域に負の数が入っていた場合加算にしました
104デフォルトの名無しさん:05/02/01 01:19:04
>>103
絶対値ではあかんのですか?
105デフォルトの名無しさん:05/02/02 23:35:20
悪質なマルチポストだった罠。
http://science3.2ch.net/test/read.cgi/infosys/1097162168/
106デフォルトの名無しさん:05/02/27 00:39:47
100 REM
110 A=A+1
120 INPUT B
130 INPUT C
140 IF B<170 THEN GOTO 150 ELSE GOTO 160
150 D=D+1
160 E=E+1
170 IF C>68 THEN GOTO 180 ELSE GOTO 190
180 DA=DA+1
190 EA=EA+1
200 IF A=10 THEN GOTO 210 ELSE GOTO 110
210 Ave=B/10
220 Ave=C/10
230 PRINT B
240 PRINT C
250 END
107デフォルトの名無しさん:05/02/27 00:46:27
>160
こらまた見事なカルボナーラで。しかも冷めて固まってるよ。
108デフォルトの名無しさん:05/02/27 10:01:27
>>107
構造化という考え方が一般的になる前のコードだ。これが普通。
先人のせっかくの教訓が形骸化されたスローガンとなってしまって一辺倒な物の見方しかできなくなってるんですよ。その発言って。
気をつけた方がいいぞ。
109デフォルトの名無しさん:05/02/27 13:15:26
>160
なにこれ?
自演?
110デフォルトの名無しさん:05/02/27 13:29:29
>>188は>160とケコーンシル!
111デフォルトの名無しさん:05/02/27 18:30:26
>>106
懐かしい
112デフォルトの名無しさん:05/02/28 16:52:37
教科書に載ってそうな簡単なしくみだな>106
113デフォルトの名無しさん:05/03/02 23:09:44
簡単ですね
114デフォルトの名無しさん:05/03/05 12:13:44
だな
115デフォルトの名無しさん:05/03/05 18:16:38
call -151
116デフォルトの名無しさん:05/03/06 16:48:52
>>1
>(ただし、170.0cmの人を1人入れよ)
この命題の意味がよくわからないな。その条件を除けば、

教科書的には、上のようなものなんだろうが8086系の実践では、かのように単純
ではうまくいかないだろうな。例えば人間の手動計算で0.05になるものがCPU内部では、
0.05未満の数値(0.0499・・・)で扱われるといったようなことが起きることがある。

90 CLEAR
100 DEFINT B,I,J
110 DEFDBL W,A
120 '
130 FOR I=0 TO 9
140 INPUT A(I)'身長
150 INPUT B(I)'体重
160 IF A(I)>=170 THEN
170 IANIN=IANIN+1
180 IB=IB+B(I)
190 ENDIF
200 IF B(I)<68 THEN
210 IBNIN=IBNIN+1
220 WA=WA+A(I)
230 ENDIF
240 NEXT I
250 IBHEI=int(IB/IANIN+.501)'-整数一桁目を桁落ちさせないための丸め処理
260 WAHEI=int((WA/IBNIN+.0501)*10)/10'-少数点一桁目を桁落ちさせないための丸め
270 PRINT "170cm以上の身長の人数、平均体重";IANIN;" ";IBHEI
280 PRINT "68kgs以下の体重の人数、平均身長";IBNIN;" ";WAHEI
(こんなところかな。テストはしてないが。)
117デフォルトの名無しさん:05/03/06 16:50:08
END が抜けた。
118デフォルトの名無しさん:05/03/08 07:37:14
BASICのエミュってどこにあるの?
119デフォルトの名無しさん:05/03/08 07:42:30
MSXのエミュどっかにあったな
120デフォルトの名無しさん:05/03/08 16:09:54
N88BASICでcドライブにある画像をBLOADで表示するには
どうゆう書き方すりゃいいの?

1 bload "(ファイル名)":c ←こんな感じ?

さっぱりわからんから誰か教えてー!!!!!
121デフォルトの名無しさん:05/03/12 06:56:18
まだ>>1の答えが出てないのかw
122デフォルトの名無しさん:05/03/12 11:40:52
単発質問スレでしたか・・・
123デフォルトの名無しさん:05/03/12 22:39:46
>121
スレ頭から全部読んだか? とっくに答え出てるぞ。
124デフォルトの名無しさん:05/03/19 18:30:08
>>120
ドライブ名はファイル名に入れろ

 1 BLOAD "C:TEKITO.BAS"

こんな感じで。
125デフォルトの名無しさん:05/03/20 22:29:05
100 REM
110 A=A+1
120 INPUT B
130 INPUT C
140 IF B<170 THEN GOTO 150 ELSE GOTO 160
150 D=D+1
160 E=E+1
170 IF C>68 THEN GOTO 180 ELSE GOTO 190
180 DA=DA+1
190 EA=EA+1
200 IF A=10 THEN GOTO 210 ELSE GOTO 110
210 Ave=B/10
220 Ave=C/10
230 PRINT B
240 PRINT C
250 END
126デフォルトの名無しさん:05/03/20 23:08:23
誰か125のD、E、DA、EA、Aveが
何に使われているのか教えてくれなさい

' てか、変数にまず0入れてないと気持ち悪く感じるってのはC系の言語に染まっちまったなぁ
' MSX-BASICに取り組んでいたあの日が懐かすぃ
127デフォルトの名無しさん:2005/03/21(月) 07:23:07
VB6.0ヘルプでみたけど"Ave"という演算子も関数もないんだけど・・・
そういった演算子、関数類があったとしても、要求されている平均身長(小数点1桁)と
平均体重(整数)の精度は違うから、同じ計算式というのはおかしいと思うが。

平均身長に関してだけ言えば、>>125の210行、220行は、Aveが使われた変数を精度は小数点2桁以上
で計算して小数点1桁に丸めて代入するという演算子、関数の類でなければ意味がないだろ。



128デフォルトの名無しさん:2005/03/22(火) 18:23:49
今更なんだけど、自分も作ってみた。>>1の問題。
>(ただし、170.0cmの人を1人入れよ)
この条件を省いた

10 FOR I=1 TO 10
15 PRINT I;"番目"
20 INPUT"身長=";HEI
30 INPUT"体重="; WEI
40 IF HEI>=170 THEN HEIP=HEIP+1:HEIT=HEIT+HEI
50 IF WEI<68 THEN WEIP=WEIP+1:WEIT=WEIT+WEI
60 NEXT I
70 PRINT"身長170cm以上の人数…";HEIP
80 IF HEIP>0 THEN PRINT USING"平均…####.#";HEIT/HEIP
90 PRINT
100 PRINT"体重68kg未満の人数…";WEIP
110 IF WEIP>0 THEN PRINT USING"平均…####.#";WEIT/WEIP
120 END

言語は99BASIC。

まあ、PRINT USING命令を使う奥の手があるということだな>小数点1桁以内で表記
ちなみに条件に当てはまる人が居ない場合は平均値は表示されない
129デフォルトの名無しさん:2005/03/22(火) 18:32:35
>>128の修正。PRINT USING命令を使わないでみた。

10 FOR I=1 TO 10
15 PRINT I;"番目"
20 INPUT"身長=";HEI
30 INPUT"体重="; WEI
40 IF HEI>=170 THEN HEIP=HEIP+1:HEIT=HEIT+HEI
50 IF WEI<68 THEN WEIP=WEIP+1:WEIT=WEIT+WEI
60 NEXT I
70 PRINT"身長170cm以上の人数…";HEIP
80 IF HEIP>0 THEN HEIA=HEIT/HEIP:HEIA=INT(HEIA*10):HEIA=HEIA/10:PRINT"平均…";HEIA
90 PRINT
100 PRINT"体重68kg未満の人数…";WEIP
110 IF WEIP>0 THEN WEIA=WEIT/WEIP:WEIA=INT(WEIA*10):WEIA=WEIA/10:PRINT"平均…";WEIA
120 END

小数点1桁表記には「カップ麺式」という独自の計算方法を使っている。
130デフォルトの名無しさん:2005/03/28(月) 17:19:56
’  より、
REM のほうがメモリ上では短いのに驚き。
” でも、1画面プログラムでは ’こっち使うのだな; ”

REM ( A$=" ” にしないとエラーがでるかな? )
131デフォルトの名無しさん:2005/05/04(水) 09:24:16
>>129
その「カップ麺式」は漏れもExcelで多用してる。
小数点第1位までしか使用しない物も多いから。
132AMI:2005/05/09(月) 08:44:23
すれ違いということで、こちらで質問させて頂きます。
現在、N88-BASICでプログラムをくんでいるのですが、
「ブレーク信号」ってBASIC上で送信できるんですか?
VBでもやり方がわかれば、BASICに移植するのは簡単とはおもいますが・・・
ちなみに、いろいろしらべたのですが、ブレーク信号の定義が「1バイト長以上の長い時間、Loの状態が続く信号です」
とあったので、NUL(CHR$(0))をたくさん送信したのですが、反応無し、
[0]を多く送信しても反応無しという状態です。
またはこれはソフト上では作成不可能なのでしょうか?
ご教授お願いします。
構成的にDOS/VパソコンとFAの制御機器とのRS-232Cの通信です。
ちなみに下は、VB質問板でのやりとりを記載しておきます。
>>725>>726>>727>>728>>744>>747>>748>>753>>756
133AMI:2005/05/09(月) 08:46:31
>>132です
すみません、リンク先がちがってましたので、
http://pc8.2ch.net/test/read.cgi/tech/1112414085/l50
ここのアドレスの、>>725
726
727
728
744
747
748
753
756
758
759
760
761
764
です。
134デフォルトの名無しさん:2005/05/09(月) 20:26:18
>>132
DOS/V で N88-BASIC? PC-9801じゃないの?

http://pc8.2ch.net/test/read.cgi/tech/1112414085/759
で示されている資料
ttp://www.webtech.co.jp/company/doc/undocumented_mem/io_rs.txt
からすると

1000 ' PC-9801 ノーマルモード用
1010 OUT &H32, &H2F :' (0010 1111b) ブレーク送信
1020 ' (適当なウエイト)
1030 OUT &H32, &H27 :' (0010 0111b) ブレーク解除

同じポートのbit5, bit1でRTS, DTRのon/offもやってるようなので
ハードウェアフロー制御を使ってる場合は適時修正して下さい。

DOS/Vの場合は
ttp://hp.vector.co.jp/authors/VA000981/dos-tech/8250-send-break.html
の例をそのままBASICにすると

1000 ' DOS/V (8250,16650A) 用
1010 TMP = INP(&H03FB)
1020 OUT &H03FB, TMP + &H40 :' (or 0100 0000b) ブレーク送信
1030 ' (適当なウエイト)
1040 OUT &H03FB, TMP ': ブレーク解除
135デフォルトの名無しさん:2005/05/14(土) 11:34:35
N88-BASICやQBASICで、EVAL()という関数にあたるサブルーチンは、どうやって作ったらいいですか?
EVAL()とは、数式文字列を計算できる関数です。
136デフォルトの名無しさん:2005/05/14(土) 13:00:58
>>135
無理矢理つくるとこんな感じ。

100 INPUT "数式を入力して下さい:"; F$
110 GOSUB *EVAL
120 PRINT "答えは "; X
130 END
140 '
150 *EVAL
160 OPEN "dmy.bas" FOR OUTPUT AS #1
170 PRINT #1, "1000 X = "; F$
180 PRINT #1, "1020 GOTO *ENDEVAL"
190 CLOSE #1
200 CHAIN MERGE "dmy.bas", 1000, ALL
210 *ENDEVAL
220 RETURN
137デフォルトの名無しさん :2005/05/16(月) 00:55:16
プログラミング初心者です。パスカルの三角形の性質
C(n,r)=C(n-1,r)+C(n-1,r-1)
を使って2項係数を計算するプログラムはどうやって作ったらよいでしょうか?
教えてください。
138デフォルトの名無しさん:2005/05/16(月) 01:19:51
139デフォルトの名無しさん:2005/05/16(月) 09:49:42
ちゃんと教えてやれよ!!わからないんなら書き込むな
っまおれはわからんけどな
140デフォルトの名無しさん:2005/05/16(月) 10:50:52
懐かしいな、BASIC。もう15年ぐらい触ってないけど。
IF文の途中でctrl+J打ち込んで、擬似ブロックIFとかやってたな。
141デフォルトの名無しさん:2005/05/16(月) 19:16:11
このネタスレ、どの程度のジョークプログラムを書けばいいかいまいち空気が読めない。
142デフォルトの名無しさん:2005/05/16(月) 22:51:37
マジプログラムで!!
143デフォルトの名無しさん:2005/05/16(月) 22:57:44
>137
ぐぐってみたんだが、おぢさんもう年で「2項係数」の定義が分からん。
教えてくれんかの。
144デフォルトの名無しさん:2005/05/17(火) 09:11:56
145デフォルトの名無しさん:2005/06/21(火) 00:07:46
1〜Nまでの数字の順列をすべて表示するプログラムを作れ、ってどうやりますかね?

例えばN=3だったら
123
132
213
231
312
321
の六通り

これって、BASICでできるんですか?
146デフォルトの名無しさん:2005/06/21(火) 00:09:32
できるけど?
147145:2005/06/21(火) 00:17:28
>>146
教えて下さい
148デフォルトの名無しさん:2005/06/21(火) 12:41:01
>>145

10 INPUT "N(2~)=";N
20 B=N
30 FOR I=N-1 TO 1 STEP -1
40 B=B*I
50 NEXT
60 PRINT B;"通り"

149デフォルトの名無しさん:2005/06/21(火) 20:12:34
10 DEFINT A-Z
20 INPUT N: A$=CHR$(10)+CHR$(13)
30 FOR K=1 TO N
40 ZA$=A$: ZN=K: GOSUB 500: A$=ZA$
50 NEXT K
60 LPRINT A$
500 REM
510 ZB$=""
520 FOR ZK=0 TO LEN(ZA$) STEP ZN+2: ZT$=MID$(ZA$, ZK, ZN)
530 FOR ZI=1 TO N: ZD$=RIGHT$(STR$(ZI), 1)
540 IF NOT INSTR(ZT$, ZD$) THEN ZB$=ZB$+ZD$+ZT$+CHR$(10)+CHR$(13)
550 NEXT ZI
560 NEXT ZK
570 RETURN

テストしてないけど多分こんな感じで?
150デフォルトの名無しさん:2005/06/21(火) 23:30:21
10 DEFINT A-Z
20 INPUT N: A$=CHR$(10)+CHR$(13)
30 FOR K=1 TO N
40 ZA$=A$: ZN=K: GOSUB 500: A$=ZA$
50 NEXT K
60 LPRINT A$
70 END
500 REM
510 ZB$=""
520 FOR ZK=0 TO LEN(ZA$) STEP ZN+2: ZT$=MID$(ZA$, ZK, ZN)
530 FOR ZI=1 TO N: ZD$=RIGHT$(STR$(ZI), 1)
540 IF NOT INSTR(ZT$, ZD$) THEN ZB$=ZB$+ZD$+ZT$+CHR$(10)+CHR$(13)
550 NEXT ZI
560 NEXT ZK
570 RETURN

ENDを忘れてたORZ
151デフォルトの名無しさん:2005/07/15(金) 21:11:08
>>136
遅れました。サンクス。
確かにBASICの持っているものを生かすには、これですよね。
152デフォルトの名無しさん:2005/07/19(火) 15:22:40
>>150修正(40行)

10 DEFINT A-Z
20 INPUT N: A$=CHR$(10)+CHR$(13)
30 FOR K=1 TO N
40 ZA$=A$: ZN=K: GOSUB 500: A$=ZB$
50 NEXT K
60 LPRINT A$
70 END
500 REM
510 ZB$=""
520 FOR ZK=0 TO LEN(ZA$) STEP ZN+2: ZT$=MID$(ZA$, ZK, ZN)
530 FOR ZI=1 TO N: ZD$=RIGHT$(STR$(ZI), 1)
540 IF NOT INSTR(ZT$, ZD$) THEN ZB$=ZB$+ZD$+ZT$+CHR$(10)+CHR$(13)
550 NEXT ZI
560 NEXT ZK
570 RETURN
153やさいさん:2005/08/06(土) 17:34:30
とんな連立方程式も解けるプログラム教えてください。
154デフォルトの名無しさん:2005/08/07(日) 20:45:30
>>153
Adobe Photoshop
155デフォルトの名無しさん:2005/08/13(土) 10:48:27
くだらない質問ですが
Routine Worker
http://www.vector.co.jp/magazine/softnews/030716/n0307162.html

これを使って、ゲームをしたいのです!!!
画面の色が変わると、テンキーボタンを押す
(HP・MPが減ったら回復する) と言うような
感じを作りたいのですが、BASIC全然分かりません。。。。

どなたか、こんなアフォなお願いを叶えてくれる人いませんかぁぁ?
このスレにたどり着くまでに2日も掛かりました・・・・・・・

どうか、どぉっぉぉうか 教えてください!!!!!
メッセ連絡 [email protected] 
156デフォルトの名無しさん:2005/08/13(土) 11:02:44
なんか、一見してマルチ臭い質問の気がするけど

> プログラミングの経験がまったくない人にとっては、レコーディング
> 機能もなくエディタで直接ソースを書かなければならないのは、
> かなり敷居が高く感じられるのではないかと思う。
> ヘルプも文法解説書という趣で、プログラミングの手引きをしてくれる
> わけではない。
>
> そういうわけで、単純にステップを実行するだけのマクロユーティリティでは
> 飽き足らなくなった上級者向けのソフトといった位置づけがふさわしいのでは
> ないかと思う。

正直やめとけ
157デフォルトの名無しさん:2005/08/13(土) 12:51:14
マルチじゃないですよ ここの他は
http://pc8.2ch.net/test/read.cgi/tech/1053157149/
に書いただけなんです。。。。で BASICと言うのでカキコしました。。。

やっぱ難しいんですかねぇ??
ここに居る人なら分かると思ったのですが・・・・・
158デフォルトの名無しさん:2005/08/13(土) 13:11:59
独自仕様の部分は説明書を読まなきゃいけないが、
基本的にはこの板にいるような人ならできるだろ

だが自分ができることと、それを人に教えるのとは大違い
しかもスレ違い
「ちょっと作ってみせてくれ」なら暇な奴が乗ってくれると思うが

「日本人のペンフレンドにラブレターを書きたいんだけど
俺は日本語は全然知らないんだ。教えてくれ。」
って言われたら、おまいも「正直やめとけ」って答えるだろ?
159デフォルトの名無しさん:2005/08/13(土) 13:33:23
>>158
なるほどです。
たしかに、「正直やめとけ」と言いますが、
「ちょっと作ってみせてくれ」 いや ”ちょっと作って下さい”
なのです。。。。
使うゲームは限定してますし、やろうとしてることも明確なので
ちょっと相談に乗ってくれる人がいたらお願いします。。。
動作確認が取れるものでしたら、
多少の謝礼もお支払いします。。。(2万位が限界ですが・・・・)
そんな訳で メッセ連絡 [email protected] を記載してます。。。。

スレ違いの事ですが、どこに書いていいのかもわからなかったもので
すいません。

どうか宜しくお願い致します。。。。。。。
160デフォルトの名無しさん:2005/08/25(木) 17:03:44
VB使ったら、馬鹿でもGUIゲームくらい書けるだろうが。
これでもだめだったら、馬鹿以下です。
161BASIC:2005/11/23(水) 20:30:00
キーボードより入力したデータの中で最大値と最小値を求める
プログラムを作成しなさい。0を入力した場合に終了
162デフォルトの名無しさん:2005/11/23(水) 22:15:43
えらく態度のでかいマルチだな。
163BASIC:2005/11/24(木) 11:39:52
N人分のデータ(氏名、住所、電話番号)がDATA文で入力されているプログラムが
ある。氏名を入力すると、住所と電話番号が表示されるプログラムをBASICで作成
しなさい


164デフォルトの名無しさん:2005/11/24(木) 18:33:04
BASICでデバイス制御が出来ないかと考えるオレって異常?・・・。
165デフォルトの名無しさん:2005/11/24(木) 18:44:16
INPとOUTがあるじゃん
166デフォルトの名無しさん:2005/11/24(木) 19:01:03
BASICってなに?
167デフォルトの名無しさん:2005/11/26(土) 20:53:59
マジレスすると、
Beginner's All-purpose Symbolic Instruction Codeの略。
つまり、初心者向けのプログラミング言語。

「基本的な」という意味の英語のBasicとは違う。
168デフォルトの名無しさん:2005/11/27(日) 08:08:45
d
169BASIC:2005/12/05(月) 15:52:36
N人分のデータ(氏名、体重、身長、年齢)がDATA文で入力されているプログラムが
ある。これを用いて次のプログラムをBASICで作成しなさい
1、最も体重の軽い人の名前を表示する
2、身長が160CM以上で170cm未満の人の名前を表示する
3、体重が60kg以上で、身長が150cm未満の人の名前を表示する
4、年齢が30歳以下の人の、体重と身長の平均値を計算し表示する

170デフォルトの名無しさん:2005/12/05(月) 23:33:24
別のプログラムと作ったプログラムを合体させるって MERGE コマンドで
良かったんだっけ?
171デフォルトの名無しさん:2005/12/06(火) 00:49:14
>170
だったと思う。少なくともMSX-BASICでは。
ではピーギョロギョロ
172デフォルトの名無しさん:2005/12/06(火) 04:43:28
行番号がカブっちゃだめだぞ。
エラー出るのか忘れたが。
173デフォルトの名無しさん:2005/12/06(火) 05:36:42
N人分のデータが行番号 1 からびっちり埋まっているとして、
>>169 のデータ処理するプログラムを行番号 1 のみの一行で書いて merge で
結合させながら動くとすると、どういう動作になるの?
1. merge コマンドを実行した途端エラーになる(回答不能)
2. 行番号被ってもその行の実行が終るまで実行できる(なんとか実行可能)
3. 被っている行だけ merge されない(工夫しても無理?)
機種限定だったら、例えばロードして処理するプログラムをマシン語として
メモリに書き込んで呼び出すようにすればいいのかなぁ……

>>169 は無理臭い
174デフォルトの名無しさん:2005/12/06(火) 06:56:36
mergeさせる為の元データの行番号は
1000以降とか10000以降とかが無難だったかな…
175デフォルトの名無しさん:2005/12/06(火) 18:27:32
A.BAS
1000 N=10
1010 DATA "A",60,180,20
1020 DATA "B",38,128,11
・・・

B.BAS
1000 CHAIN MERGE "A.BAS"
2010 WA=0:HA=0:M=0:MW=1E10
2020 FOR I=1 TO N: READ NA$,W,H,A
2030 IF W < MW THEN MW=W:MNA$=NA$
2040 IF H>=160 AND H<170 THEN PRINT "身長160cm以上170cm未満:"; NA$
2050 IF W>=60 AND H<150 THEN PRINT "体重60kg以上、身長150cm未満:"; NA$
2060 IF A<=30 THEN WA=WA+W: HA=HA+H: M=M+1
2070 NEXT
2080 PRINT "体重が最も軽い:"; MNA$
2090 IF M<>0 THEN PRINT "30歳以下の平均体重、身長:"; WA/M, HA/M
176デフォルトの名無しさん:2005/12/06(火) 22:22:06
CHAIN 文とか懐しいなあ
177デフォルトの名無しさん:2005/12/06(火) 23:26:16
問題は DATA 文が 65536 行あるときだよな。
178デフォルトの名無しさん:2005/12/07(水) 00:15:23
ひょっとしてLINE INPUTでDATA文を解析しる!! ってことなのか?
179デフォルトの名無しさん:2005/12/07(水) 13:00:41
アスキーモードでプログラムを保存しないとダメなんですか?
180BASIC:2005/12/14(水) 15:47:22
次のプログラムをBASICで作成しなさい
指数 = 体重 ÷((身長−100)×0.9)

指数が0.9未満ならば 「評価欄」に「やせすぎ」と表示
0.9以上0.95未満ならば 〃 「やせ気味」 〃
0.95以上1.05未満ならば 〃 「標準」 〃
1.05以上1.15未満ならば 〃 「太り気味」 〃
1.15以上ならば 〃 「太りすぎ」 〃
181デフォルトの名無しさん:2005/12/14(水) 18:34:06
宿題か?大変だな。
182デフォルトの名無しさん:2005/12/14(水) 19:02:14
10 print "何を入力しますか? (1) 指数 (2) 体重と身長";
20 input nani%;
30 on nani% goto 100, 200
40 print "じゃあ、指数を生で入力して下さい"
50 goto 100
あ、評価欄への表示の仕方がわからないや。
メモリの実番地だったりしてね。オブジェクトにメッセージを送るわけには
いかんよなぁ……
183デフォルトの名無しさん:2005/12/16(金) 02:34:04
>180
身長が丁度 100.0 の時のエラー処理を入れてやった方が
いいかもしれん。
184BASIC:2006/01/26(木) 15:57:23
N人分のデータ(氏名、住所、電話番号)がDATA文で入力されているプログラムが
ある。
氏名を入力すると、住所と電話番号が表示されるプログラムをBASICで作成
しなさい

期日が迫っているので、だれか早くこたえてくれ!!

185デフォルトの名無しさん:2006/01/26(木) 16:50:12
>>184
read文で配列に読み込んで、
入力された氏名と一致するかどうかforでまわしてチェックして
一致したら表示
186デフォルトの名無しさん:2006/01/29(日) 02:58:38
昔、BASICでBASIC作ったことあるよ。
187デフォルトの名無しさん:2006/02/03(金) 02:21:59
そういや最初の Smalltalk は BASIC で作られたんだっけ?
188デフォルトの名無しさん:2006/03/01(水) 20:38:39
N88-BASICでコンパイラを作ったことなら・・・
189デフォルトの名無しさん:2006/04/15(土) 02:10:53
高校の時、ポケコンのBASICで
ウイルスもどきを作ってクラス中にバラ撒いた事あるよ
190デフォルトの名無しさん:2006/04/17(月) 04:23:27
>>189
通報しませんですた。
191デフォルトの名無しさん:2006/05/06(土) 07:25:38
天才の諸君2ちゃんブラウザ作って
192デフォルトの名無しさん:2006/05/07(日) 15:42:37
ウィルスもどきほしーぃ
193デフォルトの名無しさん:2006/05/07(日) 16:43:13
>192
VBScriptワームならどっかに転がってるだろ
194デフォルトの名無しさん:2006/05/10(水) 02:15:15
2〜4079までの素数の和を求めるときはどうすればいいの?
195デフォルトの名無しさん:2006/05/10(水) 02:17:42
196デフォルトの名無しさん:2006/05/10(水) 02:38:35
>>195
十進BASICで書くときはどうすればいいのでしょうかorz
197sage:2006/05/10(水) 18:27:35
10進法の少数を2進法に直すプログラムがわからないです。まず少数って
認識しませんし。
198デフォルトの名無しさん:2006/05/10(水) 19:42:51
>>197
まあ、俺基準では5より少なければ少数だな。
199デフォルトの名無しさん:2006/05/10(水) 22:49:56
>>196
REM エラトステネスの篩
DECLARE NUMERIC i, j, total
DIM prm(2 TO 4096)
MAT prm = CON
FOR i=2 TO INT(SQR(4096))
IF prm(i) <> 0 THEN
FOR j=i*2 TO 4096 STEP i
LET prm(j) = 0
NEXT J
END IF
NEXT I
LET total = 0
FOR i=2 TO 4096
IF prm(i) <> 0 THEN
PRINT i
LET total = total + i
END IF
NEXT I
PRINT
PRINT total
END

>>197
10進の小数
"0.1" → 10^-1 = 1/10 = 0.1
"0.01" → 10^-2 = 1/100 = 0.01
"0.001" → 10^-3 = 1/1000 = 0.001
2進の小数
"0.1" → 2^-1 = 1/2 = 0.5
"0.01" → 2^-2 = 1/4 = 0.25
"0.001" → 2^-3 = 1/8 = 0.125
200デフォルトの名無しさん:2006/05/11(木) 00:55:50
>>199
ありがとうございました!!!
201デフォルトの名無しさん:2006/05/16(火) 23:31:32
LET p=0
FOR i=1 TO x
LET p=p+1/i
NEXT i
PRINT p
END

これでp>6とはじめてなるときのxを出すときは
どうすればいいんでしょうか?
202デフォルトの名無しさん:2006/05/17(水) 04:53:18
LET p = 0
LET answer = -1
FOR i = 1 TO x
 LET i = i + 1 / i
 IF p > 6 THEN LET answer = x
NEXT
PRINT p
IF answer <> -1 THEN PRINT answer ELSE PRINT "ありません"
END

また、最終的な合計を求めて PRINT p をする必要が無ければ
IF p > 6 の時点でループを抜けても良い。
203デフォルトの名無しさん:2006/05/17(水) 10:12:37
実行しても0しか出てこないんですが・・・。
204デフォルトの名無しさん:2006/05/17(水) 14:14:05
ヒント: forループに入る時点での x の値
205デフォルトの名無しさん:2006/05/18(木) 09:52:17
DO LOOPを使うとどのようにかけるのでしょうか?
206デフォルトの名無しさん:2006/05/24(水) 11:32:08
また質問です。
Hn=1/1+1/2+・・・+1/n
で、Hnから分母に1が現れるものを除いた和Inがあるとき、
I100を求めるにはどう書いたらいいのでしょう。
207デフォルトの名無しさん:2006/05/25(木) 10:45:34
>>206
変数用意して、ループで足していけ。
208工房:2006/10/29(日) 18:50:33
質問です
SWITCH〜CASEの使い方キボンヌ
209デフォルトの名無しさん:2006/10/30(月) 02:52:10
BASIC に SWITCH なんてあったっけか?
210デフォルトの名無しさん:2006/10/30(月) 03:01:27
Full Basicにはなかったか?
211デフォルトの名無しさん:2006/10/30(月) 03:46:10
SELECT ならあったが。
212デフォルトの名無しさん:2007/01/18(木) 15:15:44
PROGRAM ca2
LIBRARY "csgraphics"
DIM update(0 TO 511),cell(50,50)
CALL setrule(update(),L)
LET flag$ = ""
DO
CALL initial(cell(,),update(),L)
DO
CALL iterate(cell(,),update(),L)
IF key INPUT THEN
GET key k
IF (k = ORD("s")) OR (k = ORD("S")) THEN
LET flag$ = "stop"
END IF
END IF
LOOP UNTIL k <> 0
LET k = 0
LOOP UNTIL flag$ = "stop"
END
213デフォルトの名無しさん:2007/01/18(木) 15:16:42
SUB setrule(update(),L)
FOR i = 0 TO 511
LET update(i) = 0
NEXT i
FOR nn1 = 0 TO 5
FOR nn2 = nn1+1 TO 7
FOR nn3 = nn2+1 TO 7
LET index = 2^nn1 + 2^nn2 + 2^nn3
LET update(index) = 1
LET update(index+256) = 1
NEXT nn3
NEXT nn2
NEXT nn1
FOR nn1 = 0 TO 6
FOR nn2 = nn1+1 TO 7
LET index = 256 + 2^nn1 + 2^nn2
LET update(index) = 1
NEXT nn2
NEXT nn1
SET BACKGROUND COLOR "black"
SET COLOR "white"
INPUT PROMPT "lattice size = ": L
CALL compute_aspect_ratio(L,xwin,ywin)
SET WINDOW -0.2*xwin,1.2*xwin,-0.2*ywin,1.2*ywin
END SUB
214デフォルトの名無しさん:2007/01/18(木) 15:17:49
SUB initial(cell(,),L)
FOR i = 1 TO L
FOR j = 1 TO L
LET cell(i,j) = 0
SET COLOR "yellow"
BOX AREA i,i+1,j,j+1
SET COLOR "black"
BOX LINES i,i+1,j,j+1
NEXT j
NEXT i
SET CURSOR 1,1
SET COLOR "white"
PRINT "click to cell to toggle or outside of lattice to continue."
DO
GET POINT x,y
IF x > 1 AND x < L AND y > 1 AND y < L THEN
LET i = TRUNCATE(x,0)
LET j = TRUNCATE(y,0)
IF cell(i,j) = 0 THEN
SET COLOR "black"
BOX AREA i,i+1,j,j+1
LET cell(i,j) = 1
ELSE
SET COLOR "yellow"
BOX AREA i,i+1,j,j+1
LET cell(i,j) = 0
SET COLOR "black"
BOX LINES i,i+1,j,j+1
END IF
215デフォルトの名無しさん:2007/01/18(木) 15:18:39
END IF
LOOP UNTIL x < 1 OR x > L OR y < 1 OR y > L
SET CURSOR 1,1
SET COLOR "white"
PRINT "Hit and key for new lattice, 's' to stop";
PRINT " "
END SUB
SUB iterate(cell(,),update(),L)
DIM cellnew(50,50)
FOR i = 1 TO L
FOR j= 1 TO L
CALL neighborhood(cell(,),i,j,sum,L)
LET cellnew(i,j) = update(sum)
IF cell(i,j) = 1 AND cellnew(i,j) = 0 THEN
SET COLOR "yellow"
BOX AREA i,i+1,j,j+1
SET COLOR "black"
BOX LINES i,i+1,j,j+1
ELSE IF cell(i,j) = 0 AND cellnew(i,j) = 1 THEN
SET COLOR "black"
BOX AREA i,i+1,j,j+1
END IF
NEXT j
NEXT i
MAT cell = cellnew
END SUB

216デフォルトの名無しさん:2007/01/18(木) 15:19:25
SUB neighborhood(cell(,),i,j,sum,L)
LET IP = j + 1
LET im = j - 1
LET jp = j + 1
LET jm = j - 1
IF i = 1 THEN
LET im = L
ELSE IF i = L THEN
LET IP = 1
END IF
IF j = 1 THEN
LET jm = L
ELSE IF j = L THEN
LET jp = 1
END IF
LET sum = cell(i,jp) + 2*cell(i,jm) + 4*cell(im,j)
LET sum = sum + 8*cell(IP,j) + 16*cell(IP,jp) + 32*cell(IP,jm)
LET sum = sum + 64*cell(im,jp) + 128*cell(im,jm) + 256*cell(i,j)
END SUB

このTrue Basicでのプログラムを十進Basicでかけますか?
217デフォルトの名無しさん
shihtキーとかが押されているか判断する方法、WINDOWS上のBASICでどうやるの?

N88のときはINPでできたし、99BASICならできるんだけど。
BASIC/98でできない。