Dwa zadania w Pascalu.
Na poziomie klasy maturalnej, ew. 1 rok studiów.
Zadanie w załączniku.
Wszelkie próby nabicia sobie punktów a nie podawania dokładnego rozwiązania będą zgłaszane.
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
Program pierwszy:
http://ideone.com/4KlovJ
Program drugi:
http://ideone.com/6p8ZkD
Napisane mniej-więcej na poziomie studiów (a w każdym razie tak mi się wydaje).
+ dla czystej formalności, same kody:
Type TRange = 1..10;
Procedure compute(const A: Double; const I: TRange; var X, Y: Double);
Begin
X := 0.3*I;
if (X < 1) Then
Y := 3/a+sin(X) Else
Y := 3*sqr(x)+2*a;
End;
Var A : Double = 0;
X, Y: Double;
I : TRange;
Begin
While (A = 0) Do
Readln(A);
Writeln('x | y');
For I := Low(I) To High(I) Do
Begin
compute(A, I, X, Y);
Writeln(x:0:3, ' | ', y:0:3);
End;
End.
Uses SysUtils;
Procedure on_yes;
Var Tab : Array[0..7] of int32;
I : int32;
Average: Single = 0;
Begin
For I := Low(Tab) To High(Tab) Do
Readln(Tab[I]);
For I in Tab Do // działa we FPC, działa w Delphi, istnieje w Object Pascalu. Jakby jakiś archaiczny kompilator sie tego czepiał, zmień na `For I := Low(Tab) To High(Tab) Do Average := Average+Tab[I];`
Average := Average+I; // Average += I;
Average := Average / Length(Tab); // Average /= Length(Tab);
Writeln(Average:0:2);
End;
Procedure on_no;
Begin
Writeln('Wykonano!');
End;
Const Handlers: Array[0..1] of Record
Names : Array[0..1] of String;
Handler: Procedure;
End =
(
(Names: ('tak', 'Tak'); Handler: @on_yes),
(Names: ('nie', 'Nie'); Handler: @on_no)
);
Var Answer: String[3];
I : Low(Handlers)..High(Handlers);
N : Byte;
Begin
Readln(Answer);
For I := Low(I) To High(I) Do
For N := Low(Handlers[I].Names) To High(Handlers[I].Names) Do
if (AnsiCompareStr(Answer, Handlers[I].Names[N]) = 0) Then
Begin
Handlers[I].Handler();
Halt;
End;
Writeln('Blad!');
End.