Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2021, 23:29   #11
Abase_
Новичок
Пользователь
 
Регистрация: 02.03.2021
Сообщений: 14
По умолчанию

BDA, да она компилируется и нормально работает, спасибо
Abase_ вне форума Ответить с цитированием
Старый 02.03.2021, 23:31   #12
Abase_
Новичок
Пользователь
 
Регистрация: 02.03.2021
Сообщений: 14
По умолчанию

digitalis, возможно, я сам проверил свой код он работал, но возможно если произойдёт такая ситуация возможно так и будет
Abase_ вне форума Ответить с цитированием
Старый 03.03.2021, 00:04   #13
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

По поводу вашего решения и замечания digitalis. Выпали точки 2.5, 3.5, 4.5. Можно добавить >= или <=, как уже указал digitalis. Или упростить немного и вообще не задавать нижнюю границу, так как она следует из невыполнимости предыдущего условия.
Код:
  if b < 2.5 then
    writeln('К сожалению, вы остаётесь на повторный год обучения')
  else
  // раз попали в ветку else, то b >= 2.5 
  if b < 3.5 then 
    writeln('В следующем году обязательно постарайся')
  else 
  if b < 4.5 then
    writeln('Вы успешно закончили учебный год, поздравляю!')
  else
    writeln('Вы отлично закончили учебный год, поздравляю!');
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 03.03.2021, 08:34   #14
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,792
По умолчанию

а динамика не учитывается?
типа 335 = 4, т.к. в конце поднапрягся
533 = 3, типа в конце расслабился, хотя среднее 3,5 должны были бы округлить до 4
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 03.03.2021, 10:32   #15
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,537
По умолчанию

Цитата:
Сообщение от NetSpace Посмотреть сообщение
а динамика не учитывается?
Вы слишком серьёзно подходите к учебной задачке, которая не из курса педуниверситета "Методика оценки знаний учащихся", а всего лишь - проверка знаний юным паскалеведом операторов ветвления
digitalis вне форума Ответить с цитированием
Старый 03.03.2021, 19:04   #16
Abase_
Новичок
Пользователь
 
Регистрация: 02.03.2021
Сообщений: 14
По умолчанию

BDA, digitalis, я сегодня спросил и мне сказали что надо, если хоть по одному предмету 2 или 3, то независимо от среднегодовой оценки выпадет, то сообщение про второй год или что нужно постараться. Так что вариант BDA был правильным и как мне сказали, что можно и через среднегодовую оценку, но нужно доработать тот вариант, и скорее всего это означает, что я должен добавить код BDA

Последний раз редактировалось Abase_; 03.03.2021 в 19:52.
Abase_ вне форума Ответить с цитированием
Старый 03.03.2021, 19:04   #17
Abase_
Новичок
Пользователь
 
Регистрация: 02.03.2021
Сообщений: 14
По умолчанию

ну и также с 4 и 5. Поэтому самый правильный вариант кода был у BDA

Последний раз редактировалось Abase_; 03.03.2021 в 19:28.
Abase_ вне форума Ответить с цитированием
Старый 03.03.2021, 19:31   #18
Abase_
Новичок
Пользователь
 
Регистрация: 02.03.2021
Сообщений: 14
По умолчанию

Спасибо за ответы

Последний раз редактировалось Abase_; 03.03.2021 в 22:50.
Abase_ вне форума Ответить с цитированием
Старый 03.03.2021, 23:00   #19
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Если чисто механически совместить критерии средней оценки и худшей оценки, то:
Код:
program n1;
var
  a, b, c, worst_grade: integer;
  average: real;
begin
  writeln('Введите годовую оценку по математике: ');
  read(a);
  writeln('Введите годовую оценку по русскому языку: ');
  read(b);
  writeln('Введите годовую оценку по чтению: ');
  read(c);
  worst_grade := a;
  if b < worst_grade then
    worst_grade := b;
  if c < worst_grade then
    worst_grade := c;
  average := (a + b + c) / 3;
  if (average < 2.5) or (worst_grade = 2) then
    writeln('К сожалению, вы остаётесь на повторный год обучения')
  else
  if (average < 3.5) or (worst_grade = 3) then
    writeln('В следующем году обязательно постарайся')
  else 
  if (average < 4.5) or (worst_grade = 4) then
    writeln('Вы успешно закончили учебный год, поздравляю!')
  else
    writeln('Вы отлично закончили учебный год, поздравляю!');
end.
Но критерий худшей оценки всегда строже, поэтому считать среднюю нет смысла. Можно рассмотреть все варианты оценок (без учета предмета, по которому поставлена оценка), для лучшего понимания:
Код:
Оценки Average Worst_grade
2 2 2  2.00    2
2 2 3  2.33    2
2 2 4  2.67    2
2 2 5  3.00    2
2 3 3  2.67    2
2 3 4  3.00    2
2 3 5  3.33    2
2 4 4  3.33    2
2 4 5  3.67    2
2 5 5  4.00    2
3 3 3  3.00    3
3 3 4  3.33    3
3 3 5  3.67    3
3 4 4  3.67    3
3 4 5  4.00    3
3 5 5  4.33    3
4 4 4  4.00    4
4 4 5  4.33    4
4 5 5  4.67    4
5 5 5  5.00    5
Цитата:
Сообщение от NetSpace Посмотреть сообщение
а динамика не учитывается?
Так это уже 3 годовых оценки. Это не динамика, а какие предметы как даются.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 03.03.2021 в 23:05.
BDA вне форума Ответить с цитированием
Старый 04.03.2021, 08:20   #20
Abase_
Новичок
Пользователь
 
Регистрация: 02.03.2021
Сообщений: 14
По умолчанию

[QUOTE=BDA;1829334]Если чисто механически совместить критерии средней оценки и худшей оценки, то:
Код:
program n1;
var
  a, b, c, worst_grade: integer;
  average: real;
begin
  writeln('Введите годовую оценку по математике: ');
  read(a);
  writeln('Введите годовую оценку по русскому языку: ');
  read(b);
  writeln('Введите годовую оценку по чтению: ');
  read(c);
  worst_grade := a;
  if b < worst_grade then
    worst_grade := b;
  if c < worst_grade then
    worst_grade := c;
  average := (a + b + c) / 3;
  if (average < 2.5) or (worst_grade = 2) then
    writeln('К сожалению, вы остаётесь на повторный год обучения')
  else
  if (average < 3.5) or (worst_grade = 3) then
    writeln('В следующем году обязательно постарайся')
  else 
  if (average < 4.5) or (worst_grade = 4) then
    writeln('Вы успешно закончили учебный год, поздравляю!')
  else
    writeln('Вы отлично закончили учебный год, поздравляю!');
end.
У меня получился точно такой же код и дома. Я думаю я сделаю как вы и сказали и буду надеяться, что всё будет нормально, ведь я просто из всего класса ушёл сильно вперёд и мне сейчас тяжелее ведь нам не могут говорить ошибки и помогать их исправить.
Abase_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывести результаты работы программы в текстовый файл паскаль Demon11101995 Помощь студентам 7 13.01.2014 08:54
Как вывести результаты в 2 колонки снизу вверх? SimpleDe Общие вопросы C/C++ 0 17.11.2010 12:43
Вычислить значения функции и вывести результаты в виде графика (функцию см.далее) {Please} timepoka Помощь студентам 10 28.02.2010 12:43
Вывести фамилии и даты рождения студентов, не получивших ни одной оценки 3 за все время обучения Гробовщик Общие вопросы C/C++ 1 14.01.2010 14:16