Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2014, 13:52   #1
veronika55214
Пользователь
 
Регистрация: 14.12.2013
Сообщений: 26
По умолчанию Обработка строковых данных в языке программирования PascalABC: вставлять в заданный текст T словосочетание А после каждого пробела

Ваша программа должна вставлять в заданный текст T словосочетание А после каждого пробела (значения T и A должны вводиться с клавиатуры).
veronika55214 вне форума Ответить с цитированием
Старый 11.03.2014, 14:28   #2
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Ну и? Наработки где?
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 02.11.2014, 21:16   #3
Donald Ervin Knuth
Пользователь
 
Аватар для Donald Ervin Knuth
 
Регистрация: 15.10.2014
Сообщений: 16
По умолчанию

Цитата:
Сообщение от veronika55214 Посмотреть сообщение
Ваша программа должна вставлять в заданный текст T словосочетание А после каждого пробела (значения T и A должны вводиться с клавиатуры).
Код:
program textprobel;
var
probel,gotov,t,a:string;
g,v:integer;
begin
  writeln('Введите текст Т');Readln(t);{--не более 255--}
  writeln('Введите словосочетание А');Readln(a);
  g:=Length(t); {-- сколько?--- }
  probel:=' ';gotov:='';
    for v:=1 to g do
      begin
        if t[v]<>probel 
        then
          begin
            gotov:=gotov+t[v];
          end
        else
          begin
            gotov:=gotov+t[v];
            gotov:=gotov+a;
          end
       end; {-- for--}
    writeln(gotov);
end.
g25092011
Donald Ervin Knuth вне форума Ответить с цитированием
Старый 04.11.2014, 01:34   #4
abit
Пользователь
 
Регистрация: 21.10.2014
Сообщений: 43
По умолчанию

Donald Ervin Knuth

Цитата:
writeln('Введите текст Т');Readln(t);{--не более 255--}
почему не более 255? если Вы рассчитываете на устаревшую паскалевскую строку в 255 символов (UCSD Pascal), тогда Вам вопрос как собрались в неё вставлять что-то ещё, раз у вас она уже забита 255 символами и переменная куда всё это собираете того же типа и размера... странно да и вообще что такое текст в 255 символов - у нас это короткое сообщение называется )))
если же речь идёт о современном паскале, где string может быть динамической длины (AnsiString), то смысла в этом утверждении о 255 символах нет, как впрочем и в действиях ниже:
Цитата:
if t[v]<>probel
then
begin
gotov:=gotov+t[v];
end
else
begin
gotov:=gotov+t[v];
gotov:=gotov+a;
end
слышали про функции типа Pos и процедуру Insert? если да, то печально, значит не знаете принципа KISS, и это фатально... читать Ваш код очень не приятно

Последний раз редактировалось abit; 04.11.2014 в 01:38.
abit вне форума Ответить с цитированием
Старый 04.11.2014, 15:31   #5
Donald Ervin Knuth
Пользователь
 
Аватар для Donald Ervin Knuth
 
Регистрация: 15.10.2014
Сообщений: 16
По умолчанию

Добрый день!
Мне понравились Ваши комментарии.Спасибо.
Учу паскаль, повторяю пройденное. Стаж небольшой, меньше месяца.
Отсюда и мало знаний. Но это поправимо. Дорогу осилит идущий.
Цитата:
Сообщение от abit Посмотреть сообщение
Donald Ervin Knuth
почему не более 255? если Вы рассчитываете на устаревшую паскалевскую строку в 255 символов (UCSD Pascal), тогда Вам вопрос как собрались в неё вставлять что-то ещё, раз у вас она уже забита 255 символами и переменная куда всё это собираете того же типа и размера... странно да и вообще что такое текст в 255 символов - у нас это короткое сообщение называется )))
Почему 255? Прочитал что длина строки не более 255-символов, да и пометка эта для себя на этапе отладки поставленная.
Цитата:
если же речь идёт о современном паскале, где string может быть динамической длины (AnsiString), то смысла в этом утверждении о 255 символах нет, как впрочем и в действиях ниже:
Я новичок, много чего еще не знаю, но узнаю.
Цитата:
слышали про функции типа Pos и процедуру Insert? если да, то печально, значит не знаете принципа KISS, и это фатально... читать Ваш код очень не приятно
типа Pos и процедуру Inser - про такие еще не читал, немедленно прочитаю. По поводу "фатальности" перегибаете. Все достижимо, все узнаваемо, все обучаемо. Главное цель и желания. Ведь никто же с самого начало не писал идеальные, суперские коды. Все делали ошибки, учились, набирались опыта.Возможно от первых Ваших кодов тоже "рвало" окружающих. Но ничего, Вы прошли через это, и теперь есть чему у Вас научится другим. Я Ваши посты и коды с интересом читаю.
Мой код, если его можно так назвать, не претендует на приятность.
Если уж Вам очень неприятно, можете их не читать пока. Придет время, и я буду писать приличный код! А сейчас я учусь.
А за комменты и критику по существу спасибо!
g25092011
Donald Ervin Knuth вне форума Ответить с цитированием
Старый 04.11.2014, 17:12   #6
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
значит не знаете принципа KISS
Можно чуть-чуть поподробнее? Данке
Poma][a вне форума Ответить с цитированием
Старый 04.11.2014, 19:37   #7
Donald Ervin Knuth
Пользователь
 
Аватар для Donald Ervin Knuth
 
Регистрация: 15.10.2014
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Можно чуть-чуть поподробнее? Данке
Он возможно имел ввиду вот это "...Один небезызвестный принцип проектирования гласит: “Делай проще, дуралей” (Keep it simple, stupid; KISS)..." Обычно в это "тыкают" новичков, вроде меня, которые располагают начальными знаниями и не могут в полной мере использовать многие инструменты языка (функции, процедуры, типовые алгоритмы, готовые решения). Типа дешевых "пантов".Но , я думаю, новичкам, должно быть глубоко наплевать на этот принцип. Для начало хоть бы код работал, а ведь некоторым и это с трудом дается, не говоря уже об kiss..

Вот еще про kiss и не только

Цитата:
Нобелевский лауреат по физике и президент королевской академии Эрнест Резерфорд рассказывал в свое время такую историю:
Однажды его коллега захотел поставить одному из своих студентов самую низкую оценку по физике. Студенту это не понравилось и он начал доказывать, что заслуживает намного большего бала. Чтобы решить, кто из них прав, студент и преподаватель решили спросить мнения у третьего независимого человека, который и должен был их рассудить. Выбор пал на Резерфорда.
Спорный вопрос был следующий:
« Каким образом можно измерить высоту здания с помощью барометра?».
Ответ студента был такой:
« Поднимаетесь с барометром на крышу, потом спускаете его на длинной веревке и поднимаете обратно. Измерив длину веревки можно измерить высоту здания»
Ситуация действительно трудная, ведь ответ был абсолютно верным. Но экзамен был по физике, а ответ имел мало общего с применением знаний в этой области.
Резерфорд предложил студенту ответить еще раз и дал время на подготовку. Известный ученый предупредил, что теперь ответ должен демонстрировать знание физических законов.
Через несколько минут студент заявил, что у него существует несколько идей решения данной проблемы, и он хочет выбрать наилучший.
Это заинтересовало Резерфорда, и он сказал, что выслушает все известные молодому человеку методы.
Новый ответ был таким: «Нужно подняться с барометром на крышу и бросить его вниз, замеряя время падения. После чего, используя формулу, вычислить высоту здания».
Ученый спросил своего коллегу преподавателя, подходит ли ему такой ответ. Тот признал, что ответ неплохой, но пусть студент расскажет о других, известных ему, методах.
- Можно выйти на улицу в солнечный день и измерить высоту барометра и его тени, а также измерить длину тени здания. Затем, решив несложную пропорцию, определить высоту самого здания.
- Можно взять барометр в руки и подниматься с ним по лестнице, прикладывая барометр к стене и делая отметки. Сосчитав количество этих отметок, потом умножить это число на размер барометра. Результат и будет высотой здания.
— Если вы хотите более сложный способ, то привяжите к барометру шнурок и, раскачивая его, как маятник, определите величину гравитации у основания здания и на крыше. Из разницы между этими величинами, можно вычислить высоту здания.
— Наконец, — заключил он, пожалуй, самым удобным способом является такой: возьмите барометр с собой, найдите управляющего и скажите ему: «Господин управляющий, у меня есть замечательный барометр. Он ваш, если вы скажете мне высоту этого здания».
Тут Резерфорд спросил студента, неужели он действительно не знал общепринятого решения этой задачи. Он признался, что знал, но сказал при этом, что сыт по горло школой и колледжем, где преподаватели навязывают студентам свой способ мышления.
Студент этот был Нильс Бор (1885–1962), датский физик, лауреат Нобелевской премии 1922 г..
Взято тут http://www.student44.ru/?p=3734

Код:
var
result,t,a:string;
nstr,h:integer;
begin
  writeln('Задайте текст Т');Readln(t);
  writeln('Задайте словосочетание А');Readln(a);
    nstr:=1;h:=pos(' ',t);
    while  (Length(t)>0) do
      begin  
      result:=Concat(result,copy(t,nstr,h+1));
      insert(a,result,Length(result));
      delete(t,nstr,h);
      h:=pos(' ',t);
      if h=0 then 
      begin
      result:=Concat(result,t);
      delete(t,nstr,Length(t));
      end;
      end;
   writeln(result);    
end.
g25092011

Последний раз редактировалось Stilet; 26.11.2014 в 09:56.
Donald Ervin Knuth вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для ввода строковых данных с клавиатуры. Запретить ввод пробела в строку (Ассемблер) Victor Babin Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 05.12.2012 09:38
обработка строковых данных (на C) zZzzZzzzzzzzzz Помощь студентам 3 08.02.2012 15:21
Обработка строковых данных locdoc Паскаль, Turbo Pascal, PascalABC.NET 2 06.12.2010 17:28
Обработка строковых данных ChelseaFan Помощь студентам 3 03.12.2010 18:59
Обработка строковых данных >>arty<< Помощь студентам 4 15.01.2010 23:07