[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 11/30 08:14 / Filesize : 280 KB / Number-of Response : 889
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Pascalの宿題は俺にやらせろ!!Part2



1 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 00:45:25 ]
教育用(?)プログラムPascalの宿題をやって頂くスレ

■丸投げOK
■全く分かってない阿呆も放置しないで優しく対応
■他言語はよそ逝け( ゚Д゚)ゴルァ
■DelphiもTurbo Pascalも完全対応

【本家】

www.borland.co.jp/delphi/

【前スレ】

pc8.2ch.net/test/read.cgi/tech/1089719714

【関連スレ】

くだすれDelphi(超初心者用)その15
pc5.2ch.net/test/read.cgi/tech/1087823906/l50

Pascal の初心者用の質問・相談所
pc5.2ch.net/test/read.cgi/tech/1009903617/l50

【Delphi初心者】今から始めるDelphi Part01
pc5.2ch.net/test/read.cgi/tech/1062422335/l50


652 名前:光速エスパー世代774RR mailto:sage [2007/11/02(金) 17:33:04 ]
ルーブリは元の綴りがрубльだから、roubleってのはちょっち違和感があるzo

補助単位って、円に対する銭、ドルに対するセントみたいな奴だっけ。
8.40ドルみたいな十進の小数で書いていいなら簡単だと思うけど、
昔は(今でも?)60進法とかそういうのってあったよな、
そういうのに対応するならめんどいな。
あるいは日本だったら銭・厘・毛の形で出せとか。

type
currencies = (YEN, USD, GBP, CNY, EUR, RUB);
var
exchangerates : array(currencies) of real;
begin
exchangerates[YEN] := 1;
exchangerates[USD] := 118.94;
...
なんてやっといて、日本円 / exchangerates[変換先通過] を計算させればいい。
Turbo Pascal方言を使っていいなら、わざわざ代入分書かないで、いきなり初期値ぶちこみでいいよ。

653 名前:デフォルトの名無しさん [2007/11/02(金) 17:47:39 ]
const
USD = 118.94; GBP = 186.53;
CNY = 13.93; EUR = 129.60;
RUB = 3.73;
var
JPY : integer;
currency : char;
money1 : real; money2 : real; money3 : real;
money4 : real; money5 : real;
begin
write('***************');
write('d -- US Dollar');
write('p -- British Pound');
write('y -- Chinese Yuan (Gen)');
write('e -- Euro');
write('r -- Russian Rouble');
write('Exchange to : '); readln(currency);
write('Enter the amout of money in JPY : '); readln(JPY);
begin
Case currency of
d : money1:=JPY/USD;
write('USD = $ ',money1:8:5);
p : money2:=JPY/GBP;
write('GBP = p ',money2:8:5);
.
.
.
end; { case }
今こんな風にやってるんですけど・・・どうすればいいでしょうか?

654 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 18:00:44 ]
>>653
俺もそんな感じになったよ。
Cならポインタが使えるのでもう少し簡潔になるんだが

655 名前:デフォルトの名無しさん [2007/11/02(金) 18:05:40 ]
>>654
エラーがまだ12〜3個残っててもうお手上げ状態です。

656 名前:光速エスパー世代774RR mailto:sage [2007/11/02(金) 18:11:33 ]
だから配列を使えってば。
今のレベルでは配列 = 表だと考えるといい。

そのうち、Cみたいな配列 = ポインタという捉え方もできるようになる。

657 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 18:18:22 ]
const
USD = 118.94; GBP = 186.53;
CNY = 13.93; EUR = 129.60;
RUB = 3.73;
var
c : char;
j, k : real;
begin
repeat
writeln('********************');
writeln('d--USDOLLAR');
writeln('P--British Pound');
writeln('y--Chinese Yuan(gen)');
writeln('e--Euro');
writeln('r--Russian Rouble');
writeln('*****************');
write('Exchange to : ');
readln(c);
until (c = 'd') or (c = 'P') or (c = 'y') or (c = 'e') or (c = 'r');
write('Enter the amout of money in JPY : ');
readln(j);
case c of
'd' : begin
k := j / USD;
writeln('USD = $', k : 8 : 2)
end;
'P' : begin
k := j / GBP;
writeln('GBP = ', k : 8 : 2, ' pound')
end;

658 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 18:18:37 ]
'y' : begin
k := j / CNY;
writeln('CNY = ', k : 8 : 2, ' Yuan(gen)')
end;
'e' : begin
k := j / EUR;
writeln('EUR = ', k : 8 : 2, ' Euro')
end;
'r' : begin
k := j / RUB;
writeln('RUB = ', k : 8 : 2, ' Rouble')
end;
end;
readln
end.

659 名前:光速エスパー世代774RR mailto:sage [2007/11/02(金) 18:25:41 ]
たとえばこういうやり方がある。次は換算表(=配列)をファイルから読むとか、
ネットから得るとか、そういう風に発展させる。

Program Viva2chan2;
type
currencies = (YEN, USD, GBP, CNY, EUR, RUB);
RateTable = array[currencies] of real;
var
CurrencyName : array[currencies] of string = ('Yen', 'USD', 'GBP', 'CNY', 'EUR', 'RUB');
JpyToRate : RateTable = (1, 118.94, 186.53, 13.93, 129.60, 3.73);
source : real;
target : currencies;
begin
source := 1000;
for target := YEN to RUB do
writeln(CurrencyName[target], source / JpyToRate[target] : 8:2)
end.

Borland Pascal 互換前提な。FPCでテスト済み

660 名前:光速エスパー世代774RR mailto:sage [2007/11/02(金) 18:28:08 ]
それとさ、

(c = 'd') or (c = 'P') or (c = 'y') or (c = 'e') or (c = 'r')



c in ['d', 'P', 'y', 'e', 'r'] でいい。BASICでもCでもねえんだから。



661 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 18:30:37 ]
>>660
能書き垂れるだけならフルソース書けよ
人の書いたソースにケチを付けるだけなら誰でも出来る

662 名前:デフォルトの名無しさん [2007/11/02(金) 18:31:52 ]
光速エスパー世代774RBさん、657,658の人、ありがとうございます!
おかげでできそうです。

663 名前:光速エスパー世代774RR mailto:sage [2007/11/02(金) 18:32:39 ]
>>661
俺は棺桶に片足突っ込んでるロートルだといつも書いてるだろw
そーゆー面倒なことを期待するなww

664 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 18:35:25 ]
>>663
だったら最初から余計な口を突っ込むな
ここは宿題スレだ
回答者はフルソースのみを求めている
部分的な口出しなど不要

665 名前:光速エスパー世代774RR mailto:sage [2007/11/02(金) 18:38:04 ]
なるほど、そういう所だったか。なら俺の誤解だったな。
申し訳なかった。これで消えることにする。

666 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 18:39:21 ]
わかったら消えろ

667 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 19:52:38 ]
堀ちえみ

668 名前:デフォルトの名無しさん [2007/11/06(火) 14:56:37 ]
3次元の配列を用意し、その中にx*y*zのデータを格納せよ。
そして格納されたデータを出力する。ただし、データ値(x、y、z)の
それぞれの範囲は1〜9とする。

この問題をお願いします。

669 名前:デフォルトの名無しさん [2007/11/06(火) 15:42:57 ]
入力されたデータ集合から,n番目に大きな数字を出力し,同時にその個数も
出力するプログラムを作成せよ。(集合型変数ではなく配列を用いること)
ただし,同じ大きさのデータが複数個あるときは同じ順位とする。


 入力されたデータが(2,45,5,9,32,5,6,1,4)の集合のとき,
 入力されたデータ集合の1番目から4番目の順番は(45,32,9,6)になる。
 しかしこの集合には5が2個あり,このとき5が5番目と6番目になり
 4は7番目になる。つまり6番目のデータを呼び出したときは5が返される。

この問題もお願いします。

