Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
 Аватар для Schekhovtsov
0 / 0 / 3
Регистрация: 03.11.2012
Сообщений: 105

Case со строками

28.05.2013, 17:17. Показов 4585. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Pascal такую структуру не ест (текст в кейсе). А как можно реализовать подобный код иначе? Просто case кажется идеальным решением для такой задачи, ан нет!

Кликните здесь для просмотра всего текста
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program case_days;
 
uses crt;
var a : char;
 
BEGIN
        clrscr;
        write('Введите день недели: ');
        readln(a);
 
        case a of // вот тут он вроде пишет что case не может работать с char
                'Понедельник' : write('Сегодня 1-й из 7-ми дней в неделе'); // а тут разумеется я просто показал что я от него хочу
                'Вторник' : write('Сегодня 2-й из 7-ми дней в неделе');
                ...
        end;
END.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.05.2013, 17:17
Ответы с готовыми решениями:

Оператор case со строками
вот так нельзя case tipeDo of 'file' or 'list' получается вот это unit1.pas(411,8) Error: Operation "or" not supported for...

Оператор Case. Работа со строками
http://cs416931.userapi.com/v416931287/2444/JyT-eKxbu1M.jpg Подскажите пожалуйста, что за фигня?))

Почему case не работает со строками?
const d = 'postbutton'; r = 'badbutton'; var s: string; sf: string; begin sf := Button1.name; s := sf + IntToStr(3); case s...

14
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
28.05.2013, 17:43
Schekhovtsov,только через условный оператор,к сожалению.case of работает только с порядковыми типами:числами,символами.Как-то так,
Pascal
1
2
3
4
5
6
7
8
9
10
11
program case_days;
uses crt;
var a : char;
BEGIN
        clrscr;
        write('Введите день недели: ');
        readln(a);
        if a='Понедельник' then Write('Сегодня 1-й из 7-ми дней в неделе') else
        if a='Вторник' then Write('Сегодня 2-й из 7-ми дней в неделе') else
        ...
END.
Добавлено через 43 секунды
Цитата Сообщение от Schekhovtsov Посмотреть сообщение
// вот тут он вроде пишет что case не может работать с char
Ой,только сейчас заметил это.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33399 / 21509 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
28.05.2013, 17:48
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Новичок Посмотреть сообщение
к сожалению.case of работает только с порядковыми типами
Неправильно. В FPC начиная с 2.6.0 - может.
1
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
28.05.2013, 17:50
UI,простите,не знал.Но у ТС видимо ж не 2.6.0,потому ему все-равно нужно условный оператор использовать.
0
 Аватар для Schekhovtsov
0 / 0 / 3
Регистрация: 03.11.2012
Сообщений: 105
28.05.2013, 17:50  [ТС]
Что ж, значит кроме как else-if ничего не придумать. Ясно, спасибо.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33399 / 21509 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
28.05.2013, 17:56
Цитата Сообщение от Новичок Посмотреть сообщение
Но у ТС видимо ж не 2.6.0
Ну, если 2.6.0 поддерживает такую возможность, а у ТС-а не 2.6.0, значит, надо что? Правильно обновиться. Потому что не использовать это - глупо.
Цитата Сообщение от Schekhovtsov Посмотреть сообщение
Что ж, значит кроме как else-if ничего не придумать.
Берем Турбо Паскаль 5.0, пишем программу. И, когда в ответ на вопрос "а как использовать ООП" получаем ответ, что "это возможно только начиная с 5.5" начинаем сокрушаться: "Что ж, ничего сделать, видимо нельзя..." Так? Использовать более современную версию - не подходит по определению, надо сидеть на старье?

Версия 2.4.0 (а уж все предыдущие - и подавно) уже устарела, не надо сидеть на старых версиях продукта.
1
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
28.05.2013, 18:13
Ну как сказать,для написания такой небольшой програмки...Это ж не инструмент которым постоянно пользуется профессионал для разработки.

Добавлено через 6 минут
Цитата Сообщение от UI Посмотреть сообщение
не надо сидеть на старых версиях продукта.
Но и это правильно.
0
 Аватар для Schekhovtsov
0 / 0 / 3
Регистрация: 03.11.2012
Сообщений: 105
28.05.2013, 19:04  [ТС]
У меня 2.6.0 если речь идёт о версии Free Pascal
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
28.05.2013, 19:06
Речь идет о Free Pascal Compiler(FPC).
0
 Аватар для Schekhovtsov
0 / 0 / 3
Регистрация: 03.11.2012
Сообщений: 105
28.05.2013, 19:11  [ТС]
Сабж
Миниатюры
Case со строками  
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
28.05.2013, 19:56
Тогда не знаю.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33399 / 21509 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
29.05.2013, 21:23
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Schekhovtsov, 2.6.0 прекрасно компилирует вот такой код:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program case_days;
 
uses crt;
var a : string; // string, а не char !!!
 
BEGIN
   clrscr;
   write('Введите день недели: ');
   readln(a);
 
   case a of // вот тут он писал, что Char и String - не одно и то же
      'Понедельник' : write('Сегодня 1-й из 7-ми дней в неделе'); 
      'Вторник' : write('Сегодня 2-й из 7-ми дней в неделе');
      // ...
   end;
END.

(лень загружать IDE, откомпилировал прямо из Notepad++)
0
7 / 7 / 3
Регистрация: 11.01.2012
Сообщений: 85
29.05.2013, 21:43
Погодите. Либо я чего то не понимаю, либо как char может принимать String ('понедельник', 'вторник', и т. д.)?
Delphi
1
ReadLn(a) //a - char. А вы хотите ввести в символ всю строку. Это же бред какой - то
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33399 / 21509 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
29.05.2013, 21:44
Тему надо читать полностью. В 4-ой строке кода предыдущего поста что написано?
0
7 / 7 / 3
Регистрация: 11.01.2012
Сообщений: 85
29.05.2013, 21:47
Ой, сорри...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.05.2013, 21:47
Помогаю со студенческими работами здесь

Оптимизируется ли компилятором конструкция switch-case? Работа со строками через ID объекта или hash
Добрый вечер, 1) Определён ли порядок выбора switch (согласно стандарта кажись неопределён, но все компиляторы я уверен в этом...

в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени
Помогите пожалуйста: в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #include <iostream> ...

чем use case отличается от business use case (только по русски объяснить и с примером)
_subj

Ошибка CASE в CASE возникла при переносе в столбец с текстом, дату
Подскажите пожалуйста, при формировании второго условия возникла ошибка, как исправить? - как перенести в столбец с текстом, дату с другого...

При выборе case 1 всегда черный экран? как правильно указать путь в case
Доброго времени суток) проблема с компиляций когда при компилирование появляется экран выбора. Нажимаю 1 и все черный экран) пожалуйста...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru