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

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

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

> Обработка Строк, Помогите решить
сообщение
Сообщение #1


Гость






Задача такова.... Дана строка символов, представляющая предложение и строки, представляющие имя и отчество. Поместить в строку - предложение после имени отчество. Имя может быть указано несколько раз. Порядок ввода исходных данных:последовательность строк, представляющих - предложение; - имя; -отчество.
Порядок вывода результатов: - преобразованное предложение!

В двух словах - это так:
к примеру, вводиться строка: Иван работает,
потом вводится его отчество: Васильевич,

И прога должна вставить его отчество после имени: Иван Васильевич работает!!!
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Знаток
****

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

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


program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

const

delitel = [#0..#32, '.', ',', ':', ';', '!', '?', '"'];
type
TWords = array[1..100] of string;
type
tdel = array[1..100] of string;
var
S : string;
W : twords;
D : tdel;

function words_from_string (s : string; var w : twords; var d : tdel) : integer;
var
i,j,k,count : integer;
begin
i := 1;
count := 0;
while ( i <= length(s) ) do begin
k:=i;
while( i <= length(s) ) and ( s[i] in delitel ) do
inc(i);
d[count+1] := copy (s , k, i-k );
if i <= length( s ) then begin
j := i;
while(i <= length( s )) and not( s[i] in delitel) do
inc(i);
inc(count);
w[count] := copy(s, j, i-j);
end;
end;

result := count;
end;
var count : integer;
var
name : array [ 1..100 ] of boolean;

procedure get_name (w : twords);
var i : integer;
flag : boolean;
begin
name[1]:=false;
for i:= 2 to count do
if (w[i,1] in ['A'..'Z']) or (w[i,1] in ['А'..'Я']) then begin
name[i]:=true;
if w[1]=w[i] then name[1] := true;
end else name[i]:=false;
flag:= false;
for i:=2 to count do
if name[i] then flag:=true;
if not flag then name[1]:=true;

end;

function make_s(w : twords; d : tdel; otch : string):string;
var s : string;
i : integer;
begin
s:='';
for i:= 1 to count do begin
s:= s + d[i];
s:= s + w[i];
if name[i] then s:= s +' '+ otch;
end;
result:=s;
end;




var b : string;
begin
s:='Vasa bili tut.';
b:='Ivanovich';
count := words_from_string(s,w,d);
get_name(w);
write(make_s(w,d,b));
readln;
s:='Ja i Vasa bili tut.';
b:='Ivanovich';
count := words_from_string(s,w,d);
get_name(w);
write(make_s(w,d,b));
readln;

{ TODO -oUser -cConsole Main : Insert code here }
end.

Лень искать лажу вот код, сам разбирайся ( работает под Delphi )
чтобы перевестим на паскалевский замени result на название функции

Кстати код не работает в строке "Vasa." но как исправить ты я думаю догадаешься smile.gif

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


--------------------
Чего хочет женщина – того хочет Бог
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
-Alex-   Обработка Строк   7.11.2006 2:48
arhimag   Можешь полностью привести 2-3 примера входных данн…   7.11.2006 3:08
klem4   Вставить строку B в середину строки A, имеющей вид…   7.11.2006 12:49
Malice   Задача такова.... Дана строка символов, представл…   7.11.2006 14:22
Гость   На самом деле, всё что дано, я написал.... Вот име…   7.11.2006 18:06
Гость   И неизвестно на какой позиции стоит имя.....((( мо…   7.11.2006 18:09
Malice   Судя по условию нужно ввести _3_ строки: предложен…   7.11.2006 18:48
volvo   Тогда тебе придется создавать словарь допустимых и…   7.11.2006 18:47
arhimag   А... понял :) Задача проста как мир. Смотри проб…   7.11.2006 18:49
Гость   А... понял :) Задача проста как мир. Смотри про…   7.11.2006 18:53
arhimag   а ты сам пробывал написать? то что я тебе сказал? …   7.11.2006 19:58
Гость   program pataya_laboratornaya; var s,name,name1:str…   7.11.2006 20:18
arhimag   program Project1; {$APPTYPE CONSOLE} uses …   7.11.2006 20:44
Гость   Он выдает переполнение стека!!!! …   7.11.2006 21:11
Malice   Думаю тебе нужна функция типа такой: function f(s…   7.11.2006 22:05
arhimag   уменьшь размеры типов type TWords = array[1..…   7.11.2006 22:05
Гость   Спасибо за советы..... Помогли))   8.11.2006 1:33
Гость   блин, требуется, чтобы выводил строки друг под дру…   13.11.2006 23:19


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

 





- Текстовая версия 8.09.2025 13:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name