Pascalの宿題は俺にや ..
511:デフォルトの名無しさん
07/06/25 23:34:46
>>508
>const
>era: array[0..3] of Integer = (1989, 1926, 1912, 1868);
>eraname: array[0..3] of array[0..10] of char = ('平成', '昭和', '明治', '大正');
ここでもうBorland方言でつ。
512:デフォルトの名無しさん
07/06/25 23:37:46
む、そうなるとかなり長いif文の羅列になるな・・・スマンそのコードは俺の性には合わない。
513:デフォルトの名無しさん
07/06/25 23:39:22
な、な、定数配列はBorland方言とな!標準Pascalじゃやっぱり書けん!
514:デフォルトの名無しさん
07/06/25 23:41:54
>>513
大域変数として名前を確保し、変数初期化手続きを書いて、
大域変数はそこでまとめて面倒を見ておく、てのが常道だった。
まーそこまでストリクトに標準Pascalの流儀を守る必要もないんだけどw
あと、文字列型を使っていいのかも不明なんだよな。
515:デフォルトの名無しさん
07/06/25 23:55:10
久しぶりにヴィルトの原書開いてみたらやっぱり載ってなかった。
なるほどK&Rのどちらかだったか、「これじゃ書けねえ・・・」と思った気持ちもわかる。
いや、嫌いじゃないんだよPascal。むしろ好き。
ありがとう僕の友達Pascalに会わせてくれて。
516:デフォルトの名無しさん
07/06/26 00:03:33
>>515
それはラスカルだ
517:デフォルトの名無しさん
07/06/26 00:03:38
>>515
定数配列や変数宣言での初期化は便利だし、可読性も高くなるんだよね。
言語仕様を出来るだけ小さくしようと言うのがヴィルト先生の狙いだったのと、
原始Pascalでは宣言の順序が決まっているから、
定数宣言の中にユーザ定義型の識別子を書けないというのがあったのかな。
518:デフォルトの名無しさん
07/06/26 00:04:48
>>516
歳がバレるぞww
519:デフォルトの名無しさん
07/06/26 00:10:27
いや歌は違うだろうけど最近もやってるよ。
URLリンク(www.nippon-animation.co.jp)
520:デフォルトの名無しさん
07/06/26 04:24:17
テラキモスw
521:光速エスパー世代774RR
07/06/26 12:41:47
break文もBorland方言だな。標準Pならgoto文で抜け出すことになるね(こういう時のためにgotoを残してあるんで)。
era回りだけど、record型を使う方が原則的で美しいよな。それと、効率は少し落ちるけど、
eraname = packed array [1..10] of char;
era = record
beginyear, endyear : integer;
name ; eraname
end;
eraarray = array[1..4] of era;
とやってあげて、eをeraarray型の変数として、
for i := 1 to 4 do with e[i] do begin
if (a >= beginyear) and (a <= endyear) then begin
j := a - beginyear;
if j = 0 then write(name, '元年 ') else write(name, succ(j), '年 ')
end
end;
writeln
も手だな。eがソートされていなくても動くし、元年の処理の特殊性が減る。課題とは動作が違うけどね。
522:デフォルトの名無しさん
07/07/01 08:58:27
ファイル型の要素にtreeは使えないの?
program test (input,output,IntFile);
type tree=^node; node=record name:char; tel:integer; left,right:tree; end;
var IntFile:file of tree; r:tree;
begin
reset(IntFile,'tel-data');
read(IntFile,r);
rewrite(IntFile,'tel-data');
write(IntFile,r);
end.
こんな感じで
523:デフォルトの名無しさん
07/07/01 21:14:24
使えるけど無意味だよ。
524:デフォルトの名無しさん
07/07/04 00:48:58
大学ではpascalの講義の後lisp, prologと続くのか?最近はjavaとかもやるのか?
525:デフォルトの名無しさん
07/07/04 01:50:44
っていうかpascal教えてる大学ってどういうところ?
情報系だとJavaを最初に教えると思うし。
526:デフォルトの名無しさん
07/07/04 13:46:13
最終的にpascal処理系を作成させる為に最初にpascalやるんじゃなかろうか?
527:デフォルトの名無しさん
07/07/10 21:03:36
↓の問題なのですが、どなたか教えていただけないでしょうか?
『下記のプログラムを参考にして、ファイルからデータを読み、それを整列し、その後、
”入力された値をデータの中から二分探索によって探索する”ことを繰り返すプログラムを作成せよ』
↓↓↓↓↓下記のプログラム↓↓↓↓↓
program sort(input,output);
var d:array [1..10000] of integer;
numofdata:integer;
i,j,k:integer;
tmp:integer;
begin
read(numofdata)
for i:=1 to numofdata do
begin
read(d[i]);
end; ↓続きます
528:デフォルトの名無しさん
07/07/10 21:05:07
for i:=1 to numofdata-1 do
begin
j:=i;
for k:=i+1 to numodata do
begin
if d[j]>d[k] then j:=k;
end;
tmp:=d[j];
d[j]:=d[i];
d[i]:=tmp;
end;
for i:=1 to numofdata do
begin
writeln(d[i])
end
end.
どなたかお願いしますm(_ _)m
529:光速エスパー世代774RR
07/07/11 00:09:35
ちょいと書き直すと、
Program sort(input,output);
var d:array [1..10000] of integer;
numofdata:integer;
i,j,k:integer;
tmp:integer;
begin
read(numofdata);
for i:=1 to numofdata do read(d[i]); (* begin end いらね *)
for i:=1 to numofdata-1 do begin
j:=i;
for k:=i+1 to numofdata do if d[j]>d[k] then j:=k; (* begin end いらね *)
tmp:=d[j]; d[j]:=d[i]; d[i]:=tmp
end;
for i:=1 to numofdata do writeln(d[i]) (* begin end いらね *)
end.
ここで
tmp:=d[j]; d[j]:=d[i]; d[i]:=tmp
が肝な。その上のfor文で、i<=jで最も小さいd[j]になるようなjを探し出している。
d[i]をそのd[j]と入れ替えれば、d[i]はi以降の最小値になるわけだ。
これをバブルソートって呼ぶことは知っているよな。
530:光速エスパー世代774RR
07/07/11 00:11:20
ついでだからばぶるな挿入な。さて、新しい値を p とする
d[numofdata + 1] := p;
i := 1;
while p < d[i] do i := i + 1;
これで i は p>=d[i]を満たす最小の値になった(もうソートしてあるから)
p がたまたま d の最大値だったら、これ以上処理は必要ない。そうでなければ、
d の i 番目に p をそうぬうする。
for j := numofdata downto succ(i) do d[succ(j)] := d[j];
d[i] := p;
でそうぬう官僚。実は、p がたまたま d の最大値だった場合もこれを走らせていい。
しかし、課題は二分探索であった。あんま奇麗じゃないがfpcで試してはある。
531:光速エスパー世代774RR
07/07/11 00:13:50
procedure binarysearch(p : データの型; mini, maxi : integer);
begin
i := (mini + maxi) div 2; (* mini と maxi の間の数ならなんでも *)
if p = d[i] then writeln('Found at ', i)
else
if maxi = mini then begin
write('Not found. Must be inserted ');
if p > d[i] then write('after ')
else write('before ');
writeln(i, ' th number.')
end else
if p > d[i] then binarysearch(p, succ(i), maxi)
else binarysearch(p, mini, pred(i))
end;
これをメインプログラムから binarysearch(調べたい数, 1, numofdata)
と呼ぶ。文字列型が使えると、少し奇麗になる。d[i]を何度も評価しているから、
d[i]の評価にコストがかかる場合はローカルにコピーしとく。
532:光速エスパー世代774RR
07/07/11 12:44:57
>>531は局所変数 i を宣言する行を落としていたな。
でだ、>>530と一緒に考えると、次のような改造をすぐ思いつく。
procedure insert(p ; データの型; i : integer);
var j : integer;
begin
numofdata ;= succ(numofdata);
for j := numofdata downto succ(i) do d[j] := d[pred(j)]; (* >>530は間違いだ orz *)
d[i] := p
end;
これは p を d の i 番目にそうぬうする手続な。>>531の真ん中へんでこれを呼ぶ。
if maxi = mini then begin
i := i + ord(p > d[i]);
writeln('Not found, then instert it as ', i, ' th number.');
insert(p, i)
end
新しい数が現れたらずんずん配列に追加していく改造な。
533:デフォルトの名無しさん
07/07/11 22:10:21
>>527
二分探索って何か分かってる?
534:デフォルトの名無しさん
07/07/11 22:46:19
どんな巨大なデータも2分で探索できる高速アルゴリズムのことです
535:光速エスパー世代774RR
07/07/11 22:56:04
データ数が1でも2分かかったりしてw
536:光速エスパー世代774RR
07/07/12 03:35:40
それはないq
537:光速エスパー世代774RR
07/07/12 22:43:26
俺の偽者がずいぶんいるな。おまいらちゃんと名前修飾しろw
538:デフォルトの名無しさん
07/08/03 15:50:40
初めまして、いきなりで申し訳ないんですが教えてください(_ _)
入力された論理式の充足可能性を判定するプログラムを作成せよ。
論理式は, 充足可能性判定の計算量を考慮し, 最大10変数までにする。
という問題です。
以下は注釈です。
「論理式」とは論理変数 x0,x1,x2,・・・に, 論理演算「¬(否定)」,「∧(論理積)」,「∨(論理和)」を有限回適用したものである。
論理式 F(x1,...,xn) が「充足可能である」とは, F(a1,...,an) = true となる変数割当て (a1,...,an)∈{true, false}n が存在することをいいます。
作成するプログラムには, 以下の機能を付加すること。
1:入力された論理式を,通常の式のように表示する機能
「x1∨x2」, 「¬x0」, 「(x2∨¬x3)∧x1」など
2:論理式が true となる(すべての)変数値割当てを表示する機能
例
「F = x1∨x2 が true になるのは
x1=true, x2=true のとき
x1=true, x2=false のとき
x1=false, x2=true のとき
よって F は充足可能である」
ちなみに入力方法はキーボードで直接入力です。
例として、
例えば, (x1∧x2)∨x3, x1∧¬x1 などはいずれも論理式です。
例えば, F1 = (x1∧x2)∨x3 とすると, x1 = true, x2 = false, x3 = true のとき F1 = true となるので, 論理式 F1 は充足可能です。 一方, F2 = x1∧¬x1 とすると, どのような x1 に対しても F2 = false となるので, F2 は充足可能ではありません。
お願いします(_ _)
539:光速エスパー世代774RR
07/08/03 21:05:34
めんどいから逆ポで式を書くことにする。
例えば a b & c ¥ | ならば (a and b) or (not c) な。変数の個数は maxvar で与える。
Program Viva2chan;
const maxvar = 'c';
type
pnode= ^node;
node = record value : boolean; next : pnode end;
var
stack : pnode;
variables : array ['a'..maxvar] of boolean;
i : integer; s : string; c : char;
procedure push(v : boolean);
var nd : pnode;
begin
new(nd);
nd^.value := v; nd^.next := stack; stack := nd
end;
function pop : boolean;
var v : boolean; nd : pnode;
begin
nd := stack; v := nd^.value; stack := nd^.next; pop := v;
dispose(nd)
end;
540:光速エスパー世代774RR
07/08/03 21:07:01
procedure ope(operation : char);
var operand : boolean;
begin
if operation in ['&', '|', '#'] then operand := pop;
with stack^ do
case operation of
'&' : value := value and operand;
'|' : value := value or operand;
'#' : value := value xor operand;
'¥' : value := not value
end
end;
function calc(source : string) : boolean;
var i : integer; c : char;
begin
for i := 1 to length(source) do begin
c := source[i];
if c in ['a'..maxvar] then push(variables[c])
else if c in ['&', '|', '#', '¥'] then ope(c)
end;
calc := pop
end;
541:光速エスパー世代774RR
07/08/03 21:08:28
procedure SetVarSet(n : integer);
var c : char;
begin
for c := 'a' to maxvar do begin
variables[c] := odd(n);
n := n div 2
end
end;
function powerof(n : integer) : integer;
begin
if n > 0 then powerof := powerof(pred(n)) * 2
else powerof := 1
end;
begin
stack := nil;
write('Enter term :'); readln(s);
for i := 1 to powerof(ord(maxvar) - ord('a') + 1) do begin
SetVarSet(i);
for c := 'a' to maxvar do write(variables[c], ' ');
writeln(calc(s))
end
end.
542:光速エスパー世代774RR
07/08/03 21:13:10
つうわけで、n個の論理型変数が張る空間を全部舐めて、結果を表示する。
ここでは手抜きでやってるけど、空間なめにはハフマン距離を使うとかっこいい。
実際には全部舐める必要はなくて、最初にtrueが帰った時に終了すればいい。
中置気泡対応は任せた。
543:デフォルトの名無しさん
07/08/04 14:14:45
学校の宿題が
電車をA駅からB駅で乗り換えて、C駅に行きたい。
C駅での到着希望時刻を入力したらA駅での時刻が出力されるプログラムを作れ。
なのですが、行数300越え+時刻表からデータ取り込みなんで質問しようにもどこがおかしいのかいまいち分かりません。
怪しいところを抜粋して書き込むのでアドバイスよろしくお願いします。
544:543
07/08/04 14:28:19
procedure Minteger( var int: integer);
begin
repeat read(f, c) until c in['1','2','3','4','5','6','7','8','9','0'];
if c in['1','2','3','4','5','6','7','8','9','0'] then
int := ord(c) - ord('0');
end
procedure Extfile(var a:data; i :count);
var
x,y,z: integer;
begin
i := 0;
while not eof(f) do begin { ファイル末尾でない限り }
Minteger(int);
x := int;
Minteger(int);
y := int;
x := (10*x)+y;
while not eoln(f) do begin
i := i + 1;
Minteger(int); y := int;
Minteger(int); z := int;
a[i] := (x*60) + (y*10) + z + 6;
end;
readln(f); { 改行文字を読み飛ばす }
end;
n := i;
writeln(output);
end;
545:543
07/08/04 14:36:38
時刻表の数字の部分をinteger型に直す手続き(procedure Minteger)と、それぞれの時間を
分の単位に直してa[i]の配列に放り込む手続き(procedure Extfile)のつもりです。
時刻表のファイル自体はちゃんと開けています。
時刻表は
08 09 19 29 39 51
09 01 11 21 31 41 51
10 01 11 21 31 41 51
のようにすべて二桁になるようにつくっています。
546:543(2)
07/08/04 14:43:37
procedure ArriveSin(var Ax:integer);
var
x,y,z,mi: integer;
k: count;
begin
if (d = 1) then begin
reset(f, 'HolyUmeda'); writeln('Holyを読み込み増した。')
end
else begin
reset(f, 'WeekUmeda'); { ファイルを開く }
writeln('Weekを読み込み増した。')
end;
Extfile(a, i);
if (h < 14) then begin
k := 1;
while a[k] <= mi do
k := k+1;
Ax := a[k-1];
end
else begin
k := n;
while a[k] > mi do
k := k-1;
writeln('a[',k,'] = ',a[k]);
Ax := a[k];
end;
close(f)
end;
547:543(2)
07/08/04 14:59:52
さっきのa[i]の配列の中でmi(到着希望時刻を分単位になおしたもの)より小さいものの中で、一番大きなものを探してAxに代入しています。
hは時刻(時)で14時より早いなら前から、遅いなら後ろから調べるようにしているつもりです。
548:538
07/08/04 15:54:03
>>538です。
答えありがとうございます!
実際の入力は例えば「ab&cdl&」と入力すればいいってことですね(゚∀゚)
出力が(a∧b)∧(c∨d) となる感じですね。
あと、プログラムの解説も書いて提出しなければならないのですが・・・
もしよろしければ、解説をしていただけるとありがたいです。
549:光速エスパー世代774RR
07/08/04 17:24:23
node = record
value : boolean; term : string; next : pnode
end;
てなかんじに項を文字列としてスタックに積めるようにする。
逆ポはそれ自体構文解析してるようなもんだから、次のようにすれば中置紀宝に
できるよ。
procedure term(operation : char);
var operand, tempterm : string;
begin
if operation in ['&', '|', '#'] then operand := popt;
with stack^ do begin
case operation of
'&' : tempterm := term + ' and ' + operand;
'|' : tempterm := term + ' or ' + operand;
'#' : tempterm := term + ' xor ' + operand;
'¥' : tempterm := 'not ' + term
end;
term := '(' + tempterm +')'
end
end;
550:光速エスパー世代774RR
07/08/04 17:37:26
function disp(source : string) : string;
var i : integer; c : char;
begin
for i := 1 to length(source) do begin
c := source[i];
if c in ['a'..maxvar] then pusht(c)
else if c in ['&', '|', '#', '¥'] then term(c)
end;
disp := popt
end;
push, pop類はスタックを実装している。RPNだから単純なスタックマシンで
好きなだけ複雑な式を計算させられる。calcが手抜きパーザで、変数名を見ると
スタックに値を積み、演算子を見ると、opeで演算を行いスタックトップに値を残す。
最後にpopすれば式全体の値になる。
変数空間を舐めるのはSetVarSetで、0から始まる2^変数個の整数を生成して、
得られた整数の各ビットを変数の値に代入している。
551:光速エスパー世代774RR
07/08/04 17:54:07
for i := 1 to powerof(ord(maxvar) - ord('a') + 1) do
はこれでもいいけど、
for i := 0 to pred(powerof(ord(maxvar) - ord('a') + 1)) do
の方が見栄えがいいな。
「変数空間を舐めるのはSetVarSetで、0から始まる2^変数個の整数を生成して、
得られた整数の各ビットを変数の値に代入している。」は
「変数空間を舐めるために、0から始まる2^変数個の整数を生成して、得られた
整数の各ビットをSetVarSetで各変数の値に代入している。」
552:光速エスパー世代774RR
07/08/04 18:15:10
>>543
時刻表ってのは基本的に列車の配列なのな。
列車をどうデータ化するかが問題じゃな。
別線を通ったり、優等列車だったりして特定の駅に停まらないことを表現するのも
忘れてはいけないのな。
駅乙にある時刻までに到着する、
駅乙に到着する前に駅甲に停車する列車のうちで、
駅甲の発車時刻が一番遅いものを見つける。この操作を二回繰り返せばいい。
553:デフォルトの名無しさん
07/08/06 17:29:56
>>548です。ありがとうございます。
実際に実行してみました。
Enter term: の後に a b & c \ | と入力すると
TRUE FALSE FALSE TRUE
FALSE TRUE FALSE TRUE
TRUE TRUE FALSE TRUE
FALSE FALSE TRUE FALSE
TRUE FALSE TRUE FALSE
FALSE TRUE TRUE FALSE
TRUE TRUE TRUE TRUE
FALSE FALSE FALSE TRUE
と表示されました。これは左から a, b, c, [(a and b) or (not c)]
となっているとわかりました。
実はプログラムへの要求事項があって
入力された論理式を,通常の式のように表示する機能
(例えば 入力が「a b |」 ならば 出力で「(a∨b」と表示される)
論理式が true となる(すべての)変数値割当てを表示する機能
の二つの機能、まとめると
「F = a∨b が true になるのは
a=true, b=true のとき
a=true, b=false のとき
a=false, b=true のとき
よって F は充足可能である」
こういうような形で表示しなければならないらしいんです。
こうするにはどうしたらいいのでしょうか?
何度もすみません^^;
554:光速エスパー世代774RR
07/08/07 00:35:55
「普通の式」で書くのは549-550のを久美こんでくれたまへ
もひとつのは、式の評価がtrueな時だけ出力すればいいから簡単。
ただねえ、10変数まで許すんでしょ、変数の値の集合には1024個の
元があって、式(変数1)を真にするのは500個、変数1-10の論理和をとれば
1023個で真になる。そんなのを表示しろというのも、若干野蛮な問題だと
思うなww
555:デフォルトの名無しさん
07/08/07 15:51:13
>>553です。ありがとうございます。
教えていただいたプログラムに549ー550を加えてみました。
Program Viva2chan;
const maxvar = 'c';
type
pnode= ^node;
node = record
value : boolean; term : string; next : pnode
end;
var
stack : pnode;
variables : array ['a'..maxvar] of boolean;
i : integer; s : string; c : char;
procedure push(v : boolean);
var nd : pnode;
begin
new(nd);
nd^.value := v; nd^.next := stack; stack := nd
end;
function pop : boolean;
var v : boolean; nd : pnode;
begin
nd := stack; v := nd^.value; stack := nd^.next; pop := v;
dispose(nd)
end;
556:デフォルトの名無しさん
07/08/07 15:52:20
procedure ope(operation : char);
var operand : boolean;
begin
if operation in ['&', '|'] then operand := pop;
with stack^ do
case operation of
'&' : value := value and operand;
'|' : value := value or operand;
'\' : value := not value
end
end;
557:デフォルトの名無しさん
07/08/07 15:53:13
function disp(source : string) : string;
var i : integer; c : char;
begin
for i := 1 to length(source) do begin
c := source[i];
if c in ['a'..maxvar] then pusht(c)
else if c in ['&', '|', '#', '\'] then term(c)
end;
disp := popt
end;
function powerof(n : integer) : integer;
begin
if n > 0 then powerof := powerof(pred(n)) * 2
else powerof := 1
end;
begin
stack := nil;
write('Enter term :'); readln(s);
for i := 1 to powerof(ord(maxvar) - ord('a') + 1) do begin
SetVarSet(i);
for c := 'a' to maxvar do write(variables[c], ' ');
writeln(calc(s))
end
end.
558:デフォルトの名無しさん
07/08/07 15:54:01
5ー7行目を549のように書き換えました。
60ー83行目に549ー550を追加しました。
コンパイルすると
push, pop, ope, calc, SetVarSet, term
"datakozo.p", line 62: Warning: Symbol 'POPT' is not defined [221]
"datakozo.p", line 62: Warning: Mixing non-strings with strings [170]
, disp
"datakozo.p", line 80: Warning: Symbol 'PUSHT' is not defined [221]
"datakozo.p", line 83: Warning: Symbol 'POPT' is not defined [221]
"datakozo.p", line 83: Warning: Mixing non-strings with strings [170]
, powerof, Viva2chan
Translation completed.
datakozo.c: 関数 `term' 内:
datakozo.c:116: `popt' が宣言されていません (この関数内で最初に利用)
datakozo.c:116: (未宣言の各変数については、それが最初に現われたそれぞれの関数
datakozo.c:116: に対して一度だけ報告されます。)
datakozo.c: 関数 `disp' 内:
datakozo.c:162: `popt' が宣言されていません (この関数内で最初に利用)
となりました。この場合はどうなのでしょうか?
あと、trueのときだけを表示するには下から4行目を換えればいいのかなと思ったのですがどうでしょうか?
559:デフォルトの名無しさん
07/08/23 16:57:39
約分をするプログラムの作り方を教えてください
560:光速エスパー世代774RR
07/08/24 01:34:38
最近はBASIC屋に化けてるww
約分ってのは分母子を最大公約数で割ればいいわけだから、
よーするに最大公約数を求める問題にいきつく。
これは二千年以上前から判っている方法で溶ける。FPCでテスト墨。
Program Euclid;
function GCD(m, n : integer) : integer;
begin
if n = 0 then GCD := m
else if m mod n = 0 then GCD := n
else GCD := GCD(n, m mod n)
end;
begin
writeln(GCD(123, 12))
end.
エウクレイデス先生はとても偉かったし、算法も高効率だが、
このコード自体の効率はわるいよ。
561:デフォルトの名無しさん
07/08/24 16:43:39
有賀と
562:nao
07/08/24 17:03:06
data.txt(100個の英単語がアルファベット順)というファイルに、
新しく単語を入力、またはそのファイルから単語を削除するプログラムを
どなたか作ってください。お願いします。
563:デフォルトの名無しさん
07/08/24 17:24:41
おい!誰ぞ!
パスカルの後継言語ヘクトパスカル作れよ!
564:デフォルトの名無しさん
07/08/24 17:59:51
そこはあえてバールと言おうぜ。
565:光速エスパー世代774RR
07/08/24 21:40:07
どんなに気圧が低くても、愛の風は風力3w
566:デフォルトの名無しさん
07/09/20 18:01:08
program EX01(input,output);
var D1,D2,S,D,P,Q:integer;
begin
read(D1,D2);
S:=D1+D2;D:=D1-D2;P:=D1*D2;Q:=D1 dir D2;
writeln(D1,D2);
writeln(S,D,P,Q);
end.
整数の四則演算なのですが、Windowsで保存するときの拡張子を教えてください。
567:566
07/09/20 22:50:15
急いでいたので、言葉が足りなかったかもしれません…。
今日から大学での講義がスタートして、教科書もなんにもなく、いきなり出された宿題なので、さっぱり分かんないのです。
C言語でやっていたように、Windowsのメモ帳でプログラムを作って、
【.cpp】ではない何かで保存→コマンドプロンプトで実行
というようにやりたいのですが、いろいろと教えていただきたいです。
568:デフォルトの名無しさん
07/09/20 22:51:10
EX01.pasじゃだめなの?
569:デフォルトの名無しさん
07/09/20 23:06:12
>>567
開発環境、つか、コンパイラは何を使っているんですか?
570:デフォルトの名無しさん
07/09/20 23:07:14
コマンドプロンプトでは、
C:\Documents and Settings\user>cd My Documents
C:\Documents and Settings\user\My Documents>bcc32 EX01.pas
C:\Documents and Settings\user\My Documents>EX01.exe
って感じでおkですか?
571:567
07/09/20 23:10:24
>>569
見てみたら、C++ Builderってやつでした。
これじゃPascalは無理か…
572:デフォルトの名無しさん
07/09/20 23:30:40
>>566
そのソースプログラムをFree Pascal Compiler 2.0で
コンパイルしてみたらエラーが出たよ。dirはdivだね。
誤 Q:=D1 dir D2;
正 Q:=D1 div D2;
573:デフォルトの名無しさん
07/09/20 23:38:05
>>571
ぼくはLinuxユーザーですが、
Free PascalにはWindows用のものもあるようですから
Free Pascalをインストールして試してみられてはいかがでしょう?
URLリンク(www.freepascal.org)
このサイトのDownloadというリンクをクリックしてみてください。
Win32, Win64 and WinCEというのがあるはずです。
574:デフォルトの名無しさん
07/09/20 23:42:41
ちなみに、Free Pascalについてはこのページが参考になります。
URLリンク(www.ss.u-tokai.ac.jp)
575:567
07/09/21 00:00:08
>>572
板書の写し間違いですね。ありがとうございます。
>>573
dです!今すぐダウンロード&インストールします!
576:567
07/09/21 01:00:56
うおおおおおおおおお!!!!!!!!
できました!!!!!!!!マジdクス!
来週からもよろしくお願いしますwww
577:567
07/09/21 01:14:12
てへ、もういっちょ教えてくださいw
さっきのを、整数じゃなくて実数にするのですが、
program PR01(input,output);
real D1,D2,S,D,P,Q:integer;
begin
read(D1,D2);
S:=D1+D2;D:=D1-D2;P:=D1*D2;Q:=D1/D2;
writeln(D1,D2);
writeln(S,D,P,Q);
end.
だとエラーが出るんですけど、どこが違うのでしょう?
578:567
07/09/21 01:20:25
2行目は
var D1,D2,S,D,P,Q:real;
ですね。でもまだ上手くいかない気が…。
579:567
07/09/21 02:11:32
うお、S:6:2とかにしないと、桁数がおかしなことになるんですね。
解決しました!
580:デフォルトの名無しさん
07/09/30 19:15:06
581:デフォルトの名無しさん
07/10/03 00:21:35
一番短いパスカルのプログラムってどんなのですか?
文字数が一番少ないものを作れという課題が出たのですが…
582:デフォルトの名無しさん
07/10/03 00:22:35
ageてしまえ
583:デフォルトの名無しさん
07/10/03 00:28:23
program a;
begin
end.
584:デフォルトの名無しさん
07/10/03 13:45:25
>>583
改行コードをスペースにすれば(環境によっては)1文字分減るかも。
585:デフォルトの名無しさん
07/10/03 17:01:06
短すぎてびっくりしましたw それでもいいんですね。ありがとうございます。
ついでにこれも…。
☆頭書きをBNF記法で表せ。
☆整数「43221」を読み込み、逆順にして、元のデータと共に出力せよ
☆次の余剰を調べよ
14 mod 4
-14 mod 4
14 mod -4
-14 mod -4
586:光速エスパー世代774RR
07/10/03 18:35:48
program a;begin end.
Pascalのセミコロンは区切り子なので、改行もスペースもいらない。
587:デフォルトの名無しさん
07/10/03 19:09:53
>>585
>☆頭書きをBNF記法で表せ。
何の頭書き?
>☆整数「43221」を読み込み、逆順にして、元のデータと共に出力せよ
正数を文字列にしてひっくり返せばいいの?
>☆次の余剰を調べよ
何が分からないの?その式をそのまま実行して出力したんじゃダメなの?
588:デフォルトの名無しさん
07/10/04 00:44:16
program PR0203(input,output);
var W,L,H,V,S:integer;
begin
readln(W,L);raldln(H);writeln(W,L,H);
V:=W*L*H;S:=2*(W*(L+H)+L*H);
writeln(V,S);
end.
これでエラーが出るのは何故なんでしょう?
PR0203.pas(4,21) Error: Identifier not found "raldln"
PR0203.pas(4,24) Error: Illegal expression
PR0203.pas(4,25) Warning: Variable "H" does not seem to be initialized
PR0203.pas(8) Fatal: There were 2 errors compiling module, stopping
Fatal: Compilation aborted
Error: C:\FPC\2.2.0\bin\i386-Win32\ppc386.exe returned an error exitcode (normal
if you did not specify a source file to be compiled)
と出たのですが、よくわかりません。
589:デフォルトの名無しさん
07/10/04 00:46:47
コンパイラ「raldln なんて関数ねーよ」
590:光速エスパー世代774RR
07/10/04 00:47:49
>>588
>raldln(H)
そらー単純にミスタイプづら。
「raldlnなんつー識別子はないどごるぁ」ってコンパイラが逝ってるじゃん。
591:光速エスパー世代774RR
07/10/04 00:51:47
>>589
うふっ、けこーんね♥
こんど一緒にゐると先生の所にいきませんこと?
ねぇってば、ねぇ、ねぇ
それにしても、どう指を動かすとイク^H^Hこんなtypoするんだろうなw
592:デフォルトの名無しさん
07/10/04 00:54:51
ひゃー、タイプミスはずかし…。
>>585の頭書きなんですけど、
program ●●●(input,output)
の事らしいです。BNFをぐぐってもいまいち理解出来なくて。
593:デフォルトの名無しさん
07/10/04 01:08:58
<頭書き> ::= <名前> "(input,output)"
こんなんでいいのけ??
594:デフォルトの名無しさん
07/10/04 02:03:34
URLリンク(imepita.jp)
とっさに書きました。
これをBNFに書き換えるのを教えてください!!
お願いします!!!!!
595:デフォルトの名無しさん
07/10/04 02:14:44
URLリンク(videointroplayer.web.fc2.com)
596:デフォルトの名無しさん
07/10/04 02:44:32
>>585の2個目
program PR0231(input,output);
var D,X,S:integer;
begin
read(D);
X:=D;S:=0;
S:=10*S+X mod 10;
X:=X div 10;
S:=10*S+X mod 10;
X:=X div 10;
S:=10*S+X mod 10;
X:=X div 10;
S:=10*S+X mod 10;
X:=X div 10;
S:=10*S+X mod 10;
writeln(D,S);
end.
これで出ないのはなぜ、、、。
597:デフォルトの名無しさん
07/10/04 07:05:52
できました!
ありがとうです!!
598:デフォルトの名無しさん
07/10/04 09:03:54
いいよいいよ。どんどん宿題をオープンにしちゃって! 他の人も勉強になるから。
599:デフォルトの名無しさん
07/10/04 09:16:42
バッカス・ナウア記法って、そういや昔『やさしいコンピュータ科学』を読んだときに
Turbo Pascalの概要が解説されているところで使われていたのを思い出した。
<> -> <> こんな感じの<>を使った記述。ちがったっけ?
600:光速エスパー世代774RR
07/10/04 19:18:53
>>596
>S:=10*S+X mod 10;
>X:=X div 10;
>S:=10*S+X mod 10;
>X:=X div 10;
>S:=10*S+X mod 10;
>X:=X div 10;
>S:=10*S+X mod 10;
>X:=X div 10;
>S:=10*S+X mod 10;
次は、「自動化ちうのをしたくて電算機プログラムやってるのに、
なんでオラさはこんな5回も6回もコピペしなきゃなんねえだべ」と思ってみよう。
手抜きとぐうたら根性こそプログラミングの推薬ww
601:デフォルトの名無しさん
07/10/08 02:02:31
exp(x)とかodd(x)みたいな感じで、even(x)って存在するの?
602:デフォルトの名無しさん
07/10/08 07:27:53
not odd(x) でいいーぶん
603:デフォルトの名無しさん
07/10/08 10:02:52
>>602
初めて知った!d!
ついでに。
なにが違うんじゃー
全部0って出てくるー
program PR0331(input,output);
var D1,D2:real;
var T1,T2,T3,T4,R1,R2,R3,R4:integer;
begin
read(D1,D2);
T1:=trunc(D1);T2:=trunc(D2);T3:=trunc(-D1);T4:=trunc(-D2);
R1:=round(D1);R2:=round(D2);R3:=round(-D1);R4:=round(-D2);
writeln('trunc(',D1:2:1,')=',T1:2,'trunc(',D2:2:1,')=',T2:2,'trunc(',-D1:2:1,')=',T3:2,'trunc(',-D2:2:1,')=',T4:2);
writeln('round(',D1:2:1,')=',R1:2,'round(',D2:2:1,')=',R2:2,'round(',-D1:2:1,')=',R3:2,'round(',-D2:2:1,')=',R4:2);
end.
あと、もうちょいシンプルにできないのかな、これw
604:光速エスパー世代774RR
07/10/09 12:48:18
>D1:2:1
少なくとも三桁は確保しないと表示できないと思われ。
負数だったら少なくとも四桁。
こういうのはシンプルにしようがないんだけど、元数値を別に表示すると少しは見やすいかな。
writeln('Data Entered : ', D1, D2);
writeln('Trunc''s of them are ', trunc(D1), ' and ', trunc(D2), ' respectivly.');
writeln('Trunc''s of negated them are ', trunc(-D1), ' and ', trunc(-D2), ' respectivly.');
writeln('Round''s of them are ', round(D1), ' and ', round(D2), ' respectivly.');
writeln('Round''s of negated them are ', round(-D1), ' and ', round(-D2), ' respectivly.');
writeln('Thus, both functions are (different from / same for) each other in case of (you must fill this parenthesis ).')
605:デフォルトの名無しさん
07/10/09 21:31:21
program PR0331(input,output);
const D1=0.4;D2=0.5;D3=-0.4;D4=-0.5;
var T1,T2,T3,T4,R1,R2,R3,R4:integer;
begin
T1:=trunc(D1);T2:=trunc(D2);T3:=trunc(D3);T4:=trunc(D4);
R1:=round(D1);R2:=round(D2);R3:=round(D3);R4:=round(D4);
writeln('trunc(',D1:4:1,')=',T1:2,' trunc(',D2:4:1,')=',T2:2,' trunc(',-D1:4:1,')=',T3:2,' trunc(',-D2:4:1,')=',T4:2);
writeln('round(',D1:4:1,')=',R1:2,' round(',D2:4:1,')=',R2:2,' round(',-D1:4:1,')=',R3:2,' round(',-D2:4:1,')=',R4:2);
end.
にしたら、
trunc( 0.4)= 0 trunc( 0.5)= 0 trunc(-0.4)= 0 trunc(-0.5)= 0
round( 0.4)= 0 round( 0.5)= 0 round(-0.4)= 0 round(-0.5)= 0
ってなっちゃう…やっぱり全部ゼロだ…
606:デフォルトの名無しさん
07/10/09 21:37:07
>>605
えーと、何が問題なの?
607:デフォルトの名無しさん
07/10/09 21:45:37
0.4,0.5,-0.4,-0.5をtruncとroundで出力?したいのです。
truncは少数点以下切り捨てだから、全部0になっておkなのですが、
roundは四捨五入だから、
round( 0.4)= 0 round( 0.5)= 1 round(-0.4)= 0 round(-0.5)=-1
ってなるはずなんですよ。
608:デフォルトの名無しさん
07/10/09 22:33:59
program PR0311(input,output);
ver D1,D2:integer;
ver O1,O2,E1,E2:Boolean;
begin
read(D1,D2);
O1:=odd(D1);D2:=odd(D2);
E1:=even(D1);E2:=even(D2);
writeln(' odd(',D1,')=',O1);writeln(' odd(',D2,')=',O2);
writeln('even(',D1,')=',E1);writeln('even(',D2,')=',E2);
end.
これのどこがエラーなんでしょう??
609:デフォルトの名無しさん
07/10/09 22:44:50
>>607
>roundは四捨五入
ダウト
roundは Banker's rounding
>>608
エラーメッセージが示す通り
610:606
07/10/09 22:47:16
>>607
処理系は?
611:デフォルトの名無しさん
07/10/09 22:58:11
>>668を短くしたんですが、まだエラーっす
program PR0311(input,output);
ver D1,D2:integer;
begin
read(D1,D2);
writeln(' odd(',D1,')=',odd(D1));writeln(' odd(',D2,')=',odd(D2));
writeln('even(',D1,')=',even(D1));writeln('even(',D2,')=',even(D2));
end.
エラーメッセージ
Free Pascal Compiler version 2.2.0 [2007/09/09] for i386
Copyright (c) 1993-2007 by Florian Klaempfl
Target OS: Win32 for i386
Compiling PR0311.pas
Fatal: Syntax error, "BEGIN" expected but "identifier VER" found
Fatal: Compilation aborted
Error: C:\FPC\2.2.0\bin\i386-Win32\ppc386.exe returned an error exitcode (normal
if you did not specify a source file to be compiled)
612:デフォルトの名無しさん
07/10/09 23:10:27
ver
. ~
613:611
07/10/09 23:21:03
orz<d
614:デフォルトの名無しさん
07/10/09 23:40:05
>>609
Banker's rounding とは??
615:デフォルトの名無しさん
07/10/09 23:41:59
全板全スレ全質問対応テンプレ
Q.○○って何ですか?
A.ググレカス
616:光速エスパー世代774RR
07/10/10 21:09:07
Q.ググレカスって何ですか?
A.再帰汁
617:デフォルトの名無しさん
07/10/13 03:41:28
URLリンク(www.radiumsoftware.com)
618:大学の課題
07/10/18 12:20:53
大学の課題ですが、よく分らないのでお願いします。
ディスプレー上から、A, a, Bなどを入力し,ord()にて
順序型に変換したらどのような数字が表れるかを検討せよ.
プログラムを作成したのち、そのファイルの最後に検討結
果を記述し、提出せよ。
以上が、課題です。
大変困っています。
よろしくお願いします。
619:デフォルトの名無しさん
07/10/18 17:52:27
まず大学名と学部、学科を
620:光速エスパー世代774RR
07/10/18 19:29:18
Program ILoveWirth(input, output);
var c : char;
begin
repeat
read(c); writeln(ord(c))
until c = ' '
end.
(* results and discussion *)
(* conclusion *)
621:デフォルトの名無しさん
07/10/18 20:24:20
本当に、有難うございました。
もう一つ、課題が出されたのですが、光速エスパー世代774RRさんにやってい
ただいたのを参考に、もう一度やってみたいと思います。
また、よろしくお願いします。
622:デフォルトの名無しさん
07/10/24 13:01:33
ディスプレー上から、A, a, Bなどを入力し,ord()にて順序型に変換したらどのような数字が表れるかを検討せよ.
A君,B君,C君の3人が,programming(プログラミング基礎),algebra(代数),circuit(電気回路),english(英語),electromagnetics(電磁気学)の5科目のうちのいくつかを選択している。
3人が一緒になる授業、A君が一人のみで出席する授業を調べるプログラムを作成せよ。
但し、3人が選択している科目は各自設定してよい。
教えてください。
623:デフォルトの名無しさん
07/10/24 13:47:18
65,97,66
624:デフォルトの名無しさん
07/10/24 13:53:05
programming = 16;
algebra = 8;
circuit = 4;
english = 2;
electromagnetics = 1;
a = algebra + english + electromagnetics;
b = programming + circuit + english;
c = algebra + circuit + english;
3人一緒 = a & b & c;
a君のみ = a & ~b & ~c;
625:たく
07/10/24 14:32:25
XPでvisualstudioを使ってます。
問題:長さ100のint型配列 int a[100]がある。a[0]〜a[99]には整数が収められているする。
この100個の中で一番小さい数を求め、画面に出力するプログラムを作成せよ。
出力形式は「ans.=???」とせよ。???の部分は答え。
なんですが、全くわからないので教えて下さい。
626:デフォルトの名無しさん
07/10/24 18:29:39
大学の課題で、
ニュートン法により2の立方根(三乗根2)を少数点以下第5位まで求めるプログラムを作りなさい。
と出たのですが、全く分からずにとても困っています。
よろしくお願いします。
627:光速エスパー世代774RR
07/10/24 20:50:24
>>625
XPて何ですか
intって何ですか
(C)void
>>626
にゅーとん法はやったことがないなあ。いま書類書きで脳があぼんしてるので
気力が出たらやってみる。
628:デフォルトの名無しさん
07/10/24 20:58:20
ニュートン法って最初に与える初期値の妥当性はどうやって検証したらいいのですか?
629:光速エスパー世代774RR
07/10/24 21:05:42
>>624
折角なので集合型を使いましょうやw
Program Viva2chan(output);
type
courses = (programming, algebra, circuit, english, electromagnetics);
coursset = set of courses;
var
studentA,
studentB,
studentC : coursset;
procedure DispSet(s : coursset);
begin
if programming in s then write('Programming');
if algebra in s then write('Algebra');
if circuit in s then write('Circuit');
if english in s then write('English');
if electromagnetics in s then write('Electromagnetics');
writeln
end;
begin
studentA := [programming, algebra, electromagnetics];
studentB := [programming, english, electromagnetics];
studentC := [english, circuit, electromagnetics];
DispSet(studentA * studentB * studentC);
DispSet(studentA - (studentB + studentC))
end.
630:625
07/10/24 21:56:06
>>627
windowsXPです。
intは整数って事ですかね。
明日締め切りなんです。お願いします!
631:デフォルトの名無しさん
07/10/24 23:33:00
失礼します〜
program PR0501(input,output);
var C:char;N:integer;
begin
readln(N);
c:=chr(N);
writeln(N-1,' ',chr(N-1),' ',N,' ',chr(N),' ',N+1,chr(N+1));
writeln(N-1,' ',pred(N),' ',N,' ',chr(N),' ',N+1,' ',cuss(N));
end.
これ、なにがちがうんでしょう?そもそも何をやっているのかわかってないのですが…
632:デフォルトの名無しさん
07/10/24 23:34:30
cussじゃなくてsuccだったwww
633:光速エスパー世代774RR
07/10/25 12:59:16
>>630
ヘ_ヘ
ミ・・ ミ
( )〜
Pascalは滅んだことにしたいのですね(C)void
(まあ事実だけどさwww)
>>631
勝手に解説すると(俺は電線マンか)
・Pascalには順序型というものがある
・文字型も整数型も順序型である(論理型も>>629の courses も順序型だよん)
・succは順序型の「次の要素」、predは「前の要素」を返す関数である
ということを理解しろというわけ。これって結構大事でさ、順序型はfor文の
制御変数に使えるとか、case文に使えるとかあるから。
他にも、例えば文字型と文字列型の区別がない言語が結構あるんだけど、
ある文字列の「次の文字列」なんて簡単には定義できないから、
そういう言語ではfor c := 'a' to 'z' do なんてのは考えることが難しい。
634:デフォルトの名無しさん
07/10/30 03:36:29
var atai : word; から上1バイト下1バイトを取得する場合は
ue := atai shr 8;
shita := word(atai shl 8) shr 8;
これでよいのでしょうか?
635:デフォルトの名無しさん
07/10/30 17:36:40
・正の整数nを読み込み
1+(1/1!)+(1/2!)+.....+(1/n!)
の値を計算して出力するプログラムを作りなさい。
だれか教えてください。計算式が作れません。
636:デフォルトの名無しさん
07/10/30 17:40:26
function factorial(i : integer) : real;
を別に作ると楽。
637:デフォルトの名無しさん
07/10/30 17:50:20
今こんな感じです。どう直せばいいですか?
function factrial(i:integer): real;
begin
if n=1 then begin
factrial := 1;
end else begin
factrial := i*factrial(i-1);
end;
begin
write('Enter n : ');
readln(n);
For i:=1 to n do
begin
ANS:=1+(1/factrial);
end;
end;
638:デフォルトの名無しさん
07/10/30 17:52:48
ANS:=1;
For i:=1 to n do
ANS:=ANS+(1/factorial(i));
639:デフォルトの名無しさん
07/10/30 17:53:24
あ、申し訳ない
ANS:=1; は要らないや
640:デフォルトの名無しさん
07/10/30 18:01:31
エラーが消えません。どうしたらいいですか?
たびたびすいません
i : real;
n : integer;
ANS : real;
function factrial(i:integer): real;
begin
if n=1 then begin
factrial := 1;
end else begin
factrial := i*factrial(i-1);
end;
begin
write('Enter n : ');
readln(n);
For i:=1 to n do
begin
ANS:=ANS+(1/factorical(i));
end;
end;
begin
writeln('N = ', ' ANS = ', ANS:8:6);
end.
641:デフォルトの名無しさん
07/10/30 18:05:20
1を1. ←小数点付き にしたらどう?
642:デフォルトの名無しさん
07/10/30 18:07:58
だめでした・・・どこが間違ってるのかわかりません
643:デフォルトの名無しさん
07/10/30 18:13:28
俺もわからなくなったからdelphi立ち上げて作り直したよ
var
i, n : integer;
ANS : real;
function factorial(i:integer) : real;
begin
if i = 1 then
factorial := 1
else
factorial := i * factorial(i - 1)
end;
begin
write('Enter n : ');
readln(n);
For i := 1 to n do
ANS := ANS + (1. / factorial(i));
writeln('N = ', n, ' ANS = ', ANS:8:6);
readln;
end.
644:デフォルトの名無しさん
07/10/30 18:15:48
いけました!ありがとうがざいました。
645:デフォルトの名無しさん
07/10/30 19:09:17
>>634ですが、 良いのか悪いのか、他に方法があるのか
教えてください
646:光速エスパー世代774RR
07/10/30 19:21:08
>>634
>var atai : word; から上1バイト下1バイトを取得する場合は
>ue := atai shr 8;
>shita := word(atai shl 8) shr 8;
>これでよいのでしょうか?
単に
shita := atai and $FF
でいい。
Turbo Pascal以来のおまけ関数にhi、loってのがあるから、
Unit Reference Manual を詠むといいよ。hi、loってMT+にもあった気がする。
647:光速エスパー世代774RR
07/10/30 19:26:46
>>640
>i : real;
>n : integer;
>ANS : real;
>
>function factrial(i:integer): real;
>begin
>if n=1 then begin
>factrial := 1;
begin endを使いすぎてるw
まあそーゆー趣味的な所はおいといて、
なぜエラーになる(多分暴走するか、スタックあっぷあっぷで停まる)か判った?
648:634
07/10/30 19:29:53
>>646 ありがとうございました。感激です!
649:デフォルトの名無しさん
07/11/02 13:14:37
日本円を他の国の通貨に変換するプログラを記述せよ。ただし、用いるレートは次の通りである
USD 118.94
GBP 186.53
CNY 13.93
EUR 129.60
RUB 3.73
なお、補助単位もつけよ。
誰か↑をやってください、お願いします。
650:デフォルトの名無しさん
07/11/02 13:20:49
実行例が
********************
d--USDOLLAR
P--British Pound
y--Chinese Yuan(gen)
e--Euro
r--Russian Rouble
*****************
Exchange to :d
Enter the amout of money in JPY : 1000
USD = $ 8.40
651:デフォルトの名無しさん
07/11/02 15:07:14
解りにくい説明ですいません。
652:光速エスパー世代774RR
07/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:デフォルトの名無しさん
07/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 }
今こんな風にやってるんですけど・・・どうすればいいでしょうか?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5189日前に更新/280 KB
担当:undef