670 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 22:16:37 ]
>>668
program prog1(input, output);
var i,j,k : integer;
    a:array[1..9] of array[1..9] of array[1..9] of integer;
begin
    for i := 1 to 9 do
        for j :=1 to 9 do
            for k :=1 to 9 do a[i,j,k]:=i*j*k;

    for i := 1 to 9 do
    begin
        writeln('i=',i);
        for j := 1 to 9 do
        begin
            for k :=1 to 9 do write(a[i,j,k]:6);
            writeln();
        end
    end
end.



671 名前:デフォルトの名無しさん [2007/11/08(木) 04:10:24 ]
ニュートン方で√x(xの二乗根)と√3x(xの三乗根)を求めるプログラムを教えてください。

672 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 12:24:28 ]
>>671
program prog1(input, output);
var x,c: real;
function f(x,c : real) :real;
begin
    f := x*x-c;
end;

function fd(x : real) :real;
begin
    fd := 2*x;
end;
begin
    writeln('xの平行根の近似値を求めます');
    write('x : ');
    read(c);
    x := c;
    while abs(f(x,c)) >0.0001do
    begin
        writeln(x,' ',f(x,c));
         x := x-f(x,c)/fd(x);
    end;
    writeln(c,'の平行根の近似値は',x);
end.

673 名前:デフォルトの名無しさん [2007/11/11(日) 20:58:09 ]
1つ以上の任意の個数の正の値を入力として受け取り、それらの値を第1引数として与えた配列変数に、要素数を第2引数として与えた(普通の)変数にそれぞれ格納する手続き(手続き名は read_array とすること)。
ただし、入力は 0 以下の値によりその完了を表わすものとする。また、入力された要素の数が n個であったとき、それらを格納する配列の添字は 1 〜 n であるものとする。

をお願いします

674 名前:デフォルトの名無しさん [2007/11/13(火) 15:02:29 ]
10文字以内の文字列を読み込み、次のように変換するプログラムを作成せよ。ただし
、入力された文字がアルファベット以外の時はそのまま出力すること。
(a) すべて大文字
(b) 最初の1文字のみ大文字、あとはすべて小文字
(c) すべて小文字

出力例
Enter a word : KeYWOrD
a : KEYWORD
b : Keyword
c : keyword で困っているのでお願いします。

675 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 22:01:04 ]
鶴亀算のプログラムをつくりたいのですが・・

676 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:12:52 ]
色々解き方がありますがどのような方法がお好みですか?
(1)普通に解く(小学生のやり方)
(2)鶴と亀の数を変化させて解く(力技、これが一番簡単)
(3)ただの2元連立1次方程式だろGuss〜法を使うまでも無い。クラメールの公式で解いちゃえ
(4)真面目?にGuss〜法などを使って解く
(5)その他

677 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 01:32:00 ]
では(1)をお願いします。

678 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 19:39:17 ]
>>677
鶴亀算は忘れたので以下を参考にした
ttp://www.kanshin.com/keyword/33148

program prog1(input, output);
var kame, turu, goukei, asi, tasi,sa: integer;
begin
write('鶴と亀の数は?');
readln(goukei);
write('足の数は?');
readln(asi);
tasi :=2*goukei;
writeln('全部鶴だと仮定すると足の数は',tasi);
sa := asi-tasi;
writeln('実際の足の本数との差は', sa);
writeln('鶴の代わりに亀が一匹入ると2本足が増える');
kame := trunc(sa/2);
writeln('だから亀の数は', sa, '÷2=',kame);
turu := goukei-kame;
writeln('鶴の数は',turu);
end.

>>676のGussはGaussのタイプミス

679 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 00:25:35 ]
>>678
できました。
本当にありがとうございます。


680 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 18:39:06 ]
プログラム途中で行き詰ったのでどなたかご教授おながいすます

数当てゲーム:
1.数字の入力は5回まで
2.各入力に対して、入力した数字が「当たり」か「大きい」か「小さい」かをディスプレイに出力
3.当たっていたら(5回入力しなくても)終了

