Перейти до вмісту

Зацініть прогу


Повідомлень в темі: 7

#1 FT232BM

    私は人々嫌い

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3435 повідомлень
  • Стать:Чоловік
  • Місто:Київ->НТУУ "КПІ"

Відправлено 26.10.2008 – 22:09

  • 7
Я написав прогу по розрахунку NPN транзисторів в мікросхемній реалізації. Використав ненависну мною MSVS7 та мову C#, яку я теж не долюблюю.
Увага питання:
Що можна у ній покращити з точки зору .NET та C#, може я в якомусь місці зробив дурну роботу(За private в кожному рядку не кажіть, сам знаю). Чекаю порад.
NPN.rar на FileShare.in.ua

#2 Андре

    Постійний житель

  • Користувачі
  • PipPipPipPipPip
  • 134 повідомлень
  • Стать:Чоловік
  • Місто:Тернопіль

Відправлено 27.10.2008 – 21:38

Програма доволі проста.

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

а тут помилка:


...

if(WINT<=2.5) WB=2.5;
if(WINT<=2) WB=2;
if(WINT<=1.8) WB=1.8;
if(WINT<=1.5) WB=1.5;
if(WINT<=1.4) WB=1.4;
if(WINT<=1.3) WB=1.3;
if(WINT<=1.2) WB=1.2;
if(WINT<=1.1) WB=1.1;
if(WINT<=1) WB=1;
if(WINT<=0.9) WB= 0.9;

...

якщо WINT <=2.5 то результатом такого коду, в будь-якому випадку, буде 2,5.

тобто, весь код, починаючи від другого оператора if, не має змісту.

здається, потрібно було зробити шось таке (в зворотньому порядку і з else):

...
if(WINT<=0.9) WB= 0.9; else
 if(WINT<=1) WB=1; else
  if(WINT<=1.1) WB=1.1; else
   if(WINT<=1.2) WB=1.2; else
    if(WINT<=1.3) WB=1.3; else 
     if(WINT<=1.4) WB=1.4; else
      if(WINT<=1.5) WB=1.5; else
       if(WINT<=1.8) WB=1.8; else
        if(WINT<=2) WB=2; else
         if(WINT<=2.5) WB=2.5; else
...


Повідомлення відредагував Андре: 27.10.2008 – 21:39

  • 0

#3 FT232BM

    私は人々嫌い

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3435 повідомлень
  • Стать:Чоловік
  • Місто:Київ-&gt;НТУУ &quot;КПІ&quot;

Відправлено 28.10.2008 – 20:07

Дуже дякую!!! Особливо за WINT. Просто я прогу з а фортрана перекладав, провтикав, коли спішив))
Ось як на фортрані було:
C	 9. Расчет ширины технологической базы
	  WINT=DELKB*1.5
	  IF(WINT.LE.2.5) WB=2.5
	  IF(WINT.LE.2.) WB=2.
	  IF(WINT.LE.1.8) WB=1.8
	  IF(WINT.LE.1.5) WB=1.5
	  IF(WINT.LE.1.4) WB=1.4
	  IF(WINT.LE.1.3) WB=1.3
	  IF(WINT.LE.1.2) WB=1.2
	  IF(WINT.LE.1.1) WB=1.1
	  IF(WINT.LE.1.) WB=1.
	  IF(WINT.LE..9) WB= .9
	  WRITE (3,11) WB

Повідомлення відредагував FT232BM: 28.10.2008 – 20:09

  • 0

#4 Lactarius

    Генеральний писар

  • Користувачі
  • PipPipPipPipPipPipPipPipPip
  • 976 повідомлень
  • Стать:Чоловік
  • Місто:Львів

Відправлено 29.10.2008 – 01:47

Цитата

if(VT.Calc()==-1) System.Windows.Forms.MessageBox.Show("Ширина бази не коректна! Див. дані.");
else System.Windows.Forms.MessageBox.Show("Розрахунок пройшов успішно");
Чому би не зробити перевірку в методі Calc() і піднімати ексепшн?

