2014 dxdy logo

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

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




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


14/12/17
1519
деревня Инет-Кельмында
Можеть быть, у кого-нибудь найдется любимая задача на эту тему, посложнее среднего.

Хотелось бы, чтобы в операторе case были интервалы и списки констант, простые и составные операторы, и была ветка else,
и чтобы все вычисление имело практический смысл. Циклов и процедур еще нет.

У меня из вариантов только
1) число от 1 до 999 вывести прописью
2) число от 1 до 3999 вывести римскими цифрами
3) вывести число дней в месяце, если февраль то допонительно запросить год, чтобы посчитать не високосный ли

Только вариант 3 содержит всё что надо, но он какой-то скучноватый.

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


15/11/15
1080
Задача
eugensk в сообщении #1374522 писал(а):
2) число от 1 до 3999 вывести римскими цифрами
мне кажется неплохой. Практическая задача? Тут может штука в том, что case в новых языках - может, в отличие от Паскаля, переварить и строковый тип, и в них больше интересных примеров. А тут пришло только в голову:

Первое число января - понедельник. Вывести день недели в зависимости от числа, от 0 до 31.

Потом усложнить - первое число - среда.

Хотя, наверно, задача вам покажется слишком простой. Вот нашел:
Google писал(а):
Задача 9. Калькулятор на Паскале. Ученик вводит с клавиатуры число, символ арифметического действия (+, -, *, /) и еще одно число. Компьютер должен напечатать результат. Указание: Для чисел и арифметического действия используйте оператор ReadLn в Паскаль

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


14/12/17
1519
деревня Инет-Кельмында
gevaraweb
Вариант с калькулятором хороший, спасибо. Можно в зависимости от операции считывать второй операнд, или нет.

Вообще, без циклов мало что можно сделать, конечно, на этих задачах и остановлюсь.

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


15/11/15
1080
Или уж извратиться, и сделать задачу типа: на входе тег, вывести его значение. Заодно теги уч-ся вспомнит )

Код:
type

   tag = (p, br, a, hr, tr, td, table);
   values = (tabliza, liniya, ssylka, absaz, perenos_stroki, yacheyka, stroka_tablizy, drugoy_tag);

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


24/01/19

265
Почему CASE - интуитивно запутанный оператор - идёт впереди таких элегантных и прозрачных FOR, WHILE, REPEAT, LOOP? У них и возможностей больше. А CASE естественно их расширит.
Масса идей по задачам с CASE. Но циклы нужны везде.
Надеюсь, учебный план не начинает знакомство с ними с примера
Код:
label 1;
begin
print ('Введите число,  0 для завершения');
1:
...
goto 1;
end.

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


14/12/17
1519
деревня Инет-Кельмында
podih

Видимо, потому что case тоже ветвление, и темы стоят в порядке сложности: линейные программы, ветвления, циклы, рекурсия, указатели.

Мы иногда пишем goto с последнего оператора на начало программы, это повышает полезность программы в разы, потом конечно перестанем так делать :)

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


06/07/11
5627
кран.набрать.грамота
podih в сообщении #1374657 писал(а):
Почему CASE - интуитивно запутанный оператор - идёт впереди таких элегантных и прозрачных FOR, WHILE, REPEAT, LOOP? У них и возможностей больше. А CASE естественно их расширит.
:facepalm:
case - это условный оператор, а for, while, repeat, loop - операторы цикла. Они решают разные задачи, и их бессмысленно сравнивать. А loop еще, кстати, в пакале отсутствует. Там for ... do и repeat ... until. :mrgreen:

-- 07.02.2019, 12:00 --

eugensk в сообщении #1374522 писал(а):
Можеть быть, у кого-нибудь найдется любимая задача на эту тему, посложнее среднего.
Ну если посложнее среднего - то напишите парсер какой-нибудь. Парсер XML, например, или парсер арифметических выражений. Чтобы пользователь вводил строку 2 + 2 * 2, а программа ему в ответ - 8 6!

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


27/02/12
3894
eugensk
Когда-то, пересиливая собственные интересы, пришлось писать функцию, которая, получив в качестве параметра
"сумма численно", возвращала результат "сумма прописью". case не использовал, но быть может... :wink:

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


14/12/17
1519
деревня Инет-Кельмында
rockclimber
Парсер без циклов или функций не очень красивый получится, только для ограниченного класса выражений. Потом к ним придем, во всеоружии.

miflin
Сумма прописью - то что надо, уже думал об этом. Помню, давным-давно у меня с коллегами был спор кто напишет её на foxpro в меньшее число строк, я вроде бы тогда победил :)

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


05/09/16
12064
Вариации на тему "число прописью".

Сколько чисел от 1 до 9999 делятся нацело(без остатка) на количество букв в своём наименовании исключая (вариант - включая) пробелы?

Ну или:
Делится ли нацело(без остатка) данное число на количество букв в своём наименовании исключая (вариант - включая) пробелы?

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

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


14/12/17
1519
деревня Инет-Кельмында
wrest
Вот еще идея, для младшешкольников: Какое слово получится, если выводить 15-ю букву в числах прописью 348, 999, 712, 234 ...
Заготовить таких слов подлиннее, чтобы никто не захотел считать вручную.

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


24/01/19

265
wrest в сообщении #1374719 писал(а):
Сколько чисел от 1 до 9999

CASE из 10000 вариантов? Вас же родители съедят.

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


27/02/12
3894
podih в сообщении #1374727 писал(а):
CASE из 10000 вариантов? Вас же родители съедят.

Не всё так мрачно. Вы, наверное, про какой-то другой CASE.
На самом деле и овцы программисты будут целы, и волки родители сыты (и некоторые даже благодарны). :-)

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


06/07/11
5627
кран.набрать.грамота
podih в сообщении #1374727 писал(а):
CASE из 10000 вариантов? Вас же родители съедят.
А вас съедят учителя информатики. Для той задачи вполне хватит порядка 40 "кейсов".

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

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


15/11/15
1080
wrest в сообщении #1374719 писал(а):
Сколько чисел от 1 до 9999 делятся нацело(без остатка) на количество букв в своём наименовании исключая (вариант - включая) пробелы?

Э, погодьте. ТС же просил "жизу". Хотя он тоже увлекся и забыл об этом )

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

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



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

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


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

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