1 Востаннє редагувалося ProgramBandera (20.02.2019 00:48:17)

Тема: Програма розв'язування задач з фізики! Для учнів 7-го класу.

https://replace.org.ua/uploads/images/6671/84154a5ba1e691fcfbd94c76a4e945fb.png

https://replace.org.ua/uploads/images/6671/5fbc021011eb0e9116bdab9ceef5d51b.png

https://replace.org.ua/uploads/images/6671/b874ae405a9d274ffe8f36815e8745de.png



Привіт панове програмісти. Вирішив зробити під свій проект окрему тему. Можливо хтось хто зайде в неї буде мати вільний час та терпіння допомогти закінчити цю програму.

Є ось така процедура, яка перевіряє всі поля Edit, та якщо знаходить в них знак ' = ' то залежно від лівого та правого ComboBox
присвоює значення певної змінної іншій змінній, так як в (Мал. 3). Питання:

1) Як задати в ній цикл, щоб вона після першого (знаходження знаку ' = ') присвоєння, виходила з неї тавиконувала далі програму до наступного її виклику.

2) Після наступного її виклику потрібно щоб вона пропустила це поле Edit, і продовжувала в полях які ідуть нижче від попереднього поля Edit. І так далі.....

Наперед дякую всім хто відгукнеться!

Код
procedure TForm1.Assignment;                                                 // Процедура дорівнює присвоєння
begin
 case ComboBox9.ItemIndex of
 0:   begin
      if Pos('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       4: t1 := t2;
       5: t1 := t3;
       6: t1 := t4;
       7: t1 := t5;
       8: t1 := t6;
       end;
      end;
      end;
 1:   begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       3: t2 := t1;
       5: t2 := t3;
       6: t2 := t4;
       7: t2 := t5;
       8: t2 := t6;
       end;
      end;
      end;
 2:   begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       3: t3 := t1;
       4: t3 := t2;
       6: t3 := t4;
       7: t3 := t5;
       8: t3 := t6;
       end;
      end;
      end;
 3:   begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       3: t4 := t1;
       4: t4 := t2;
       5: t4 := t3;
       7: t4 := t5;
       8: t4 := t6;
       end;
      end;
      end;
 4:   begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       3: t5 := t1;
       4: t5 := t2;
       5: t5 := t3;
       6: t5 := t4;
       8: t5 := t6;
       end;
      end;
      end;
 5:   begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       3: t6 := t1;
       4: t6 := t2;
       5: t6 := t3;
       6: t6 := t4;
       7: t6 := t5;
       end;
      end;
      end;
 6:   begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       6:  s1 := s2;
       7:  s1 := s3;
       8:  s1 := s4;
       9:  s1 := s5;
       10: s1 := s6;
       end;
      end;
      end;
 7:   begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       5:  s2 := s1;
       7:  s2 := s3;
       8:  s2 := s4;
       9:  s2 := s5;
       10: s2 := s6;
       end;
      end;
      end;
 8:   begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       5:  s3 := s1;
       6:  s3 := s2;
       8:  s3 := s4;
       9:  s3 := s5;
       10: s3 := s6;
       end;
      end;
      end;
 9:   begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       5:  s4 := s1;
       6:  s4 := s2;
       7:  s4 := s3;
       9:  s4 := s5;
       10: s4 := s6;
       end;
      end;
      end;
 10:  begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       5:  s5 := s1;
       6:  s5 := s2;
       7:  s5 := s3;
       8:  s5 := s4;
       10: s5 := s6;
       end;
      end;
      end;
 11:  begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       5: s6 := s1;
       6: s6 := s2;
       7: s6 := s3;
       8: s6 := s4;
       9: s6 := s5;
       end;
      end;
      end;
 12:  begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       16: v1 := v2;
       17: v1 := v3;
       18: v1 := v4;
       19: v1 := v5;
       20: v1 := v6;
       end;
      end;
      end;
 13:  begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       15: v2 := v1;
       17: v2 := v3;
       18: v2 := v4;
       19: v2 := v5;
       20: v2 := v6;
       end;
      end;
      end;
 14:  begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       15: v3 := v1;
       16: v3 := v2;
       18: v3 := v4;
       19: v3 := v5;
       20: v3 := v6;
       end;
      end;
      end;
 15:  begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       15: v4 := v1;
       16: v4 := v2;
       17: v4 := v3;
       19: v4 := v5;
       20: v4 := v6;
       end;
      end;
      end;
 16:  begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       15: v5 := v1;
       16: v5 := v2;
       17: v5 := v3;
       18: v5 := v4;
       20: v5 := v6;
       end;
      end;
      end;
 17:  begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       15: v6 := v1;
       16: v6 := v2;
       17: v6 := v3;
       18: v6 := v4;
       19: v6 := v5;
       end;
      end;
      end;
 18:  begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       6:  l1 := l2;
       7:  l1 := l3;
       8:  l1 := l4;
       9:  l1 := l5;
       10: l1 := l6;
       end;
      end;
      end;
 19:  begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       5:  l2 := l1;
       7:  l2 := l3;
       8:  l2 := l4;
       9:  l2 := l5;
       10: l2 := l6;
       end;
      end;
      end;
 20:  begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       5:  l3 := l1;
       6:  l3 := l2;
       8:  l3 := l4;
       9:  l3 := l5;
       10: l3 := l6;
       end;
      end;
      end;
 21:  begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       5:  l4 := l1;
       6:  l4 := l2;
       7:  l4 := l3;
       9:  l4 := l5;
       10: l4 := l6;
       end;
      end;
      end;
 22:  begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       5:  l5 := l1;
       6:  l5 := l2;
       7:  l5 := l3;
       8:  l5 := l4;
       10: l5 := l6;
       end;
      end;
      end;
 23:  begin
      if Pos ('=',Edit1.Text)<>0 then
      begin
       case ComboBox15.ItemIndex of
       5: l6 := l1;
       6: l6 := l2;
       7: l6 := l3;
       8: l6 := l4;
       9: l6 := l5;
       end;
      end;
      end;
 end;
 case ComboBox10.ItemIndex of
 0:   begin
      if Pos('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       4: t1 := t2;
       5: t1 := t3;
       6: t1 := t4;
       7: t1 := t5;
       8: t1 := t6;
       end;
      end;
      end;
 1:   begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       3: t2 := t1;
       5: t2 := t3;
       6: t2 := t4;
       7: t2 := t5;
       8: t2 := t6;
       end;
      end;
      end;
 2:   begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       3: t3 := t1;
       4: t3 := t2;
       6: t3 := t4;
       7: t3 := t5;
       8: t3 := t6;
       end;
      end;
      end;
 3:   begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       3: t4 := t1;
       4: t4 := t2;
       5: t4 := t3;
       7: t4 := t5;
       8: t4 := t6;
       end;
      end;
      end;
 4:   begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       3: t5 := t1;
       4: t5 := t2;
       5: t5 := t3;
       6: t5 := t4;
       8: t5 := t6;
       end;
      end;
      end;
 5:   begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       3: t6 := t1;
       4: t6 := t2;
       5: t6 := t3;
       6: t6 := t4;
       7: t6 := t5;
       end;
      end;
      end;
 6:   begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       6:  s1 := s2;
       7:  s1 := s3;
       8:  s1 := s4;
       9:  s1 := s5;
       10: s1 := s6;
       end;
      end;
      end;
 7:   begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       5:  s2 := s1;
       7:  s2 := s3;
       8:  s2 := s4;
       9:  s2 := s5;
       10: s2 := s6;
       end;
      end;
      end;
 8:   begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       5:  s3 := s1;
       6:  s3 := s2;
       8:  s3 := s4;
       9:  s3 := s5;
       10: s3 := s6;
       end;
      end;
      end;
 9:   begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       5:  s4 := s1;
       6:  s4 := s2;
       7:  s4 := s3;
       9:  s4 := s5;
       10: s4 := s6;
       end;
      end;
      end;
 10:  begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       5:  s5 := s1;
       6:  s5 := s2;
       7:  s5 := s3;
       8:  s5 := s4;
       10: s5 := s6;
       end;
      end;
      end;
 11:  begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       5: s6 := s1;
       6: s6 := s2;
       7: s6 := s3;
       8: s6 := s4;
       9: s6 := s5;
       end;
      end;
      end;
 12:  begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       16: v1 := v2;
       17: v1 := v3;
       18: v1 := v4;
       19: v1 := v5;
       20: v1 := v6;
       end;
      end;
      end;
 13:  begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       15: v2 := v1;
       17: v2 := v3;
       18: v2 := v4;
       19: v2 := v5;
       20: v2 := v6;
       end;
      end;
      end;
 14:  begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       15: v3 := v1;
       16: v3 := v2;
       18: v3 := v4;
       19: v3 := v5;
       20: v3 := v6;
       end;
      end;
      end;
 15:  begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       15: v4 := v1;
       16: v4 := v2;
       17: v4 := v3;
       19: v4 := v5;
       20: v4 := v6;
       end;
      end;
      end;
 16:  begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       15: v5 := v1;
       16: v5 := v2;
       17: v5 := v3;
       18: v5 := v4;
       20: v5 := v6;
       end;
      end;
      end;
 17:  begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       15: v6 := v1;
       16: v6 := v2;
       17: v6 := v3;
       18: v6 := v4;
       19: v6 := v5;
       end;
      end;
      end;
 18:  begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       6:  l1 := l2;
       7:  l1 := l3;
       8:  l1 := l4;
       9:  l1 := l5;
       10: l1 := l6;
       end;
      end;
      end;
 19:  begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       5:  l2 := l1;
       7:  l2 := l3;
       8:  l2 := l4;
       9:  l2 := l5;
       10: l2 := l6;
       end;
      end;
      end;
 20:  begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       5:  l3 := l1;
       6:  l3 := l2;
       8:  l3 := l4;
       9:  l3 := l5;
       10: l3 := l6;
       end;
      end;
      end;
 21:  begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       5:  l4 := l1;
       6:  l4 := l2;
       7:  l4 := l3;
       9:  l4 := l5;
       10: l4 := l6;
       end;
      end;
      end;
 22:  begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       5:  l5 := l1;
       6:  l5 := l2;
       7:  l5 := l3;
       8:  l5 := l4;
       10: l5 := l6;
       end;
      end;
      end;
 23:  begin
      if Pos ('=',Edit2.Text)<>0 then
      begin
       case ComboBox16.ItemIndex of
       5: l6 := l1;
       6: l6 := l2;
       7: l6 := l3;
       8: l6 := l4;
       9: l6 := l5;
       end;
      end;
      end;
 end;
 case ComboBox11.ItemIndex of
 0:   begin
      if Pos('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       4: t1 := t2;
       5: t1 := t3;
       6: t1 := t4;
       7: t1 := t5;
       8: t1 := t6;
       end;
      end;
      end;
 1:   begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       3: t2 := t1;
       5: t2 := t3;
       6: t2 := t4;
       7: t2 := t5;
       8: t2 := t6;
       end;
      end;
      end;
 2:   begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       3: t3 := t1;
       4: t3 := t2;
       6: t3 := t4;
       7: t3 := t5;
       8: t3 := t6;
       end;
      end;
      end;
 3:   begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       3: t4 := t1;
       4: t4 := t2;
       5: t4 := t3;
       7: t4 := t5;
       8: t4 := t6;
       end;
      end;
      end;
 4:   begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       3: t5 := t1;
       4: t5 := t2;
       5: t5 := t3;
       6: t5 := t4;
       8: t5 := t6;
       end;
      end;
      end;
 5:   begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       3: t6 := t1;
       4: t6 := t2;
       5: t6 := t3;
       6: t6 := t4;
       7: t6 := t5;
       end;
      end;
      end;
 6:   begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       6:  s1 := s2;
       7:  s1 := s3;
       8:  s1 := s4;
       9:  s1 := s5;
       10: s1 := s6;
       end;
      end;
      end;
 7:   begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       5:  s2 := s1;
       7:  s2 := s3;
       8:  s2 := s4;
       9:  s2 := s5;
       10: s2 := s6;
       end;
      end;
      end;
 8:   begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       5:  s3 := s1;
       6:  s3 := s2;
       8:  s3 := s4;
       9:  s3 := s5;
       10: s3 := s6;
       end;
      end;
      end;
 9:   begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       5:  s4 := s1;
       6:  s4 := s2;
       7:  s4 := s3;
       9:  s4 := s5;
       10: s4 := s6;
       end;
      end;
      end;
 10:  begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       5:  s5 := s1;
       6:  s5 := s2;
       7:  s5 := s3;
       8:  s5 := s4;
       10: s5 := s6;
       end;
      end;
      end;
 11:  begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       5: s6 := s1;
       6: s6 := s2;
       7: s6 := s3;
       8: s6 := s4;
       9: s6 := s5;
       end;
      end;
      end;
 12:  begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       16: v1 := v2;
       17: v1 := v3;
       18: v1 := v4;
       19: v1 := v5;
       20: v1 := v6;
       end;
      end;
      end;
 13:  begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       15: v2 := v1;
       17: v2 := v3;
       18: v2 := v4;
       19: v2 := v5;
       20: v2 := v6;
       end;
      end;
      end;
 14:  begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       15: v3 := v1;
       16: v3 := v2;
       18: v3 := v4;
       19: v3 := v5;
       20: v3 := v6;
       end;
      end;
      end;
 15:  begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       15: v4 := v1;
       16: v4 := v2;
       17: v4 := v3;
       19: v4 := v5;
       20: v4 := v6;
       end;
      end;
      end;
 16:  begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       15: v5 := v1;
       16: v5 := v2;
       17: v5 := v3;
       18: v5 := v4;
       20: v5 := v6;
       end;
      end;
      end;
 17:  begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       15: v6 := v1;
       16: v6 := v2;
       17: v6 := v3;
       18: v6 := v4;
       19: v6 := v5;
       end;
      end;
      end;
 18:  begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       6:  l1 := l2;
       7:  l1 := l3;
       8:  l1 := l4;
       9:  l1 := l5;
       10: l1 := l6;
       end;
      end;
      end;
 19:  begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       5:  l2 := l1;
       7:  l2 := l3;
       8:  l2 := l4;
       9:  l2 := l5;
       10: l2 := l6;
       end;
      end;
      end;
 20:  begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       5:  l3 := l1;
       6:  l3 := l2;
       8:  l3 := l4;
       9:  l3 := l5;
       10: l3 := l6;
       end;
      end;
      end;
 21:  begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       5:  l4 := l1;
       6:  l4 := l2;
       7:  l4 := l3;
       9:  l4 := l5;
       10: l4 := l6;
       end;
      end;
      end;
 22:  begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       5:  l5 := l1;
       6:  l5 := l2;
       7:  l5 := l3;
       8:  l5 := l4;
       10: l5 := l6;
       end;
      end;
      end;
 23:  begin
      if Pos ('=',Edit3.Text)<>0 then
      begin
       case ComboBox17.ItemIndex of
       5: l6 := l1;
       6: l6 := l2;
       7: l6 := l3;
       8: l6 := l4;
       9: l6 := l5;
       end;
      end;
      end;
 end;
 case ComboBox12.ItemIndex of
 0:   begin
      if Pos('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       4: t1 := t2;
       5: t1 := t3;
       6: t1 := t4;
       7: t1 := t5;
       8: t1 := t6;
       end;
      end;
      end;
 1:   begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       3: t2 := t1;
       5: t2 := t3;
       6: t2 := t4;
       7: t2 := t5;
       8: t2 := t6;
       end;
      end;
      end;
 2:   begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       3: t3 := t1;
       4: t3 := t2;
       6: t3 := t4;
       7: t3 := t5;
       8: t3 := t6;
       end;
      end;
      end;
 3:   begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       3: t4 := t1;
       4: t4 := t2;
       5: t4 := t3;
       7: t4 := t5;
       8: t4 := t6;
       end;
      end;
      end;
 4:   begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       3: t5 := t1;
       4: t5 := t2;
       5: t5 := t3;
       6: t5 := t4;
       8: t5 := t6;
       end;
      end;
      end;
 5:   begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       3: t6 := t1;
       4: t6 := t2;
       5: t6 := t3;
       6: t6 := t4;
       7: t6 := t5;
       end;
      end;
      end;
 6:   begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       6:  s1 := s2;
       7:  s1 := s3;
       8:  s1 := s4;
       9:  s1 := s5;
       10: s1 := s6;
       end;
      end;
      end;
 7:   begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       5:  s2 := s1;
       7:  s2 := s3;
       8:  s2 := s4;
       9:  s2 := s5;
       10: s2 := s6;
       end;
      end;
      end;
 8:   begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       5:  s3 := s1;
       6:  s3 := s2;
       8:  s3 := s4;
       9:  s3 := s5;
       10: s3 := s6;
       end;
      end;
      end;
 9:   begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       5:  s4 := s1;
       6:  s4 := s2;
       7:  s4 := s3;
       9:  s4 := s5;
       10: s4 := s6;
       end;
      end;
      end;
 10:  begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       5:  s5 := s1;
       6:  s5 := s2;
       7:  s5 := s3;
       8:  s5 := s4;
       10: s5 := s6;
       end;
      end;
      end;
 11:  begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       5: s6 := s1;
       6: s6 := s2;
       7: s6 := s3;
       8: s6 := s4;
       9: s6 := s5;
       end;
      end;
      end;
 12:  begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       16: v1 := v2;
       17: v1 := v3;
       18: v1 := v4;
       19: v1 := v5;
       20: v1 := v6;
       end;
      end;
      end;
 13:  begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       15: v2 := v1;
       17: v2 := v3;
       18: v2 := v4;
       19: v2 := v5;
       20: v2 := v6;
       end;
      end;
      end;
 14:  begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       15: v3 := v1;
       16: v3 := v2;
       18: v3 := v4;
       19: v3 := v5;
       20: v3 := v6;
       end;
      end;
      end;
 15:  begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       15: v4 := v1;
       16: v4 := v2;
       17: v4 := v3;
       19: v4 := v5;
       20: v4 := v6;
       end;
      end;
      end;
 16:  begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       15: v5 := v1;
       16: v5 := v2;
       17: v5 := v3;
       18: v5 := v4;
       20: v5 := v6;
       end;
      end;
      end;
 17:  begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       15: v6 := v1;
       16: v6 := v2;
       17: v6 := v3;
       18: v6 := v4;
       19: v6 := v5;
       end;
      end;
      end;
 18:  begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       6:  l1 := l2;
       7:  l1 := l3;
       8:  l1 := l4;
       9:  l1 := l5;
       10: l1 := l6;
       end;
      end;
      end;
 19:  begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       5:  l2 := l1;
       7:  l2 := l3;
       8:  l2 := l4;
       9:  l2 := l5;
       10: l2 := l6;
       end;
      end;
      end;
 20:  begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       5:  l3 := l1;
       6:  l3 := l2;
       8:  l3 := l4;
       9:  l3 := l5;
       10: l3 := l6;
       end;
      end;
      end;
 21:  begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       5:  l4 := l1;
       6:  l4 := l2;
       7:  l4 := l3;
       9:  l4 := l5;
       10: l4 := l6;
       end;
      end;
      end;
 22:  begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       5:  l5 := l1;
       6:  l5 := l2;
       7:  l5 := l3;
       8:  l5 := l4;
       10: l5 := l6;
       end;
      end;
      end;
 23:  begin
      if Pos ('=',Edit4.Text)<>0 then
      begin
       case ComboBox18.ItemIndex of
       5: l6 := l1;
       6: l6 := l2;
       7: l6 := l3;
       8: l6 := l4;
       9: l6 := l5;
       end;
      end;
      end;
 end;
 case ComboBox13.ItemIndex of
 0:   begin
      if Pos('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       4: t1 := t2;
       5: t1 := t3;
       6: t1 := t4;
       7: t1 := t5;
       8: t1 := t6;
       end;
      end;
      end;
 1:   begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       3: t2 := t1;
       5: t2 := t3;
       6: t2 := t4;
       7: t2 := t5;
       8: t2 := t6;
       end;
      end;
      end;
 2:   begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       3: t3 := t1;
       4: t3 := t2;
       6: t3 := t4;
       7: t3 := t5;
       8: t3 := t6;
       end;
      end;
      end;
 3:   begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       3: t4 := t1;
       4: t4 := t2;
       5: t4 := t3;
       7: t4 := t5;
       8: t4 := t6;
       end;
      end;
      end;
 4:   begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       3: t5 := t1;
       4: t5 := t2;
       5: t5 := t3;
       6: t5 := t4;
       8: t5 := t6;
       end;
      end;
      end;
 5:   begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       3: t6 := t1;
       4: t6 := t2;
       5: t6 := t3;
       6: t6 := t4;
       7: t6 := t5;
       end;
      end;
      end;
 6:   begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       6:  s1 := s2;
       7:  s1 := s3;
       8:  s1 := s4;
       9:  s1 := s5;
       10: s1 := s6;
       end;
      end;
      end;
 7:   begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       5:  s2 := s1;
       7:  s2 := s3;
       8:  s2 := s4;
       9:  s2 := s5;
       10: s2 := s6;
       end;
      end;
      end;
 8:   begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       5:  s3 := s1;
       6:  s3 := s2;
       8:  s3 := s4;
       9:  s3 := s5;
       10: s3 := s6;
       end;
      end;
      end;
 9:   begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       5:  s4 := s1;
       6:  s4 := s2;
       7:  s4 := s3;
       9:  s4 := s5;
       10: s4 := s6;
       end;
      end;
      end;
 10:  begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       5:  s5 := s1;
       6:  s5 := s2;
       7:  s5 := s3;
       8:  s5 := s4;
       10: s5 := s6;
       end;
      end;
      end;
 11:  begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       5: s6 := s1;
       6: s6 := s2;
       7: s6 := s3;
       8: s6 := s4;
       9: s6 := s5;
       end;
      end;
      end;
 12:  begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       16: v1 := v2;
       17: v1 := v3;
       18: v1 := v4;
       19: v1 := v5;
       20: v1 := v6;
       end;
      end;
      end;
 13:  begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       15: v2 := v1;
       17: v2 := v3;
       18: v2 := v4;
       19: v2 := v5;
       20: v2 := v6;
       end;
      end;
      end;
 14:  begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       15: v3 := v1;
       16: v3 := v2;
       18: v3 := v4;
       19: v3 := v5;
       20: v3 := v6;
       end;
      end;
      end;
 15:  begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       15: v4 := v1;
       16: v4 := v2;
       17: v4 := v3;
       19: v4 := v5;
       20: v4 := v6;
       end;
      end;
      end;
 16:  begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       15: v5 := v1;
       16: v5 := v2;
       17: v5 := v3;
       18: v5 := v4;
       20: v5 := v6;
       end;
      end;
      end;
 17:  begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       15: v6 := v1;
       16: v6 := v2;
       17: v6 := v3;
       18: v6 := v4;
       19: v6 := v5;
       end;
      end;
      end;
 18:  begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       6:  l1 := l2;
       7:  l1 := l3;
       8:  l1 := l4;
       9:  l1 := l5;
       10: l1 := l6;
       end;
      end;
      end;
 19:  begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       5:  l2 := l1;
       7:  l2 := l3;
       8:  l2 := l4;
       9:  l2 := l5;
       10: l2 := l6;
       end;
      end;
      end;
 20:  begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       5:  l3 := l1;
       6:  l3 := l2;
       8:  l3 := l4;
       9:  l3 := l5;
       10: l3 := l6;
       end;
      end;
      end;
 21:  begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       5:  l4 := l1;
       6:  l4 := l2;
       7:  l4 := l3;
       9:  l4 := l5;
       10: l4 := l6;
       end;
      end;
      end;
 22:  begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       5:  l5 := l1;
       6:  l5 := l2;
       7:  l5 := l3;
       8:  l5 := l4;
       10: l5 := l6;
       end;
      end;
      end;
 23:  begin
      if Pos ('=',Edit5.Text)<>0 then
      begin
       case ComboBox19.ItemIndex of
       5: l6 := l1;
       6: l6 := l2;
       7: l6 := l3;
       8: l6 := l4;
       9: l6 := l5;
       end;
      end;
      end;
 end;
 case ComboBox14.ItemIndex of
 0:   begin
      if Pos('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       4: t1 := t2;
       5: t1 := t3;
       6: t1 := t4;
       7: t1 := t5;
       8: t1 := t6;
       end;
      end;
      end;
 1:   begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       3: t2 := t1;
       5: t2 := t3;
       6: t2 := t4;
       7: t2 := t5;
       8: t2 := t6;
       end;
      end;
      end;
 2:   begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       3: t3 := t1;
       4: t3 := t2;
       6: t3 := t4;
       7: t3 := t5;
       8: t3 := t6;
       end;
      end;
      end;
 3:   begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       3: t4 := t1;
       4: t4 := t2;
       5: t4 := t3;
       7: t4 := t5;
       8: t4 := t6;
       end;
      end;
      end;
 4:   begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       3: t5 := t1;
       4: t5 := t2;
       5: t5 := t3;
       6: t5 := t4;
       8: t5 := t6;
       end;
      end;
      end;
 5:   begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       3: t6 := t1;
       4: t6 := t2;
       5: t6 := t3;
       6: t6 := t4;
       7: t6 := t5;
       end;
      end;
      end;
 6:   begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       6:  s1 := s2;
       7:  s1 := s3;
       8:  s1 := s4;
       9:  s1 := s5;
       10: s1 := s6;
       end;
      end;
      end;
 7:   begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       5:  s2 := s1;
       7:  s2 := s3;
       8:  s2 := s4;
       9:  s2 := s5;
       10: s2 := s6;
       end;
      end;
      end;
 8:   begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       5:  s3 := s1;
       6:  s3 := s2;
       8:  s3 := s4;
       9:  s3 := s5;
       10: s3 := s6;
       end;
      end;
      end;
 9:   begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       5:  s4 := s1;
       6:  s4 := s2;
       7:  s4 := s3;
       9:  s4 := s5;
       10: s4 := s6;
       end;
      end;
      end;
 10:  begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       5:  s5 := s1;
       6:  s5 := s2;
       7:  s5 := s3;
       8:  s5 := s4;
       10: s5 := s6;
       end;
      end;
      end;
 11:  begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       5: s6 := s1;
       6: s6 := s2;
       7: s6 := s3;
       8: s6 := s4;
       9: s6 := s5;
       end;
      end;
      end;
 12:  begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       16: v1 := v2;
       17: v1 := v3;
       18: v1 := v4;
       19: v1 := v5;
       20: v1 := v6;
       end;
      end;
      end;
 13:  begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       15: v2 := v1;
       17: v2 := v3;
       18: v2 := v4;
       19: v2 := v5;
       20: v2 := v6;
       end;
      end;
      end;
 14:  begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       15: v3 := v1;
       16: v3 := v2;
       18: v3 := v4;
       19: v3 := v5;
       20: v3 := v6;
       end;
      end;
      end;
 15:  begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       15: v4 := v1;
       16: v4 := v2;
       17: v4 := v3;
       19: v4 := v5;
       20: v4 := v6;
       end;
      end;
      end;
 16:  begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       15: v5 := v1;
       16: v5 := v2;
       17: v5 := v3;
       18: v5 := v4;
       20: v5 := v6;
       end;
      end;
      end;
 17:  begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       15: v6 := v1;
       16: v6 := v2;
       17: v6 := v3;
       18: v6 := v4;
       19: v6 := v5;
       end;
      end;
      end;
 18:  begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       6:  l1 := l2;
       7:  l1 := l3;
       8:  l1 := l4;
       9:  l1 := l5;
       10: l1 := l6;
       end;
      end;
      end;
 19:  begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       5:  l2 := l1;
       7:  l2 := l3;
       8:  l2 := l4;
       9:  l2 := l5;
       10: l2 := l6;
       end;
      end;
      end;
 20:  begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       5:  l3 := l1;
       6:  l3 := l2;
       8:  l3 := l4;
       9:  l3 := l5;
       10: l3 := l6;
       end;
      end;
      end;
 21:  begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       5:  l4 := l1;
       6:  l4 := l2;
       7:  l4 := l3;
       9:  l4 := l5;
       10: l4 := l6;
       end;
      end;
      end;
 22:  begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       5:  l5 := l1;
       6:  l5 := l2;
       7:  l5 := l3;
       8:  l5 := l4;
       10: l5 := l6;
       end;
      end;
      end;
 23:  begin
      if Pos ('=',Edit6.Text)<>0 then
      begin
       case ComboBox20.ItemIndex of
       5: l6 := l1;
       6: l6 := l2;
       7: l6 := l3;
       8: l6 := l4;
       9: l6 := l5;
       end;
      end;
      end;
 end;
end;

Посилання на код який я розробляв спершу:
https://drive.google.com/open?id=1PvPMT … 6nxxXN2tSG

Посилання на код який я буду розробляти:
https://drive.google.com/open?id=1inipr … chGlmjMAx5

Подякували: Irbis, Chemist-i2

2 Востаннє редагувалося leofun01 (19.02.2019 19:30:47)

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

ProgramBandera написав:

Можливо хтось хто зайде в неї буде мати вільний час та терпіння допомогти закінчити цю програму.

Не бачу посилання на джерельний код (весь). Чи ви вважаєте, що ті хто захочуть допомогти, повинні заново створювати файли проекту ?
Вам терміново необхідно навчитися створювати і видаляти елементи керування динамічно.
Покищо проект виглядає як мертвонароджений.

3

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

leofun01 написав:
ProgramBandera написав:

Можливо хтось хто зайде в неї буде мати вільний час та терпіння допомогти закінчити цю програму.

Не бачу посилання на джерельний код (весь). Чи ви вважаєте, що ті хто захочуть допомогти, повинні заново створювати файли проекту ?
Вам терміново необхідно навчитися створювати і видаляти елементи керування динамічно.
Покищо проект виглядає як мертвонароджений.

Вибачайте, але посилання на весь код не має, так як повного коду іще немає, поки пишу процедури присвоєння, конвертер, прорахунок, калькулятор... Підставляю та тестую ось стикнувся з такою проблемою.

4

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

Якщо я правильно зрозумів, ця процедура виконує одне присвоювання, а весь код лише обирає за значеннями
ComboBox{9..20} за умови, що Pos ('=',Edit{1..6}.Text)<>0, якій зі змінних {tlvs}{1..6} присвоїти значення якої іншої змінної, так? Причому тип цих змінних однаковий? І мається на увазі, що t - час, v - швидкість, а що за s та l? Різні відстані?
Для початку - якщо є змінні x1,x2,x3, які використовуються однотипно, то треба відмовлятися від трьох змінних і вводити масив.
А Паскаль пропонує ще й злічені типи.
Якщо проголосити

type physical_units = (SPEED, DISTANCE, TIME, PATH);
var variables: array [low(physical_units)..high(physical_units), 1..6] of real;

то будуть змінні виду variables[SPEED][3] (замість v3) і variables[TIME][6] замість t6. А це дає змогу обчислювати за значеннями комбобоксів потрібні індекси і виконувати потім одне присвоювання.
Це можна ще полегшити, проголосивши щось на кшталт

comboboxes: array [9..20] of TComboBox = (ComboBox9, ComboBox10 .... ComboBox20);

Хоча, звісно, краще вже такі комбобокси створювати динамічно.

Примусовий вихід із циклу робиться за допомогою виразу break:

for i := 1 to 10 do begin
  writeln(i);
  if i=8 then 
    break; {вихід із циклу}
end;

Хоча, можливо, вам буде простіше проголошувати додаткову змінну-прапорець і використовувати цикл while:

i:=1;
flag:=true;
while i<=10 and flag do begin
    writeln(i);
    if i==8 then flag:=false;
    i:=i+1;
end;
Подякували: leofun01, root, ProgramBandera3

5 Востаннє редагувалося ProgramBandera (20.02.2019 00:46:43)

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

Це перша формула в підручнику фізика 7-й клас (швидкість рівномірного прямолінійного руху)

           v=s/t  або  v=l/t

t - Час                  t := s/v;
v - Швидкість        v :=s/t;
l - Шлях                 l := v*t;
s - Переміщення     s :=v*t;

Дякую пане koala! Буду пробувати переписувати цю процедуру по вашій пораді.
Додаткову змінну я пробував вводити в циклі

procedure TForm1.Assignment;                                                 // Процедура дорівнює присвоєння
begin
 AssignAssistant := 1;
 while AssignAssistant <=1 do

Тільки я не можу придумати, як мені зробити так коли вона присвоює значення змінної другій змінній, то вона виходила з процедури і не робила присвоєння в наступних Edit, а при другому виклику цієї процедури, якщо це потрібно то вона пропускала рядок з Еdit попереднім в якому вже відбулось присвоєння, і шукала наступний рядок в якому є присвоєння.

Можливо хтось кине посилання де можна завантажити літературу щоб навчитися створювати і видаляти елементи керування динамічно.

6

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

Можу ще порадити скористатися елементом Frame - тоді у вас буде не 18 елементів, а лише 6 фреймів (із 3 елементів кожен).
І ще можна додати OnChange на Edit-и, в яких дивитися, чи там '=' і якщо так - відповідно змінювати ComboBox-и та змінні.

Подякували: root, ProgramBandera2

7

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

ProgramBandera
Я здається уже раз кидав вам статтю Жизнь и смерть в режиме run-time, ловіть іще раз.

Подякували: Не Зелений, ProgramBandera2

8

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

Torbins, він на динаміку зараз не перейде. Він з масивами погано працює, а ви отак на динаміку людину заганяєте :)
ProgramBandera, у вас є хоча б більш-менш повне сформулюване завдання до вашої програми?

Подякували: root1

9

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

якось так:

//єдиний глобальний масив
var variables: array [0..3, 1..6] of real;

procedure TForm1.Assignment;
var LeftComboBoxes : array[1..6] of TComboBox = (ComboBox9, ComboBox10, ComboBox11, ComboBox12, ComboBox13, ComboBox14);
    Edits : array[1..6] of TEdit = (Edit1, Edit2, Edit3, Edit4, Edit5, Edit6);
    RightComboBoxes : array[1..6] of TComboBox = (ComboBox15, ComboBox16, ComboBox17, ComboBox18, ComboBox19, ComboBox20); 
//це все можна було зробити динамічно (тоді ці масиви були б замість окремих змінних), фреймами (тоді був би один масив) чи динамічно створювати фрейми
    line: integer; //line - номер рядка з двох TComboBox і одного TEdit
    physical_unit: integer; //фізична одиниця, t=0, s=1, v=2, l=3
    index: integer; //номер змінної
    from_index: integer; //номер змінної, з якої беремо значення
const units_count:array[0..3] of integer = (4, 4, 15, 5);//кількість рядків перед змінними у ComboBox
begin
  for line := 1 to 6 do begin //розбираємо по рядках
    if LeftComboBoxes[line].ItemIndex>=0 and RightComboBoxes[line].ItemIndex>=0 then begin //якщо -1, то не обрано
      physical_unit := LeftComboBoxes[line].ItemIndex div 6; //тут можна було б перетворити на злічений тип
      index := LeftComboBoxes[line].ItemIndex mod 6; //ага, так можна
      if Pos ('=', Edits[line].Text)>0 and  then begin
        from_index := RightComboBoxes[line].ItemIndex - units_count[physical_unit] + 1;
        variables[physical_unit, index] := variables[physical_unit, from_index];
      end;
    end;
  end;
end;

Здається, десь так.
І у вас було питання про те, як перервати обробку, а вдруге не обробляти вже відомі значення. Ви робите типову помилку - замість опису проблеми ви намагаєтеся спитати, як краще реалізувати обраний вами спосіб її вирішення. Помилковий цей підхід тому, що ви неправильно обрали спосіб вирішення. Звісно, можна і так зробити, але ж можна і за один виклик все зробити. Ідея така (псевдокодом):

невідомість_значень [1..6] - на початку всі невідомі
repeat
   зміни := не було;
   for i:= 1 to 6 begin
      if можемо заповнити значення then begin
         заповнити значення
         зміни:=були
         невідомість значень[i]:=відоме
      end;
   end;
until зміни = не було; //якщо змін не було, то закінчуємо

Звертаю увагу, що "можемо заповнити значення" - умова складна, бо ItemIndex = -1 - це теж певне "заповнення".

Подякували: ProgramBandera, root2

10 Востаннє редагувалося ProgramBandera (01.04.2019 21:56:12)

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

Добрий день панове програмісти! Допоможіть оптимізувати код.

Маю два масиви які потрібно якось поєднати
Перший: Масив для змінніх

const Physique = 38;
var
  Form1: TForm1;
  Variables: array [1..Physique, 0..6] of extended;

Другий: Масив для ItemIndex

procedure TForm1.FormCreate(Sender: TObject);
 const UNITS_PHYSICAL_CHARACTERISTICS2: array[1..266] of string =
 ('t - Час', 't1 - Час', 't2 - Час', 't3 - Час', 't4 - Час', 't5 - Час', 't6 - Час',
 'l - Шлях', 'l1 - Шлях', 'l2 - Шлях', 'l3 - Шлях', 'l4 - Шлях', 'l5 - Шлях',
 'l6 - Шлях', 's - Переміщення',  's1 - Переміщення', 's2 - Переміщення',
 's3 - Переміщення', 's4 - Переміщення', 's5 - Переміщення', 's6 - Переміщення',
 'v - Швидкість', 'v1 - Швидкість', 'v2 - Швидкість', 'v3 - Швидкість',
 'v4 - Швидкість', 'v5 - Швидкість', 'v6 - Швидкість', 'x0 - Координата',
 'x1 - Координата', 'x2 - Координата', 'x3 - Координата',  'x4 - Координата',
 'x5 - Координата', 'x6 - Координата', 'vс - Середня швидкість', 'vс1 - Середня швидкість',
 'vс2 - Середня швидкість', 'vс3 - Середня швидкість', 'vс4 - Середня швидкість',
 'vс5 - Середня швидкість', 'vс6 - Середня швидкість', 'vм - Миттєва швидкість',
 'vм1 - Миттєва швидкість', 'vм2 - Миттєва швидкість', 'vм3 - Миттєва швидкість',
 'vм4 - Миттєва швидкість', 'vм5 - Миттєва швидкість', 'vм6 - Миттєва швидкість',
 'T - Період обертання', 'T1 - Період обертання', 'T2 - Період обертання',
 'T3 - Період обертання', 'T4 - Період обертання', 'T5 - Період обертання',
 'T6 - Період обертання', 'N - Кількість обертів', 'N1 - Кількість обертів',
 'N2 - Кількість обертів', 'N3 - Кількість обертів', 'N4 - Кількість обертів',
 'N5 - Кількість обертів', 'N6 - Кількість обертів', 'n - Обертова частота',
 'n1 - Обертова частота', 'n2 - Обертова частота', 'n3 - Обертова частота',
 'n4 - Обертова частота', 'n5 - Обертова частота', 'n6 - Обертова частота',
 'T - Період коливань', 'T1 - Період коливань', 'T2 - Період коливань',
 'T3 - Період коливань', 'T4 - Період коливань', 'T5 - Період коливань',
 'T6 - Період коливань', 'ν - Частота коливань', 'ν1 - Частота коливань',
 'ν2 - Частота коливань', 'ν3 - Частота коливань', 'ν4 - Частота коливань',
 'ν5 - Частота коливань', 'ν6 - Частота коливань', 'm - Маса', 'm1 - Маса',
 'm2 - Маса', 'm3 - Маса', 'm4 - Маса', 'm5 - Маса', 'm6 - Маса', 'ρ - Густина',
 'ρ1 - Густина', 'ρ2 - Густина', 'ρ3 - Густина', 'ρ4 - Густина', 'ρ5 - Густина',
 'ρ6 - Густина', 'F - Сила', 'F1 - Сила', 'F2 - Сила', 'F3 - Сила', 'F4 - Сила',
 'F5 - Сила', 'F6 - Сила', 'Fтяж - Сила тяжіння', 'Fтяж1 - Сила тяжіння',
 'Fтяж2 - Сила тяжіння', 'Fтяж3 - Сила тяжіння', 'Fтяж4 - Сила тяжіння',
 'Fтяж5 - Сила тяжіння', 'Fтяж6 - Сила тяжіння', 'Fпр - Сила пружності',
 'Fпр1 - Сила пружності', 'Fпр2 - Сила пружності', 'Fпр3 - Сила пружності',
 'Fпр4 - Сила пружності', 'Fпр5 - Сила пружності', 'Fпр6 - Сила пружності',
 'Δl - Абсолютна деформація', 'Δl1 - Абсолютна деформація', 'Δl2 - Абсолютна деформація',
 'Δl3 - Абсолютна деформація', 'Δl4 - Абсолютна деформація', 'Δl5 - Абсолютна деформація',
 'Δl6 - Абсолютна деформація', 'k - Коефіцієнт пружності', 'k1 - Коефіцієнт пружності',
 'k2 - Коефіцієнт пружності', 'k3 - Коефіцієнт пружності', 'k4 - Коефіцієнт пружності',
 'k5 - Коефіцієнт пружності', 'k6 - Коефіцієнт пружності', 'P - Вага тіла',
 'P1 - Вага тіла', 'P2 - Вага тіла', 'P3 - Вага тіла', 'P4 - Вага тіла', 'P5 - Вага тіла',
 'P6 - Вага тіла', 'Fтер - Сила тертя', 'Fтер1 - Сила тертя', 'Fтер2 - Сила тертя',
 'Fтер3 - Сила тертя', 'Fтер4 - Сила тертя', 'Fтер5 - Сила тертя', 'Fтер6 - Сила тертя',
 'N - Сила нормального тиску на опору', 'N1 - Сила нормального тиску на опору',
 'N2 - Сила нормального тиску на опору', 'N3 - Сила нормального тиску на опору',
 'N4 - Сила нормального тиску на опору', 'N5 - Сила нормального тиску на опору',
 'N6 - Сила нормального тиску на опору', 'μ - Коефіцієнт тертя', 'μ1 - Коефіцієнт тертя',
 'μ2 - Коефіцієнт тертя', 'μ3 - Коефіцієнт тертя', 'μ4 - Коефіцієнт тертя',
 'μ5 - Коефіцієнт тертя', 'μ6 - Коефіцієнт тертя', 'p - Тиск', 'p1 - Тиск',
 'p2 - Тиск', 'p3 - Тиск', 'p4 - Тиск', 'p5 - Тиск', 'p6 - Тиск', 'S - Площа',
 'S1 - Площа', 'S2 - Площа', 'S3 - Площа', 'S4 - Площа', 'S5 - Площа', 'S6 - Площа',
 'h - Відстань переміщення поршня', 'h1 - Відстань переміщення поршня',
 'h2 - Відстань переміщення поршня', 'h3 - Відстань переміщення поршня',
 'h4 - Відстань переміщення поршня', 'h5 - Відстань переміщення поршня',
 'h6 - Відстань переміщення поршня', 'FА - Сила Архімеда', 'FА1 - Сила Архімеда',
 'FА2 - Сила Архімеда', 'FА3 - Сила Архімеда', 'FА4 - Сила Архімеда', 'FА5 - Сила Архімеда',
 'FА6 - Сила Архімеда', 'A - Робота', 'A1 - Робота', 'A2 - Робота', 'A3 - Робота',
 'A4 - Робота', 'A5 - Робота', 'A6 - Робота', 'N - Потужність', 'N1 - Потужність',
 'N2 - Потужність', 'N3 - Потужність', 'N4 - Потужність', 'N5 - Потужність',
 'N6 - Потужність', 'E - Енергія', 'E1 - Енергія', 'E2 - Енергія', 'E3 - Енергія',
 'E4 - Енергія', 'E5 - Енергія', 'E6 - Енергія', 'Eп - Потенціальна енергія',
 'Eп1 - Потенціальна енергія', 'Eп2 - Потенціальна енергія', 'Eп3 - Потенціальна енергія',
 'Eп4 - Потенціальна енергія', 'Eп5 - Потенціальна енергія', 'Eп6 - Потенціальна енергія',
 'Eк - Кінетична енергія', 'Eк1 - Кінетична енергія', 'Eк2 - Кінетична енергія',
 'Eк3 - Кінетична енергія', 'Eк4 - Кінетична енергія', 'Eк5 - Кінетична енергія',
 'Eк6 - Кінетична енергія', 'M - Момент сили', 'M1 - Момент сили', 'M2 - Момент сили',
 'M3 - Момент сили', 'M4 - Момент сили', 'M5 - Момент сили', 'M6 - Момент сили',
 'd - Плече сили', 'd1 - Плече сили', 'd2 - Плече сили', 'd3 - Плече сили',
 'd4 - Плече сили', 'd5 - Плече сили', 'd6 - Плече сили', 'h - Крок гвинта',
 'h1 - Крок гвинта', 'h2 - Крок гвинта', 'h3 - Крок гвинта', 'h4 - Крок гвинта',
 'h5 - Крок гвинта', 'h6 - Крок гвинта', 'Aк - Корисна робота', 'Aк1 - Корисна робота',
 'Aк2 - Корисна робота', 'Aк3 - Корисна робота', 'Aк4 - Корисна робота',
 'Aк5 - Корисна робота', 'Aк6 - Корисна робота', 'Aв - Виконана робота',
 'Aв1 - Виконана робота', 'Aв2 - Виконана робота', 'Aв3 - Виконана робота',
 'Aв4 - Виконана робота', 'Aв5 - Виконана робота', 'Aв6 - Виконана робота',
 'η - Коефіцієнт корисної дії','η1 - Коефіцієнт корисної дії',
 'η2 - Коефіцієнт корисної дії','η3 - Коефіцієнт корисної дії',
 'η4 - Коефіцієнт корисної дії','η5 - Коефіцієнт корисної дії',
 'η6 - Коефіцієнт корисної дії');
var
 measurement2 : integer;
begin
 for measurement2:=low(UNITS_PHYSICAL_CHARACTERISTICS2) to high(UNITS_PHYSICAL_CHARACTERISTICS2) do
 begin
  ComboBox9.Style := csDropDown;
  ComboBox9.Items.Add(UNITS_PHYSICAL_CHARACTERISTICS2[measurement2]);
  ComboBox10.Style := csDropDown;
  ComboBox10.Items.Add(UNITS_PHYSICAL_CHARACTERISTICS2[measurement2]);
  ComboBox11.Style := csDropDown;
  ComboBox11.Items.Add(UNITS_PHYSICAL_CHARACTERISTICS2[measurement2]);
  ComboBox12.Style := csDropDown;
  ComboBox12.Items.Add(UNITS_PHYSICAL_CHARACTERISTICS2[measurement2]);
  ComboBox13.Style := csDropDown;
  ComboBox13.Items.Add(UNITS_PHYSICAL_CHARACTERISTICS2[measurement2]);
  ComboBox14.Style := csDropDown;
  ComboBox14.Items.Add(UNITS_PHYSICAL_CHARACTERISTICS2[measurement2]);
 end;
end;

А код знизу потрібно якось скоротити

   begin
     if ComboBox9.ItemIndex =0 then
     begin
       Variables[1,0] := StrToFloat(Edit1.Text);
     end;
     if ComboBox9.ItemIndex = 1 then
     begin
       Variables[1,1] := StrToFloat(Edit1.Text);
     end;
     if ComboBox9.ItemIndex = 2 then
     begin
       Variables[1,2] := StrToFloat(Edit1.Text);
     end;
     if ComboBox9.ItemIndex = 3 then
     begin
       Variables[1,3] := StrToFloat(Edit1.Text);
     end;
     if ComboBox9.ItemIndex = 4 then
     begin
       Variables[1,4] := StrToFloat(Edit1.Text);
     end;
     if ComboBox9.ItemIndex = 5 then
     begin
       Variables[1,5] := StrToFloat(Edit1.Text);
     end;
     if ComboBox9.ItemIndex = 6 then
     begin
       Variables[1,6] := StrToFloat(Edit1.Text);
     end;
     if ComboBox9.ItemIndex = 7 then
     begin
       Variables[2,0] := StrToFloat(Edit1.Text);
     end;
     ...
     ....
     .........
      ........
   end;

11

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

Якщо я правильно бачу, то
     if ComboBox9.ItemIndex = 1 then
     begin
       Variables[1,0] := StrToFloat(Edit1.Text);
     end;
     if ComboBox9.ItemIndex = 2 then
     begin
       Variables[1,1] := StrToFloat(Edit1.Text);
     end;

У виділених елементів завжди різниця 1, а умови взаємно виключні, тобто реально виконається лише одна з них, і буде зроблено

Variables[1,ComboBox9.ItemIndex-1] := StrToFloat(Edit1.Text);

Однак такого елементу може не бути в масиві. Тому треба додати перевірку коректності значення.

if 0<ComboBox9.ItemIndex and ComboBox9.ItemIndex<N then begin
    Variables[1,ComboBox9.ItemIndex-1] := StrToFloat(Edit1.Text);
end;

0 та N - це межі другого виміру масиву; їх можна записати через low та high якось так:

if low(Variables[1])<ComboBox9.ItemIndex and ComboBox9.ItemIndex-1<=high(Variables[1]) then begin
    Variables[1,ComboBox9.ItemIndex-1] := StrToFloat(Edit1.Text);
end;

беремо саме 1-й рядок масиву, бо далі іде Variables[1,...]. Краще замінити цю 1 на те, що воно позначає.

Подякували: root, ProgramBandera2

12

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

Ну і ви все ще недостатньо ліниві :)
У вас зверху масив на 266 значень, а унікальних значень лише 38. Решта утворюються підстановкою номеру. Взагалі існує функція Format:

WriteLn(Format('t%d - Час',[3]); //виведе 't3 - Час'

але у нас ситуація трохи складніша, тут треба пропускати 0. Пишемо допоміжну функцію:

function format_variable(s:string, n:integer):string;
begin
  if n > 0 then begin
    format_variable := Format(s,['']);
  end else begin
    format_variable := Format(s,[IntToStr(n)])
  end;
end;

Тепер це має спрацювати:

UNITS_PHYSICAL_CHARACTERISTICS2 : array[1..2] = {'t%s - Час', 'l%s - Шлях'};
measurement2 := 2;
i:=3;
ComboBox9.Items.Add(format_variable(UNITS_PHYSICAL_CHARACTERISTICS2[measurement2],i)); //'l3 - Шлях'

Що лишається? Зібрати ComboBox9..ComboBox14 у масив і запустити цикли:

const CMB_VARIABLE_CHOISE : array[1..6] of TComboBox = (ComboBox9, ComboBox10, ComboBox11, ComboBox12, ComboBox13, ComboBox14);
var unit_idx, var_number, combobox_idx : integer;
begin
  for unit_idx:=low(UNITS_PHYSICAL_CHARACTERISTICS2) to high(UNITS_PHYSICAL_CHARACTERISTICS2) do begin
    for var_number:=0 to 6 do begin
      for combobox_idx:=low(CMB_VARIABLE_CHOISE) to high(CMB_VARIABLE_CHOISE) do begin
        CMB_VARIABLE_CHOISE[combobox_idx].Style := csDropDown;
        CMB_VARIABLE_CHOISE[combobox_idx].Items.Add(Format(UNITS_PHYSICAL_CHARACTERISTICS2[unit_idx], var_number));
      end;
    end;
  end;

Ну і для порядку - ми тут кожного разу CMB_VARIABLE_CHOISE[combobox_idx].Style змінюємо на один і той самий. Це можна зробити окремим циклом:

  for combobox_idx:=low(CMB_VARIABLE_CHOISE) to high(CMB_VARIABLE_CHOISE) do begin
    CMB_VARIABLE_CHOISE[combobox_idx].Style := csDropDown;
  end;
  for unit_idx:=low(UNITS_PHYSICAL_CHARACTERISTICS2) to high(UNITS_PHYSICAL_CHARACTERISTICS2) do begin
    for var_number:=0 to 6 do begin
      for combobox_idx:=low(CMB_VARIABLE_CHOISE) to high(CMB_VARIABLE_CHOISE) do begin
        CMB_VARIABLE_CHOISE[combobox_idx].Items.Add(Format(UNITS_PHYSICAL_CHARACTERISTICS2[unit_idx], var_number));
      end;
    end;
  end;
Подякували: root, ProgramBandera2

13 Востаннє редагувалося ProgramBandera (02.04.2019 00:38:59)

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

Добрий вечір пане koala! Дякую за відповідь. але хотілосяб на пальцях розібрати ваші підказки.
Наприклад що означає ось цей рядок?

Variables[1,ComboBox9.ItemIndex-1] := StrToFloat(Edit1.Text);

Він не присвоює числові значення в масив Variables?
Наприклад я підставляю його в програму, в Edit1 вводжу 50

procedure TForm1.Assignment;
begin
 Variables[1,ComboBox9.ItemIndex-1] := StrToFloat(Edit1.Text);
 RichEdit1.Lines.Add(FloatToStr(Variables[13,0]));
end;

і мені виводить m - Маса = 0, а малоб вивести 50

Не має бажання створювати в програмі 266 змінних, чи стільки ж прописувати

if ComboBox9.ItemIndex =85 then
     begin
       Variables[13,0] := StrToFloat(Edit1.Text);       
     end;
а потім робити дії над значеннями масиву
     RichEdit1.Lines.Add(FloatToStr(Variables[13,0]));

після чого мені виведе значення записане в Edit1
для того і створив масив Variables щоб 266 не прописувати

begin
       Variables[***,***] := StrToFloat(Edit1.Text);       
     end;

можу я якось скоротити цей код.

   begin
     if ComboBox9.ItemIndex =0 then
     begin
       Variables[1,0] := StrToFloat(Edit1.Text);
     end;
     if ComboBox9.ItemIndex = 1 then
     begin
       Variables[1,1] := StrToFloat(Edit1.Text);
     end;
     if ComboBox9.ItemIndex = 2 then
     begin
       Variables[1,2] := StrToFloat(Edit1.Text);
     end;
     if ComboBox9.ItemIndex = 3 then
     begin
       Variables[1,3] := StrToFloat(Edit1.Text);
     end;
     if ComboBox9.ItemIndex = 4 then
     begin
       Variables[1,4] := StrToFloat(Edit1.Text);
     end;
     if ComboBox9.ItemIndex = 5 then
     begin
       Variables[1,5] := StrToFloat(Edit1.Text);
     end;
     if ComboBox9.ItemIndex = 6 then
     begin
       Variables[1,6] := StrToFloat(Edit1.Text);
     end;
     if ComboBox9.ItemIndex = 7 then
     begin
       Variables[2,0] := StrToFloat(Edit1.Text);
     end;
     ...
     ....
     .........
      ........
     if ComboBox9.ItemIndex = 266 then
     begin
       Variables[38,6] := StrToFloat(Edit1.Text);
     end;
   end;

14

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

Ну так ви ж код підредагували. Було -1, тепер не треба віднімати. Щонайменше.
Вам треба зіставити числам від 0 до 265 пари [1,0], [1,1],...,[1,6],[2,0] і т.д., правильно? Трохи шкільної математики: друге число у парі - це залишок від ділення на 7; перше - частка плюс один.
Variables[ComboBox9.ItemIndex div 7 + 1, ComboBox9.ItemIndex mod 7] := StrToFloat(Edit1.Text);

І ще раз раджу скористатися форматуванням (чи якось інакше створювати стрічки).

Подякували: root, ProgramBandera2

15

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

Пане koala я іще раз відредагував останній код, подивіться будь-ласка уважніше!
Щоб не створювати 266 змінних я створив двовимірний масив з 38-ми рядків та 7-ми стовпців

const Physique = 38;
var
  Form1: TForm1;
  Variables: array [1..Physique, 0..6] of extended;

він в мене налічує 266 елементів, стільки ж в мене є ItemIndex в ComboBox9
(беремо поки що ComboBox9 та поле Edit1, на інших 5-ть ComboBox та 5-ть Edit не звертаємо увагу поки-що.)
які задаються масивом UNITS_PHYSICAL_CHARACTERISTICS2, Можливо він нам і не потрібен таяк він є локальним в процедурі procedure TForm1.FormCreate(Sender: TObject);, який також має 266 елементів.

Наприклад я намалював собі на листочку таблицю масиву Variables, і знаю що в мене 24 рядок відповідає змінним тиску
р - тиск р1 - тиск р2 - тиск р3 - тиск р4 - тиск р5 - тиск р6 - тиск
от мені потрібно щоб коли користувач вибрав р1 - тиск, а він в мене відповідає ItemIndex = 170 то числове значення з поля Edit1 присвоїлося відповідному елементу масиву Variables[24,1]. Тобто якщо рахувати по порядку в таблиці Variables то [24,1] буде також 170-м елементом.

Підсумуємо!
Якщо ComboBox9.ItemIndex = 170 відповідно UNITS_PHYSICAL_CHARACTERISTICS2 = 170-й елемент
то значення присвоїлося Variables[24,1] також 170-му елементу.


І ще одне питання є якась стандартна функція для обнулення масиву?

16

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

ItemIndex нумерується з 0, UNITS_PHYSICAL_CHARACTERISTICS2 - з 1. Там точно буде однаковий номер? Чи в ComboBox9.Items є ще одне поле з номером 0?
Ну гаразд, хай обидва з 1. ItemIndex з 1..7 відповідають Variables[1,0..6], ItemIndex з 8..14 відповідають Variables[2,0..6], правильно? Маємо номер величини ((ItemIndex-1) div 7)+1, номер змінної (ItemIndex-1) mod 7. Перевіряємо:
((1-1)div 7)+1 = 1,
(1-1) mod 7 = 0,
для t правильно;
((266-1)div 7)+1 = 38,
(266-1) mod 7 = 6,
для η6 правильно;
((170-1) div 7)+1 = 25
(170-1)mod 7 = 1
Це S1, а не p1. Variables[25,1] <=> UNITS_PHYSICAL_CHARACTERISTICS2[170].

Ще раз, якщо у вас нумерація потрібних вам елементів в ComboBox9.ItemIndex починається з 1, то остаточна формула буде

Variables[(ComboBox9.ItemIndex-1) div 7 + 1, (ComboBox9.ItemIndex-1) mod 7] := StrToFloat(Edit1.Text);

тільки не забувайте перевіряти ItemIndex, щоб був у визначених межах.

ProgramBandera написав:

І ще одне питання є якась стандартна функція для обнулення масиву?

Ні, немає. Зате можна TStrings копіювати

ComboBox10.Items.Assign(ComboBox9.Items);
Подякували: ProgramBandera, root2

17 Востаннє редагувалося ProgramBandera (02.04.2019 10:35:28)

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

Допоможіть! Як це виправити?
Працюю в Embarcadero RAD Studio 10.3 і согодні щось незрозуміле сталося з редактором коду.
Нажимаю Enter курсор пригає в низ (без створення нового рядка) стираю в слові по середині букву і друкую другу мені стирає з права букви.

18

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

Кнопка Insert на клавіатурі

Подякували: ProgramBandera, root2

19 Востаннє редагувалося ProgramBandera (15.04.2019 10:44:35)

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

Привіт панове програмісти! Підкажіть що означає ця помилка
[dcc32 Error] Unit1.pas(1374): E2081 Assignment to FOR-Loop variable 'st1'
Написав цикл піднесеня до ступеня, а він не хоче працювати (Тільки не плутати з степенем, 3 в степені 3 буде 27, а 3*10 в ступені 3 буде 3000) вибиває помилку.

procedure TForm1.Bring_to_Power;
var
st1: integer;
st: variant;
begin
 st := StrToFloat(Edit8.Text);
 for st1 := 10 to st do
  begin
   st1 := st1*10;
   RichEdit1.Lines.Add(FloatToStr (st1));
  end;
end;

Хочеться перевірити чи він правильно буде працювати і не можу запустити програму.

20

Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.

Змінна st1 контролюється оператором for, її не можна змінювати всередині циклу.

Подякували: root, ProgramBandera2