Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

ItsJustMe

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  Classes, SysUtils, Math;
 
function IntCustomSort(List: TStringList; Index1, Index2: Integer) : Integer;
var
  i1, i2: Integer;
begin
  i1 := Integer(List.Objects[Index1]);
  i2 := Integer(List.Objects[Index2]);
  Result := 0;
  if i1 < i2 then
    Result := -1
  else if i1 > i2 then
    Result := 1
end;
var
  tn1, tn, g, eps, e1: Double;
  i, v, j, vn: Integer;
  lst: TStringList;
begin
  Randomize;
  Write('Enter target value: ');
  Readln(tn1);
  Write('Array: ');
  g := 1;
  j := 0;
  vn := 0;
  eps := 1e38;
  tn := Abs(tn1);
  lst := TStringList.Create;
  for i := 0 to 9 do
  begin
    v := Random(21) - 10;
    Write(v, ' ');
    if v > 0 then
    begin
      e1 := Abs(tn - v);
      if e1 < eps then
      begin
        eps := e1;
        vn := v;
      end;
    end;
  end;
  for i := 10 to 19 do
  begin
    v := Random(21) - 10;
    Write(v, ' ');
    if v > 0 then
    begin
      e1 := Abs(tn - v);
      if e1 < eps then
      begin
        eps := e1;
        vn := v;
      end;
    end;
    if v mod 2 = 0 then
    begin
      g := g * v;
      inc(j);
    end;
  end;
  for i := 20 to 38 do
  begin
    v := Random(21) - 10;
    Write(v, ' ');
    if v > 0 then
    begin
      lst.AddObject(IntToStr(v), TObject(v));
      e1 := Abs(tn - v);
      if e1 < eps then
      begin
        eps := e1;
        vn := v;
      end;
    end;
  end;
  Writeln;
  Writeln('Value of the closest element to an absolute value of ', tn1, ' is ', vn);
  try
    g := Power(g, 1 / j);
  except
    g := 0
  end;
  if g = 0 then
    Writeln('Gn of second quarter can not be calculated')
  else
    Writeln('Gn of second quarter is ', g);
  lst.CustomSort(IntCustomSort);
  Write('Sorted second half of the Array: ');
  for i := 0 to lst.Count - 1 do
    Write(lst[i], ' ');
  lst.Free;
  Writeln;
end.

Всего записей: 2028 | Зарегистр. 02-09-2005 | Отправлено: 02:53 06-11-2010
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru