2014 dxdy logo

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

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




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


05/09/16
11469
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
3707
eugensk в сообщении #1374522 писал(а):
число от 1 до 999 вывести прописью

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

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


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

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


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

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


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

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

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

Изображение

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


14/12/17
1471
деревня Инет-Кельмында
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
916
eugensk в сообщении #1375329 писал(а):
Функция, изображенная графиком, будет считаться только при целых значениях аргумента, верно? Селектором может быть только ordinal.

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

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

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



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

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


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

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