というものなんですが・・・

program ensyu9(input,output);
var i,data,answer : integer;
begin
randomize;
answer := random(5);
if data = answer then
for i:=1 to 5 do
begin
readln(data);
if data > answer then
writeln('大きい')
else
if data < answer then
writeln('小さい')
else
if data = answer then
writeln('当たり')
end;
end.

まで考えたんですが、当たっていたときに終了させる方法が
どうしてもわからないんです。よろしくお願いします




681 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 21:57:18 ]
>>680
for文ではなくwhile文を使う。
あたりカウントを数える変数を宣言して、あたり毎に増やしてwhileの判断条件にする。

これで何とかなると思う。

682 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 22:16:34 ]
>>680
>>681がWhileなら俺はrepeat〜untilで行こうかな。
program ensyu9(input,output);
var i,data,answer : integer;
begin
randomize;
answer := random(5);
i:=1;
repeat
readln(data);
if data > answer then
writeln('大きい')
else
if data < answer then
writeln('小さい')
else
if data = answer then
writeln('当たり');
i:=i+1;
until (i>5) or (data = answer)
end.

Pascalの良い教科書無い?

683 名前:681 mailto:sage [2007/11/19(月) 23:14:01 ]
>>682
標準なら以下2冊。

PASCAL(K.イェンゼン・N.ヴィルト)培風館
アルゴリズム+データ構造=プログラム(Niklaus Wirth)日本コンピュータ協会

多分両方とも絶版

684 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 23:24:50 ]
>>681-682
ありがとうございます。参考にさせて頂きます。
因みにif文だけでも可能でしょうか?


685 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 23:59:55 ]
5回までと上限が分かってるなら単純にループ内を展開すればおk。

686 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 00:53:36 ]
>>683
d
アルゴリズム+データ構造=プログラムってなかなか面白そうな本ですね。
古本屋探してみます。


687 名前:デフォルトの名無しさん [2007/11/20(火) 15:59:48 ]
分からないのでお願いします。
問1
ひと月ごとにバイト代を払うための学生アルバイトの労務管理システムを作りたい。
全てのアルバイトデータが、日付、学生氏名、職種、労働時間の3項目を持つ場合に
これらのデータを格納する型をレコード型により定義せよ。
ただし、職種はr(レジ係),p(配送係),i(接客係),c(清掃係)のいずれかとする。

この問いで困っているのでお願いします。

688 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 16:05:55 ]
tarbo pascalです。
あるクラスの身長データを入力し、以下のような平均を計算して、
人数とともに出力する。
170cm以上の 人数n1 平均値a1
170cm未満の 人数n2 平均値a2
全体の 人数n 平均値a
(入力データ)
167,187,173,158,188,171,178,168,154,-1

こんな感じの問題です。最後の-1はプログラムを終了させるためにあるようです。
使用する処理は、while ifあたりを指定されています。
自分は以下のように作ったのですが、runtime error 200 at 0001:017E
というエラーが表示されてしまい、実行できませんでした。



689 名前:688 mailto:sage [2007/11/20(火) 16:07:52 ]
program kadai06(input,output);
uses wincrt;
const
kijun=170;
var
n,n1,n2:integer;
a1,a2,a,x,s1,s2:real;
begin
n1:=0;
n2:=0;
a1:=0;
a2:=0;
read(x);
while x>=0 do
begin
if x>=kijun
then
begin
s1:=a1*n1;
n1:=n1+1;
a1:=(s1+x)/n1;
end
else
begin
s2:=(a2*n2);
n2:=n2+1;
a2:=(s2+x)/n2;
end;


690 名前:688 mailto:sage [2007/11/20(火) 16:09:03 ]
n:=n1+n2;
a:=((a1*n1)+(a2*n2))/n;
end;
writeln('身長170cm以上の学生の人数',n1,'人の平均身長は',round(a1),'cmです。');
writeln('身長170cm未満の学生の人数',n2,'人の平均身長は',round(a2),'cmです。');
writeln('学生全体の人数',n,'人の平均身長は',round(a),'cmです。');
end.

