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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2007, 09:59   #1
Solny6ko YasnoE
Пользователь
 
Регистрация: 05.05.2007
Сообщений: 31
Восклицание ПОМОГИТЕ ПЕРЕДЕЛАТЬ ПРОГРАММУ ИЗ PASCAL В DELPHI

Суть моей программки: осуществить все возможные перестановки от 1 до N(т.е. введенного пользователем числа)!!!
В принципе я написала ее на Паскале, начала переделывать на Дельфи и ничего не получается....... Результат не вводится...... Может быть вы мне поможете???

uses crt;
var
a:array [1..9] of integer;
b:array [1..9] of integer;
j,i,n: integer;
procedure per (j:integer);
var
i,k: integer;
begin
for i:=1 to n do
if b[i]=0
then begin a[j]:= i;
b[i]:=1;
if j=n
then begin
for k:=1 to n do write (a[k]);
for k:=n+1 to 10 do write (' ');
end
else per(j+1);
b[i]:=0;
end;
end;
begin
writeln ('Vvedite kol-vo elementov ==>');
readln(n);
if (n>9) or (n<1) then exit;
writeln ('Perestanovki ==>');
for i:=1 to n do
b[i]:=0;
per (1);
writeln;
readkey;
end.
Solny6ko YasnoE вне форума Ответить с цитированием
Старый 17.06.2007, 10:37   #2
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Для ввода используй Edit. Например:

procedure TForm1.Button1Click(Sender: TObject);
begin
n:=StrToIntDef(Edit1.Text,0); // 0 присвоится в случае ввода буквы
end;

Для вывода можно много чего испльзовать: Edit, Memo, Label и т.д.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 17.06.2007, 12:40   #3
Viteef
stopfake.org
Участник клуба
 
Регистрация: 03.05.2007
Сообщений: 1,927
По умолчанию

И writeln замени на ShowMessage('');
Viteef вне форума Ответить с цитированием
Старый 17.06.2007, 13:18   #4
Solny6ko YasnoE
Пользователь
 
Регистрация: 05.05.2007
Сообщений: 31
По умолчанию

Cпасибки..... Попробую!!...
Solny6ko YasnoE вне форума Ответить с цитированием
Старый 17.06.2007, 16:15   #5
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Хм... В делфи тоже можно консольки писать, не проще туда вставить? Или именно с формой и кнопочками надо?
zetrix вне форума Ответить с цитированием
Старый 18.06.2007, 10:05   #6
Solny6ko YasnoE
Пользователь
 
Регистрация: 05.05.2007
Сообщений: 31
По умолчанию

Препод докапался.... Объясните каждую строчку!!!!!!! ПЛЗЗЗЗЗЗЗЗЗЗЗЗЗ
uses crt;
var
a:array [1..9] of integer;
b:array [1..9] of integer;
j,i,n: integer;
procedure per (j:integer);
var
i,k: integer;
begin
for i:=1 to n do
if b[i]=0
then begin a[j]:= i;
b[i]:=1;
if j=n
then begin
for k:=1 to n do write (a[k]);
for k:=n+1 to 10 do write (' ');
end
else per(j+1);
b[i]:=0;
end;
end;
begin
writeln ('Vvedite kol-vo elementov ==>');
readln(n);
if (n>9) or (n<1) then exit;
writeln ('Perestanovki ==>');
for i:=1 to n do
b[i]:=0;
per (1);
writeln;
readkey;
end.
Solny6ko YasnoE вне форума Ответить с цитированием
Старый 10.08.2007, 20:27   #7
Siber_Dec
 
Регистрация: 10.08.2007
Сообщений: 9
По умолчанию

А что разве не самостоятельная это работа?
В смысле кто автор?
Siber_Dec вне форума Ответить с цитированием
Старый 10.08.2007, 22:01   #8
KORT
Вот я и
Форумчанин
 
Аватар для KORT
 
Регистрация: 07.04.2007
Сообщений: 501
По умолчанию

uses crt; // объявляем модули
var // раздел переменных
a:array [1..9] of integer; // глобальные переменные
b:array [1..9] of integer;
j,i,n: integer;
procedure per (j:integer); // начало процедуры per
var // локальные ппеременные
i,k: integer;
begin
for i:=1 to n do // цикл от 1 до n
if b[i]=0 // если массив b = 0
then begin a[j]:= i; // то массив а присваиваем значение i
b[i]:=1; // массив b = 1
if j=n // если переменная j = n
then begin // то
for k:=1 to n do write (a[k]); // выводим на экран массив а
for k:=n+1 to 10 do write (' '); // выводим на экран пустоту
end
else per(j+1); // иначе процедуру начинаем сначала
b[i]:=0; // массив в=0
end;
end;
begin // начало основной программы
writeln ('Vvedite kol-vo elementov ==>');
readln(n); // вводим количество элементов
if (n>9) or (n<1) then exit; // если n>9 или n<1 то программа прекращает свою работу
writeln ('Perestanovki ==>');
for i:=1 to n do
b[i]:=0;
per (1); // выполняется перестановка
writeln;
readkey;
end.
Исходники программ - http:\\www.kort.3dn.ru
KORT вне форума Ответить с цитированием
Старый 11.08.2007, 10:47   #9
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

Написана прога конечно не ахти. Что касается перевода на Delphi, то просто создать консольное приложение, вставить туда этот код и убрать uses crt и вместо readkey поставить readln
still_alive вне форума Ответить с цитированием
Старый 11.08.2007, 14:17   #10
Siber_Dec
 
Регистрация: 10.08.2007
Сообщений: 9
По умолчанию

А если попробовать в форму запихать
Siber_Dec вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перевести программу из Pascal с использованием компонента Stringgrid в delphi. evrey Компоненты Delphi 4 02.06.2008 18:57
Не могу решить программу в Turbo Pascal помогите пожалуйста! Заранее благодарен... dolbi Помощь студентам 5 01.04.2008 08:26
переделать программу с паскаля на асемблер neee Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 13.12.2007 16:04
Помогите написать программу в PASCAL kitty Помощь студентам 1 05.12.2007 21:14
Нужно переделать код с Delphi на C++ Builder POPOV Помощь студентам 2 12.11.2007 22:51