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)
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;
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;
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
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.
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;
>>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 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.
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.
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.
>>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.
こんな感じの問題です。最後の-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;
>>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.
ダイアを描くプログラムですが、これを壁に当たれば入射角=反射角で跳ね返るように動かすことはできませんか? 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;