Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 164

/ вопрос открыт /

Не могу разобраться как ввести ударников,чтобы выдовало и отличников и ударников.

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Петинов Александр Николаевич Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Петинов Александр Николаевич (статус: Посетитель)
Вопрос отправлен: 27 мая 2012, 17:19
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 12; последнее сообщение — 31 мая 2012, 16:25; участников в обсуждении: 4.
min@y™

min@y™ (статус: Доктор наук), 27 мая 2012, 19:08 [#1]:

Может, всё-таки, перепишешь программу с нуля, по-нормальному, а?
Второй раз скачал твоё художество. Ну почему твой RAR-архив не имеет расширения rar? Догадаться мне, конечно, несложно, но напрягает.
Ещё раз повторяю: выкинь паскалевские функции ввода/вывода. Их проехали лет 15 назад уже. Есть TFileStream, TStringList и т.д. и т.п. Есть БД и XML...
Что, учиться влом? Тогда бросай.
Думаю, никто здесь не будет ковырять твой говнокод, так как у всех дети-жёны-дача-лето-работа. Вопросы надо задавать конкретно, например: "у меня есть вот это: [кусок кода строк на 15-20]. Я хотел, чтобы он делал [вот такую хрень], а он, почему-то делает [вот такую хрень]. Чо я делаю не так?".

Сорри, ничего личного. :)
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Петинов Александр Николаевич

