|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.07.2015, 07:37 | #1 |
Новичок
Джуниор
Регистрация: 05.07.2015
Сообщений: 4
|
Задача со строковыми величинами (Pascal)
Написать функцию, которая получает на входе две строковые величины и проверяет вхождение одной в другую. На выходе выдает результат ложь или номер позиции вхождения. Никак не могу взять в толк, как переменной присвоить тип boolean и integer одновременно?
|
05.07.2015, 10:33 | #2 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Дык поставьте развилку - нашли - все прекрасно, иначе вывели ложь
|
05.07.2015, 10:47 | #3 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,679
|
НовичокЗоя выложите какие-нибудь наработки.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! |
05.07.2015, 11:11 | #4 |
Новичок
Джуниор
Регистрация: 05.07.2015
Сообщений: 4
|
function rez (S1, S2: String): ?;
begin rez:=pos(S1,S2) end; Насколько я понимаю формулировку задачи, в случае, когда rez=0, необходимо работать с переменной типа boolean, в остальных случаях - с integer. Если написать простую развилку при помощи if, то возможно выведение на экран информации о значении rez. Но в формулировке задачи написано, что надо организовать при помощи функции, то, вероятно, в программе происходит обращение к результату этой функции. Вот я и не могу понять: то ли я чего-то не понимаю и не знаю, то ли задача сформулирована некорректно. |
05.07.2015, 11:32 | #5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Паскаль строго типизированный язык. Переменная НЕ МОЖЕТ принимать значения разного типа (ну, если не брать искусственно введённый в Delphi тип VARIANT) поэтому, у Вас два выхода. выход первый - функция возвращает только целочисленное значение. В случае ошибки возвращается значение, которого заведомо нет и не может быть. например, Pos возвращает ноль, если ничего не нашлось. Некоторые функции возвращают -1, если значение не найдено в списке и т.д. вариант второй. функция делается логического типа и возвращает true (нашлось) или false (не найдено) и при этом функция вовращает значение через переменную параметер: Код:
надеюсь, что немного помог Вам разобраться в данном вопросе. |
|
05.07.2015, 11:34 | #6 | |
Форумчанин
Регистрация: 23.09.2010
Сообщений: 682
|
НовичокЗоя
Цитата:
Как решать такую задачу, во-первый зависит от темы, к которой она относится, посмотрите в названии лабы. Пусть рез-т ф-и - тип integer - после выполнения функции - анализируете её результат. Код:
Код:
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить. Последний раз редактировалось Niro; 05.07.2015 в 11:45. |
|
05.07.2015, 12:17 | #7 |
Новичок
Джуниор
Регистрация: 05.07.2015
Сообщений: 4
|
function findPos(const S1, S2 : string; var PosS1InS2 : integer) : boolean;
Как в этом случае обратиться к такой функции в теле основной программы? Можно ли использовать значение PosS1InS2 для каких-либо операций? |
05.07.2015, 12:18 | #8 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Предлагаю текст этого вопроса считать эталонным и добавить в ПРАВИЛА пункт "как правильно задавать вопросы" со ссылкой на этот топик!
Кто ЗА? Автору - респект. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
05.07.2015, 12:31 | #9 |
Новичок
Джуниор
Регистрация: 05.07.2015
Сообщений: 4
|
Спасибо всем огромное! Получилось!
|
05.07.2015, 12:36 | #10 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Формулировка задачи написана для с/с++, там то, что = 0 и есть false.
Автору вопроса: тут на паскале можно, конечно, принять false за 0, что логично и правильно. Но препод-долбодятел-буквоед может домотаться, как голодный гаишник. если это произойдёт, подсунь ему вот такой вариант: Код:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа со строками и строковыми массивами(Pascal) | MPQWERTY | Помощь студентам | 1 | 06.12.2014 17:19 |
Задача turbo pascal на тему: файлы с произвольным доступом в Pascal | ExCiTeC | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 28.01.2013 20:36 |
Задача по подсчёту статистики использования букв. Другая задача - по длинной арифметике Pascal ABC | kimberly | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 24.12.2012 17:03 |
задача со строковыми данными, файловым вводом выводом | Босикоша | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 20.09.2012 20:32 |
Работа со строковыми переменными на языке PASCAL | бургер | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 06.05.2010 08:44 |