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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2011, 13:26   #1
Bianca
Новичок
Джуниор
 
Регистрация: 05.06.2011
Сообщений: 3
По умолчанию Перевести код из Delphi в Pascal

Помогите пожалуйста

Код:
unit Unit4;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, StdCtrls;

type

TForm4 = class(TForm)

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Edit1: TEdit;

Label1: TLabel;

Edit2: TEdit;

Label5: TLabel;

Edit3: TEdit;

Button1: TButton;

Button2: TButton;

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

Edit4: TEdit;

Edit5: TEdit;

Label6: TLabel;

Label7: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);

var i,j,n,p,q:integer;

mas1,mas,mas2:array[1..100,1..100] of integer;

a,b:array[1..100] of integer;

begin

n:=strtoint(edit1.Text);

p:=strtoint(edit2.text);

q:=strtoint(edit3.Text);

edit4.Text:='';

edit5.text:='';

randomize;

for i:=1 to n+1 do

begin

a[i]:=random(98)+1; // формируем значения первого числового ряда

edit4.Text:=edit4.Text+inttostr(a[i])+' '; // выводим значения первого числового ряда

b[i]:=random(98)+1; // формируем значения второго числового ряда

edit5.Text:=edit5.Text+inttostr(b[i])+' '; // выводим значения второго числового ряда

end;

// задаем количество сток и столбцов таблиц

stringgrid1.ColCount:=n+2;

stringgrid1.RowCount:=n+1;

stringgrid2.ColCount:=n+3;

stringgrid2.RowCount:=n+2;

// нумеруем строки и столбцы таблиц

for i:=1 to n do

stringgrid1.Cells[0,i]:=inttostr(i);

for i:=1 to n+1 do

stringgrid1.Cells[i,0]:=inttostr(i);

for i:=1 to n+1 do

stringgrid2.Cells[0,i]:=inttostr(i);

for i:=1 to n+2 do

stringgrid2.Cells[i,0]:=inttostr(i);

for i:=1 to n do

for j:=1 to n+1 do

begin

mas1[i,j]:=random(98)+1; // формируем значения исходного массива

stringgrid1.Cells[j,i]:=inttostr(mas1[i,j]); // выводим значения исходного массива в таблицу

end;

// формируем промежуточный массив вставкой строки в исходный массив

for i:=1 to p do

for j:=1 to n+1 do

mas[i,j]:=mas1[i,j];

for j:=1 to n+1 do

mas[p+1,j]:=a[j];

for i:=p+2 to n+1 do

for j:=1 to n+1 do

mas[i,j]:=mas1[i-1,j];

// формируем конечный массив вставкой столбца в промежуточный массив

for j:=1 to q do

for i:=1 to n+1 do

mas2[i,j]:=mas[i,j];

for i:=1 to n+1 do

mas2[i,q+1]:=b[i];

for j:=q+2 to n+2 do

for i:=1 to n+1 do

mas2[i,j]:=mas[i,j-1];

for i:=1 to n+1 do

for j:=1 to n+2 do

stringgrid2.Cells[j,i]:=inttostr(mas2[i,j]); // выводим в таблицу конечный массив

end;

procedure TForm4.Button2Click(Sender: TObject);

begin

form4.close; // закрывает форму задания №2

end;

end.

Последний раз редактировалось Stilet; 05.06.2011 в 14:19.
Bianca вне форума Ответить с цитированием
Старый 05.06.2011, 14:02   #2
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Цитата:
Delphi в Pascal
Неблагодарное это дело.

Гораздо проще будет с нуля такую программу написать. Какое задание?
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 05.06.2011, 14:04   #3
Bianca
Новичок
Джуниор
 
Регистрация: 05.06.2011
Сообщений: 3
По умолчанию

Задание такое

Даны матрица А(n×(n+1)) и два одномерных массива X=(x1, ..., xn+1) и
Y=(y1, ..., yn+1), а также натуральные числа р, q. Образовать новую матрицу
размера (n+1)×(n+2) вставкой после строки с номером р матрицы А новой
строки с элементами x1,x2, ..., xn+1 и последующей вставкой после столбца с
номером q нового столбца с элементами y1,y2, ..., yn+1.

К сожалению, с массивами у меня очень туго...
Bianca вне форума Ответить с цитированием
Старый 05.06.2011, 14:24   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Неблагодарное это дело.
В данном случае все не так плохо.
Код:
var i,j,n,p,q:integer;
mas1,mas,mas2:array[1..100,1..100] of integer;
a,b:array[1..100] of integer;

begin
n:=20;
p:=5;
q:=10;

randomize;
for i:=1 to n+1 do begin a[i]:=random(98)+1; write(a[i]:5);end;
for i:=1 to n+1 do begin b[i]:=random(98)+1; write(b[i]:5);end;
writeln;
for i:=1 to n do write(i:5);
writeln;
for i:=1 to n do begin write(i:5);
 for j:=1 to n+1 do begin
  mas1[i,j]:=random(98)+1; // формируем значения исходного массива
  write(mas1[i,j]:5); // выводим значения исходного массива в таблицу
 end;
end;
writeln;   writeln;
for i:=1 to p do for j:=1 to n+1 do mas[i,j]:=mas1[i,j];
for j:=1 to n+1 do mas[p+1,j]:=a[j];
for i:=p+2 to n+1 do
 for j:=1 to n+1 do mas[i,j]:=mas1[i-1,j];
 writeln;
for j:=1 to q do for i:=1 to n+1 do mas2[i,j]:=mas[i,j];
for i:=1 to n+1 do mas2[i,q+1]:=b[i];
for j:=q+2 to n+2 do for i:=1 to n+1 do mas2[i,j]:=mas[i,j-1];
for i:=1 to n+1 do for j:=1 to n+2 do
 Write(mas2[i,j]:5); // выводим в таблицу конечный массив

readln;
end.
Пойдет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.06.2011, 14:26   #5
Bianca
Новичок
Джуниор
 
Регистрация: 05.06.2011
Сообщений: 3
По умолчанию

Вполне
Благодарю всех за помощь
Bianca вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графика (стрельба из пушки по цели) перевести код с Турбопаскаля в Pascal ABC DANTES68 Помощь студентам 0 07.04.2011 22:27
перевести код с Pascal на C++ panic_a Помощь студентам 2 22.12.2010 00:37
Перевести код с Pascal в C++ gigaman Общие вопросы C/C++ 1 26.03.2008 12:18