PDA

View Full Version : مبتدی: جدا کردن کلمات یک متن در پاسکال



sahelgh
چهارشنبه 24 آبان 1391, 16:07 عصر
من میخوام یک برنامه به زبان پاسکال بنویسم که در یک متن کلماتی که با حروف صدا دار شروع میشه رو نمایش بده ولی نمیدونم چه جوری باید کلمات از هم جدا کنم!

Ananas
چهارشنبه 24 آبان 1391, 17:11 عصر
باید برای هر کلمه ای که می خواید جدا بشه یک متغیر string تعریف کنید و اگه تعدادشون مشخص نیست میشه یک آرایه از نوع string تعریف کنید و کلمات مورد نظرتون رو داخل اون string ها تک به تک بریزید. کلمات هم در متن اصلی معمولا با space و یا enter و یا نقطه و اینجور چیزا از هم جدا میشن. کلا میشه گفت هر چیزی غیر از حروف اصلی می تونه مرز بین دو کلمه باشه.

sahelgh
پنج شنبه 25 آبان 1391, 00:32 صبح
فکر کنم منظورمو بد رسونده باشم! باید جمله بنویسیم و تو اون جمله کلماتی که با حروف صدادار شروع شده اند رو نمایش بده! مشکل من اینه که چجوری کلمات متن رو جدا کنم!

mohsen24000
پنج شنبه 25 آبان 1391, 02:19 صبح
var s:TStringList;
i: SmallInt;
begin
try
s:=TStringList.Create;
s.Delimiter:=' ';
s.DelimitedText:='my name is mohsen';
for I := 0 to s.Count - 1 do
ShowMessage(s.Strings[i]);
finally
s.Free;
end;
end;
end;

Felony
پنج شنبه 25 آبان 1391, 05:40 صبح
سوالت رو كامل بپرس ، الان مشكلت نحوه جدا كردن كلمات هست يا نحوه تشخيص حروف صدا دار براي جداسازي اون كلمه ؟

sahelgh
پنج شنبه 25 آبان 1391, 19:22 عصر
سوال اینه که: برنامه ای که متنی را دریافت کند و فقط کلماتی را نمایش دهد که با حروف صدادار شروع شده اند.

Felony
پنج شنبه 25 آبان 1391, 19:27 عصر
نگفتم سوال چیه ، گفتم مشکل شما چیه ، اینجا کسی اجازه نداره سوال دانشجویی یا ... رو اینجا قرار بده و کسی هم اجازه نداره سورس کد این سوالات رو در اخیتار کسی بزاره ، شما خودت شروع به نوشتن کن و هر جا به مشکل برخوردی مطرح کن تا دوستان راهنماییت کنن ، در غیر این صورت تاپیک قفل خواهد شد .

sahelgh
پنج شنبه 25 آبان 1391, 19:45 عصر
من از pos و copy استفاده کردم. ولی برنامه ارور میده .

d:=copy (pos(str1,a[i])+1);
الان این از نوع string هستش و نمیشه با 1 جمع کرد! میخوام این مشکلو برطرف کنم ولی نمیتونم!
در ضمن
str1:='32';

seyed_farid
جمعه 26 آبان 1391, 11:29 صبح
در دستوریکه دوستمون نوشته یه تغییر کوچولو کارت را حل میکنه.

var s:TStringList;
i: SmallInt;
begin
try
s:=TStringList.Create;
s.Delimiter:=' ';
s.DelimitedText:='my name is mohsen';
for I := 0 to s.Count - 1 do
if (UpperCase(leftStr(s.Strings[i],1))='A')
or (UpperCase(leftStr(s.Strings[i],1))='E')
or (UpperCase(leftStr(s.Strings[i],1))='I')
or (UpperCase(leftStr(s.Strings[i],1))='O')
or (UpperCase(leftStr(s.Strings[i],1))='U')
then
ShowMessage(s.Strings[i]);
finally
s.Free;
end;
end;
end;