Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 Re: Ищу содержательную задачу для Паскаля на оператор case.
podih в сообщении #1374727 писал(а):
CASE из 10000 вариантов? Вас же родители съедят.

Ну в Паскале кейсы могут быть и "диапазонные"
Код:
case Given_Number of
0..9: Writeln("Меньше десяти");
10..99: Writeln("Меньше сотни");
100..199 : Writeln("От сотни до двух");
else Writeln("То ли меньше нуля, то ли больше двух сотен");
end;

 Re: Ищу содержательную задачу для Паскаля на оператор case.
Аватара пользователя
eugensk в сообщении #1374522 писал(а):
число от 1 до 999 вывести прописью

Ох, блин, прошу прощения. У Вас это уже было, а я со своей "суммой прописью"... :facepalm:
:wink:

 Re: Ищу содержательную задачу для Паскаля на оператор case.
wrest в сообщении #1374742 писал(а):
Ну в Паскале кейсы могут быть и "диапазонные"

Код:
case Given_Number of
0..9: Writeln("Меньше десяти");
10..99: Writeln("Меньше сотни");
100..199 : Writeln("От сотни до двух");
else Writeln("То ли меньше нуля, то ли больше двух сотен");
end;

О, тогда можно предложить задачу определения количества цифр заданного числа (хотя никогда бы я не додумался бы сделать это через case).

 Re: Ищу содержательную задачу для Паскаля на оператор case.
gevaraweb в сообщении #1374741 писал(а):
ТС же просил "жизу".

Для того третий вариант: сколько букв включая (вариант - исключая) пробелы в наименовании данного числа?

Там именно на выбор из таблицы задача, отдельно для тысяч, сотен, 20-99,11-19,1-10.
Так что три кейса -- по тысячам, сотням, десяткам.

Ну типа
Тысячи:
Код:
Case Number of
0..999: Numletters:=0;
1000..1999,6000..6999: NumLetters:=10;
2000..3999,5000..5999,7000..7999: Numletters:=9;
4000..4999: NumLetters:=12;
8000..9999: NumLetters:=12;
else Error:="Число не в диапазоне 0..9999";
end;

Сотни:
Код:
Case Number_Hundreds of
0: NumLetters:=Numletters+0;
1: Numletters:=NumLetters+3;
2,3: Numletters:=NumLetters+6;
4,8,9: Numletters:=NumLetters+9;
5,7: NumLetters:=NumLetters+7;
6: NumLetters:=NumlLetters+8;
Else Error:="Случилась беда в определителе сотен";
End

Ну в общем ясно - дальше кейс по десяткам от 20 до 99 и затем кейс по от 0 до 19 (можно на два разделить).

В Паскале есть целочисленные деления и остатки, так что Number_Hundreds считаются легко но я не помню как.

 Re: Ищу содержательную задачу для Паскаля на оператор case.
Кстати, подскажите тогда масштабируемую задачу. Если руки дойдут, хочу сделать рандомный тест по ЯП. Нужна однотипная, но отличающаяся (так или иначе) задача на case. Однотипная, чтоб легко программировалась преподавателем. Ну а каждый ученик видит свою, похожую на как у соседа, но чем-то другую задачу ).

 Re: Ищу содержательную задачу для Паскаля на оператор case.
Аватара пользователя
gevaraweb
Такое, например:
Случайно сгенерить отображение из 1..N в действительные числа, частично как таблицу, частично как формулы. Задача теста -- посчитать наибольшее/наименьшее значение, сумму.

 Re: Ищу содержательную задачу для Паскаля на оператор case.
eugensk в сообщении #1375238 писал(а):
Такое, например:
Случайно сгенерить отображение из 1..N в действительные числа, частично как таблицу, частично как формулы. Задача теста -- посчитать наибольшее/наименьшее значение, сумму.

Не совсем понял, а как связать тут с case?
Я имел в виду, что сформулировано : То-то происходит, когда что-то равно тому-то, и т.д. Написать прогу с использованием case.

Одну вот придумал кстати ) Дан график. Написать функцию, используя case. Заодно придется ученику вспомнить, как построить уравнение прямой, проходящей через две точки. Жиза! :mrgreen:

Изображение

 Re: Ищу содержательную задачу для Паскаля на оператор case.
Аватара пользователя
gevaraweb
Я имел ввиду что-то вроде
Дано отображение $1..30 \rightarrow \mathbb{N}$:
$1..10 \rightarrow n^2; 13,15,19 \rightarrow 1; 20..30 \rightarrow n+2; 14,17 \rightarrow 2; \text{остальные} \rightarrow 3$ (строка генерится случайно)

Найти сумму всех значений.


Функция, изображенная графиком, будет считаться только при целых значениях аргумента, верно? Селектором может быть только ordinal.

 Re: Ищу содержательную задачу для Паскаля на оператор case.
eugensk в сообщении #1375329 писал(а):
Функция, изображенная графиком, будет считаться только при целых значениях аргумента, верно? Селектором может быть только ordinal.

Да, жирные точки имеют целые координаты

 [ Сообщений: 24 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group