長々と書いてしまい申し訳ありません。
正直、プログラムのことはよくわからないので、へんな部分が多いと思いますが、
よろしくお願いします。



691 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 18:26:13 ]
>>685
できますた。
ありがとうございました。

692 名前:デフォルトの名無しさん [2007/11/21(水) 23:05:49 ]
687の問題をお願いします。m(_ _)m

693 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 23:19:23 ]
なぜインデントを下げないのか
いくら宿題でもこれはひどい

694 名前:デフォルトの名無しさん [2007/11/21(水) 23:45:25 ]
>>693
貼り付ける前はインデントしてるよ。2chの仕様で消えてるだけ。
前はインデントを再現するようにしてたが今は面倒なのでしてない。
まあ大した手間じゃないけどな。&nbsp;×4(&は半角)でタブを全置換するだけ

695 名前:デフォルトの名無しさん [2007/11/21(水) 23:51:16 ]
>>693
Vimにコピペして

gg=G

これサイキョウ。

696 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 00:56:26 ]
>>687
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5314.txt
課題は型を定義するだけだから必要なのはTypeの部分だけ、他はテストプログラム

697 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 01:03:04 ]
>日付、学生氏名、職種、労働時間の3項目
どう見ても4項目あるんだが

698 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 01:57:36 ]
>>688
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5315.txt

処理の流れを考えないでプログラム組むからおかしくなるんだよな。
フロ−チャート書けとは言わないけど流れを良く考えて欲しい。
どうこう言える立場じゃないけどそう感じた。

699 名前:698 mailto:sage [2007/11/22(木) 02:17:40 ]
>>688
偉そうな事を言って置きながら、重大なミスを見逃してましたよ。
>>698はn,n1,n2が0だと平均値の計算でerrorを吐く。n,n1,n2が0の時は
平均値を計算せずに0とするようにしときました。もうミスは無いよな?
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5316.txt

700 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 21:25:47 ]
Pascalは現役なのに、子孫の方はアレだな。



701 名前:デフォルトの名無しさん [2007/12/01(土) 02:45:16 ]
大学の課題がわからないのでお願いします。
線形リスト上、スタックを使う問題なのですが
@整数データを昇順に挿入する手続きを示せ。
A与えられた整数データを検索し、そのデータがリスト内にあれば削除する。

です。PUSHやPOPといった手続きを使うとのことですが、@の「昇順に挿入」
からして詰ってしまいました。
どうかお願いします。

702 名前:デフォルトの名無しさん [2007/12/04(火) 02:36:15 ]
age

703 名前:デフォルトの名無しさん [2007/12/04(火) 15:36:14 ]
7マスのニムゲームの対戦プログラムを作成するので困っているので教えて下さい。
ちなみに規則は、プレイヤーは交互にマスに左端から書き込む。一度に書き込める
マスの数は1〜3だそうです。   お願いします。


704 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 11:14:49 ]
初項がa、公差がbの等差数列をつくり、最初の20項を表示させる
という内容のプログラムをつくりたいです。
お願いします。

705 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 12:00:47 ]
>>704
program prog1(input, output);
var n,a,b : integer;
begin
    write('初項a : ');
    read(a);
    write('公差b : ');
    read(b);
    for n := 1 to 20 do writeLn(n:3, (a+b*(n-1)):10);
end.


706 名前:デフォルトの名無しさん [2007/12/16(日) 23:29:34 ]
日付データを入力したらその前の月の日付データを出力するプログラムを作りたいのですがよくわかりません。
12/16(日)だったら11/16(金)てな感じです。前の月に同じ日が無い場合はその月の最後の日のデータを出力する。
月と曜日は列挙型にしろとのことです。
よろしくお願いします。





707 名前:704 mailto:sage [2007/12/17(月) 21:14:25 ]
>>705
ありがとうございます!

しかしやってみたところ初項と公比を入力したあと画面が消えてしまうのですが・・

708 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 22:56:34 ]
>>707
コンソールから実行するか、For文の後に以下のコードを付け加えればOK
write('整数を入力すると終了します');
read(a);

詳しい環境を書いて置けば誰かが他の解決策を提示してくれるかもな。


709 名前:704 mailto:sage [2007/12/19(水) 21:55:59 ]
解決できました。
これで来週の提出に間に合いそうです

710 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 23:38:54 ]
ダイアを描くプログラムですが、これを壁に当たれば入射角=反射角で跳ね返るように動かすことはできませんか?
procedure TForm1.Button1Click(Sender: TObject);
const max=50;
procedure line(x1,y1,x2,y2:integer);
begin canvas.MoveTo(x1,y1);canvas.lineTo(x2,y2) end;
procedure dia(x0,y0,r,n:integer);
var xs,ys:integer;{始点}
xe,ye:integer;{終点}
i,j:integer; {ループ変数}
t:real; {角度}
begin
t:=2*pi/n;
for i:=1 to n-1 do begin
xs := x0 + round(r*cos(t*i));
ys := y0 + round(r*sin(t*i));
for j:=i+1 to n do begin
xe := x0 + round(r*cos(t*j));
ye := y0 + round(r*sin(t*j));
line(xs,ys,xe,ye)
end
end
end;
begin
dia(100,400,70,11)
end;

end.



711 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 01:24:03 ]
問題を分離しよう
・描いた図形を動かす
・壁に衝突した事を検出
・角度とか
わからんのはどれよ

712 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 12:54:18 ]
>>711
嫌われる技術系の見本だな。出来るか出来無いか聞かれているんだから
出来る、出来無いで答えてやればいい。出来るならコードを添えると好感度UP

713 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 22:41:40 ]
>711
書いた図形を動かすのはできるのですが、あとの二つができません。

714 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 08:15:07 ]
だったらくだらねえカキコしないでおめーが書きゃいいだろ、フルソース厨の>>712さんよ。

715 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 11:53:47 ]
グラフィックの宿題です。
ボールの大きさが変化しながら動いていくプログラムを作りたいのですが、初心者で全くお手上げです。
お願いします。

716 名前:デフォルトの名無しさん [2008/01/16(水) 19:49:40 ]
p2cコンパイラをcygwin環境で使う場合どのようにすればいいんですか?

717 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 20:02:05 ]
>>715
円を描くことは出来るんだよね?
だったら、
1、前回の中心と半径を覚えておく
2、次の半径と、中心座標を求める。
3、前に描いた円を消す。
 それには前に描いた中心、半径で
  背景と同じ色で塗ればいい。

4、新しい半径と中心の違う円を描く、

5、Sleepとかでお休みする。

これで許してくれるだろ。 チラツクとか言われたら困るが

718 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 10:24:09 ]
正三角形を描くプログラムを教えてください。

719 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 11:41:57 ]
DelphiのVCLを使えるの? なら
procedure PaintAngle(Canvas:TCanvas;x0,y0,r0,deg:Integer);
var w:Extended;
i:Integer;
pt:array [0..2] of TPoint;
begin
w:=PI/180.0*deg;
for i:=0 to 3-1 do begin
pt[i].x:=round(x0+r0*sin(w));
pt[i].y:=round(y0+r0*cos(w));
w:=w+2*PI/3;
end;
Canvas.Polygon(pt);
end;
//試験コード
var x0:Integer=200;
y0:Integer=200;
r0:Integer=100;
deg:Integer=0;
///////////// タイマーを貼り付けてダブルクリック
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Invalidate;
deg:=deg+10;
end;
///////////// フォームのOnPaintに
procedure TForm1.FormPaint(Sender: TObject);
begin
PaintAngle(Canvas,x0,y0,r0,deg);
end;

720 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 01:03:54 ]
>>719
VCLなしバージョンをお願いしたいです・・



721 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 02:58:54 ]
>>720
計算部分は書かれてるんだからあとは何とでもなるだろ

722 名前:デフォルトの名無しさん [2008/01/28(月) 14:36:07 ]
配列でDELETE(p,L)をするプログラムを教えてください。


723 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:54:19 ]
ではまずDELETEとpとLを定義してください。

724 名前:デフォルトの名無しさん [2008/02/04(月) 16:36:18 ]
丸投げオッケーすか?

725 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:46:48 ]
やってみればいいと思うよ。 出題側もこのスレ見てる筈で、
あなたは十分過ぎるリスクを背負ってるわけだから、
その勇気まで否定するものではない。

726 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:29:02 ]
>>724
このコードを改造してくださいとか、やり方教えてくださいと
言う依頼より丸投げの方が良いな。

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):()
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (Delphi6、FreePascal、GNU Pascal等)
 [3.3] GUI/CUI:
  (GUI:ウィンドウにボタンなどがあってマウスで操作するタイプ)
  (CUI:殺風景な画面に文字が表示されるタイプ)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、使用/使用禁止ライブラリ等)


727 名前:デフォルトの名無しさん [2008/02/07(木) 02:53:41 ]
探索ニ分木で、tree型の変数tが指している節の2つ上の親を表したい時はどうすればよいのでしょうか。


728 名前: [2008/05/21(水) 11:43:07 ]
元金M円と年利率xを端末から読み込み、M円を年利率xの複利で預けたときの1〜20年後の元利合計を計算して出力するプログラムなんですが・・・
program Fukuri(input,output);
{複利計算}
const Gankin=    ;
Nensu =     ;
var riritu, gokei : real;
begin
write(output, '利率は?'); readln(input, riritu);
gokei :=Gankin *exp(Nensu *ln(1+riritu));
writeln(output, Gankin:1, '円を' ,   *riritu:3:1, '%の利率で'
,Nensu:1, '年預けると',gokei:4:2,'円となる')
end.

ここまでやったんですが・・・式がわかりません教えてください。

729 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 11:52:29 ]
複利といっても、 log /exp 使っていいの?
手計算とあわせるなら円単位で丸める必要はないの?

で式が判りませんって、どういう意味?

730 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 12:21:44 ]
別に日割りとか必要はないんだろ?
そうなら単純に繰り返し文使えば良いんじゃないのか?



731 名前: [2008/05/21(水) 17:29:39 ]
1〜20年というのを繰り返し文でやるってことですか?


732 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 20:25:59 ]
うん for 文使って M := M*(1+x/100) を繰り返すといい
ただ 小数点以下が出て来るから、これをどう丸めたらいいの?

733 名前: [2008/05/21(水) 22:11:50 ]
for文はどこにどうやってすればいいんですか?小数点はそのままでいいと思います。
へたにroundとかつかうと自分はわからないんで。。。

734 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 00:09:48 ]
program Fukuri(input, output);
{複利計算}
var
riritu, kingaku: Double;
Nensu: Integer;
begin
write(output, '利率は?'); readln(input, riritu);
write(output, '金額は?'); readln(input, kingaku);
writeln(output, kingaku: 4: 2, '円を', riritu: 3: 1, '%の利率で');
for Nensu := 1 to 20 do
begin
kingaku:=kingaku+kingaku*riritu/100;
writeln(output, Nensu: 1, '年預けると', kingaku: 4: 2, '円となる')
end;
end.


735 名前: [2008/05/22(木) 15:40:39 ]
ありがとうございます。まだたくさんあるんですが・・・

736 名前: [2008/05/22(木) 19:48:31 ]
正整数Nを読み込み、x^2≦N<(x+1)^2となる整数x、つまり√Nの近似値を求めるプログラムを、
sqrtなどの標準関数を使わないで作りなさいという問題なんですが。。。
わかりません。教えてもらえませんか?√のプログラムってなにをすればいいんでしょうか?



737 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 21:15:32 ]
Delphiスレでサンプルコード書いてやったし
方法も書いてあげたでしょ?

738 名前: [2008/05/23(金) 17:12:51 ]
すみません・・・よくわからなかったんで。

