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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2009, 22:31   #1
VeseloffS
Пользователь
 
Аватар для VeseloffS
 
Регистрация: 02.06.2009
Сообщений: 20
По умолчанию Определить максимальное по абсолютному значению число

Дана непустая последовательность различных натуральных чисел, за которой следует 0. Определить максимальное по абсолютному значению число в данной последовательности.

Вот то что у меня получилось, как сделать чтоб числа считывались из строки, а разделялись числа запятой. Например: 1,2,3,4,5,0

Код:
procedure TForm1.Button1Click(Sender: TObject);
const
size=5;
var
A:array[0..size] of integer;
i: integer;
max:integer;

begin

for i:=1 to size do
A[i]:=Strtoint(Stringgrid1.Cells[i-1,0]);
max:=1;
for i:=2 to size do
if abs(A[i])>abs(A[max]) then
max:=i;
label1.caption:='Максимальный элемент:'+inttostr(A[max])+#13+'Порядковый номер:'
+inttostr(max);
end;

Последний раз редактировалось Stilet; 09.06.2009 в 12:44.
VeseloffS вне форума Ответить с цитированием
Старый 08.06.2009, 00:05   #2
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Код:
procedure TFrmMain.Button1Click(Sender: TObject);
const
  size=5;
var
  A, i, max, Ind : integer;
begin
  max := 0;
  for i := 1 to size do begin
    A := Strtoint(Stringgrid1.Cells[i-1,0]);
    if abs(A) > max then begin
       max := abs(A);
       Ind := i;
     end;
  end;
  label1.caption:='Максимальный элемент:'+inttostr(A)+#13+'Порядковый номер:' +inttostr(Ind);
end;
Цитата:
как сделать чтоб числа считывались из строки, а разделялись числа запятой. Например: 1,2,3,4,5,0
А эта фраза к чему относится? В коде упоминается только StringGrid.
Скандербег вне форума Ответить с цитированием
Старый 08.06.2009, 00:19   #3
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Код:
var
  StartS, EndS: String;
  i: Integer;
begin
  StartS := Edit.Text;
  EndS := '';
  for i := 1 to Length(StartS) do
    if i <> Lengh(StartS) then
      EndS := EndS + StartS[i] + ','
        else
           EndS := EndS + Start[i];
end;
или
Код:
var
  StartS: String;
  i, n: Integer;
begin
  StartS := Edit1.Text;
  n := 1;
  for i := 1 to Length(StartS) - 1 do
  begin
    Insert(',', StartS, i + n);
    Inc(n);
  end;
Evgeniy26 вне форума Ответить с цитированием
Старый 08.06.2009, 00:42   #4
VeseloffS
Пользователь
 
Аватар для VeseloffS
 
Регистрация: 02.06.2009
Сообщений: 20
По умолчанию

как сделать чтоб числа считывались из строки, а разделялись числа запятой. Например: 1,2,3,4,5,0
А эта фраза к чему относится? В коде упоминается только StringGrid.

Имеется в виду чтоб числа брались из Edit. То есть тоже самое как в моем коде, только количество чисел не было ограниченно ячейками массива, а вводилось в поле Edit. А разделялись числа ","
VeseloffS вне форума Ответить с цитированием
Старый 08.06.2009, 01:31   #5
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Чем вам мой код не подходит?
Evgeniy26 вне форума Ответить с цитированием
Старый 08.06.2009, 01:38   #6
VeseloffS
Пользователь
 
Аватар для VeseloffS
 
Регистрация: 02.06.2009
Сообщений: 20
По умолчанию

Просто не совсем понимаю куда его вставлять... Можно пожалуйста написать его сразу интегрировано в мой код.
VeseloffS вне форума Ответить с цитированием
Старый 08.06.2009, 01:48   #7
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

дак вы вводите в edit цифры через запятую и вам надо разбить эти числа?

Последний раз редактировалось Evgeniy26; 08.06.2009 в 02:01.
Evgeniy26 вне форума Ответить с цитированием
Старый 08.06.2009, 02:19   #8
VeseloffS
Пользователь
 
Аватар для VeseloffS
 
Регистрация: 02.06.2009
Сообщений: 20
По умолчанию

Да нужно числа вводить в Edit в формате 6,7,8,0 (последнее 0), а остальное так как в моем коде.
VeseloffS вне форума Ответить с цитированием
Старый 08.06.2009, 02:33   #9
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Код:
const
  size=5;
var
  S: String;
  A, i, max, Ind : integer;
begin
  max := 0;
  S := Edit1.Text;
  for i := 1 to size do
  begin
    if i <> size then
    begin
      A := StrToInt(Copy(S, 1, Pos(',', S) - 1));
      Delete(S, 1, Pos(',', S));
    end else
      A := StrToInt(S);
    if abs(A) > max then begin
       max := abs(A);
       Ind := i;
     end;
  end;
  label1.caption:='Максимальный элемент:'+inttostr(A)+#13+'Порядковый номер:' +inttostr(Ind);
Evgeniy26 вне форума Ответить с цитированием
Старый 08.06.2009, 03:04   #10
VeseloffS
Пользователь
 
Аватар для VeseloffS
 
Регистрация: 02.06.2009
Сообщений: 20
По умолчанию

Ввожу в Edit цифры в формате 5,6,7,8,0 Выводит такую ошибку:
Изображения
Тип файла: jpg Безымянный.jpg (10.9 Кб, 113 просмотров)
VeseloffS вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана матрица символов. Определить строку, в которой максимальное количество букв. SilentM Помощь студентам 9 23.05.2009 14:30
Необходимо определить максимальное значение, хранимое в 2-х массивах и указать сумму элементов массива Игорь777 Помощь студентам 1 29.03.2009 21:14
Определить максимальное/минимальное значение функции y=f(x) astrozombie Помощь студентам 2 16.02.2009 13:52
Найти максимальное число.Паскаль. Karabas Паскаль, Turbo Pascal, PascalABC.NET 2 16.12.2008 21:13
Ввести число N и определить делится ли оно без остатка на число M (VBA) Ivanich Microsoft Office Excel 7 24.04.2008 19:43