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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2017, 21:23   #1
SuweR
Пользователь
 
Регистрация: 11.05.2017
Сообщений: 17
По умолчанию Задание в Delphi Borland 7 - одномерный массив

У меня есть программа с заданиями:
Сколько раз встречается в одномерном массиве макс и мин элементы;
Сколько раз изменяется знак при прохождении последовательности;
является ли последовательность строго монотонной-
и всё это сделать через рандом числа.

Я незнаю как сделать программу.
Вот всё что есть:
Код:
var
min,max,i,j,n,m,q,Cnt:integer;
Arr : array of Extended;
a:array[1..50] of integer;
b:array[1..50] of integer;
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
n:=strtoint(SpinEdit1.Text);
stringgrid1.ColCount:=n;
end;

procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
m:=strtoint(SpinEdit2.Text);
stringgrid1.RowCount:=m;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
n:=strtoint(SpinEdit1.Text);
stringgrid1.ColCount:=n;
m:=strtoint(SpinEdit1.Text);
stringgrid1.RowCount:=m;
for i:=1 to n do
for j:=1 to n do
begin
for I := 0 to StringGrid1.RowCount-1 do
StringGrid1.Cells[i,0]:=inttostr(-50+random(101));
for i:=1 to n do
a[i]:=StrToInt(StringGrid1.Cells[i-1,0]);
min:=1;
for i:=2 to n do
if a[i]<a[min] then min:=i ;
Label1.Caption:='' + IntToStr(a[min])
end;
max:=1;
for i:=2 to n do
if a[i]>a[max] then max:=i ;
Label4.Caption:='' + IntToStr(a[max]);
end;


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 11.05.2017 в 23:18.
SuweR вне форума Ответить с цитированием
Старый 12.05.2017, 08:58   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Забавно... Есть программа, не имеющая малейшего отношения к заданию (при чем тут StringGrid ?), нужно ее приспособить к решению задачи. "У меня есть дверца от холодильника, нужно сделать из нее вентилятор к Запорожцу". Или это: "Напишите мне программу по заданию, а эту можете взять себе " ?
digitalis вне форума Ответить с цитированием
Старый 12.05.2017, 09:34   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Есть программа, не имеющая малейшего отношения к заданию (при чем тут StringGrid ?)
Вы не правы.
Здесь StringGrid используется для визуализации данных - показывает содержимое массива.
размер массива задаётся пользователем.
Кстати, массив всегда квадратный (т.к. n и m берутся из одного и того же контрола SpinEdit1.Text)

Также реализован поиск (и отображение в Label) минимального и максимального значений.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.05.2017, 09:56   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Массив одномерный, и StringGrid как вроде бы чересчур - при чем здесь матрица к вектору ? С таким же успехом я мог бы пытаться выполнить FFT методом Рунге-Кутта. С какого боку тут Arr : array of Extended;, нигде не используемый ? Где рандомное заполнение? И в конце концов, о целочисленном векторе или real речь идет ? Таких где? почему? - до бесконечности.
Ну хотя если подняться до невообразимых высот обобщения, придется признать, что прога имеет отношение к заданию: ведь begin с end' ом наличествуют И Serge_Bliznykov не придерется - а где ваши попытки/наработки
Впрочем, скоро Неверов напишет решение - посмотрим, насколько оно будет отличаться от "образца" .

Последний раз редактировалось digitalis; 12.05.2017 в 10:10.
digitalis вне форума Ответить с цитированием
Старый 12.05.2017, 10:05   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Массив одномерный, и StringGrid как вроде бы чересчур - при чем здесь матрица к вектору ?
ага.
вот тут я с Вами согласен.
TC нашёл где-то программу, где организовать поиск в матрице (хотя у него одномерный массив) и выдал её за свою.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.05.2017, 08:10   #6
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var i,len,min,max,ki,ka:integer;
    p:array of integer;
begin
   Randomize;
   len:=5+Random(10);
   SetLength(p,len);
   Label1.Caption:='';
   For i:=0 to len-1 do
   begin
      p[i]:=-15+Random(30);
      Label1.Caption:=Label1.Caption+IntToStr(p[i])+'  ';
   end;
   min:=p[0];
   max:=p[0];
   For i:=1 to len-1 do
   begin
      If min>p[i] then
         min:=p[i];
      If max<p[i] then
         max:=p[i];
   end;
   ki:=0;
   ka:=0;
   For i:=0 to len-1 do
   begin
      If min=p[i] then
         ki:=ki+1;
      If max=p[i] then
         ka:=ka+1;
   end;
   Label2.Caption:=Format('min = %d - %d%smax = %d - %d',[min,ki,#13#10,max,ka]);
   ki:=0;
   For i:=0 to len-2 do
      If p[i]*p[i+1]<0 then
         ki:=ki+1;
   Label3.Caption:='znak - '+IntToStr(ki);
   ki:=0;
   For i:=0 to len-2 do
   begin
      If p[i]<p[i+1] then
         If ki=0 then
            ki:=1 else//vozrastaet
            If ki=-1 then
               ki:=2;//ne monotonna
      If p[i]>p[i+1] then
         If ki=0 then
            ki:=-1 else//ubyvaet
            If ki=1 then
               ki:=2;//ne monotonna
   end;
   Case ki of
   -1: Label4.Caption:='ubyvaet';
   1: Label4.Caption:='vozrastaet';
   2: Label4.Caption:='ne monotonna';
   else
      Label4.Caption:='ERROR';
   end;
end;
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 14.05.2017, 10:01   #7
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Отмечается неодолимое пристрастие к Label: в него и тексты, и графику. Ну это я так, мимоходом... Сам предпочитаю визуализировать данные в Memo, а картинки - в Image, используя Label как статические надписи, как на панели у моего осциллографа С1-65А Ну что ж, всякому овощу - свой фрукт.

Последний раз редактировалось digitalis; 14.05.2017 в 10:03.
digitalis вне форума Ответить с цитированием
Старый 19.05.2017, 09:04   #8
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

А вот прикиньте, ему консольное приложение надо. А Вы ему лабелами да едитами...

:D

Сори за оффтоп, но чего так сплошным кодом, без функций?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 23.05.2017, 06:45   #9
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
А Вы ему лабелами да едитами...
А у автора темы StringGrid1, SpinEdit1 встречаются...
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задание по Qbasic.Одномерный массив. Prey47 Помощь студентам 0 26.06.2014 16:12
Дан одномерный массив, сформировать новый массив по заданному правилу {Delphi} Nickolai47 Помощь студентам 5 16.12.2012 14:51
задание про одномерный массив! GreenMan Паскаль, Turbo Pascal, PascalABC.NET 2 16.02.2012 17:48
Одномерный массив [Borland C++] conqueror Помощь студентам 42 04.03.2011 00:19