Форум: "Начинающим";
Текущий архив: 2008.01.06;
Скачать: [xml.tar.bz2];
ВнизСтроки Найти похожие ветки
← →
dumka (2007-12-11 10:04) [0]Где можно найти примеры по программированию строк в Pascal?
По информатике задали:
Найти и вывести все шипящие буквы, в самом длинном слове предложения.
Тема полностью самостоятельная.
Ни примеров, ни методичек.
← →
oldman © (2007-12-11 10:06) [1]Если учесть, что строка - суть одномерный массив, состоящий из символов, то ответ очевиден...
← →
Virgo_Style © (2007-12-11 10:07) [2]dumka (11.12.07 10:04)
Где можно найти примеры по программированию строк в Pascal?
В любой книжке по языку.
← →
dumka (2007-12-11 10:14) [3]
> В любой книжке по языку.
Передомной Культин "Паскаль"
по теме строки только 5 функций и все.
Мне нужен пример.
← →
oldman © (2007-12-11 10:17) [4]
> dumka (11.12.07 10:14) [3]
> Мне нужен пример.
Ну парсить тебе вряд ли, кто будет...
Читай [1] и работай for и do while
← →
ЮЮ © (2007-12-11 10:23) [5]> по теме строки только 5 функций и все.
Функций CamoeДлинноеСловоВПредлжении и ШипящиеБуквыВСлове все равно в стандартной поставке нет. Придется писать самой.
← →
KSergey © (2007-12-11 10:27) [6]> dumka (11.12.07 10:14) [3]
Передомной Культин "Паскаль" по теме строки только 5 функций и все.
Интересно было бы прочитать какие именно, однако еще интереснее - ваши мысли относительно того как именно - на ваш взгляд - эти функции можно применить к задаче и что не хватает, чтобы все еж применить.
Короче, готового ответа тут никто давать не любит, тем более - в учебных задачах.
← →
Palladin © (2007-12-11 10:30) [7]сам возьми на бумажке и посчитай... потом проанализируй свои действия и воплоти их в программе... основываясь на тех функциях которые даны в книжке...
← →
oldman © (2007-12-11 10:32) [8]
> dumka (11.12.07 10:14) [3]
> по теме строки только 5 функций и все.
По большому счету тебе нужно три.
Первая - позиция символа в строке (для нахождения мест начала/окончания слов)
Вторая - взять кусок строки (вынуть из предложения слово)
Третья - узнать длину строки (длина слова)
Этими тремя находишь самое длинное слово.
В нем (как в массиве) в цикле находишь шипящие буквы.
← →
@!!ex © (2007-12-11 10:37) [9]> [8] oldman © (11.12.07 10:32)
Да там вообще функции не нужны...
Простой цыкл все решает.
← →
Palladin © (2007-12-11 10:38) [10]два простых цикла :)
← →
oldman © (2007-12-11 10:42) [11]
> @!!ex © (11.12.07 10:37) [9]
> > [8] oldman © (11.12.07 10:32)
>
> Да там вообще функции не нужны...
Ну у него же, наверное, задачка по "работа со строковыми функциями"...
:)))
← →
_Denis_ © (2007-12-11 10:43) [12]
const
Shipashie = "ùøØÙÖ";//×åãîòîòàì åù¸
var
s1,s2 : String;
i : Integer;
begin
s2:="";
s1:=Edit1.Text+" ";
i:=0;
while i < Length(s1) do
begin
if (s1[i] = " ") and (s1[i+1] = " ")then
Delete(s1,i,1)
else
i:=i+1;
end;
while s1 <> "" do
begin
i:=pos(" ",s1);
if Length(Copy(s1,1,i)) >= Length(s2) then s2:=Copy(s1,1,i);
s1:=Copy(s1,i+1,Length(s1)-i);
end;
s1:="";
for i:=1 to Length(s2) do
begin
if pos(s2[i],Shipashie) > 0 then s1:=s1+s2[i]+" ";
end;
ShowMessage(s1);
end;
← →
_Denis_ © (2007-12-11 10:44) [13]хопс!
Shipashie = "ШЩшщ";// и так далее...
← →
Palladin © (2007-12-11 10:45) [14]
> _Denis_ © (11.12.07 10:43) [12]
какой кошмар
← →
oldman © (2007-12-11 10:47) [15]
> _Denis_ © (11.12.07 10:43) [12]
Про запятые, тире, кавычки, двоеточия и прочая ты забыл?
← →
_Denis_ © (2007-12-11 10:54) [16]
> Про запятые, тире, кавычки, двоеточия и прочая ты забыл?
Я написал простейший вариант, тем более в Паскале работать не будет. А про всякие тире, то пофиг. Пусть переделывает тот, кому это надо.
← →
Сергей М. © (2007-12-11 10:58) [17]
> _Denis_ © (11.12.07 10:43) [12]
Прежде всего следует определить список знаков препинания и устранить их из текста предложения для обеспечения однозначности локализации "слов" в предложении.
Иначе, например, в предложенииААШ!! ААШШ
алгоритм даст неверный результат - одна шипящая "Ш" в слове "АААШ," вместо искомых двух шипящих "Ш" в слове "ААШШ"
← →
Palladin © (2007-12-11 11:01) [18]
> _Denis_ © (11.12.07 10:54) [16]
далеко не простейший, сложный для восприятия, и некорректный
вывод: а на кой вообще он нужен тут?
в паскале, кстати, работать будет, с тем же успехом что и в делфи
← →
oldman © (2007-12-11 11:08) [19]
> Сергей М. © (11.12.07 10:58) [17]
Имхо, в слове ААШШ одна шипящая буква - Ш
:)))
← →
oldman © (2007-12-11 11:09) [20]
> _Denis_ © (11.12.07 10:43) [12]
> begin
> if (s1[i] = " ") and (s1[i+1] = " ")then
> Delete(s1,i,1)
> else
> i:=i+1;
> end;
А разве функции нет по удалению "лишних" пробелов?
← →
@!!ex © (2007-12-11 11:10) [21]> [19] oldman © (11.12.07 11:08)
Ну это уже от условия зависит, можно и так и так сказать.
← →
Kolan © (2007-12-11 11:11) [22]> А разве функции нет по удалению «лишних» пробелов?
Главное понять что такое «лишние» :)
← →
Сергей М. © (2007-12-11 11:20) [23]
> oldman © (11.12.07 11:08) [19]
У окулиста давно был ?)
← →
@!!ex © (2007-12-11 11:23) [24]вот подсчет количества указанных символов в самом длинном слове строки.
Автор, как получить сами символы, разберешься?program Project1;
{$APPTYPE CONSOLE}
Function IsInString(C:char; const S:string):boolean;
var
Index:integer;
begin
Result:=false;
for Index := 1 to Length(S) do
if C=S[INdex] then begin
Result:=true;
Exit;
end;
end;
Function GetCharsCountInString(const InputString,Chars,Separators:string):integer;
var
BiggestString:string;
CurrentString:string;
Index:integer;
begin
BiggestString:=#0;
CurrentString:=#0;
for Index := 1 to Length(InputString) do
if IsInString(InputString[INdex],Separators) then begin
if Length(CurrentString)>Length(BiggestString) then
BiggestString:=CurrentString;
CurrentString:=#0;
end
else begin
CurrentString:=CurrentString+InputString[Index];
end;
Result:=0;
for Index := 1 to Length(BiggestString) do
if IsInString(BiggestString[Index],Chars) then
inc(Result);
end;
var
S:string;
C:string;
begin
writeln("String:");
readln(S);
writeln("Chars:");
readln(C);
writeln("Count: ",GetCharsCountInString(S,C,"!@#$%^&*() ,./:""[]{}|\/-_=+"));
readln;
end.
← →
_Denis_ © (2007-12-11 11:25) [25]К модератору : Пожалуйста, удалите [12]!
Ладно, признаю, зря постил. Хватит меня бить уже :)
> ААШ!! ААШШ
>
> алгоритм даст неверный результат - одна шипящая "Ш" в слове
> "АААШ," вместо искомых двух шипящих "Ш" в слове "ААШШ"
Признаться, не вижу там слова АААШ.
← →
Kolan © (2007-12-11 11:32) [26]> Ладно, признаю, зря постил. Хватит меня бить уже :)
Не тут то было :)
> @!!ex
А та ветка пошла тебе на пользу :) Есть конечно замечания(могу в аську вызказать) разные, но внешний вид приличный(еще бы пробелы добавить) :)
← →
turbouser © (2007-12-11 11:59) [27]
function GetHassingsInLongestRussianWord(AString: string): string;
var
i, WordLength, LongestWordLength, LongestWordPos: integer;
begin
Result := "";
LongestWordPos := 1;
LongestWordLength := 0;
WordLength := 0;
for i := 1 to Length(AString) do
if not (AString[i] in ["А".."я", "0".."9"]) or (i = Length(AString)) then
begin
if LongestWordLength < WordLength then
begin
LongestWordLength := WordLength;
LongestWordPos := i - WordLength;
end;
WordLength := 0;
end else
Inc(WordLength);
if LongestWordLength > 0 then
for i := LongestWordPos to LongestWordPos + LongestWordLength do
if Astring[i] in ["Ш", "Щ", "ш", "щ"] then
Result := Result + Astring[i];
end;
← →
@!!ex © (2007-12-11 12:03) [28]> А та ветка пошла тебе на пользу :)
Ну я же ту ветку не просто так создавал. :)
> Есть конечно замечания(могу в аську вызказать) разные
ДАвай.
228305662
А лучше в gtalk(jabber):
BasovAV@gmail.com
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.01.06;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.005 c