Pascal/Ввід і вивід
Розширений ввід та вивід
[ред.]Як вже згадувалося, в мові Паскаль є дві функції для вводу: read та readln. Різниця між ними полягає, насамперед, у тому, що read читає символи, які треба ввести (наприклад, якщо вводиться ціле число - цифри), доки не зустріне "неправильний" символ, а решту лишає для наступного вводу; readln же читає символи до кінця рядку і викидає "зайві". Так, фрагмент коду (змінні a та b - цілі)
readln(a);
readln(b);
writeln(a,' ',b);
на ввід
1 2↵ Enter
3 4↵ Enter
виведе "1 3"; а фрагмент
read(a);
read(b);
writeln(a,' ',b);
на той самий ввід виведе "1 2"!
Зауважимо, що другий код еквівалентний коду
read(a, b);
writeln(a,' ',b);
unit Kv_r;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm) ln_a: TEdit; ln_b: TEdit; ln_c: TEdit; L_a: TLabel; L_b: TLabel; L_c: TLabel; L_X1: TLabel; L_X2: TLabel; B_Rozv: TButton; B_End: TButton; procedure B_EndClick(Sender: TObject); procedure B_RozvClick(Sender: TObject); private public end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.B_EndClick(Sender: TObject); begin
Close
end;
procedure TForm1.B_RozvClick(Sender: TObject);
Var a,b,c,x,x1,x2,D :Real; begin a := StrToFloat(ln_a.Text); b := StrToFloat(ln_b.Text); c := StrToFloat(ln_c.Text); If a = 0 then If b = 0 then Begin L_X1.Caption := ; L_X2.Caption := ; ShowMessage ('Рівняння не сумісне'); Halt end else Begin x1 := - c / b; L_X1.Caption := 'x=' + FloatToStr(x1); L_X2.Caption := ; ShowMessage ('Рівняння не квадратне'); Halt end else Begin D := sqr(b) - 4*a*c; // обчислення дискримінанту If D < 0 then // якщо дискримінант від'ємний, то вивести повідомлення Begin L_X1.Caption := ; L_X2.Caption := ; ShowMessage ('Рівняння не має дійсних розвязків'); halt end else Begin x := - b /(2 * a); If D = 0 then Begin L_X1.Caption := 'x1= x2= ' + FloatToStr(x); L_X2.Caption := ; ShowMessage ('Рівняння має два однакові розв'язки'); HaltЖирний текст end; x2 := Sqrt (D) /(2 * a); x1 := x2 + x; x2 := x - x2;
{Виводимо результати на поле форми, перетворивши їхні значення з формату дійсних чисел у символьне представлення процедурою FloatToStr}
L_X1.Caption := 'x1=' + FloatToStr(x1); L_X2.Caption := 'x2=' + FloatToStr(x2); end end;
end;
end.