IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Строки, вроде не сложно, но что-то не выходит :(
сообщение
Сообщение #1


Гость






Две вот таких задачки:

1. Дан текст. Заменить на пробелы слово введённое пользователем. В противном случае вывести сообщение о том, что его нет;

2. В заданном предложении найти самое короткое и самое длинное слова.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Цитата
Строки, вроде не сложно, но что-то не выходит

Что у тебе не выходит? Пользоваться поиском? Вторая задача не раз решалась.
Цитата
Дан текст. Заменить на пробелы слово введённое пользователем. В противном случае вывести сообщение о том, что его нет

В каком виде дан текст? Файл, строка?


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Строка smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Мужской

Репутация: -  0  +


Первая задача (строка):
program z1;
var
textStr,str:string;
i:integer;
begin
writeln('Введите строку:');
readln(textStr);
writeln('Введите слово для удаления');
readln(str);
for i:=1 to length(textStr)-length(str) do
if copy(textstr,i,length(str)) = str then
begin
delete(textstr,i,length(str));
insert(' ',textstr,i);
end;
writeln(textstr);
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Bill Gates, если бы все было так просто ...
Вводи строку: starting star text
и слово star

и наслаждайся результатом...

И, заодно, учти, что
Цитата(Правила Раздела)
7. Проверяйте программы перед тем, как разместить их на форуме!!!

относится и к тебе тоже. А тестировать - это не только соизволить проверить, нет ли синтаксических ошибок, но и прежде всего внимательно прочесть задание, и прогнать ХОТЯ БЫ десяток разных тестов...

Намек ясен?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Цитата
Дан текст. Заменить на пробелы слово введённое пользователем. В противном случае вывести сообщение о том, что его нет;

первый способ:
function inverse(s:string):string;
var buf:string;
i,j:byte;
begin
j:=0;
buf:='';
for i:=length(s) downto 1 do
begin
inc(j);
buf:=buf+s[i];
end;
inverse:=buf;
end;

var i:byte;
source,find,buf:string; b:boolean;
begin
writeln('Enter text');
readln(source);
writeln('Enter word to find');
readln(find);

buf:='';
b:=false;
for i:=length(source) downto 1 do
begin
if source[i]=' ' then
begin
if inverse(buf)=find then
begin
delete(source,i+1,length(buf));
insert(' ',source,i+1);
b:=true;
end;
buf:='';
end
else
buf:=buf+source[i];
end;
if b then
writeln(source)
else
writeln('The word ',find,' was not found');
readln;
end.

второй:
var i,temp:byte;
source,find,buf:string; b:boolean;
begin
writeln('Enter text');
readln(source);
writeln('Enter word to find');
readln(find);

b:=false;
while pos(concat(' ',find,' '),source)<>0 do
begin
b:=true;
i:=pos(concat(' ',find,' '),source);
delete(source,i+1,length(find));
insert(' ',source,i+1);
end;
if b then
writeln(source)
else
writeln('The word ',find,' was not found');
readln;
end.


Сообщение отредактировано: volvo -


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Bokul, я бы все-таки делал так:
...
b := false;
repeat
i := pos(' ' + find + ' ', ' ' + source + ' ');
if i > 0 then begin
b := true;
delete(source, i, length(find));
insert(' ', source, i);
end;
until i = 0;
...
, иначе последнее слово ты не ловишь ...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 18.12.2017 4:29
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"