Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для rolandas
23 / 12 / 2
Регистрация: 20.04.2011
Сообщений: 382

Как сократить данный отрывок кода?

02.10.2018, 23:50. Показов 2989. Ответов 56
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if x=1 then
begin
Image1.Hide;
Image3.Hide;
Image4.Hide;
Image5.Hide;
Image6.Hide;
Image7.Hide;
Image8.Hide;
Image2.Show;
end;
 
if x=2 then
begin
Image1.Hide;
Image2.Hide;
Image3.Hide;
Image5.Hide;
Image6.Hide;
Image7.Hide;
Image8.Hide;
Image4.Show;
end;
и существует-ли лимит накладывания картинок друг на друга в форме?..
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.10.2018, 23:50
Ответы с готовыми решениями:

Как можно сократить кол-во исходного кода
Вот мне дали задание по курсовой работе написать психологический тест. Кратко его можно изложить следующем способом: человеку зачитываются...

Как сократить кол-во почти одинаковых строчек кода?
Можно ли это как-нибудь упростить? Выглядит достаточно громоздко. Спасибо. btnQ.Enabled:=True; btnW.Enabled:=True; ...

Расшифровать данный отрывок, частотной проверке не поддается
помогите пожалуйста расшифровать срочно нужно, шифр Виженера Длина ключа = 4 говорят это из какой то книги Билл Гейтса, толку нет от...

56
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
04.10.2018, 16:30
Студворк — интернет-сервис помощи студентам
только там скорее всего будут нечетные вопросы, а четные ответы)))) судя по его 1, 2, 3))) ну\. я не думаю просто, что сперва будет ответ идти, а затем вопрос))))

Добавлено через 3 минуты
Цитата Сообщение от Matan! Посмотреть сообщение
Номер картинки. Что не ясно? Мож, не так я понял тебя..
Цитата Сообщение от Matan! Посмотреть сообщение
Delphi
1
StrToInt(Copy(Image1.Name, 1, Length(Image1.Name) - 1)) // индекс
явно, ты хотел так вот написать при условии, что Q11, A11
Delphi
1
StrToInt(Copy(Image1.Name, 2, Length(Image1.Name)))
0
 Аватар для rolandas
23 / 12 / 2
Регистрация: 20.04.2011
Сообщений: 382
04.10.2018, 20:50  [ТС]
да, вопросы - четные. а при выпадании сразу нечетного - сделать опять генерацию нового числа
вот бы простенькую проверку на четность числа ммм..
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
04.10.2018, 21:33
Цитата Сообщение от rolandas Посмотреть сообщение
сделать опять генерацию нового числа
а если злой генератор будет нечетные всегда генерить?))) это не выход...
Цитата Сообщение от rolandas Посмотреть сообщение
вот бы простенькую проверку на четность числа ммм
ну когда число четное??? ну когда например делится на 2 без остатка. т.е. остаток равен нулю.. когда еще четное??? когда нулевой бит числа в 0))))


Delphi
1
2
3
x := Random(3000);
if x mod 2 = 1 then // число не четное, остаток 1...
x := x - 1; // сделаем шаг назад, так как это должен быть вопрос перед этим ответом, если сделать +1, будет следющий вопрос
ну совсем чтоль без основ всех основ тута?)
0
 Аватар для Matan!
1882 / 1016 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
05.10.2018, 02:12
Цитата Сообщение от Arcor Посмотреть сообщение
явно, ты хотел так вот написать при условии, что Q11, A11
Именно
Цитата Сообщение от rolandas Посмотреть сообщение
вот бы простенькую проверку на четность числа ммм..
Delphi
1
2
if not Odd(x) then // если число чётное...
.....
Либо как-то так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
if Odd(x) then
begin
  x := x - 1;
  // спрашиваем
  // отвечаем
end
else
begin 
  // спрашиваем
  // отвечаем
end;
Добавлено через 3 минуты

Не по теме:

Упс, прости, Arcor, вгляделся в твой код,увидел то же самое.. А я только начал думать, что если х=1, попадём не туды...

0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,684
Записей в блоге: 21
05.10.2018, 08:23
я ждал ждал
что, никто не предложит
RANDOM(N DIV 2)
RANDOM(N DIV 2)+1
??
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
05.10.2018, 09:55
Цитата Сообщение от krapotkin Посмотреть сообщение
я ждал ждал
что, никто не предложит
ну так не напрасно и ждал, никто же так и не предложил
ну конечно, с утра со свежей головой-то , а вечером уже не думалось)))))))) (типа отмаза )))) )

да все равно, что-то мне не нравится такое решение... четные/нечетные.. потом напишет он этот рандом.. потом понадобится, как пить дать, разбить все на категории и начнется. вот индексы больше "траляля" к одному относятся, индексы в другом диапазоне - другое... как выбрать потом десяток вопросов по одной теме.. ну 1500 вопросов подряд.. это дибильнуться можно, если проходить тест))) тоже самое что открыть словарь и учить язык по нему начиная с А и заканчивая Я потом еще придется полюбому запоминать вопрос на котором закончили сегодня, чтобы продолжить завтра.. ээхх тут столькООО всего будет))) Файлы изначлаьно по какой-то логике названы уже так, чтобы суметь произвести ну минимум 5 операций с этими названиями))) я так думаю)

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

Для универа(для хорошой знакомой профессорки еще со времен универа) тож недавно писал для студяг прогу-тестировщик, или как она праивльно по русски.. Суть просто в том, я давно уже ее написал, но я ее написал так, как я ее видел, а потом полетели желания студяг, что и как они хотят видеть в проге, до многого даже и не додумаешься сам.. то цветочки.. то ягодки..после обговора, что и как должно быть там, начал замазывать дырки и латать бесконечно прогу, а потом плюнул на все и написал с нуля, что вышло быстрее, качественнее и с динамически встраиваемым функционалом для расширения
0
 Аватар для rolandas
23 / 12 / 2
Регистрация: 20.04.2011
Сообщений: 382
05.10.2018, 13:39  [ТС]
ммм дяя.. с скриншота докапалися..
по категориям не буду делать, но по числу билетов - будет ещё 1500. повторении не критично и таймеры по времени не нужны или подсчеты правильных-неправильных ответов. всем спасибо, окончательный вот код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
unit Unit1;
 
interface
 
uses
  Windows, JPEG, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Image1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
Form1: TForm1;
ma : array[0 .. 10] of integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
 
var
x,y,ii : Integer;
a,b,c,d : String;
hours, mins, secs, milliSecs : Word;
 
begin
 
DecodeTime(now, hours, mins, secs, milliSecs);
RandSeed := milliSecs;
begin
x := 1 + Random(470);
if x mod 2 = 0 then
else
x := 1 + Random(470);
if x mod 2 = 0 then
else
x := 1 + Random(470);
if x mod 2 = 0 then
else
x := 1 + Random(470);
if x mod 2 = 0 then
else
x := 1 + Random(470);
if x mod 2 = 0 then
else
x := 1 + Random(470);
if x mod 2 = 0 then
else
x := 1 + Random(470);
if x mod 2 = 0 then
else
x := 1 + Random(470);
end;
 
d :=IntToStr(x);
Label2.Caption:=d;
 
ma[1] := x;
b := 'a\';
a := IntToStr(x) + '.jpg';
c := b+a;
 
Image1.Picture.LoadFromFile(c);
 
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
x,y,ii : Integer;
a,b,c : String;
 
begin
y := ma[1];
x := y - 1;
b := 'a\';
a := IntToStr(x) + '.jpg';
c := b+a;
 
Image1.Picture.LoadFromFile(c);
 
end;
 
end.
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
05.10.2018, 13:57
а это что еще за ге....ой, простите... в строчках 45-66????? первый вопрос для чего, второй вопрос, если это действительно надо, почему не циклом ?))
0
 Аватар для Matan!
1882 / 1016 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
05.10.2018, 14:26
Цитата Сообщение от Arcor Посмотреть сообщение
почему не циклом
Там две строки написать надо:
Delphi
1
2
    if x mod 2 <> 0 then
      Inc(x);
вместо всей этой мозгое...

Добавлено через 39 секунд
А учитывая это:
Цитата Сообщение от rolandas Посмотреть сообщение
ma[1] := x;
b := 'a\';
a := IntToStr(x) + '.jpg';
c := b+a;
я отписываюсь..
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
05.10.2018, 14:53
нене, это у него алгоритм выпадение числа с шансом получается)) рандомить несколько раз если... вот нахера только...
тут уже страниц в этой теме больше, чем алгоритм текущей программы, пусть учится. я не имею нчиего против! наоборот.

