Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 28.06.2012, 16:00   #1
}|{eka
Пользователь
 
Регистрация: 01.04.2012
Сообщений: 16
По умолчанию Работа с файлами

Здраствуйте извините что так часто стал обращатся просто не успеваю, подскажите пожалуйста последний раз, я не могу сделать 3 задачи на двумерные массивы с помощью файлов (записать в файл вывести с файла результат вычислений).
Вот условие задач:
1)Дан целочисленный массив В[1..5, 1..5]. Вычислить сумму элементов этого массива, расположенных выше левой диагонали.
2)Задан массив А[1..5,1..6]. Поменять в нем местами первый и последний
столбец.
3)Составьте программу циклической перестановки столбцов двумерного массива К, при которой i-й столбец i+1-м, а последний столбец становится первым.

Вот задачи (с помощью двумерных массивов правильно сделаны но мне нужно переделать в работу с файлами):

1)
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  Grids, StdCtrls, ExtCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Button3: TButton;
    Button4: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    LabeledEdit1: TLabeledEdit;
    LabeledEdit2: TLabeledEdit;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    StringGrid1: TStringGrid;
    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;

implementation

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var b:array[1..5,1..5] of integer;
i,j:integer;
f:textfile;
begin
if form1.OpenDialog1.Execute then
form1.LabeledEdit1.Text:=form1.OpenDialog1.FileName;
assignfile(f,form1.OpenDialog1.FileName);
reset(f);
     for  i:=1 to 5 do
for j:=1 to 5 do
                   begin
                   read(f,b[i,j]);
                   form1.StringGrid1.Cells[i-1,j-1]:=inttostr(b[i,j]);
                   end;
                   closefile(f);
  form1.Button2.Enabled:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if form1.SaveDialog1.Execute then
form1.LabeledEdit2.Text:=form1.SaveDialog1.FileName;
form1.Button4.Enabled:=true;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
form1.Button3.Enabled:=false;
form1.Button2.Enabled:=false;
form1.Label3.Caption:='';
form1.StringGrid1.Clean;
end;

procedure TForm1.Button4Click(Sender: TObject);

var b:array[1..5,1..5] of integer;
i,j:integer;
p:real;
f:textfile;
begin
assignfile(f,form1.LabeledEdit2.Text);
rewrite(f);
for i:=1 to 5 do
 for j:=1 to 5 do
b[i,j]:=strtoint(form1.StringGrid1.Cells[i-1,j-1]);
p:=0;
for i:=1 to 5 do
     begin

    for j:=1 to 5 do

                   begin
                     if i>j then
                     p:=p+b[i,j];
                    end;

end;
form1.Label3.Caption:=floattostr(p);
writeln(f,form1.Label3.Caption);
closefile(f);
end;

initialization
  {$I unit1.lrs}

end.
Помогите пожалуйста, 1 и 2 я в колледже сделал правильно работало как тут напечатал, но когда дома начал делать так же, теперь выходит ошибка, помогите пожалуйста последний раз обращаюсь.

Последний раз редактировалось }|{eka; 28.06.2012 в 18:47.
}|{eka вне форума
Старый 28.06.2012, 16:06   #2
}|{eka
Пользователь
 
Регистрация: 01.04.2012
Сообщений: 16
По умолчанию

2)
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, Spin, Grids, ExtCtrls;

type

{ TForm1 }

TForm1 = class(TForm)
  Button1: TButton;
Button3: TButton;
Button4: TButton;
Button2: TButton;
Label3: TLabel;
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
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;

implementation

{ TForm1 }

procedure TForm1.Button3Click(Sender: TObject);
begin
form1.StringGrid1.Clean;
form1.Button2.Enabled:=false;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
a:array[1..5,1..6] of integer;
i,j:integer;

begin
randomize;
For i:=1 to 5 do
For j:=1 to 6 do
begin

a[i,j]:=random(100);
form1.StringGrid1.Cells[i-1,j-1]:=inttostr(a[i,j]);
end;
form1.Button2.Enabled:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin

end;

procedure TForm1.Button3Click(Sender: TObject);
var a:array[1..5,1..6] of integer; i,j,k:integer;
begin
for i:=1 to 5 do
   for j:= 1 to 6 do
     a[i,j]:=strtoint(form1.StringGrid1.Cells[i-1,j-1]);
for i:=1 to 5 do
begin
k:=a[i,1];
a[i,1]:=a[i,6];
a[i,6]:=k;
end;
for i:=1 to 5 do
for j:= 1 to 6 do
form1.StringGrid2.Cells[i-1,j-1]:=inttostr(a[i,j]);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
form1.StringGrid2.Clean;
form1.Button2.Enabled:=false;
end;



initialization
{$I unit1.lrs}

end.
а 3 вообще даже наработок нет по работе с файлами

3)
Код:
unit Unit1; 

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  Grids, StdCtrls, Spin;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    SpinEdit1: TSpinEdit;
    SpinEdit2: TSpinEdit;
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure SpinEdit1Change(Sender: TObject);
    procedure SpinEdit2Change(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 

var
  Form1: TForm1; 

implementation

var a:array of array of integer;
    m,n:integer;
{ TForm1 }

procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
  form1.StringGrid1.ColCount:=form1.SpinEdit1.Value;
  form1.StringGrid2.ColCount:=form1.SpinEdit1.Value;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;

begin
randomize;
m:=SpinEdit2.Value;
n:=spinEdit1.Value;
Setlength(a,m,n);
StringGrid1.ColCount:=n;
StringGrid1.RowCount:=m;
StringGrid2.ColCount:=n;
StringGrid2.RowCount:=m;
for i:=0 to m-1 do
for j:=0 to n-1 do
 begin
  a[i,j]:=-50+random(100);
  StringGrid1.Cells[j,i]:=inttostr(a[i,j]);
 end;
Button2.Enabled:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
var b:array of integer;
    i,j:integer;
begin
 Setlength(b,m);
 for i:=0 to m-1 do
 b[i]:=a[i,0];
 for j:=0 to n-2 do
 for i:=0 to m-1 do
 a[i,j]:=a[i,j+1];
 for i:=0 to m-1 do
 a[i,n-1]:=b[i];
 for i:=0 to m-1 do
 for j:=0 to n-1 do
 StringGrid2.Cells[j,i]:=inttostr(a[i,j]);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
   form1.StringGrid1.Clean;
   form1.Button2.Enabled:=false;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  form1.StringGrid2.Clean;
  form1.Button2.Enabled:=false;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
     form1.StringGrid1.ColCount:=form1.SpinEdit1.Value;
     form1.StringGrid1.RowCount:=form1.SpinEdit2.Value;
     form1.StringGrid2.ColCount:=form1.SpinEdit1.Value;
     form1.StringGrid2.RowCount:=form1.SpinEdit2.Value;
end;

procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
  form1.StringGrid1.RowCount:=form1.SpinEdit2.Value;
  form1.StringGrid2.RowCount:=form1.SpinEdit2.Value;
end;

initialization
  {$I unit1.lrs}

end.
}|{eka вне форума
Старый 29.06.2012, 15:35   #3
}|{eka
Пользователь
 
Регистрация: 01.04.2012
Сообщений: 16
По умолчанию

Все сам разобрался
}|{eka вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с файлами Poma][a Паскаль, Turbo Pascal, PascalABC.NET 2 06.04.2012 12:40
Работа с файлами в С++ Speakon Общие вопросы C/C++ 3 20.11.2011 23:31
Работа с файлами stas135642 Общие вопросы C/C++ 0 14.02.2011 22:17
работа с файлами konfetka13 Паскаль, Turbo Pascal, PascalABC.NET 2 31.05.2010 22:48
работа с файлами Женечка92 Помощь студентам 0 13.05.2010 16:01