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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2015, 19:59   #1
podjik
Новичок
Джуниор
 
Регистрация: 19.04.2015
Сообщений: 2
По умолчанию Здравствуйте, помогите сделать Блок-Схему программы

вообщем вот код программы, никогда не делал, сделайте мне пожалуйсто, буду благодарен:
Код:
procedure TForm1.Button1Click(Sender: TObject);
 const m=6;
      n=9;
var
  Form1: TForm1;
  a:array[1..m,1..n] of real;
  i,j:integer;
begin
randomize;
for i:=1 to m do
for j:=1 to n do
 begin
  a[i,j]:=20*random;           //вещественные числа (0,0..20,0)
 StringGrid1.Cells[j-1,i-1]:=floattostrf(a[i,j],ffFixed,0,2);
 end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var i,j,imn,imx:integer;
    mn,mx,t:real;
begin
mn:=a[1,1];    //пока минимальный и масимальны первый элемент
imn:=1;
mx:=a[1,1];
imx:=1;
for i:=1 to m do
for j:=1 to n do
 begin                  //ищем минимальный
  if a[i,j]<mn then             //номер строки
   begin
    mn:=a[i,j];
    imn:=i
   end;
  if a[i,j]>mx then   //ищем максимальный
   begin
    mx:=a[i,j];
    imx:=i        //номер строки
   end;
 end;
Edit1.Text:='Минимальный элемент='+floattostrf(mn,ffFixed,0,2)+
            ' в строке '+inttostr(imn);
Edit2.Text:='Максимальный элемент='+floattostrf(mx,ffFixed,0,2)+
            ' в столбце '+inttostr(imx);
if imn=imx then ShowMessage('Минимальный и максимальный в одной строке, обмена нет')
else
 begin
  for j:=1 to n do
   begin                   //все элементы строк  imn,imx обмениваем местами
    t:=a[imn,j];
    a[imn,j]:=a[imx,j];
    a[imx,j]:=t;
   end;
  for i:=1 to m do
  for j:=1 to n do
  StringGrid1.Cells[j-1,i-1]:=floattostrf(a[i,j],ffFixed,0,2);
 end;
end;
end.
podjik вне форума Ответить с цитированием
Старый 19.04.2015, 21:40   #2
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Сделать или объяснить как это делается?
Artsiom вне форума Ответить с цитированием
Старый 19.04.2015, 22:40   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
сделайте мне пожалуйсто
коллективно?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 20.04.2015, 03:53   #4
podjik
Новичок
Джуниор
 
Регистрация: 19.04.2015
Сообщений: 2
По умолчанию

Ну хотя бы объясните как делать, я сам сделаю)
podjik вне форума Ответить с цитированием
Старый 20.04.2015, 06:23   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Скачиваешь программку, аналогичную DiamFC и она тебе строит решение. Его нужно перерисовать в соответствии с требованиями, так как я еще ни одной не встречал, которая бы соблюдала ГОСТы. Сам код конечно жесть. В обработчиках кнопок нужно ставить в основном код, отвечающий за работу с юзером, все обсчеты должны выполняться в отдельных, независимых от формы функциях/процедурах.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 20.04.2015, 15:09   #6
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
нужно ставить в основном код, отвечающий за работу с юзером, все обсчеты должны выполняться в отдельных, независимых от формы функциях/процедурах.
Почему?
Какая разница или код будет такой:
Код:
procedure ButtonClick();
begin
 //Тут куча кода
end;
Или такой:
Код:
function ResultBC(....) ....;
begin
 //Тут куча кода
end;

procedure ButtonClick();
begin
 ResultBC(....); :)
end;
Artsiom вне форума Ответить с цитированием
Старый 20.04.2015, 15:15   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Потому что интерфейс надо отделять от реализации. А если завтра вы на другую кнопку захотите перенести, а если по прерыванию таймера обрабатывать соберетесь? Копи-паста кусками?
p51x вне форума Ответить с цитированием
Старый 20.04.2015, 15:18   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Потому что не надо смешивать UI и бизнес-логику.

А если не только на кнопке он понадобится?
Или тесты?
Ну и вообще сложнее так разбираться в коде если это не хеллоу ворд на 5 строк.

И если "куча кода", то вероятно это неправильная функция и надо отрефакторить и выделить из нее что-то в отдельные функции/классы и т.д.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.04.2015, 15:28   #9
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

А если код при этом увеличится, эдак раза в 1,5?
Artsiom вне форума Ответить с цитированием
Старый 20.04.2015, 15:32   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну, пиши так тогда. И заодно пустые строки нигде не оставляй, и все блоки циклов и if-ов старайся ужать в одну строку, и переменным давай максимально короткие имена, лучше однобуквенные, и старайся не плодить переменные, переиспользуй одну и ту же переменную везде, где требуется переменная такого типа.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 20.04.2015 в 15:39.
Alex11223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите сделать блок-схему! Марфатри Помощь студентам 0 23.11.2014 15:53
помогите сделать блок-схему winston07 Помощь студентам 1 30.11.2013 11:19
для программы сделать блок-схему 4еловек-молекула Паскаль, Turbo Pascal, PascalABC.NET 1 16.12.2012 17:44
Помогите сделать блок схему! Лёха Паскаль, Turbo Pascal, PascalABC.NET 4 24.01.2011 19:32