![]() |
|
Модераторы: Poseidon |
![]()
|
|
| xF1x |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 18.3.2008 Репутация: 0 Всего: 0 |
Всем доброго времени суток! ПОМОГИТЕ решить школьную задачу! ТОЛЬКО ЧТО начали изучать строковый тип и символьный! и только что начали изучать операторы сложения, сравнения копирования,длину строки,удаление,замена,подстрока,числа и строки! вообщем это у нас новая тема! Прошу как можно проще! вот такая задача! Проверить, является ли введеное слово полиндромом(перевертышем) например казак как ни читай оно и будет казак, или шалаш вообщем это слова перевертыши! ЗА РАНЕЕ БЛАГОДАРЕН!
|
|||
|
||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 30 Всего: 372 |
http://forum.vingrad.ru/faq/topic-202745.html
Добавлено через 26 секунд Совсем чуть чуть переделать под Паскаль там... |
|||
|
||||
| xF1x |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 18.3.2008 Репутация: 0 Всего: 0 |
Что то там вообще не понятно! нельзя ли сделать попроще и в одном коде а не в нескольких собирать!
|
|||
|
||||
| neic |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 839 Регистрация: 28.1.2007 Репутация: 5 Всего: 7 |
xF1x
Чего не понятного-то?
|
|||
|
||||
| xF1x |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 18.3.2008 Репутация: 0 Всего: 0 |
В не можешь пояснить следующие строчки а то я вроде такого еще не изучал!
function IsPalindrome ispalindrome := false; repeat |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 26 Всего: 122 |
function IsPalindrome - объявление функции IsPalindrome
ispalindrome := false; - фукция возвращает значение через свое имя... т.е. мы присваеваем имени функции значение, а уже функция его далее пепередает repeat - цикл с постусловием... удобен если хотябы раз необходимо в цикл зайти! |
|||
|
||||
| THandle |
|
||||||||||||||||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 30 Всего: 372 |
Поясняю:
Функция которая будет проверять является ли слово полиндромом или нет. Теперь, что происходит внутри этой функции:
Присваиваем переменной i единицу, а переменной j - длину переданной в функцию строки.
Присваиваем результату функции false, то есть слово палиндромом не является. Теперь запускаем цикл:
Идем в нем от начала строки до середины и от конца строки тоже до середины. Например, возьмем слово топот, которое является палиндромом. В самом начале переменные i, j равны единице и пяти соответственно. Теперь смотрим что происходит во время цикла: 1. сравниваются буквы топот. Они одинаковы поэтому мы не выходим из функции возвращая результат о том, что слово не палиндром, а идем дальше: i = 1. j = 5. 2. На этом шаге сикла проверяем буквы: топот. Они тоже равны. Идем дальше. i = 2. j = 4. 3. На этом шаге сравниваем букву топот ней же самой. Идем дальше. i = 3. j = 3. 4. Условием выхода из цикла является:
Посмотрим же чему у нас равны переменные i и j: i = 4. j = 2. Все. Цикл завершен, слово палиндром. Спокойно присваиваем результату значение true:
Если бы в функцию поступило слово, в котором какието противоположные буквы не равны, то мы просто вышли бы из цикла и строчка
просто не выполнилась бы, а значит функция вернула бы false что соответствует слову-непалиндрому. |
||||||||||||||||
|
|||||||||||||||||
| xF1x |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 18.3.2008 Репутация: 0 Всего: 0 |
Слушай! а нельзя никак по другому сделать? мы счетчик делали i:=i+1 просто мы такого еще не изучали, попроще нельзя?
|
|||
|
||||
| THandle |
|
||||||||||||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 30 Всего: 372 |
Возьмем например слово папа, которое палиндромом не является:
1. перед выполнением цикла переменным i, j присваиваются следующие значения: i = 1. j = 4. 2. Запускаем цикл, сравниваем буквы: папа. Они не равны, выходим из функции. Результат выполнения функции - false. Далее следует стандартная паскалевская программка, с вводом строки
Ну давай уж все объясню, раз начал
Объявляем переменную s, в которую и будем вводить слово которое будем проверять на палиндромность.
Вводим слово с клавиатуры.
Если слово - палиндром то пишем это, иначе сообщаем об обратном:
И последнее:
Ждем ввода чего-то с клавиатуры и нажатия клавиши Enter. Выходим из программы. Добавлено через 1 минуту и 38 секунд xF1x, что конкретно не изучали? какие строки не понятны? Можно и по-другому сделать, но это самый хороший вариант, по моему. Да и самый понятный должен быть. |
||||||||||||
|
|||||||||||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 16 Всего: 95 |
можно примерно так:
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| xF1x |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 18.3.2008 Репутация: 0 Всего: 0 |
Не понятно что такое + s + ? а паскаль разве уже знает что IsPalindrome это палиндром!? ты же не задавал его в переменных
|
|||
|
||||
| THandle |
|
||||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 30 Всего: 372 |
ama_kid, лично я считаю этот вариант более непонятным
Что такое div? Может человек тоже не знает, если не знает циклов repeat.
Что это за "подозрительные" вычисления, которые куда сложнее прокрутить в голове нежели мой вариант. В общем у всех вариантов конечно своих недостатков хватает. Добавлено через 1 минуту и 13 секунд
Это результат выполненения функции. |
||||
|
|||||
| xF1x |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 18.3.2008 Репутация: 0 Всего: 0 |
Вообщем объясняю! мы делали через цикл.потом через if then.ничего не делили и слово function у нас не было, repeat тоже не было ,был цикл i:=i+1! нельзя сделать с использованием этой информации?
|
|||
|
||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 30 Всего: 372 |
Добавлено через 34 секунды Так пойдет? |
|||
|
||||
| xF1x |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 18.3.2008 Репутация: 0 Всего: 0 |
вот так как надо!!а что такое break?
|
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |