くだすれDelphi(超初心者)その29

このエントリーをはてなブックマークに追加
965ささ ◆6KVcpBNXy.
みなさん。こんにちゎ。経済学部のささと申します。
パスカル(Delphi)の授業での課題がわかりません。。教えてください!
3科目、10人分のデータを入力して各人の合計点と科目毎の平均点を出せ!
という課題が出ました。。。

先生に下記を改変するとやりやすいといわれました。repeatとwhileとforまでしか習っていません。
Score :array[0..1000] of integer; 
begin
writeln('入力得点の平均と偏差値を計算します'); writeln('入力後、負の数を入力すると…終了します。');
kazu :=0;
repeat
write('点数は?'); readln(data);
if data >= 0 then
begin 
kazu := kazu + 1;
score[kazu] := data
end
until data < 0;
goukei := 0;  for i := 1 to kazu do goukei := goukei + score[i];  heikin :=goukei / kazu;
goukei :=0;  for i := 1 to kazu do  goukei := goukei + Sqr(score[i]); hensa := sqrt(goukei /kazu - sqr(heikin));
writeln('点数  偏差値');
for i := 1 to kazu do  writeln(score[i]:4, 50 +10 * (score[i]-heikin)/ hensa:10:1);
writeln(' 平 均 =',heikin:5:1);  writeln('標準偏差=',hensa:5:1);
readln;
end.
966デフォルトの名無しさん:2006/01/27(金) 00:00:31
>>965
どこがどうわからないんだい?
967デフォルトの名無しさん:2006/01/27(金) 00:01:51
968デフォルトの名無しさん:2006/01/27(金) 00:08:16
科目数と人数は決まってるから、ふつうにforでまわして配列に入れていけばいいやん
969ささ ◆6KVcpBNXy. :2006/01/27(金) 01:34:50
>>968 forでまわして配列ってどういう意味ですか?
970ささ ◆6KVcpBNXy. :2006/01/27(金) 01:35:51
>>966全くどう作るか思いつかないという意味です。
971デフォルトの名無しさん:2006/01/27(金) 01:49:30
宿題スレにいけ
972デフォルトの名無しさん:2006/01/27(金) 01:52:26
次の質問↓
973デフォルトの名無しさん:2006/01/27(金) 01:58:56
リソースファイルを使ってexeにwavを埋め込むことは出来ますが
wavでは無くmp3を埋め込むようには出来ないでしょうか。
wavにするとサイズが大きくなりすぎます。
現在は外部からそのままの状態で読み込ませています。
974追記:2006/01/27(金) 02:05:49
再生はTMediaPlayerを使っています
975デフォルトの名無しさん:2006/01/27(金) 02:20:01
>>973
単にバイナリとして埋め込めるはずだけど
976デフォルトの名無しさん:2006/01/27(金) 02:28:41
バイナリと埋め込むにはどうするのですか?
977デフォルトの名無しさん:2006/01/27(金) 02:37:55
http://homepage2.nifty.com/Mr_XRAY/Halbow/Notes/N008.html

リソースファイル(hoge.rc)用意して、

hoge MP3 "hoge.mp3"

って書く。
プロジェクトに追加。
ビルドしたら埋め込まれる
TResourceStreamとかで取り出す。
978デフォルトの名無しさん:2006/01/27(金) 04:03:57
var hoge: TResourceStream;
hoge := TResourceStream.Create(hInstance,'HOGE','MP3');
と、取り出すところまでは出来ましたが
これをTMediaPlayerでPlay()やStop()で操作に出来るようするには
どういう方法でやればいいのでしょうか?
979デフォルトの名無しさん:2006/01/27(金) 13:31:43
↓次の質問どぞー
980デフォルトの名無しさん:2006/01/27(金) 14:19:11
はぁ?さっさと教えなさい
怒りますよ?
981デフォルトの名無しさん:2006/01/27(金) 14:29:48
フリーザ様がいるな
982978:2006/01/27(金) 14:38:49
>>979
TMediaPlayerでLoadFromStreamを実現する方法を教えてください
983デフォルトの名無しさん:2006/01/27(金) 14:51:29
>>982
リソースとして取り込んでもTMediaPlayerで扱えない
どうしてもTMediaPlayer使いたいならSaveToFileで
テンポラリにどっかファイル作ってそのファイルをTMediaPlayerで読み込ませる
984978:2006/01/27(金) 15:49:54
>>983
コードお願いします
985デフォルトの名無しさん:2006/01/27(金) 15:59:38
var
 hoge: TResourceStream;
 sFileName: String;
begin
 hoge := TResourceStream.Create(hInstance,'HOGE','MP3');
 hoge.SaveToFile(sFileName);
 MediaPlayer1.FileName := sFileName;
end;
986978 ◆TvbdT7pwtk :2006/01/27(金) 18:04:42
>>984
勝手に名乗るなよ

987978 ◆TvbdT7pwtk :2006/01/27(金) 18:12:21
ついでだから

>>958と似たようなもの見つけました。
>>983サンクス

RS := TResourceStream.Create(hInstance,'HOGE','MP3');
try
if FileExists(ExtractFilePath(Application.ExeName)+'HOGEHOGE.mp3') = False then begin
RS.SaveToFile(ExtractFilePath(Application.ExeName)+'HOGEHOGE.mp3');
end;
finally
RS.Free;
end;
if FileExists(ExtractFilePath(Application.ExeName)+'HOGEHOGE.mp3') then
with MediaPlayer1 do begin
Filename := ExtractFilePath(Application.ExeName)+HOGEHOGE.mp3';
end;
988978:2006/01/27(金) 19:56:42
>>986
ちょっと待ってくれ、そっちこそ偽者だろう
こっちはすでに解決しました
989デフォルトの名無しさん:2006/01/27(金) 20:21:28
↓質問したい人は「ワッフルワッフル」と書き込んでください
990978 ◆TvbdT7pwtk :2006/01/27(金) 20:40:52
>>988
ID出ないとややこしいな。
じゃあちょっと質問。

PlaySound関数を使えばリソースファイルから読み込んで
直接ストリームから再生する事が出来る。
それなのにわざわざ、SaveToFileで書き出してから読み込む
という効率の悪いTMediaPlayerを使う理由は?
TMediaPlayerではTMediaPlayer.Start以外使わない。
つまり機能の面でTMediaPlayerに頼る必要は無い。

PlaySound()が良く分からないとか
TMediaPlayerの方が簡単・分かりやすいとかその程度の理由ではなく
どうしてもTMediaPlayerでないとOSの動作の仕様上困るって言う理由がある。
その理由を100字以内で明確に書いて下さい。
991デフォルトの名無しさん:2006/01/27(金) 20:44:31
なにこの流れ
992デフォルトの名無しさん:2006/01/27(金) 21:15:21
>>990
お前がTMediaPlayerでって言ったんだろうが
アホか?
993デフォルトの名無しさん:2006/01/27(金) 21:17:11
なぜTMediaPlayerでって言ったのか、その理由聞いてるんだろ。
日本語大丈夫?
994デフォルトの名無しさん:2006/01/27(金) 21:22:04
はいはい自演乙
995デフォルトの名無しさん:2006/01/27(金) 21:24:44
流れをまとめると、

リソースにmp3埋め込んで、TMediaPlayerで再生ってどうやるの?

〜〜で××すればできる

分かりました。ところで私がTMediaPlayer使う理由ってなんですか?100字以内で答えなさい

(゚Д゚)ハァ?

この場合おかしいのはどっちよ?
996デフォルトの名無しさん:2006/01/27(金) 21:25:32
>>993
煽るくらいならあんたが答えてやりなよw
997978:2006/01/27(金) 21:26:57
すいません。トリップ付いてるのは偽者です。
私の方はもう解決しましたので、気を悪くされないようお願いします…。
998デフォルトの名無しさん:2006/01/27(金) 21:29:18
>分かりました。ところで私がTMediaPlayer使う理由ってなんですか?100字以内で答えなさい
これは
978◆TvbdT7pwtkが真の978ではない(978を騙った)と断定する988に対して聞いていること。
自問自答じゃないだろ。
999デフォルトの名無しさん:2006/01/27(金) 21:30:50
私怨はよそでやってくれ
1000デフォルトの名無しさん:2006/01/27(金) 21:30:59
>>997
書けるはずが無い。
なぜならお前は私ではないからだ。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。