• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Проблема с Delphi

  • Автор темы Автор темы aya
  • Дата начала Дата начала

aya

Ученик
Регистрация
19 Мар 2016
Сообщения
2
Реакции
0
Баллы
0
Проблема с Delphi

Здравствуйте. Помогите пожалуйста решить эти задачи по делфи :
1. Дана строка. Подсчитать количество букв (k) в последнем ее слове.
2. Строка содержит одно слово. Проверить будет ли она одинаково читаться справа налево и слева направо (т.е. является ли оно палиндромом.)
Буду рада, если вы мне поможете и объясните.
 
Буду рада, если вы мне поможете и объясните.
На Delphi, к сожалению, не пишу, могу нарисовать решение этих простеньких задачек на Паскале, ну или объяснить алгоритм. Устроит?
 
На Delphi, к сожалению, не пишу, могу нарисовать решение этих простеньких задачек на Паскале, ну или объяснить алгоритм. Устроит?
А чем Делфи отличается от Паскаля?Или Паскаль от Делфи ....(Делфи-это среда . нет такого языка , Объектный Паскаль)
 
А чем Делфи отличается от Паскаля?Или Паскаль от Делфи ....(Делфи-это среда . нет такого языка , Объектный Паскаль)
Не совсем так. Отличий довольно много. Delphi предполагает работу с формами, отсюда разный механизм ввода-вывода, разные модули, многие операторы отличаются и т.п.
 
1 - ищется конец предложения (в string в [0] длина . из этого массива по убыванию ищется пробел , счётчик остановится на решении )
2 - создаётся 2 strring (в одном прямое слово , во втором проверочное) .... и перебирается как массив слово1[10] равен слово2[1] ? слово1[9] равен слово2[2] ? и т.д.
 
Не совсем так. Отличий довольно много. Delphi предполагает работу с формами, отсюда разный механизм ввода-вывода, разные модули, многие операторы отличаются и т.п.
Я-же сказал Объектный Паскаль .. Форма- это Объект. (Была разновидность в DOS - Turbo Vision , там тоже окна(псевдографикой) , и то-же объекты ....но давайте не вспоминать до-оконную от Microsoft (у Борланда были достижения ...давно) , эру)
 
Я-же сказал Объектный Паскаль .. Форма- это Объект. (Была разновидность в DOS - Turbo Vision , там тоже окна(псевдографикой) , и то-же объекты ....но давайте не вспоминать до-оконную от Microsoft (у Борланда были достижения ...давно) , эру)
Давайте не будем засорять чужую тему отвлеченными дискуссиями "об вообще". Девушка обратилась с просьбой, вот и надо отвечать по существу.
Вы предложили алгоритм - прекрасно.
Я же могу от себя добавить реализацию на Паскале, на базе которой может быть создан DPR-файл.
Код:
Var
 S:String;
 k:Byte;

Begin
 Writeln('Enter the string:');
 Readln(S);
 k:=0;
 Repeat
  Inc(k);
 Until S[Length(S)-k]=' ';
 Writeln('k = ',k);
 Readln
End.
Код:
Var
 S1,S2:String;
 i:Byte;

Begin
 Writeln('Enter the string:');
 Readln(S1);
 S2:='';
 for i:=1 to Length(S1) do
  S2:=S2+S1[Length(S1)-i+1];
 Writeln(S1=S2);
 Readln
End.
 
Я не помню уже досконально Writeln ... S1=S2 это только при равенстве распечатывает?
PS А вообще Вы уподобляетесь Си-никам ...Те Хвалятся , что такую логическую конструкцию могут смастерить - из условных операторов, что Паскалю и не снилось(правда и сами не смогут прочитать в итоге...... Нужно всё Проще ..Паскаль тем и славен , что можно увидеть , начиная с begin , заканчивая end... )
 
Последнее редактирование:
Будет распечатано TRUE или FALSE. Буль, знаете ли...
Я понял(по этому и переспросил) ... но не информативно.
PPS "Ты дурак - или умный" ...а где дурак , ошибся , в каком месте - уже не интересно - клеймо сразу - Булева алгебра , истина ложь.
 
Вполне достаточно. По условию задачи требуется ответ типа "Да" или "Нет", каковой и дается.
Конечно Верно .... Но ...когда есть возможность вывести и промежуточный результат , более информативный ... это для ловли ошибок в программах - - да-же те-же контрольные точки ....Вот Вы -лаконично всё написали ...по минимуму. а вот такая-же задача - но по вводу нужно будет уловить не только равенство , а , допустим- случайно в другом регистре введены были символы.... Это или плохо , или игнорировать..
PS Да (смеюсь) Пользователь очумеет от того , что комп выдаст по Булю - TRUE - Это что за(самоцензура) ...Переведите! (Так-же и с FALSE)
 
Последнее редактирование:
Конечно Верно .... Но ...когда есть возможность вывести и промежуточный результат , более информативный ... это для ловли ошибок в программах - - да-же те-же контрольные точки ....Вот Вы -лаконично всё написали ...по минимуму. а вот такая-же задача - но по вводу нужно будет уловить не только равенство , а , допустим- случайно в другом регистре введены были символы.... Это или плохо , или игнорировать..
Если будут оговорены подобные требования - можно и это всё организовать. Легко. Но вот нужно ли в данном случае? Сомневаюсь.
 
PS Да (смеюсь) Пользователь очумеет от того , что комп выдаст по Булю - TRUE - Это что за(самоцензура) ...Переведите! (Так-же и с FALSE)
Пускай чумеет. Пользователю-студенту это во благо. Глядишь - и разберется с булевыми операндами.
 
Эх , далеки Вы от народа ..Я вот в ANSI C пишу для процессоров - так 99% кода уходит на защиту от дурака и на интерфейс Паскаль ( в Делфи)- это просто по-быстренькому для заказчика показать.
PS Ваши варианты лаконичны - это классика! Я и сам был студентом - пришлось-бы мозги включать . Но , так как я уже почти 30 лет вышел оттуда( из студентов) немножко сочувствую им .. (хотя- расслабляться нельзя - пусть Мозги Работают!)
 
Последнее редактирование:
На Delphi, к сожалению, не пишу, могу нарисовать решение этих простеньких задачек на Паскале, ну или объяснить алгоритм. Устроит?

да,можно объяснение. Буду очень благодарна.
 
да,можно объяснение. Буду очень благодарна.
Хорошо. Вообще-то сами программы на Паскале выложены в #7, на последующий флуд двух программистов не обращайте внимания. Для того, чтобы переделать их под Delphi, нужно заменить паскалевский ввод/вывод (всякие readln, writeln) вводами/выводами через дельфийскую форму.
Об алгоритме.
В первой задаче мы тем или иным образом вводим строку, затем перемещаемся в её конец и из конца в начало начинаем отсчитывать символы, пока не наткнёмся на пробел. Результат такого подсчета и будет ответом на задачу.
Во второй реализован следующий подход. Исходная строка-слово считывается в переменную S1. Вводится строковая переменная S2, и в нее записываются все символы S1, но В ОБРАТНОМ ПОРЯДКЕ. Осталось только сравнить строки S1 и S2, и если они совпали, то исходная строка - палиндром.
 
Назад
Сверху