Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 1
Регистрация: 26.06.2013
Сообщений: 24
1

Удалить слово не используя процедуру delete

19.11.2013, 19:55. Показов 1574. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
удалить слово не используя процедуру delete, программа работает..
подскажите как это сделать:

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
var
    s: string;
    len, i, j, n: integer;
    function Del_word(n:integer; var s:string):string;
    begin
         if j < n then
           begin
                delete(s,i-j,j+1); //вырезаем вместе с пробелом после слова
                len:= length(s);
                i:= i-j; 
                j:= 0; 
           end
         else
            begin
                i:= i+1; //переходим к следующей букве
                j:= 0; //обнуляем длину слова
            end;
    end;
begin
    write('введите текст: ');
    readln(s);
    write('введите размер удаляемого слов(а): ');
    readln(n);                   
    len:= length(s);
    i:= 1; 
    j:= 0; 
    while i<=len do
    begin
        if s[i] <> ' ' then
        begin
            j:= j+1; 
            i:= i+1; 
        end
        else
          begin 
            Del_word(n,s)
          end;
    end;
    if j < n then
        delete(s,i-j,j);
    writeln(s);
readln;
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2013, 19:55
Ответы с готовыми решениями:

Используя delete, получить из слова "информатика" слово "математика"
Program Primer6; Uses crt; var a: string; Begin clrscr; a:='Инка'; writeln(a); ...

Используя delete по указателю, возвращенному new [] или delete [] указателем, возвращаемым new
Помогите ответить на вопрос, не могу понять суть вопроса (правильно ли понимаю, что будет если...

Удалить из массива элемент с номером К, используя процедуру
Заданый масив,удалить с масива элемент с номером К используя процедуру.Воод значений в ручную Help...

В символьной строке удалить предпоследнее слово (используя указатели)
Условие задачи: В символьной строке удалить предпоследнее слово. Обращение к элементам массива...

8
272 / 188 / 173
Регистрация: 06.06.2012
Сообщений: 322
21.11.2013, 12:40 2
используй copy) всё что не удаляется копируешь в новую строку и все
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function Del_word(n:integer; var s,s1:string):string;
    begin
         if j < n then
           begin
                s1:=copy(s,1,i-j-1)+copy(s,i+1,length(s)-i); //вырезаем вместе с пробелом после слова
                len:= length(s);
                i:= i-j; 
                j:= 0; 
           end
         else
            begin
                i:= i+1; //переходим к следующей букве
                j:= 0; //обнуляем длину слова
            end;
    end;
я бы так сделал проверь)
0
0 / 0 / 1
Регистрация: 26.06.2013
Сообщений: 24
22.11.2013, 16:39  [ТС] 3
эх, забыл написать условие))
Реализация такойподпрограммы должна происходить без использования стандартных процедур и функций при
работе со строками (concat, copy, delete, insert, pos, uppercase, lowercase и др)
0
2 / 2 / 3
Регистрация: 10.08.2013
Сообщений: 30
22.11.2013, 18:22 4
можно слово заменить пустой строкой к примеру?!
0
0 / 0 / 1
Регистрация: 26.06.2013
Сообщений: 24
23.11.2013, 11:38  [ТС] 5
да можно, наверно..
0
272 / 188 / 173
Регистрация: 06.06.2012
Сообщений: 322
23.11.2013, 12:19 6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

смешно так)
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
51
52
53
54
var
  s: string;
  len, i, j, n: integer;
 
procedure remove(var s: string; index, count: integer);
begin
  if (index < 1) or (index > s.Length) or (count <= 0) then
    Exit;
  if index + count - 1 > s.Length then
    count := s.Length - index + 1;
  s := s.Remove(index - 1, count);
end;
 
function Del_word(n: integer; var s: string): string;
begin
  if j < n then
  begin
    remove(s, i - j, j + 1); //вырезаем вместе с пробелом после слова
    len := length(s);
    i := i - j; 
    j := 0; 
  end
         else
  begin
    i := i + 1; //переходим к следующей букве
    j := 0; //обнуляем длину слова
  end;
end;
 
begin
  write('введите текст: ');
  readln(s);
  write('введите размер удаляемого слов(а): ');
  readln(n);                   
  len := length(s);
  i := 1; 
  j := 0; 
  while i <= len do
  begin
    if s[i] <> ' ' then
    begin
      j := j + 1; 
      i := i + 1; 
    end
        else
    begin
      Del_word(n, s)
    end;
  end;
  if j < n then
    remove(s, i - j, j);
  writeln(s);
  readln;
end.
0
0 / 0 / 1
Регистрация: 26.06.2013
Сообщений: 24
23.11.2013, 12:26  [ТС] 7
Спасибо) помогли.. тема закрыта
0
0 / 0 / 1
Регистрация: 26.06.2013
Сообщений: 24
26.11.2013, 17:51  [ТС] 8
поднимаю снова тему
в этой части всё-равно используется процедура Remove, мне подсказали методом переноса типо как в массиве, может кто глянет

procedure remove(var s: string; index, count: integer);
begin
if (index < 1) or (index > s.Length) or (count <= 0) then
Exit;
if index + count - 1 > s.Length then
count := s.Length - index + 1;
s := s.Remove(index - 1, count);
end;
0
0 / 0 / 1
Регистрация: 26.06.2013
Сообщений: 24
09.12.2013, 19:49  [ТС] 9
гляньте
0
09.12.2013, 19:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2013, 19:49
Помогаю со студенческими работами здесь

Опишите процедуру delete(f), удаляющую из файла f все литеры '+' и '-'
1) type myfile = file of char; Опишите процедуру delete(f), удаляющую из файла f все литеры '+' и...

Описать процедуру Replace(S), заменяющую в строке S символы нижнего подчеркивания на пробелы. Используя эту процедуру, преобразовать пять данных строк
Описать процедуру Replace(S), заменяющую в строке S символы нижнего подчеркивания на пробелы....

Изменить процедуру Delete так, чтобы удалялся последний элемент списка, а не первый
Как в данной программе изменить процедуру Delete таким образом чтобы удалялся последний элемент, а...

Описать процедуру рисования любого узора. Используя эту процедуру "замостить" узором холст
Разработать программу, в которой описана процедура рисования любого графического узора, на основе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru