23 / 23 / 30
Регистрация: 23.10.2012
Сообщений: 344
1

Другой способ

19.11.2012, 10:06. Показов 667. Ответов 3
Метки нет (Все метки)

Задача:
Заменить все многоточия точками.
Знаю, что задача идиотская, я ее решил 2 способами:
№1
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
var
   sim:string;
   n:integer;
begin
     writeln('строка');
     readln(sim);
     while pos('...',sim)<>0 do
     begin
     n:=pos('...',sim);
     delete(sim,n,2);
     end;
     writeln(sim);
end.
Pos ищет многоточие удаляет 2 точки, но проблема такого способа в том что Pos работает с начала строки, то есть
если вся строка точки то ничего работать не будет.

№2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var
   sim:string;
   i:integer;
begin
     writeln('строка');
     readln(sim);
     while i<length(sim) do
     begin
     if (sim[i]='.') and(sim[i+1]='.') and(sim[i+1]='.') then
     begin
     delete(sim,i,2);
     inc(i);
     end
     else
     inc(i);
     end;
     writeln(sim);
end.
Такой способ работает всегда, но преподу не нравится что я использую
Pascal
1
if (sim[i]='.') and(sim[i+1]='.') and(sim[i+1]='.') then
так как это плохой стиль, и нужно использовать pos


Итак вопрос: какой 3 способ???
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2012, 10:06
Ответы с готовыми решениями:

другой способ
как написать эту програму другим способом? program n4; const k = 0; x = 0.47; e =...

другой способ решения задачи
суть задачи в том, чтобы считать ряд чисел, и вывести на экран сумму первых N элементов. получилось...

Найти другой способ вычисления интеграла
Здравствуйте! Сегодня не смогла осилить на допуске к экзамену один интеграл, думала быстро решу, но...

MetroFramework - textbox.undo, Найти другой способ
int ss = 0; if (!Int32.TryParse(metroTextBox2.Text, out ss)) {...

3
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
19.11.2012, 14:04 2
если ваш педагог хочет, чтобы вы использовали возможности обработки строк по максимуму, то =)
Pascal
1
2
3
4
5
if copy(s,i,3)='...' then
   begin
   delete(s,i,3);
   insert('.',s,i);
   end;
или
Pascal
1
2
if copy(s,i,3)='...' then
   delete(s,i,2);
2
23 / 23 / 30
Регистрация: 23.10.2012
Сообщений: 344
19.11.2012, 17:44  [ТС] 3
Спасибо)
0
Почетный модератор
64278 / 47577 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
19.11.2012, 17:47 4
Pascal
1
while pos('...',s)>0 do delete(s,pos('...',s),2);
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2012, 17:47
Помогаю со студенческими работами здесь

А меньше равно Б, или есть и другой способ
Была задачка, решить a/b не вникая в этот самый a/b, а написать функцию как он его будет решать. В...

Запрос в Цикле или есть другой способ?
Внешняя обработка(8.1) Задача в следующем, есть 1) регистр накоплений ПРОДАЖИ 2) регистр...

Пожалуйста подскажите бесплатное ПО или другой способ!
Есть не большая база данных, составленная в Microsoft Access 2010 x64 битной версии, расширение...

из Excel в DBGrid (таблица) или другой способ
Как занести таблицу из Excel в DBGrid.Что именно выполнять, если не сложно объясните.Таблица...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru