2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Ищу содержательную задачу для Паскаля на оператор case.
Сообщение07.02.2019, 17:32 


05/09/16
6261
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 
Аватара пользователя


27/02/12
2736
eugensk в сообщении #1374522 писал(а):
число от 1 до 999 вывести прописью

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

 Профиль  
                  
 
 Re: Ищу содержательную задачу для Паскаля на оператор case.
Сообщение07.02.2019, 17:48 


15/11/15
461
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 


05/09/16
6261
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 


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

 Профиль  
                  
 
 Re: Ищу содержательную задачу для Паскаля на оператор case.
Сообщение11.02.2019, 05:07 
Аватара пользователя


14/12/17
838
деревня Инет-Кельманда
gevaraweb
Такое, например:
Случайно сгенерить отображение из 1..N в действительные числа, частично как таблицу, частично как формулы. Задача теста -- посчитать наибольшее/наименьшее значение, сумму.

 Профиль  
                  
 
 Re: Ищу содержательную задачу для Паскаля на оператор case.
Сообщение11.02.2019, 14:34 


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

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

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

Изображение

 Профиль  
                  
 
 Re: Ищу содержательную задачу для Паскаля на оператор case.
Сообщение11.02.2019, 15:23 
Аватара пользователя


14/12/17
838
деревня Инет-Кельманда
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 


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

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу Пред.  1, 2

Модераторы: Модераторы, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group