![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
natik3 |
![]()
Сообщение
#21
|
Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Женский Репутация: ![]() ![]() ![]() |
Да я допустил маленькую ошибочку,bеgin еnd не расставил, щас просто программирую больше на дугом языке.
Вот так вроде работает. Но я использовал свое условие,а не IUnknown он все равно двоечников переводит...( их не надо удалять но и переводить не надо.это функция должна быть как условие... |
Krjuger |
![]()
Сообщение
#22
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Окей. Тогда вынесем проверку на двоечника вперед,чтобы в случае чего вообще не рассматривать проверку на специальность и курс.
|
natik3 |
![]()
Сообщение
#23
|
Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Женский Репутация: ![]() ![]() ![]() |
Окей. Тогда вынесем проверку на двоечника вперед,чтобы в случае чего вообще не рассматривать проверку на специальность и курс.
я знаю,что я тебя достала,но все равно двоечников переводит..( |
Krjuger |
![]()
Сообщение
#24
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Показывай твой код потому что у мня не переводит......
|
natik3 |
![]()
Сообщение
#25
|
Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Женский Репутация: ![]() ![]() ![]() |
Показывай твой код потому что у мня не переводит...... Код program str155n10; {$APPTYPE CONSOLE} uses SysUtils, windows; const n=3; //кол во студентов const m=2; //кол-во предметов type formob=(spez,bakal,magis); Tballs=array[1..m] of 1..5; telem=record FIO:string[35]; curs: integer; f_study:formob; balls:Tballs; Med_ball:real; end; tmas=array [1..n] of telem; function menu :integer; var choice:integer; error_in: boolean; begin writeln; writeln (' ','1.Сортировка'); writeln (' ','2.Перевод на следующий курс'); writeln (' ','3.Выход'); error_in:=false; repeat write ('Choice: '); readln (choice); error_in:=(choice<1) or (choice >3); if error_in then writeln ('Error!') until not error_in; menu:=choice; end; procedure Add (var a:telem); var k,i:integer; b:telem; s:integer; begin writeln('ФИО'); readln(b.FIO); writeln('Номер формы обучения(1.специалист 2. бакалавр 3. магистр)'); readln(k); case k of 1: b.f_study:=spez; 2: b.f_study:=bakal; 3: b.f_study:=magis end; writeln('Курс'); readln(b.curs); writeln('Оценка'); s:=0; for i:=1 to m do begin readln(b.balls[i]); s:=s+b.balls[i]; end; b.med_ball:=s/m; a:=b; end; procedure swap(var x,y: telem); var t: telem; begin t := x; x := y; y := t end; procedure sort(var b:tmas); var i,j:integer; tmp:telem; begin for j:=1 to N-1 do for i:=1 to N-j do if (b[i].med_ball > b[i+1].med_ball) then swap(b[i],b[i+1]); end; procedure Delete(var a:tmas; var p:integer; i:integer); var j:integer; begin if i<n then begin for j:=i+1 to n-p do a[j-1]:=a[j]; end; p:=p+1; end; function Dvoechnik(var a: telem):boolean; var flag:boolean; i,j:integer; begin flag:=false; for j:=1 to m do begin if (a.balls[j]<3) then begin flag:=true; end; end; Dvoechnik:=flag; end; function LevelUp(var a: tmas; p:integer):integer; var i:integer; begin for i:=n downto 1 do begin if not Dvoechnik(a[i]) then begin if ((a[i].f_study=magis) and (a[i].curs<6)) then a[i].curs:=a[i].curs+1 else begin if ((a[i].f_study=spez) and (a[i].curs<5)) then a[i].curs:=a[i].curs+1 else begin if ((a[i].f_study=bakal) and (a[i].curs<4)) then a[i].curs:=a[i].curs+1 else Delete(a,p,i); end; end; end; end; LevelUp:=p; end; var a:tmas; mn,i:integer; exit_:char; p:integer; begin setconsolecp(1251); setconsoleoutputcp(1251); for i:=1 to n do Add(a[i]); writeln; REPEAT p:=0; mn:=Menu; case mn of 1:begin sort(a); for i:=1 to n do begin write(a[i].FIO+' '); writeln(a[i].med_ball:4:4); end; end; 2: begin p:=LevelUp(a,p); for i:=1 to n-p do begin write(a[i].FIO+' '); // writeln(a[i].med_ball:4:4); end; end; else begin writeln; write (' ','Завершить работу? (Y/N)'); readln(exit_); end; end; UNTIL (exit_='y') or (exit_='Y') or (mn=3); readln; end. я ничего не меняла.только чтоб на русском выводилось и все |
Krjuger |
![]()
Сообщение
#26
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Девушка, либо я дурак,либо что-то тут не так,но вот смотрите, вот что я запускаю.
Я удалил всякие satcosole потому,что у меня турбопаскаль,но сути дела не меняет. Вот что я запускаю qwerty 2 5 3 3 asdfg 2 5 4 2 zxcvb 2 2 4 4 В итоге на выходе у меня написано. asdfg 5, собственно он остался на 5 курсе из-за двойки и zxcvb переведен на 3 курс,а qwerty был удален. Что я делаю не так???????????? Дайте мне тесты,когда это не работает???????? Сообщение отредактировано: Krjuger - 4.06.2012 23:03 |
natik3 |
![]()
Сообщение
#27
|
Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Женский Репутация: ![]() ![]() ![]() |
Девушка, либо я дурак,либо что-то тут не так,но вот смотрите, вот что я запускаю.
Я удалил всякие satcosole потому,что у меня турбопаскаль,но сути дела не меняет. Вот что я запускаю qwerty 2 5 3 3 asdfg 2 5 4 2 zxcvb 2 2 4 4 В итоге на выходе у меня написано. asdfg 5, собственно он остался на 5 курсе из-за двойки и zxcvb переведен на 3 курс,а qwerty был удален. Что я делаю не так???????????? Дайте мне тесты,когда это не работает???????? смотрите у вас у asdfg есть оценка 2 и,если я правильно понимаю,когда мы выбираем пункт перевод на следующий курс он у нас печатает его в списке переведенных?или как? вот смотрите,что ввожу я ФИО иванов Номер формы обучения(1.специалист 2. бакалавр 3. магистр) 1 Курс 5 Оценка 4 5 ФИО сидоров Номер формы обучения(1.специалист 2. бакалавр 3. магистр) 2 Курс 3 Оценка 2 5 ФИО петров Номер формы обучения(1.специалист 2. бакалавр 3. магистр) 3 Курс 2 Оценка 4 5 1.Сортировка 2.Перевод на следующий курс 3.Выход Choice: 2 сидоров 3.5000 петров 4.5000 1.Сортировка 2.Перевод на следующий курс 3.Выход Choice: он переводит сидорова...хотя он не должен этого делать,т к у него есть оценка 2! |
Krjuger |
![]()
Сообщение
#28
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Блииииин, я столько работы зря проделал.
Девушка не глупите. Он выводит не список тех кого переводит, а список ВСЕХ кто щас учится, я же дописал,чтобы выводило номер курса.Правильно, он выводит сидорова,потому что он не закончил обучение, он остался на том же курсе,что и был. Выведите вместо средней оценки номер их курсов и все увидите. Если не верите, то повысьте их еще на курс,если бы сидорова повышали на курс,то при втором повышении на курс он оканчивал бы обучение и был бы удален из списка. Сообщение отредактировано: Krjuger - 4.06.2012 23:17 |
natik3 |
![]()
Сообщение
#29
|
Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Женский Репутация: ![]() ![]() ![]() |
Блииииин, я столько работы зря проделал. Девушка не глупите. Он выводит не список тех кого переводит, а список ВСЕХ кто щас учится, я же дописал,чтобы выводило номер курса.Правильно, он выводит сидорова,потому что он не закончил обучение, он остался на том же курсе,что и был. Выведите вместо средней оценки номер их курсов и все увидите. Если не верите, то повысьте их еще на курс,если бы сидорова повышали на курс,то при втором повышении на курс он оканчивал бы обучение и был бы удален из списка. я тупица...(((((( я знаю ,что вы это знаете ,но все же..сейчас перечитала условие задачи и взглянула на него по новому...т е,нам нужно перевести студентов всех студентов,а только 5 курса (специалитета) и 6-ого курса (магистратуры) проверить на наличие двоек и если они присутствуют то тогда оставляем,а если отсутствуют тогда удаляем их?правильно я прнимаю? |
Krjuger |
![]()
Сообщение
#30
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Вы у меня спрашиваете?????Я условие в глаза не видел)))))))
Но если руководстоваться здравым смыслом. Если студент сдает сессию без двоек, его переводят на слудующий курс, если курс последний для его формата обучения, то считается,что он закончил институт, то есть его удаляют из списка учащихся. Если студент получает хотябы 1 двойку, то в реальной жизни есть несколько вариантов, первый, его отчисляют,что изначально я и сделал, вы сказали, что его не надо отчислять, это значит,что его оставляют на второй год,но студентом то он быть не перестает,следовательно из списка студентов не пропадает. Цитата а только 5 курса (специалитета) и 6-ого курса (магистратуры) проверить на наличие двоек и если они присутствуют то тогда оставляем,а если отсутствуют тогда удаляем их?правильно я прнимаю? Не совсем, проверяем студентов всех курсов если у них есть двойка,то оставляем их на том же курсе,где они и были.Если нет двоек, переводим, а если они еще и на последнем курсе,так вообще удаляем,считая,что они закончили обучение. |
natik3 |
![]()
Сообщение
#31
|
Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Женский Репутация: ![]() ![]() ![]() |
Вы у меня спрашиваете?????Я условие в глаза не видел))))))) Но если руководстоваться здравым смыслом. Если студент сдает сессию без двоек, его переводят на слудующий курс, если курс последний для его формата обучения, то считается,что он закончил институт, то есть его удаляют из списка учащихся. Если студент получает хотябы 1 двойку, то в реальной жизни есть несколько вариантов, первый, его отчисляют,что изначально я и сделал, вы сказали, что его не надо отчислять, это значит,что его оставляют на второй год,но студентом то он быть не перестает,следовательно из списка студентов не пропадает. Не совсем, проверяем студентов всех курсов если у них есть двойка,то оставляем их на том же курсе,где они и были.Если нет двоек, переводим, а если они еще и на последнем курсе,так вообще удаляем,считая,что они закончили обучение. я чувствую себя идиоткой..наверно я ей и являюсь..((( я узнаю подробно завтра у преподавателя...спасибо большое за помощь! Добавлено через 5 мин. Вы у меня спрашиваете?????Я условие в глаза не видел))))))) Но если руководстоваться здравым смыслом. Если студент сдает сессию без двоек, его переводят на слудующий курс, если курс последний для его формата обучения, то считается,что он закончил институт, то есть его удаляют из списка учащихся. Если студент получает хотябы 1 двойку, то в реальной жизни есть несколько вариантов, первый, его отчисляют,что изначально я и сделал, вы сказали, что его не надо отчислять, это значит,что его оставляют на второй год,но студентом то он быть не перестает,следовательно из списка студентов не пропадает. Не совсем, проверяем студентов всех курсов если у них есть двойка,то оставляем их на том же курсе,где они и были.Если нет двоек, переводим, а если они еще и на последнем курсе,так вообще удаляем,считая,что они закончили обучение. у меня появилась еще одна глупая мысль..смотрите..нам по условию надо перевести студентов на следующий курс...но если они имеют хотя бы одну двойку,то они остаются на второй год => в списке тех студентов,которых перевели на следующий курс они не должны быть..вот поэтому меня и смущало то,что оно выводит... |
Krjuger |
![]()
Сообщение
#32
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Понимаете, у вас не настолько хорошо структурированные данные.Если бы у вас для каждой специальности для каждого курса был свой собственный список студентов, тогда да это имело бы смысл,а так вы не выводите ни по курсам, ни по специальностям, какой смысл выводить тех,кто переведен,если люди с двойкой тоже являются студентами, просто их товарищи перешли на курс выше, а они остались.
Проще вывести всех,указав, что эти остались на 2 курсе, эти переведены на 3, эти на 4 и тд. Конешно же можно было бы сделать подменю, сделать функцию,которая выводила бы всех студентов заданной специальности на определенном курсе,но каждый раз вбивать этот список,чтобы хотябы по 2-3 человека на каждой специальности хотябы на половине курсов........это порядка 15-20 человек. я точно не стану такое проверять. Сообщение отредактировано: Krjuger - 4.06.2012 23:52 |
natik3 |
![]()
Сообщение
#33
|
Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Женский Репутация: ![]() ![]() ![]() |
Понимаете, у вас не настолько хорошо структурированные данные.Если бы у вас для каждой специальности для каждого курса был свой собственный список студентов, тогда да это имело бы смысл,а так вы не выводите ни по курсам, ни по специальностям, какой смысл выводить тех,кто переведен,если люди с двойкой тоже являются студентами, просто их товарищи перешли на курс выше, а они остались. Проще вывести всех,указав, что эти остались на 2 курсе, эти переведены на 3, эти на 4 и тд. Конешно же можно было бы сделать подменю, сделать функцию,которая выводила бы всех студентов заданной специальности на определенном курсе,но каждый раз вбивать этот список,чтобы хотябы по 2-3 человека на каждой специальности хотябы на половине курсов........это порядка 15-20 человек. я точно не стану такое проверять. спасибо..я завтра все узнаю.как точно надо делать.. |
Krjuger |
![]()
Сообщение
#34
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
То, что четко не обговорено в задании или преподавателем, в университете остается на рассмотрении того,кто выполняет задание, я больше чем уверен,если вы сможете обосновать то, почему вы сделали именно так,у вас примут задачу.
|
natik3 |
![]()
Сообщение
#35
|
Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Женский Репутация: ![]() ![]() ![]() |
Понимаете, у вас не настолько хорошо структурированные данные.Если бы у вас для каждой специальности для каждого курса был свой собственный список студентов, тогда да это имело бы смысл,а так вы не выводите ни по курсам, ни по специальностям, какой смысл выводить тех,кто переведен,если люди с двойкой тоже являются студентами, просто их товарищи перешли на курс выше, а они остались. Проще вывести всех,указав, что эти остались на 2 курсе, эти переведены на 3, эти на 4 и тд. Конешно же можно было бы сделать подменю, сделать функцию,которая выводила бы всех студентов заданной специальности на определенном курсе,но каждый раз вбивать этот список,чтобы хотябы по 2-3 человека на каждой специальности хотябы на половине курсов........это порядка 15-20 человек. я точно не стану такое проверять. А нельзя сделать в этой же задачи так,чтобы студенты с двойками не выводились..т е выводились только те,которые ПЕРЕВЕЛИСЬ на следующих курс...без вбивания каждой специальности и каждого курса....? |
Krjuger |
![]()
Сообщение
#36
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Конешно можно, но на мой взгляд это глупость несустветная.
2: begin Я забыл про функцию двоечника, лучше использовать ее. Сообщение отредактировано: Krjuger - 5.06.2012 0:15 |
natik3 |
![]()
Сообщение
#37
|
Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Женский Репутация: ![]() ![]() ![]() |
Конешно можно, но на мой взгляд это глупость несустветная. 2: begin Я забыл про функцию двоечника, лучше использовать ее. спасибо огромное!!!даже не знаю как благодарить!я завтра все точно узнаю как надо и что..но все равно..огромное спасибо.даже слов нет |
![]() ![]() |
![]() |
Текстовая версия | 14.09.2025 13:39 |