![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Faab |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 1 Пол: Мужской Репутация: ![]() ![]() ![]() |
В нижеприведённом примере, выдаёться ошибка Error: duplicate case label
на строке:
70-79:
Сначало приведу пример CASE, а потом ниже всю программу, что бы удобнее было читать. case (PERCENTAGE) of
90-100:
begin
//
writeln('отличный результат');
end;
80-89:
begin
//
writeln('очень хорошо');
end;
70-79:
begin
//
writeln('хорошо');
end;
else
//
writeln('удовлетворительно');
end;
И вот вся программа.
program GRAAD;
// declare your variables here
VAR GESLAAGD: Boolean;
VAR I, AANTALVAKKEN, PERCENTAGE: Integer;
VAR TOTAALPUNTEN, PUNTEN: Real;
VAR NAAM: String;
begin
//
I := 0;
//
GESLAAGD := TRUE;
//
TOTAALPUNTEN := 0;
//
writeln('Добро пожаловать в программу по вычислению оценок у учеников!');
//
writeln();
//
writeln('Введите число учебных предметов:');
//
readln(AANTALVAKKEN);
//
repeat
//
writeln('Введите имя ученика:');
//
readln(NAAM);
//
if (NAAM = 'stop') then
begin
end
else
begin
//
while (AANTALVAKKEN > I) do
begin
//
writeln('Введите результат экзамена ', I, ' in (/20):');
readln(PUNTEN);
//
if (PUNTEN < 10) then
begin
//
GESLAAGD := FALSE;
end
else
begin
//
;
end;
//
TOTAALPUNTEN := TOTAALPUNTEN + PUNTEN;
//
I := I + 1;
end;
//
PERCENTAGE := Round((TOTAALPUNTEN * 5) / AANTALVAKKEN);
writeln('----------------------------------------');
//
writeln('Результат ученика ', NAAM,':');
//
if (PERCENTAGE < 60) OR (GESLAAGD = FALSE) then
begin
//
writeln('незачёт');
end
else
begin
//
case (PERCENTAGE) of
90-100:
begin
//
writeln('отличный результат');
end;
80-89:
begin
//
writeln('очень хорошо');
end;
70-79:
begin
//
writeln('хорошо');
end;
else
//
writeln('удовлетворительно');
end;
end;
//
writeln('Общий процент:', PERCENTAGE, '%.');
//
writeln('----------------------------------------');
end;
until (NAAM = 'stop');
writeln();
writeln('Нажми на <ENTER> что бы покинуть программу.');
readln();
end.
Спасибо Сообщение отредактировано: Faab - 5.04.2013 15:07 |
![]() ![]() |
IUnknown |
![]()
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Всё правильно компилятор говорит:
90-100 = -10 80-89 = -9 70-79 = -9 // <--- Вот и вторая (-9), дубликат Правильно задавать интервал вот так: case (PERCENTAGE) of
90 .. 100:
begin
//
writeln('отличный результат');
end;
80 .. 89:
, тогда ошибки не будет...Сообщение отредактировано: IUnknown - 7.04.2013 22:10 |
![]() ![]() |
![]() |
Текстовая версия | 1.08.2025 18:56 |