
7.Текстовые файлы
1. Дан массив целых чисел а1,…,аn (n<=10). Сформировать текстовый файл по следующему правилу: первая строка файла состоит из букв «А», количество которых а1, вторая строка из букв «Б», количество которых а2 и т.д.
program Project14;
{$APPTYPE CONSOLE}
uses SysUtils;
var a:array[1..10] of integer;
f:textfile;
i,n,l:integer;
s:string;
begin
{ TODO -oUser -cConsole Main : Insert code here }
write('vvedite kol-vo elementov massiva, n= '); readln(n);
for i:=1 to n do read(a[i]);
assignfile(f,'C:\Users\Алина\Desktop\прак ЭВМ\pr14.txt');
rewrite(f);
s:='ABCDEFGHIJ';
for i:=1 to n do begin
for l:=1 to a[i] do
write(f,s[i],' ');
writeln(f)
end;
closefile(f);
end.
Визуальное программирование
1.Одномерные массивы.
1.Дан массив X1,…,Xn. Поменять местами первый и последний элемент, второй и предпоследний, и т д.
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
Tform1 = class(Tform)
Memo1: Tmemo;
Edit1: Tedit;
Memo2: Tmemo;
Memo3: Tmemo;
Button1: Tbutton;
Label1: Tlabel;
Label2: Tlabel;
Label3: Tlabel;
Button2: Tbutton;
Button3: Tbutton;
Button4: Tbutton;
procedure Button1Click(Sender: Tobject);
procedure Button2Click(Sender: Tobject);
procedure Button3Click(Sender: Tobject);
procedure Button4Click(Sender: Tobject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: Tform1;
x:array [1..30] of integer;
var n,I,p,k:integer;
implementation
{$R *.dfm}
procedure Tform1.Button1Click(Sender: Tobject);
begin
n:=strtoint(edit1.Text);
for i:=1 to n do begin
x[i]:=random(201)-100;
memo2.lines.Add(inttostr(x[i]))
end;
{x[i]:=strtoint(memo1.Lines[i-1]); }
end;
procedure Tform1.Button2Click(Sender: Tobject);
begin
p := n div 2;
for i:= 1 to p do
begin
k := x[i];
x[i]:=x[n+1-i];
x[n+1-i]:=k;
end;
for i:=1 to n do memo3.lines.Add(inttostr(x[i]))
end;
procedure Tform1.Button3Click(Sender: Tobject);
begin
form1.close
end;
procedure Tform1.Button4Click(Sender: Tobject);
begin
memo2.Clear;
memo3.Clear;
edit1.Text:=’’
end;
end.
2. Двумерные массивы.
1. Дан двумерный массив порядка m*m. В каждой строке этого массива заменить диагональный элемент на максимальный элемент этой строки.
unit viz2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
Memo1: TMemo;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var m,i,j,maxi:integer;
a:array [1..30,1..30] of real;
p:real;
begin
m:=strtoint(edit1.Text);
StringGrid1.RowCount:=m;
StringGrid1.ColCount:=m;
StringGrid2.RowCount:=m;
StringGrid2.ColCount:=m;
for i:=1 to m do
for j:=1 to m do
begin
a[i,j]:=random(201)-100;
Stringgrid1.Cells[j-1,i-1]:=floattostr(a[i,j]);
end;
{a[i,j]:=strtofloat(StringGrid1.Cells[j-1, i-1]); }
for i:=1 to m do begin
maxi:=1;
for j:=1 to m do
if a[i,j]>a[i,maxi] then maxi:=j;
for j:=1 to m do
if i=j then a[i,j]:=a[i,maxi]
end;
for i:=1 to m do
for j:=1 to m do
Stringgrid2.Cells[j-1,i-1]:=floattostr(a[i,j]);
end;
end.