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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.12.2011, 15:26   #1
Foxx
Форумчанин
 
Регистрация: 23.07.2009
Сообщений: 181
По умолчанию Программа

Здравствуйте! скачал delphi 7. Есть программа на Pascal ABC, в силу не знания делфи и ограниченности времени прошу у Вас помощи. Нужно написать ее на делфи.
Код:
program Work_4;
  type vector=array[1..100] of integer;
  var vr,n,i,a,b:integer;
               h:vector;
             dev:text;
            name:string;
              ga:real;

procedure part_1(vr,n,a,b:integer; var h:vector);
  var i:integer;
begin
  if vr<>1 then randomize;
  for i:=1 to n do h[i]:=a+round((b-a)*random(100)/100);
end;

procedure part_2(n:integer; h:vector; var ga:real);
  var i,k:integer;
        s:real;
begin
  s:=0;
  k:=0;
  for i:=1 to n  div 4 do
   If ((a/2<=h[i]) and (h[i]<=b/2)) and (h[i]<>0) then
    begin
    s:=s+1/h[i];
    k:=k+1;
    end;
  if k>0 then
   if s<>0 then ga:=k/s
           else ga:=0
         else ga:=0;
end;

procedure part_3(n,a,b:integer; h:vector);
  var i,k,m:integer;
begin
  m:=-maxint; { Наибольшее значение переменной целого типа в Паскале = 32767 }
  k:=0;
  i:=2*n div 3+1;
  while i<=n do
   begin
    if abs(h[i])<m then
     begin
     m:=abs(h[i]);
     k:=i;
     end;
    i:=i+2;
   end;
  if k>0 then
   begin
   writeln(dev,'Наименьшее по модулю значение M = ',m:3);
   write(dev,'имеют H[',k:2,'] = ',h[k]:2);
   i:=k+1;
   while i<=n do
    begin
    if abs(h[i])=m then write(dev,'    H[',i:2,'] = ',h[i]:2);
    i:=i+2;
    end;
   writeln(dev);
   end
         else writeln(dev,'Нет нужных элементов');
end;

procedure part_4(n:integer; var h:vector);
  var i,j,k,buf:integer;
begin
  for i:=1 to n div 3-1 do
   if h[i]<0 then
    begin
    k:=i;
    for j:=i+1 to n div 3  do
     if h[j]<0 then
      if h[k]<h[j] then k:=j;
    buf:=h[i];
    h[i]:=h[k];
    h[k]:=buf;
    end;
end;

