|
Вопрос # 6 164/ вопрос открыт / |
|
Не могу разобраться как ввести ударников,чтобы выдовало и отличников и ударников.
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
Мини-форум вопроса
Всего сообщений: 12; последнее сообщение — 31 мая 2012, 16:25; участников в обсуждении: 4.
|
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™ (статус: Доктор наук), 28 мая 2012, 08:13 [#3]:
Цитата (Петинов Александр Николаевич):
я не могу убрать паскалевские функции так как нас другому не учили.
Представь себе, я вообще не на программиста учился, но уже 11 лет работаю на заводе именно программистом.
А вообще, если программа ведёт себя неадекватно, воспользуйся отладчиком, пройди проблемный кусок по шагам и посмотри значения переменных.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
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™ (статус: Доктор наук), 29 мая 2012, 19:02 [#5]:
Цитата (Drinkenz):
может множества использовать?
И чо изменилось? условие if такое же длинное, как и было.
З.Ы. Множества задаются в квадратных скобках.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
bugmenot (статус: 3-ий класс), 29 мая 2012, 21:47 [#6]:
Цитата (min@y™):
условие if такое же длинное, как и было
Потому что нужно пересечение и проверка результата на пустое множество 
И чо за джихад против паскалевского I/O?
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
|
min@y™ (статус: Доктор наук), 29 мая 2012, 22:09 [#7]:
Цитата (bugmenot):
И чо за джихад против паскалевского I/O?
Ну, про джихад ты загнул... Просто, судя по задачам, где есть работа с файлами, эти функции сильно усложняют код. Ну нафига, если для бинарников есть TFileStream, а для текстовых - TStringList?
Цитата (bugmenot):
Потому что нужно пересечение и проверка результата на пустое множество 
Да не, просто программа изначально спроектирована неправильно. Отсюда по цепочке вылезают всё новые и новые геморрои. Поэтому я и советовал выкинуть этот опус и написать с нуля по-человечески. Это ИМХО, конечно. Автор, если хочет, пусть мучается. Я бы на его месте придумал свой формат файла, но работал бы с содержимым исключительно в памяти. Ещё легче - заюзать XML, но, думаю, тупой препод не оценит такой перфоманс.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
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™ (статус: Доктор наук), 30 мая 2012, 09:03 [#9]:
Цитата (bugmenot):
А TFileStream что может? Ничего, он просто аналог нетипизированного файла.
А как на счёт TStringList и XML?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
bugmenot (статус: 3-ий класс), 30 мая 2012, 11:08 [#10]:
Цитата (min@y™):
TStringList
TStrings.LoadFromFile неоптимально использует память, неприменим для больших объемов данных.
Цитата (min@y™):
XML
Тогда уж ClientDataSet, если внутри табличные данные...
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
|
min@y™ (статус: Доктор наук), 30 мая 2012, 13:07 [#11]:
Цитата (bugmenot):
TStrings.LoadFromFile неоптимально использует память, неприменим для больших объемов данных.
Зато можно обращаться к строкам по индексу и прикручивать объекты.
Цитата (bugmenot):
Тогда уж ClientDataSet, если внутри табличные данные...
Ну, это надо БД городить. XML хорош как для табличных, так и для древовиднях данных. Причём с обратной совместимостью по изменениям формата.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
bugmenot (статус: 3-ий класс), 31 мая 2012, 16:25 [#12]:
Цитата (min@y™):
Зато можно обращаться к строкам по индексу и прикручивать объекты.
А при моем подходе можно это делать сразу, без прикручивания. Да и в подходе с TStringList, как оказалось, строки не очень нужны...
Цитата (min@y™):
XML хорош как для табличных, так и для древовиднях данных
У нас строго табличные, зачем предусматривать масштабируемость?Цитата (min@y™):
Причём с обратной совместимостью по изменениям формата.
Здесь согласен.
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
20 июня 2012, 21:20: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Лабораторный практикум » Delphi модератором Ерёмин А.А.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|