Петинов Александр Николаевич (статус: Посетитель), 27 мая 2012, 21:16 [#2]:

procedure TForm1.N8Click(Sender: TObject);
var FS,NG:string[30]; i,m:integer;
begin
reset(f);
Stringgrid2.RowCount:=2;
i:=1;
while not eof(f) do begin
read(f,p);
m:=5;
if (p.Mat=m) and (p.Rus=m) and (p.Fiz=m) and (p.Xim=m) and (p.Info=m) then begin
with stringgrid2 do begin
Cells[0,i]:=p.FS;
Cells[1,i]:=p.NG;
Cells[2,i]:=inttostr(p.Mat);
Cells[3,i]:=inttostr(p.Rus);
Cells[4,i]:=inttostr(p.Fiz);
Cells[5,i]:=inttostr(p.Xim);
Cells[6,i]:=inttostr(p.Info);
rowcount:=rowcount+1;
end;
i:=i+1;
end;
end;
closefile(f);
end;
я не могу убрать паскалевские функции так как нас другому не учили.
А в отреке я не могу ввести чтобы выдовало пятерки,четверки,и то и другое одним запросом,я пробовал вместо m:=5 ввсети условие типо этого m>4,но ни че не получается
min@y™

min@y™ (статус: Доктор наук), 28 мая 2012, 08:13 [#3]:

Цитата (Петинов Александр Николаевич):

я не могу убрать паскалевские функции так как нас другому не учили.

Представь себе, я вообще не на программиста учился, но уже 11 лет работаю на заводе именно программистом.
А вообще, если программа ведёт себя неадекватно, воспользуйся отладчиком, пройди проблемный кусок по шагам и посмотри значения переменных.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Drinkenz

Drinkenz (статус: 1-ый класс), 29 мая 2012, 18:14 [#4]:

может множества использовать?
var m: set of byte=(2..5);
...
if (p.Mat in m) and (p.Rus in m) and (p.Fiz in m) and (p.Xim in m) and (p.Info in m) then begin
min@y™

min@y™ (статус: Доктор наук), 29 мая 2012, 19:02 [#5]:

Цитата (Drinkenz):

может множества использовать?

И чо изменилось? условие if такое же длинное, как и было.
З.Ы. Множества задаются в квадратных скобках.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
bugmenot

bugmenot (статус: 3-ий класс), 29 мая 2012, 21:47 [#6]:

Цитата (min@y™):

условие if такое же длинное, как и было

Потому что нужно пересечение и проверка результата на пустое множество :-)

И чо за джихад против паскалевского I/O?
виконання програми розпочинається з того самого мiсця, де призупинилося.

min@y™

min@y™ (статус: Доктор наук), 29 мая 2012, 22:09 [#7]:

Цитата (bugmenot):

И чо за джихад против паскалевского I/O?

Ну, про джихад ты загнул... Просто, судя по задачам, где есть работа с файлами, эти функции сильно усложняют код. Ну нафига, если для бинарников есть TFileStream, а для текстовых - TStringList?

Цитата (bugmenot):

Потому что нужно пересечение и проверка результата на пустое множество :-)

Да не, просто программа изначально спроектирована неправильно. Отсюда по цепочке вылезают всё новые и новые геморрои. Поэтому я и советовал выкинуть этот опус и написать с нуля по-человечески. Это ИМХО, конечно. Автор, если хочет, пусть мучается. Я бы на его месте придумал свой формат файла, но работал бы с содержимым исключительно в памяти. Ещё легче - заюзать XML, но, думаю, тупой препод не оценит такой перфоманс.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
bugmenot

bugmenot (статус: 3-ий класс), 30 мая 2012, 08:45 [#8]:

Цитата (min@y™):

эти функции сильно усложняют код

Цитата (min@y™):

Я бы на его месте придумал свой формат файла

Смотри:

type MyRecord = packed record
  MyInteger: Integer;
  MyString : packed array[0..N-1] of Char;
  MyOther  : set of MyEnum;
end;
 
var MyFile: file of MyRecord;

еще ни строчки исполняемого кода не написал, а формат уже кристально четко объявлен.

Цитата (min@y™):

но работал бы с содержимым исключительно в памяти

Да пожалуйста,

type TMyMemData: array of MyRecord;

А TFileStream что может? Ничего, он просто аналог нетипизированного файла.
виконання програми розпочинається з того самого мiсця, де призупинилося.

min@y™

min@y™ (статус: Доктор наук), 30 мая 2012, 09:03 [#9]:

Цитата (bugmenot):

А TFileStream что может? Ничего, он просто аналог нетипизированного файла.

А как на счёт TStringList и XML?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
bugmenot

bugmenot (статус: 3-ий класс), 30 мая 2012, 11:08 [#10]:

Цитата (min@y™):

TStringList

TStrings.LoadFromFile неоптимально использует память, неприменим для больших объемов данных.

Цитата (min@y™):

XML

Тогда уж ClientDataSet, если внутри табличные данные...
виконання програми розпочинається з того самого мiсця, де призупинилося.

min@y™

min@y™ (статус: Доктор наук), 30 мая 2012, 13:07 [#11]:

Цитата (bugmenot):

TStrings.LoadFromFile неоптимально использует память, неприменим для больших объемов данных.

Зато можно обращаться к строкам по индексу и прикручивать объекты.

Цитата (bugmenot):

Тогда уж ClientDataSet, если внутри табличные данные...

Ну, это надо БД городить. XML хорош как для табличных, так и для древовиднях данных. Причём с обратной совместимостью по изменениям формата.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
bugmenot

bugmenot (статус: 3-ий класс), 31 мая 2012, 16:25 [#12]:

Цитата (min@y™):

Зато можно обращаться к строкам по индексу и прикручивать объекты.

А при моем подходе можно это делать сразу, без прикручивания. Да и в подходе с TStringList, как оказалось, строки не очень нужны...

Цитата (min@y™):

XML хорош как для табличных, так и для древовиднях данных

У нас строго табличные, зачем предусматривать масштабируемость?

Цитата (min@y™):

Причём с обратной совместимостью по изменениям формата.

Здесь согласен.
виконання програми розпочинається з того самого мiсця, де призупинилося.

20 июня 2012, 21:20: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Лабораторный практикум » Delphi модератором Ерёмин А.А.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:25
Выполнено за 0.03 сек.