739 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:18:30 ]
よくわからなかったら別スレに投げるのか?
常識的には同じスレに質問するものじゃないのか。

740 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:41:00 ]
ああ $ ついた文字は何かって質問か?

ようするに整数の最大値の平方根までループすれば十分って事だ
で、pascalはループ抜けたらループ変数は不定だから
ホントは i を返すのは間違えている。

で、奇数を合計するのは昔は掛け算が遅かったからやってた事で
別に今なら x*x と比較したって同じだ。
順に x*x と比較してゆけばいい



741 名前: [2008/05/23(金) 21:57:09 ]
詳しい説明ありがとうございます。でも自分には難しすぎます。
まだ全然習ってないことがたくさんで。。。

742 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 07:21:44 ]
はあ、で、どこが判らないんだ?

743 名前: [2008/05/24(土) 12:19:18 ]
(1)2次方程式x2(二乗)+3x+k=0が異なる2つの実数の解をもつとき、定数kの値の範囲を求めよ。

(2)2次方程式x2(二乗)−2x+a−1=0が実数の解をもたないとき、定数aの値の範囲を求めよ。

(3)一個180円のケーキと一個240円のケーキを合わせて10個買い、代金を2000円以下にしたい。240円の
 ケーキをできるだけ多く買うとすれば、240円のケーキは何個買えるか。(消費税は考えない)

(4)A町から20キロメートル離れたB町へ行くのに、自転車で時速12キロメートルで走っていたが、途中
 で自転車が故障したので、それからは時速4キロメートルで歩いたところ、B町に着くまでの所要時
 間は3時間以下であった。自転車が故障したのは、A町から何キロメートル以上の地点か。

(5)一の位の数が6である2けたの自然数で、十の位と一の位の数の和を4倍すると、もとの数より大き
 くなるものがある。
 十の位の数をxとして不等式を作り、このような自然数をすべて求めよ。

744 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 12:50:54 ]
それpascalの問題なのか?

745 名前: [2008/05/24(土) 15:39:18 ]
あの問題はもう諦めます。ありがとうございました。
次はこの問題で・・。       n
正整数Sを端末から読み込み、初めて1/i≧SとなるNを求めるプログラム
なんですが・・・        i=1
狽フプログラムってなにをするんですか?



746 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:51:26 ]
取り憑かれちゃってるな。
実装はスレの性質上仕方ないがアルゴリズムも数学知識も人任せか。
そしてひとの説明を理解しようとする気さえないときてる。

747 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:04:51 ]
Σの部分は
function kansu(n:Integer):double;
var i:Integer;
begin
Result:=0;
for i:=1 to n do Result:=Result+1/i;
end;

になる。 これをループで呼び出して s と比較して大きくなれば終了とやればいい

748 名前: [2008/05/24(土) 21:44:54 ]
すみません・・・あとは自分で頑張ってやります。
function、double、Resultとかまだ習ってないのでわからないんです。
たぶん使わないでできると思うんですが・・・
とりあえず教科書読みながらやってみます。ありがとうございました。


749 名前:デフォルトの名無しさん [2008/05/25(日) 19:39:47 ]
標準入力から1行分だけ入力した文字が母音であるかを判定し、その下に(-)を付けるプログラミングを書きなさい。
ただし行の最後にはピリオドが入力されるとする。
<実行例>
I am a pen.
- - - -

おそらくordを使うと思うんですが、まったく分かりません。
お願いします。

750 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:07:11 ]
var
s: string;
i: Integer;
begin
ReadLn(s);
for i := 1 to Length(s) - 1 do
if s[i] in ['a', 'i', 'u', 'e', 'o'] then
Write('-')
else
Write(' ');
end.




751 名前:デフォルトの名無しさん [2008/05/30(金) 02:25:58 ]
正方行列に対して、P,L,Uを与えるoctaveのプログラムを作成せよ。

お願いします。

752 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 10:55:40 ]
PLUってなんだ?
定義が出てないぞ。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<280KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef