На файлы
Написать программу, которая считывает текстовый файл, выравнивает содержащийся в нем текст по правой границе и выводит результат в другой текстовый файл.
На процедуры и функции
Напишите функцию, которая для любого целого аргумента возвращает целое значение, полученное изменением порядка следования цифр на обратный.
Или хотя бы одну из них!!!!
Пожайлуста, помогите решить 2 задачки для экзамена!!!!
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
на каком языке надо ?
В SAD - все в SAD.
лОви). за 15 минут налабал... осталось впаять проверки на переменные...
--------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private { Private declarations }
public { Public declarations }
end;
var
Form1: TForm1;
implementation
type TArr = array of Extended;
{$R *.dfm}
function GetFinishDigit(AExtended: extended): extended;
begin
result := AExtended - 10 * Int(AExtended / 10);
end;
function GetDigit(AExtended: extended; i: integer): extended;
begin
if i = 0 then
result := GetFinishDigit(AExtended)
else
result := GetFinishDigit(Int(AExtended / Power(10, i)));
end;
procedure InitArray(AExtended: extended; var Arr: TArr);
var i: integer;
begin
if Assigned(Arr) then
for i := 0 to length(Arr) - 1 do
Arr := GetDigit(AExtended, i);
end;
function InvertExtended(Arr: TArr): extended;
var i:integer;
begin
result := 0;
if Assigned(Arr) then
for i := 0 to length(Arr) - 1 do
result := result + Arr * Power(10, length(Arr) - i - 1);
end;
procedure TForm1.Button1Click(Sender: TObject);
var lExtended, lResult: extended;
lArr: TArr;
st: string;
begin
lExtended := StrToInt(Edit1.Text);
Str(strtoint(Edit1.Text), st);
SetLength(lArr, length(st));
InitArray(lExtended, lArr);
lResult := InvertExtended(lArr);
Str(lResult, st);
Edit2.Text := st;
end;
end.
--------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private { Private declarations }
public { Public declarations }
end;
var
Form1: TForm1;
implementation
type TArr = array of Extended;
{$R *.dfm}
function GetFinishDigit(AExtended: extended): extended;
begin
result := AExtended - 10 * Int(AExtended / 10);
end;
function GetDigit(AExtended: extended; i: integer): extended;
begin
if i = 0 then
result := GetFinishDigit(AExtended)
else
result := GetFinishDigit(Int(AExtended / Power(10, i)));
end;
procedure InitArray(AExtended: extended; var Arr: TArr);
var i: integer;
begin
if Assigned(Arr) then
for i := 0 to length(Arr) - 1 do
Arr := GetDigit(AExtended, i);
end;
function InvertExtended(Arr: TArr): extended;
var i:integer;
begin
result := 0;
if Assigned(Arr) then
for i := 0 to length(Arr) - 1 do
result := result + Arr * Power(10, length(Arr) - i - 1);
end;
procedure TForm1.Button1Click(Sender: TObject);
var lExtended, lResult: extended;
lArr: TArr;
st: string;
begin
lExtended := StrToInt(Edit1.Text);
Str(strtoint(Edit1.Text), st);
SetLength(lArr, length(st));
InitArray(lExtended, lArr);
lResult := InvertExtended(lArr);
Str(lResult, st);
Edit2.Text := st;
end;
end.
а чтоб не извращаться нужно просто перевернуть строку:
----------
function InvertString(AString: string): string;
var
lStringLength, i: integer;
begin
lStringLength := length(AString);
for i := 1 to lStringLength do
result := result + AString[lStringLength-i+1];
end;
----------
function InvertString(AString: string): string;
var
lStringLength, i: integer;
begin
lStringLength := length(AString);
for i := 1 to lStringLength do
result := result + AString[lStringLength-i+1];
end;
а насчет выравнивания - примерно так...
----
function GetNullString(ALength: integer): string;
var i: integer;
begin
result:='';
for i := 1 to ALength do result := result + ' ';
end;
procedure TForm1.Button1Click(Sender: TObject);
const RightLine = 100;
var fRead, fWrite: TextFile;
st: string;
begin
AssignFile(fRead, 'c:\1.txt');
Reset(fRead);
AssignFile(fWrite, 'c:\2.txt');
ReWrite(fWrite);
while not EOF(fRead) do
begin
Readln(fRead, st);
if length(st) < RightLine then st := GetNullString(RightLine - length(st)) + st;
WriteLn(fWrite, st);
end;
CloseFile(fWrite);
CloseFile(fRead);
end;
----
function GetNullString(ALength: integer): string;
var i: integer;
begin
result:='';
for i := 1 to ALength do result := result + ' ';
end;
procedure TForm1.Button1Click(Sender: TObject);
const RightLine = 100;
var fRead, fWrite: TextFile;
st: string;
begin
AssignFile(fRead, 'c:\1.txt');
Reset(fRead);
AssignFile(fWrite, 'c:\2.txt');
ReWrite(fWrite);
while not EOF(fRead) do
begin
Readln(fRead, st);
if length(st) < RightLine then st := GetNullString(RightLine - length(st)) + st;
WriteLn(fWrite, st);
end;
CloseFile(fWrite);
CloseFile(fRead);
end;