Також є певний зміст використовувати такий контрол як WebBrowser оскільки програма генерує НТМЛ код, можна було б переглянути його прямо в формі.

Константи можна зробити статичними (необовязково) членами класу з модифікаторами readonly чи const (обовязково) і зробити їх public (необовязково)

Цитата

System.Windows.Forms.MessageBox.Show()
Оскільки в коді є using System.Windows.Forms; то можна писати просто MessageBox.Show()

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

#5 FT232BM

    私は人々嫌い

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3435 повідомлень
  • Стать:Чоловік
  • Місто:Київ-&gt;НТУУ &quot;КПІ&quot;

Відправлено 29.10.2008 – 07:03

Цитата

Чому би не зробити перевірку в методі Calc() і піднімати ексепшн?
Роздумував довго над цим. Щось мені здалось, що так модніше буде. Якщо обробка результату даного методу була б складніша просто нехотілось вписувати додаткові using в клас.

Цитата

Також є певний зміст використовувати такий контрол як WebBrowser оскільки програма генерує НТМЛ код, можна було б переглянути його прямо в формі.
Ідея не погана, але я не знайшов як працювати з декількома формами(показати, приховати, стартувати, закрити). Але більш за все мене цікавить клас, що дозволяє генерувати html код на автоматі, а не ручками теги писати. Т.є. наприклад якщо я хочу записати, щось в <td> то окремо вказую назву тего та окремо його зміст, ну ви зрозуміли.

Цитата

System.Windows.Forms.MessageBox.Show()
Завтикав))
  • 0

#6 Lactarius

    Генеральний писар

  • Користувачі
  • PipPipPipPipPipPipPipPipPip
  • 976 повідомлень
  • Стать:Чоловік
  • Місто:Львів

Відправлено 29.10.2008 – 20:48

Цитата

Роздумував довго над цим. Щось мені здалось, що так модніше буде. Якщо обробка результату даного методу була б складніша просто нехотілось вписувати додаткові using в клас.
Щоб підняти і спіймати ексепшн не потрібні лишні простори імен. Обробка була б зрозуміліша.

Цитата

Ідея не погана, але я не знайшов як працювати з декількома формами(показати, приховати, стартувати, закрити). Але більш за все мене цікавить клас, що дозволяє генерувати html код на автоматі, а не ручками теги писати. Т.є. наприклад якщо я хочу записати, щось в <td> то окремо вказую назву тего та окремо його зміст, ну ви зрозуміли.
1) Другу форму не обовязково відкривати
2) Form2.Show(); Form2.Hide(); Form2.Close(); Під словом стартувати напевно мається на увазі виклик конструктора.
3) По HTML пошукаю
  • 0

#7 FT232BM

    私は人々嫌い

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3435 повідомлень
  • Стать:Чоловік
  • Місто:Київ-&gt;НТУУ &quot;КПІ&quot;

Відправлено 29.10.2008 – 23:35

Цитата

Під словом стартувати напевно мається на увазі виклик конструктора.
Саме це і мав наувазі.
На днях буду добивати прогу такшо відзвітую, а то зара Assembler разом з JavaScript одночасно дожимають.
  • 0

#8 Lactarius

    Генеральний писар

  • Користувачі
  • PipPipPipPipPipPipPipPipPip
  • 976 повідомлень
  • Стать:Чоловік
  • Місто:Львів

Відправлено 30.10.2008 – 00:56

На рахунок генерації ХТМЛ Варто підключити референс Microsoft HTML object library появиться неймспейс mshtml там є купа класів типу HTMLDocument, HTMLTable З різними властивостями...
  • 0



Кількість користувачів, що читають цю тему: 1

0 користувачів, 1 гостей, 0 анонімних


Магазин кубиков Рубика Cubes.in.ua