4- Masala. SO‘ZDAN SO‘Z YASASH Berilgan A matn lotin harflari va probellardan iborat. Berilgan B va
C so‘zlarni ikkalasini ham A matndagi harflarni o‘rnini almashtirmasdan
faqatgina o‘chirish yordamida hosil qilish mumkin yoki mumkin
emasligini aniqlovchi dastur tuzing.
Kiritiladigan qiymatlar: A, B va C satrlar.
Chiqariladigan qiymatlar: javob “Mumkin”, aks holda “Mumkin
emas”.
Misollar: Kiritish qiymatlari
Chiqarish qiymatlari
hkloanxzbjsdjujskksa jussa kosa Mumkin hkloanxzbjsdjujskksa hola kosa Mumkin emas Yechish: A satr nusxasini AA satrda saqlaymiz.
B so‘zni 1- harfini A satrdan Pos(B[1], A) yordamida qidiramiz.
Agar kerakli harf yo‘q bo‘lsa “Mumkin emas” javobini chiqarib dasturni
yakunlaymiz. Kerakli harf A satrda K- o‘rinda joylashgan bo‘lsin. U
holda B so‘zni 1- harfini va A satrni 1- belgisidan K- belgisigacha
o‘chiramiz. Yana B so‘zni 1- harfini qidiramiz. Shu kabi davom ettirsak
yoki “Mumkin emas” javobini chiqarib dasturni yakunlaymiz yoki B
satr bo‘shaydi.
Xuddi shunday, C so‘z va AA satr bilan amallar bajaramiz.
Dasturi: Program yasash;
Var A, AA, B, C :String; K: Byte;
Begin
Write(‘A matnni kiriting: ‘); ReadLn(A); AA:=A;
Write(‘B so‘zni kiriting: ‘); ReadLn(B); Write(‘C so‘zni kiriting: ‘);
ReadLn(C);
379
While (B<>») AND (Pos(B[1], A)>0) Do
begin K:=Pos(B[1], A); Delete(B, 1, 1); Delete(A, 1, K); end;
While (C<>») AND (Pos(C[1], AA)>0) Do
begin K:=Pos(C[1], AA); Delete(C, 1, 1); Delete(AA, 1, K); end;
IF (B<>») OR (C<>») THEN WriteLn(‘Mumkin emas’) ELSE
WriteLn(‘Mumkin’);
Readln;
End.