begin
  writeln('для вывода на экран введите con');
  writeln('для вывода на принтер введите prn');
  write('для вывода в файл введите его адрес: ');
  readln(name);
  assign(dev,name);
  rewrite(dev);
  write('введите вариант расчета Vr => ');
  readln(vr);
  if vr=0 then
   begin
   n:=20; a:=-3; b:=4;
   h[1] := 1; h[2] := 0; h[3] :=-3; h[4] := 2; h[5] := 0;
   h[6] :=-3; h[7] := 4; h[8] := 3; h[9] := 2; h[10]:= 0;
   h[11]:= 0; h[12]:= 4; h[13]:= 0; h[14]:=-2; h[15]:=-1;
   h[16]:=-1; h[17]:= 1; h[18]:= 4; h[19]:= 2; h[20]:= 3;
   end
          else
   begin
   write('Введите n,a,b => '); readln(n,a,b);
   part_1(Vr,n,a,b,h);
   end;
  writeln(dev,'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
  writeln(dev,'Исходный массив:');
  for i:=1 to n do
   begin
   write(dev,h[i]:3);
   if i = n div 2 then writeln(dev);
   end;
  writeln(dev);
  writeln(dev,'++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
  part_2(n,h,ga);
  writeln(dev,'Среднегармоническое Ga=',Ga:7:4);
  writeln(dev,'++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
  part_3(n,a,b,h);
  writeln(dev,'++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
  part_4(n,h);
  writeln(dev,'Упорядоченный массив:');
  for i:=1 to n do
   begin
   write(dev,h[i]:3);
   if i = n div 2 then writeln(dev);
   end;
  writeln(dev);
  writeln(dev,'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
  close(dev);
end.

Последний раз редактировалось Foxx; 18.12.2011 в 15:28.
Foxx вне форума
Старый 18.12.2011, 18:00   #2
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Платите и Вам напишут
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума
Старый 18.12.2011, 18:14   #3
Foxx
Форумчанин
 
Регистрация: 23.07.2009
Сообщений: 181
По умолчанию

какие операторы на что заменить. кто разбирается в дельфи минутное дело. программа уже готова, решать ее не надо. нужны знания в дельфе и только. другой вопрос, если требовалось бы решить задачу.
Foxx вне форума
Старый 18.12.2011, 19:35   #4
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

вставь свой текст программы в блокнот, сохрани как dpr файл и запусти в делфи. Это консольная прожка, скомпилируется. Паскаль един для всех.
"ковыряю изнутри" (с)
3D Hunter вне форума
Старый 18.12.2011, 19:39   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
program Work_4;

{$APPTYPE CONSOLE}

  type vector=array[1..100] of integer;
  var vr,n,i,a,b:integer;
               h:vector;
             dev:text;
            name:string;
              ga:real;

procedure part_1(vr,n,a,b:integer; var h:vector);
  var i:integer;
begin
  if vr<>1 then randomize;
  for i:=1 to n do h[i]:=a+round((b-a)*random(100)/100);
end;

procedure part_2(n:integer; h:vector; var ga:real);
  var i,k:integer;
        s:real;
begin
  s:=0;
  k:=0;
  for i:=1 to n  div 4 do
   If ((a/2<=h[i]) and (h[i]<=b/2)) and (h[i]<>0) then
    begin
    s:=s+1/h[i];
    k:=k+1;
    end;
  if k>0 then
   if s<>0 then ga:=k/s
           else ga:=0
         else ga:=0;
end;

procedure part_3(n,a,b:integer; h:vector);
  var i,k,m:integer;
begin
  m:=-maxint; { Наибольшее значение переменной целого типа в Паскале = 32767 }
  k:=0;
  i:=2*n div 3+1;
  while i<=n do
   begin
    if abs(h[i])<m then
     begin
     m:=abs(h[i]);
     k:=i;
     end;
    i:=i+2;
   end;
  if k>0 then
   begin
   writeln(dev,'Наименьшее по модулю значение M = ',m:3);
   write(dev,'имеют H[',k:2,'] = ',h[k]:2);
   i:=k+1;
   while i<=n do
    begin
    if abs(h[i])=m then write(dev,'    H[',i:2,'] = ',h[i]:2);
    i:=i+2;
    end;
   writeln(dev);
   end
         else writeln(dev,'Нет нужных элементов');
end;

procedure part_4(n:integer; var h:vector);
  var i,j,k,buf:integer;
begin
  for i:=1 to n div 3-1 do
   if h[i]<0 then
    begin
    k:=i;
    for j:=i+1 to n div 3  do
     if h[j]<0 then
      if h[k]<h[j] then k:=j;
    buf:=h[i];
    h[i]:=h[k];
    h[k]:=buf;
    end;
end;

begin
  writeln('для вывода на экран введите con');
  writeln('для вывода на принтер введите prn');
  write('для вывода в файл введите его адрес: ');
  readln(name);
  assign(dev,name);
  rewrite(dev);
  write('введите вариант расчета Vr => ');
  readln(vr);
  if vr=0 then
   begin
   n:=20; a:=-3; b:=4;
   h[1] := 1; h[2] := 0; h[3] :=-3; h[4] := 2; h[5] := 0;
   h[6] :=-3; h[7] := 4; h[8] := 3; h[9] := 2; h[10]:= 0;
   h[11]:= 0; h[12]:= 4; h[13]:= 0; h[14]:=-2; h[15]:=-1;
   h[16]:=-1; h[17]:= 1; h[18]:= 4; h[19]:= 2; h[20]:= 3;
   end
          else
   begin
   write('Введите n,a,b => '); readln(n,a,b);
   part_1(Vr,n,a,b,h);
   end;
  writeln(dev,'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
  writeln(dev,'Исходный массив:');
  for i:=1 to n do
   begin
   write(dev,h[i]:3);
   if i = n div 2 then writeln(dev);
   end;
  writeln(dev);
  writeln(dev,'++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
  part_2(n,h,ga);
  writeln(dev,'Среднегармоническое Ga=',Ga:7:4);
  writeln(dev,'++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
  part_3(n,a,b,h);
  writeln(dev,'++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
  part_4(n,h);
  writeln(dev,'Упорядоченный массив:');
  for i:=1 to n do
   begin
   write(dev,h[i]:3);
   if i = n div 2 then writeln(dev);
   end;
  writeln(dev);
  writeln(dev,'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
  close(dev);
end.
третья строчка, все изменения.
если бы создали консольный проект сами бы заметили.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 18.12.2011, 20:01   #6
Foxx
Форумчанин
 
Регистрация: 23.07.2009
Сообщений: 181
По умолчанию

Спасибо всем. Возникает ошибка. Зашел File > New > Other > Console Application. Вставил текст. Затем F9.
Изображения
Тип файла: jpg прога.jpg (9.6 Кб, 151 просмотров)

Последний раз редактировалось Foxx; 18.12.2011 в 20:12.
Foxx вне форума
Старый 18.12.2011, 20:11   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ошибку под микроскопом высматривать?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 18.12.2011, 20:13   #8
Foxx
Форумчанин
 
Регистрация: 23.07.2009
Сообщений: 181
По умолчанию

Залил в архив фотку.
Вложения
Тип файла: rar прога.rar (85.3 Кб, 13 просмотров)
Foxx вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа с применением записей и программа с применение множеств smert99 Помощь студентам 0 16.06.2011 23:14
Программа открыается если есть другая программа. bookkc Паскаль, Turbo Pascal, PascalABC.NET 12 14.10.2009 20:09
[PASCAL]Программа создания файла, программа обработки файла Виколяшка Фриланс 7 23.09.2009 17:38
Программа создания файла, программа обработки файла [PASCAL] Виколяшка Помощь студентам 1 22.09.2009 22:56