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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2010, 18:36   #1
St1mkA
Пользователь
 
Регистрация: 04.10.2009
Сообщений: 39
По умолчанию Массив одномерный

В одномерном массиве, состоящем из n вещественных элл-ов:
1.Максимальный элл-т.
2.Сумму элл-ов до последнего положительного.
3.Сжать массив, удалить из неговсе эллементы, модуль которых находится в интервале [a,b].
Скажите как сделать 3 задачу первые 2 знаю как, делать нужно только в Delphi( на паскале нельзя) и не через консоль!!
St1mkA вне форума Ответить с цитированием
Старый 03.03.2010, 19:27   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

функция модуль на делфи так Abs(int) - возвращает число int по модулю

если не хочешь заморачиваться, пиши на мыло. так уж и быть за сотку состряпую

и это,
то, что можно на паскале, можно и на делфи, код на 90% переносим с паскаля на делфи
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 04.03.2010, 07:45   #3
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

1) кидаем на форму 3 компонента edit
1.1 называем их соответственно
eda
edb
edn
2)кидаем 2 компонента stringgrid
2.1 называем их
sgold
sgnew
3) кидаем button
Подготовка окончена приступаем к остальному
процедура Formcreate
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
edn.text:='0';
eda.text:='0';
edb.text:='0';
end;
процедура EdnKeyUp
Код:
procedure TForm1.EdnKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if edn.Text<>'' then
sgold.ColCount:=strtoint(trim(edn.Text))
end;
ну и самая главная процедура Button1Click
Код:
procedure TForm1.Button1Click(Sender: TObject);
var m:array[1..100] of double;
    a,b:double;
    i,n,j:integer;

begin
 n:=sgold.ColCount;
for I := 1 to n do
 m[i]:=strtofloat(sgold.Cells[i-1,0]);
a:=strtofloat(eda.Text);
b:=strtofloat(edb.Text);
   i:=1;
   while i<=n do
   begin
   if (abs(m[i])>=a) and (abs(m[i])<=b)  then
   begin
   for j := i to n - 1 do
     m[j]:=m[j+1];
    n:=n-1;
   end
   else i:=i+1;
   end;
   sgnew.ColCount:=n;

    for I := 1 to n do begin
  sgnew.Cells[i-1,0]:=floattostr(m[i])
   end;
end;
дело за малым осталось
добавить ограничения на ввод у editoв
для этого подправьте вот эту процедурку из delphiworld
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = ',' then
    Key := DecimalSeparator; // запятую заменяем на разделитель для числа

  if Key = '.' then
    Key := DecimalSeparator; // точку заменяем на сепаратор (на всякий случай)

  if not (Key in ['0'..'9','-',DecimalSeparator,#8,#13]) // символы которые пропускаются
    or ((Key = DecimalSeparator) // все цифры знак минус разделитель
    and (POS (DecimalSeparator, Edit1.Text) > 0)) // запрет на второй сепаратор
    or ((Key = '-') and (POS ('-', Edit1.Text) > 0)) // запрет на второй минус
    or ((Key = '-') and (Edit1.SelStart <> 0)) // запрет на минус не вначале цифры
    then // (можно и предыдущей строчки но так лучше для понимания)
  begin
      Key := #0; // запрещенный символ заменяем нулем
      MessageBeep (MB_OK); // биб в спикир
  end;
end;
и ваша задачка готова)
Google2010 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Одномерный массив AlexPavL Помощь студентам 0 23.12.2009 19:00
Одномерный массив Max_Grinyuk Помощь студентам 16 16.12.2009 17:27
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
одномерный массив Sjava Помощь студентам 7 02.11.2009 10:01