я тоже тупил по страшному в самом начале)) да и сейчас иногда часто бывает))))
0
 Аватар для rolandas
23 / 12 / 2
Регистрация: 20.04.2011
Сообщений: 382
05.10.2018, 15:48  [ТС]
за право тупить товарищи!
за
Delphi
1
2
if x mod 2 <> 0 then
      Inc(x);
спасибо

а массив там вот для чего:

если при первом запуске запускать программу и нажать сразу на показать ответ - вторую кнопку
значение х получалось ужасно большое число.
в массив не локально записываю значение единицу для отображения первой картинки вместо зависания.
а почему массив? а потому, что локально если записываю x:=1; после formcreate
почему-то не сохраняет значения единицы после нажатия второй кнопки.
а не в локальном вариянте с массивом - получилось
0
Модератор
 Аватар для D1973
9954 / 6489 / 2461
Регистрация: 21.01.2014
Сообщений: 27,488
Записей в блоге: 3
05.10.2018, 16:27
Цитата Сообщение от rolandas Посмотреть сообщение
если при первом запуске запускать программу и нажать сразу на показать ответ - вторую кнопку
значение х получалось ужасно большое число
А что мешает задизаблить эту кнопку до тех пор, пока х не примет какое-то значение? Эта х у Вас нигде не инициализируется после объявления - вот и несуразно большое число в момент несанкционированного нажатия. Либо при создании формы проводите инициализацию, либо открывайте доступ к кнопке только после того, как х примет вменяемое значение.
0
 Аватар для rolandas
23 / 12 / 2
Регистрация: 20.04.2011
Сообщений: 382
05.10.2018, 16:36  [ТС]
вот именно, при создании формы после formcreate
писал:
Delphi
1
2
3
procedure TForm1.FormCreate(Sender: TObject);
var
x:=1;
не работало.
Миниатюры
Как сократить данный отрывок кода?  
0
Модератор
 Аватар для D1973
9954 / 6489 / 2461
Регистрация: 21.01.2014
Сообщений: 27,488
Записей в блоге: 3
05.10.2018, 17:06
rolandas, Вы вообще хоть что-то для совсем-совсем начинающих пробовали читать? Знаете - здорово помогает...
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  x: integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 x := 1;
end;
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
05.10.2018, 19:17
Цитата Сообщение от D1973 Посмотреть сообщение
задизаблить
у меня аж чувство тревоги разыгралось внутри, пока я прочитал наконец-то это слово.. попытки навреное с седьмой
0
 Аватар для rolandas
23 / 12 / 2
Регистрация: 20.04.2011
Сообщений: 382
05.10.2018, 19:37  [ТС]
ребят, задумайтесь о масштабности: можно уметь 0.0001% (число нолей после запятой не критично) долю программирования, чтобы сделать форму с кнопкой и выводом картинки и этим уже гордиться, особенно если эти картинки уже помогают в какой то другой учебе чего-то другого

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

Добавлено через 7 минут
если хорошенько крякануть комерческий софт, то возможно энейблиться визибильность лайтинигого будущего
0
05.10.2018, 20:44

Не по теме:

Цитата Сообщение от rolandas Посмотреть сообщение
и этим уже гордиться
Вот и все у нас так: навалят кучу навоза не к месту и дуются от гордости - эвон, какие мы аграрии... А нет, чтобы к советам людей, всю жизнь на земле работающих, прислушаться... :( Ну это так, лирика отвлеченная...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.10.2018, 20:44

Как сократить данный код?
Во время урока алгебры Незнайка написал следующую таблицу на доске: a b a2b ab2 12 2 288 48 -1 -1 -1 -1 9 -3 -243 81 ...

Как можно сократить данный код?
1.Как можно упростить(сократить) этот код? 2.Почему я не могу объявить его в public partial class MainWindow : Window, а только в...

Как можно сократить данный код?
Как можно сократить данный код? ( Программа выводит 10 рандомных чисел: 3 в промежутке от 10-30, 3 от 30-60, и последние 4 от 60-100 ...

Как сократить данный код CSS?
Привет! Как можно сократить такой код до удобоваримого чтения браузером? Это код - фигура (png прилагаю). Осторожно! Код более 10000...

Как можно сократить и упростить данный код
Всем привет! Появилась отличная идея сделать консольную игру типа 2D головоломки. Создал дизайн первого уровня и тут же наткнулся на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
57
Ответ Создать тему
Новые блоги и статьи
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru