Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
vsvladan
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 55
1

Слова которые состоят только из цифр преобразуются в сумму цифр этих слов и если слово содержит буквы и цифры то буквы в них заменяются на «*».

08.04.2013, 08:15. Просмотров 1839. Ответов 1
Метки нет (Все метки)

Вводится предложение в этом предложении слова которые состоят только из цифр преобразуются в сумму цифр этих слов и если слово содержит буквы и цифры то буквы в них заменяются на «*». срочно вообще надо. решите пожалуйста
0
Лучшие ответы (1)
Puporev
Модератор
59361 / 44804 / 30921
Регистрация: 18.05.2008
Сообщений: 107,465
08.04.2013, 09:39 2
Лучший ответ Сообщение было отмечено vsvladan как решение

Решение

Не по теме:

Цитата Сообщение от vsvladan Посмотреть сообщение
сторки
Не сторки, а шторки...



Добавлено через 21 минуту
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
uses crt;
const rz=[' ',',','.'];//разделителей слов можешь добавить
      cf=['0'..'9'];
var s,s1,s2:string;
    i,j,k:byte;
    sum:integer;
begin
writeln('Введите предложение, в том числе слова из цифр и слова из цифр и букв');
read(s);
i:=1;
while i<=length(s) do
if not(s[i] in rz)and((i=1)or(s[i-1] in rz)) then
 begin
  s1:='';
  j:=i;
  while(j<=length(s))and not(s[j] in rz) do
   begin
    s1:=s1+s[j];
    j:=j+1;
   end;
  k:=0;
  sum:=0;
  for j:=1 to length(s1) do
  if s1[j] in cf then
   begin
    k:=k+1;
    sum:=sum+ord(s1[j])-48;
   end;
  if k=length(s1)then
   begin
    str(sum,s2);
    delete(s,i,length(s1));
    insert(s2,s,i);
    i:=i+length(s2);
   end
  else if k>0 then
   begin
    s2:='';
    for j:=1 to length(s1) do
    if s1[j] in cf then s2:=s2+s1[j]
    else s2:=s2+'*';
    delete(s,i,length(s1));
    insert(s2,s,i);
    i:=i+length(s2);
   end
  else i:=i+length(s1)
 end
else i:=i+1;
write(s);
end.
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.