381

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

Мене тут звинуватили у агресії, але я ще не починав...
тож скажу таке. варіант з масивом є милицею. Він простий, але призводить до помилок і батхерту при зневадженні. бо воно як ракова пухлина розповзеться по коду і випиляти або бодай знайти, що не так, буде вкрай складно.
НІКОЛИ, повторюю, НІКОЛИ не треба так робити.
Що ж треба робити? <тут повинна була б реклама курсу з алгоритмів та структур даних, але ні>. В Delphi є такий тип даних TDictionary. Словник ідеально підходить для такої ситуації. Є ключ і є відповідне значення. Додавати можна без будь яких наслідків що і скільки завгодно. При видаленні елемента випадатиме експшн, що чітко вкаже на причину - відсутність ключа.
пс отакі тут поради...

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

382

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

ProgramBandera
TDictionary - підходить лише для випадків, коли ви плануєте змінювати список впродовж роботи програми. Якщо протягом роботи список залишатиметься незмінним, то набагато краще обійтися константами:

type
  TSIPrefixes = (yocto(*йокто*), zepto(*зепто*), atto(*ато*), ...);
const
  SIPrefixText: array[TSIPrefixes] of string = ('йокто', 'зепто', 'ато', ...);
...
WriteLn(SIPrefixText[yocto]);
Подякували: ProgramBandera1

383

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

Torbins написав:

ProgramBandera
TDictionary - підходить лише для випадків, коли ви плануєте змінювати список впродовж роботи програми. Якщо протягом роботи список залишатиметься незмінним, то набагато краще обійтися константами:

type
  TSIPrefixes = (yocto(*йокто*), zepto(*зепто*), atto(*ато*), ...);
const
  SIPrefixText: array[TSIPrefixes] of string = ('йокто', 'зепто', 'ато', ...);
...
WriteLn(SIPrefixText[yocto]);

Ні список не буде мінятися під час виконання програми. Дякую пане Торбінс.

384

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

*FACEPALM*

385

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

Пане ProgramBandera, а звідки взагалі виникла така задача? У вас програма робить якісь обчислення. Обчислення, як нас (і я певен вас теж) вчили, треба робити в одній системі одиниць (зазвичай СІ). Всі ці префікси потрібні для запису чисел перед і після обчислень, всередині вони заважають. Тобто вам потрібні функції перетворення з префіксних одиниць у одиниці СІ і навпаки, і все? Чи я чогось не розумію?