program test3; var a, b, c, max, min: integer; begin read(a); max := a; min := a; read(b); if b > max then max := b; if b < min then min := b; read(c); if c > max then max := c; if c < min then min := c; writeln('max', max); writeln('min', min); end.
662 名前:デフォルトの名無しさん mailto:sage [03/10/16 01:29]
program maxandmin; (* IF無しバージョン *)
var a, b, c, max, min : integer;
function sgn(si : integer) : integer; begin if si < 0 then sgn := -1 else if si = 0 then sgn := 0 else if si > 0 then sgn := 1; end;
begin read(a); read(b); read(c); case sgn(a - b) of -1, 0 : case sgn(b - c) of -1, 0 : begin min := a; max := c; end; 1 : case sgn(a - c) of - 1, 0 : begin min := a; max := b; end; 1 : begin min := c; max := b; end; end; end; 1 : case sgn(b - c) of -1, 0 : case sgn(a - c) of -1, 0 : begin min := b; max := c; end; 1 : begin min := b; max := a; end; end; 1 : begin min := c; max := a; end; end; end; writeln('max=', max); writeln('min=', min); end.
663 名前:662 mailto:sage [03/10/16 01:30]
あ、sgn に if文を使っているんだっけ。
664 名前:でたらめ mailto:sage [03/10/16 21:41]
function sgn (si: integer): integer; begin case si of 0: si := 0; otherwise begin sgn := si div abs(si); end; end; end;
665 名前:でたらめ mailto:sage [03/10/16 21:42]
あ。begin, end 一個余分だ。
function sgn (si: integer): integer; begin case si of 0: si := 0; otherwise sgn := si div abs(si); end; end;
666 名前:でたらめ mailto:sage [03/10/17 10:56]
program MaxMinX; (* ObjectPascal ver. *) type MMXtype = object vmax, vmin: integer; procedure init; procedure setValue (val: integer); function max: integer; function min: integer; end; procedure MMXtype.init; begin vmax := -32768;vmin := 32767; end; procedure MMXtype.setValue (val: integer); begin if val > vmax then vmax := val; if val < vmin then vmin := val; end; function MMXtype.max: integer; begin max := vmax; end; function MMXtype.min: integer; begin min := vmin; end; var MMX: MMXtype;a, i: integer; begin new(MMX); MMX.init; for i := 1 to 3 do begin read(a); MMX.setValue(a); end; writeln('max=', MMX.max); writeln('min=', MMX.min); end.
667 名前:662 mailto:sage [03/10/17 18:42]
program test(input, output); (* 今度こそIF無しバージョン *) Type TChoice = function(a, b : integer) : integer; var Func : array[boolean] of TChoice; a, b, c : integer;
function First(a, b : integer) : integer; begin First := a; end;
function Second(a, b : integer) : integer; begin Second := b; end;
function fmax(a, b : integer) : integer; begin fmax := Func[a >= b](a,b); end;
function fmin(a, b : integer) : integer; begin fmin := Func[a <= b](a,b); end;
program MMX; var a, b, c: integer; begin read(a); read(b); read(c); writeln('max=', ((((a + b) + abs(a - b)) div 2 + c) + abs(((a + b) + abs(a - b)) div 2 - c)) div 2); writeln('min=', ((((a + b) - abs(a - b)) div 2 + c) - abs(((a + b) - abs(a - b)) div 2 - c)) div 2); end.
var i,n,max,min :integer; sin:array[1..100] of integer; begin write('人数は?'); readln(n); for i:=1 to n do begin writeln(i,'人目の身長を入力してください'); readln(sin[i]); end; max:=sin[1]; min:=sin[1]; for i:=2 to n do begin IF sin[i]>max then max:=sin[i]; IF sin[i]<min then min:=sin[i]; end; writeln('人数 制御変数 身長 最高 最低 '); writeln(n); for i:=1 to n do begin write(' ',i,' ', sin[i] ); IF sin[i]:=max then write(' ',sin[i]); IF sin[i]:=min then write(' ',sin[i]); end; end.
こんな強引な感じになりましたが一応例どおり動きました。 Program en9a(input,output); var i,n :integer; max,min :real; sin:array[1..100] of integer; begin write('人数は?'); readln(n); for i:=1 to n do begin writeln(i,'人目の身長を入力してください'); readln(sin[i]); end; max:=sin[1]; min:=sin[1]; writeln('人数 制御変数 身長 最高 最低 '); writeln(n);
709 名前:676 [03/11/04 12:18]
i:=1; repeat IF sin[i]>max then max:=sin[i]; IF sin[i]<min then min:=sin[i]; write(' ',i,' ', sin[i]); IF sin[i]=max then write(' ',max:3:1); IF sin[i]=min then write(' ',min:3:1); writeln; i:=i+1; until i<>1; for i:=2 to n do begin IF sin[i]>max then max:=sin[i]; IF sin[i]<min then min:=sin[i]; write(' ',i,' ', sin[i]); IF sin[i]=max then write(' ',max:3:1); IF sin[i]=min then write(' ',min:3:1); writeln; end; end.
710 名前:676 Bのほう [03/11/04 12:19]
Program en9b(input,output); var i,n :integer; max,min :real; sin:array[1..100] of integer; begin n:=1; i:=1; writeln(i,'人目の身長を入力してください'); readln(sin[i]); while sin[i]<>0 do begin i:=i+1; writeln(i,'人目の身長を入力してください'); readln(sin[i]); n:=n+1; end; max:=sin[1]; min:=sin[1]; writeln('人数 制御変数 身長 最高 最低 '); writeln(n-1);
711 名前:676 Bのほう2 [03/11/04 12:20]
i:=1; repeat IF sin[i]>max then max:=sin[i]; IF sin[i]<min then min:=sin[i]; write(' ',i,' ', sin[i]); IF sin[i]=max then write(' ',max:3:1); IF sin[i]=min then write(' ',min:3:1); writeln; i:=i+1; until i<>1; for i:=2 to n-1 do begin IF sin[i]>max then max:=sin[i]; IF sin[i]<min then min:=sin[i]; write(' ',i,' ', sin[i]); IF sin[i]=max then write(' ',max:3:1); IF sin[i]=min then write(' ',min:3:1); writeln; end; end.
program sifuto(input,uotput); type suuji = array[1..10] of char; var a : suuji; x,y,n : integer; begin begin write('10文字入力'); readln(a); end; write('いくつずらす?'); readln(x); for y:= 11-x to 10 do write(a[y]); for n:=1 to 10-x do write(a[n]); writeln() end.
720 名前:デフォルトの名無しさん mailto:sage [03/11/05 20:11]
今日配列使って作ったもう一個のヤツ program sinnsuu(input,output); type suuji = array[1..4] of integer; var a : suuji; c, ans : integer; d : integer; begin Write('Decimal : '); Read(d); c := 0; while d <> 0 do begin c := c + 1; ans := d mod 2; d := d div 2; a[c]:=ans end; for c:= 4 downto 1 do write(a[c]); writeln() end.