![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помоги, люди добрые... [D7, WinXP]
Groof © (2005-11-05 21:52:00)Надо написать консольное приложение для дельфи.С клав-ы вводятся 5 чисел..в динамический массив, и все переменные должны быть динамическими..Надо отсортировать массив, и отобразить изначальный массив, и отсортированный. Только есть минус, мне нельзя писать преподу что-то сложное и заумное..
вот для с++ эту проу я написал. Вот код:
#include
#include
#include
using namespace std;
char* sta(char *ps)
{
char *bf=new char[strlen(ps)];
CharToOem(ps,bf);
return bf;
}
int main ()
{
int *a=new int[5],
*pi=new int,
*h=new int,
*pj=new int;
cout
PZ (2005-11-06 10:21:00) [1]>TUser © (06.11.05 07:46) [1]
Можно несколько упростить Вашу программу: переменная S - ни к чему
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
Count = 5;
var
Ar: array of integer;
procedure PrintArray;
var i: integer;
begin
for i:=0 to High(ar) do
writeln ('Ar['+inttostr(i)+'] = ', Ar[i]);
writeln;
end;
var
i, j, k: integer;
begin
SetLength (Ar, Count);
// вводим числа
writeln;
for i:=0 to Count-1 do
begin
write ('Ar['+inttostr(i)+'] = ');
readln(Ar[i]);
end;
writeln;
writeln ('Source array');
PrintArray;
// пузырек
for i:=Count-1 downto 1 do
for j:=1 to i do
if Ar[j] < Ar[j-1] then //do
begin
k:=Ar[j]; Ar[j]:=Ar[j-1]; Ar[j-1]:=k;
end;
writeln ('Result array');
PrintArray;
Readln;
{ TODO -oUser -cConsole Main : Insert code here }
end.
PZ (2005-11-06 09:24:00) [2]>TUser © (06.11.05 07:46) [1]
if Ar[j] < Ar[j-1] dobegin
if Ar[j] < Ar[j-1] thenbegin
TUser (2005-11-06 07:46:00) [3]program 2prep;
{$apptype console}
uses SysUtils;
const Count = 5;
var Ar: array of integer;
procedure PrintArray;
var i: integer;
begin
for i:=0 to High(ar) do
writeln ('Ar['+inttostr(i)+'] = '+inttostr(Ar[i]));
writeln;
end;
var
i, j,k: integer;
s: string;
begin
SetLength (Ar,Count);
// вводим числа
for i:=0 to Count-1 do begin
write ('Ar['+inttostr(i)+'] = ');
readln(s);
Ar[i]:=StrToInt (s);
end;
writeln;
writeln ('Source array');
PrintArray;
// пузырек
for i:=Count-1 downto 1 do
for j:=1 to i do
if Ar[j] < Ar[j-1] do begin
k:=Ar[j]; Ar[j]:=Ar[j-1]; Ar[j-1]:=k;
end;
writeln ('Result array');
PrintArray;
end.