2014 dxdy logo

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

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




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

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

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

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

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

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

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

 
 
 
 Re: Ищу содержательную задачу для Паскаля на оператор case.
Сообщение07.02.2019, 18:03 
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.
Сообщение10.02.2019, 15:19 
Кстати, подскажите тогда масштабируемую задачу. Если руки дойдут, хочу сделать рандомный тест по ЯП. Нужна однотипная, но отличающаяся (так или иначе) задача на case. Однотипная, чтоб легко программировалась преподавателем. Ну а каждый ученик видит свою, похожую на как у соседа, но чем-то другую задачу ).

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

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

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

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

Изображение

 
 
 
 Re: Ищу содержательную задачу для Паскаля на оператор case.
Сообщение11.02.2019, 15:23 
Аватара пользователя
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.
Сообщение11.02.2019, 15:41 
eugensk в сообщении #1375329 писал(а):
Функция, изображенная графиком, будет считаться только при целых значениях аргумента, верно? Селектором может быть только ordinal.

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

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


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