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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2011, 01:07   #1
Katia_Vasilyeva
Новичок
Джуниор
 
Регистрация: 29.11.2011
Сообщений: 8
По умолчанию Задачи на обработку строк

милые, хорошие выручите меня пожалуйста. в ваших руках судьба хрупкой беззащитной девушки, которой нужно сдать завтра программирование.(А ОНА ЖЕ ТУПО ПРОСИДЕЛА 4 ЧАСА С ЭТИМИ СТРОКАМИ)
1. В заданной строке каждое слово заменить количеством букв в этом слове.
2. Проверить является ли текст десятичной записью числа, кратного 9.
3. Проверить является ли текст десятичной записью числа, кратного количества символов.

прошу вас. умаляю, на коленях стою и молюсь


_________
Название темы должно адекватно отражать суть решаемой задачи/проблемы.
На первый раз я исправил.
В дальнейшем темы с подобным названием будут закрываться/удаляться.

Модератор.


Последний раз редактировалось Serge_Bliznykov; 29.11.2011 в 08:52.
Katia_Vasilyeva вне форума Ответить с цитированием
Старый 29.11.2011, 01:54   #2
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Кать, ты покажи, что сделала.
Мы обязательно поможем.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 29.11.2011, 02:17   #3
Katia_Vasilyeva
Новичок
Джуниор
 
Регистрация: 29.11.2011
Сообщений: 8
По умолчанию

с №1 разобралась уже)) вот...а №2 никак не могу понять. че вообще там надо и как? по отдельности каждый символ рассматривать?
Katia_Vasilyeva вне форума Ответить с цитированием
Старый 29.11.2011, 03:03   #4
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Цитата:
хрупкой беззащитной девушки,
Раньше в таких случаях говорили proof or gtfo, но теперь народ измельчал (

Цитата:
а №2 никак не могу понять. че вообще там надо и как?
Берешь в цикле каждый символ. Если он не цифра - значит фигня, если цифра - добавляешь ее к счетчику.
Если счетчик разделится в итоге на 9 - значит число было кратным, да.
Ну а еще можно написать просто
Код:
if (strtoint(s) mod 9)=0
, но это не понравится твоему преподу )
Son Of Pain вне форума Ответить с цитированием
Старый 29.11.2011, 03:09   #5
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Самый простой спсоб - использовать процедуру Val
Цитата:
Procedure Val(S; String; var X; var Code: Integer) Преобразует строковое значение S в его численное представление X. Параметр Code -содержит признак ошибки преобразования (0 - нет ошибки).
Дай ей текст, если она вернет code равным 0 - значит, это число. Тогда проверь, делится ли X на 9 без остатка

Код:
var
  s: string;
  x,code: integer;
.....
  readln(s);
  Val(s,x,code);
  if (code=0) and (x mod 9=0) then writeln('yes') else writeln('no');
№3 аналогично, только надо убрать из s все нецифры (пробелы, минус..) и взять Length(s).
Код:
  readln(s);
  Val(s,x,code);
  for i:=Length(s) downto 1 do if not (s[i] in ['0'..'9'] then Delete(s,i,1);
  if (code=0) and (x mod Length(s) =0) then writeln('yes') else writeln('no');
Good luck to you. Сбрось сюда №1, аз проверю..

P.S.
Цитата:
Сообщение от Son Of Pain Посмотреть сообщение
Раньше в таких случаях говорили proof or gtfo, но теперь народ измельчал
А я бы на месте девушки обиделся.. Что, справку от гинеколога приносить??..
Не веришь - иди мимо..
Предпочитаю на "ты".

Последний раз редактировалось TinMan; 29.11.2011 в 03:15.
TinMan вне форума Ответить с цитированием
Старый 29.11.2011, 03:18   #6
Katia_Vasilyeva
Новичок
Джуниор
 
Регистрация: 29.11.2011
Сообщений: 8
По умолчанию

Son Of Pain, да я уже и сама додумалась до этого.
хотя...сейчас накидаю сюда - зацените)))


Цитата:
Сообщение от Son Of Pain Посмотреть сообщение
Раньше в таких случаях говорили proof or gtfo, но теперь народ измельчал (
только не надо умничать. такие заголовки к темам тоже надо уметь писать :Р

TinMan, о так даже по-удобней) спасибо огромное. сейчас покопаюсь

Последний раз редактировалось Stilet; 29.11.2011 в 10:21.
Katia_Vasilyeva вне форума Ответить с цитированием
Старый 29.11.2011, 03:27   #7
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Пожалуйста )
Цитата:
Сообщение от Katia_Vasilyeva Посмотреть сообщение
такие заголовки к темам тоже надо уметь писать :Р
Не, с этим я в корне не согласен. Был бы я тут модером, наказал бы за такое.. Думаю, просто еще не заметили.
Читай Правила.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 29.11.2011, 03:32   #8
Katia_Vasilyeva
Новичок
Джуниор
 
Регистрация: 29.11.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от TinMan Посмотреть сообщение
.. Думаю, просто еще не заметили.
да фигня! я ещё и не такое выделывала :D

Цитата:
Сообщение от TinMan Посмотреть сообщение
Сбрось сюда №1, аз проверю..
Код:
uses crt;
var s:string;
 i, sym:integer;
begin
 read(s);
 sym:=0;
  for i:=1 to length(s) do
   sym:=ord(s[i])-48+sym;
  if (sym mod 9)=0 then writeln('yes') else writeln('no');
end.

Последний раз редактировалось Stilet; 29.11.2011 в 10:22.
Katia_Vasilyeva вне форума Ответить с цитированием
Старый 29.11.2011, 03:45   #9
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от Katia_Vasilyeva Посмотреть сообщение
да фигня! я ещё и не такое выделывала :D
улыбнуло )
+1 тебе (в надежде, что твое выделывание будет и дальше только поднимать настроение, а не портить его))

Sorry for flood..
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 29.11.2011, 03:50   #10
Katia_Vasilyeva
Новичок
Джуниор
 
Регистрация: 29.11.2011
Сообщений: 8
По умолчанию

вот первая :
Код:
uses crt;
var s,sl,sn: string;
    i,k: integer;
begin
write('s=');
readln(s);
s:=s+' ';
sl:='';
sn:='';
for i:=1 to length(s) do
    if s[i]<>' ' then sl:=sl+s[i]
       else
       begin
       sn:=sn+inttostr(length(sl))+' ';
       sl:='';
       end;
writeln('s=',sn)
end.
Katia_Vasilyeva вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи на обработку строк: удалить каждую 3-ю букву, найти кол-во гласных, кол-во цифр в строке,совпадения в 2-х строках Ирина93 Паскаль, Turbo Pascal, PascalABC.NET 6 05.11.2011 22:10
задачи на обработку массивов bighunter Паскаль, Turbo Pascal, PascalABC.NET 2 09.10.2011 19:58
Задачи на обработку матриц! davka Помощь студентам 1 24.05.2011 07:40
Задача на обработку строк max1m9 Microsoft Office Excel 6 17.12.2009 10:19
задачи: на двумерные массивы,обработку строк,обработку текстовых файлов. (Паскаль) Yaro Помощь студентам 2 12.11.2009 12:55