Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 20
1

Записать все слова, и у последнего убрать предпоследнюю букву.

14.12.2011, 19:39. Показов 1203. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
нужна программа в паскале помогите пожалуйста!!!
Программа, только её нужно доделать, она записывает последнее слово в файл "test.txt" в корневом каталоге паскаля, а нужно чтобы записывала все слова, но у последнего убирала ПРЕДпоследнюю букву.

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
var
st, tmp : string;
i : integer;
f : text;
a : byte;
begin
st := 'nol odin dwa tri chetiri piat shest sem vosem deviat.';
writeln('Dana posledovatelnost svov:');
writeln(st);
 
assign(f, 'test.txt');
rewrite(f);
 
while length(st) > 0 do begin
a := pos(' ',st);
if a = 0 then a := pos('.',st);
tmp := copy(st, 1, a-1);
delete(st, 1, a)
end;
writeln(f,tmp);
close(f);
writeln('obrabotano i zapisano v fail!');
readln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2011, 19:39
Ответы с готовыми решениями:

Напечатать все слова, отличные от последнего слова, преобразовав по правилу: перенести первую букву в конец слова
Помогите пожалуста решыть: 10.18. Программа. Дана последовательность, содержащая от 2 до 30 слов,...

Напечатать все слова, отличающиеся от последнего слова, перед печатью перенеся последнюю букву в начало слова
Слова текста из малых латинских букв записаны не менее чем через один пробел; текст оканчивается...

Вывести все слова последовательности, отличные от последнего слова, удалив первую букву
1. Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 строчных...

Напечатать все слова, отличные от последнего, поменяв первую и последнюю букву каждого слова
Дана последовательность, содержащая от 2 до 20 слов, в каждом из которых от 2 до 10 латинских...

5
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
14.12.2011, 23:40 2
Если тебе как-то поможет, могу предложить другой код
(правда сделано в консоли делфи, но там разница от паскаля маленькая)

Для сохранения каждого записываемого слова без предпоследнего символа (если слово состоит из одной буквы или стоит отдельно стоящий символ слева пробел и справа-то и записывается как есть, убирать тогда нечего, а записать мало ли надо).

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
         program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
Var St,St1:String;
    F:TextFile;
 
     procedure SaveToFile;
     Begin
          AssignFile(F,'MyFile.txt');
          Append(F);
            writeln(F,St1);
          CloseFile(F);
     end;
 
     procedure GetSlovo;
     Begin
         St1:=Copy(St,1,pos(' ',St));;
         if length(St1)>1 then Delete(St1,length(St1)-2,1);
         St:=Copy(St,pos(' ',St)+1,length(St)-pos(' ',St)+1);
    end;
 
 
begin
AssignFile(F,'MyFile.txt');Rewrite(F);CloseFile(F); {сразу создаем пустой файл}
 
   St:='12109 1 12333 42123 1';
   St1:=St;
   repeat
   GetSlovo;
   SaveToFile;
   until pos(' ',St)=0;
 
           if length(St)>1 then Delete(St,length(St)-2,1);
           AssignFile(F,'MyFile.txt');
           Append(F);
               writeln(F,St);
           CloseFile(F);  ;
end.
Строка = 12109 1 12333 42123 1
============
результат записи в файл
1219
1
1233
4213
1
============
я так понял тебе такое надо

Пробел тоже к символам относится, если нужно, чтоб пробелы пропускало обязательно, сразу очисти строку от лишних и все будет нормально.
0
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 20
15.12.2011, 00:01  [ТС] 3
здесь убирает у первой предпоследнюю..а мне надо у последнего слова
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
15.12.2011, 00:36 4
здесь убирает у первой предпоследнюю..а мне надо у последнего слова
Здесь он убирает у каждого из всех, а не у первого.
Просто последний символ = 1 буква и сделано, чтоб одну не удалял.

Чтоб только у последнего убирать можно сразу после присваивания в своём коде S:=nnnn nnn nnn.
написать Delete(S,length(St)-1,1);
Отделять слова и записывать в файл. это даже проще

Берешь пишешь так
Delphi
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
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
Var St,St1:String;
      F:TextFile;
      i,N:Integer;
 
 
    procedure SaveInFile;
    Begin
       St1:=Copy(St,1,pos(' ',St));
       AssignFile(F,'MyFile.txt');
       Append(F);
         writeln(F,St1);
       CloseFile(F);
       Delete(St,1,pos(' ',St));
    end;
 
begin
i:=0;N:=0;
  AssignFile(F,'MyFile.txt');
  Rewrite(F);
  CloseFile(F);
  St:='Odin dwa tri chetire piat';
 
   repeat
   SaveInFile;
   until pos(' ',St)=0;
 
   if length(st)>0 then Delete(St,length(St)-1,1);
   AssignFile(F,'MyFile.txt');
   Append(F);
    writeln(F,St);
   CloseFile(F);
end.
St:='Odin dwa tri chetire piat';
=============
В Файл
Odin
dwa
tri
chetire
pit
1
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 20
16.12.2011, 16:55  [ТС] 5
а помогите чтобы удалялась в каждом лове последняя буква?
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
16.12.2011, 19:02 6
Поиграйте пока немного с первым кодом. Там обработка каждого слова. Только позицию поменять
поиграете, может усвоите что-нибудь
0
16.12.2011, 19:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2011, 19:02
Помогаю со студенческими работами здесь

Первую букву каждого слова заменить на последнюю букву последнего слова
Слова в строке отделены одним пробелом, в конце ставится точка. Первую букву каждого слова заменить...

Напечатать все слова, отличные от последнего слова, предварительно удалив из каждого слова последнюю букву
1) Программа. Дан текстиз строчных русских букв, закоторым следует точка. Напечатать этот текст...

Вывести слова, отличные от последнего слова, предварительно удалив из каждого слова первую букву
Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв;...

Вывести слова, отличные от последнего слова, предварительно удалив из каждого слова последнюю букву
Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 строчных...


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

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