Добро пожаловать,

�аши партнеры
Книги-online
Ëàáîðàòîðíàÿ ðàáîòà ¹5
Ëàáîðàòîðíàÿ ðàáîòà 5
Öåëü ðàáîòû: ïîçíàêîìèòü ñ ïîíÿòèåì "ñòðèíã" è âûðàáîòàòü íàâûêè ðàáîòû ñ ñèìâîëüíîé èíôîðìàöèåé â ÿçûêå ïðîãðàììèðîâàíèÿ Pascal íàó÷èòüñÿ èñïîëüçîâàòü ñòðîêè ñèìâîëîâ è ìíîæåñòâà ïðè ðåøåíèè çàäà÷.
Îáùèå ñâåäåíèÿ
Ïåðåìåííûå òèïà String àíàëîãè÷íû ìàññèâàì òèïà Char. Èõ îòëè÷èåì ÿâëÿåòñÿ òî, ÷òî ÷èñëî ñèìâîëîâ (äëèíà ñòðîêè) ìîæåò äèíàìè÷åñêè ìåíÿòüñÿ â èíòåðâàëå îò åäèíèöû äî çàäàííîãî âåðõíåãî çíà÷åíèÿ.
Ïåðåä âûïîëíåíèåì ðàáîòû íåîáõîäèìî îçíàêîìèòüñÿ ñ ïðàâèëàìè îïèñàíèÿ è èñïîëüçîâàíèÿ ñòðîê, äîïóñòèìûõ îïåðàöèé íàä íèìè, ñîîòâåòñòâóþùèìè ñòàíäàðòíûìè ïðîöåäóðàìè è ôóíêöèÿìè.
Ïðèìåðû
Ïðèìåð1. Äàí òåêñò, ñëîâà â êîòîðîì, ìîãóò ðàçäåëÿòüñÿ ïðîáåëàìè, çàïÿòûìè, òî÷êàìè è ò.ä. Òðåáóåòñÿ íàïå÷àòàòü âñå ñëîâà ñ óäâîåííîé áóêâîé "í".
Ýòàïû ðåøåíèÿ çàäà÷è:
Ðàçîáüåì çàäà÷ó íà íåñêîëüêî áëîêîâ
à) Ôîðìèðîâàíèå òåëà ïðîãðàììû, îáúÿâëåíèå ïåðåìåííûõ;
á) Ââîä òåêñòà;
â) Î÷èñòêà òåêñòà îò "íåíóæíûõ" ñèìâîëîâ äî ïåðâîãî ñëîâà;
ã) Âû÷èñëåíèå äëèíû ïåðâîãî ñëîâà;
ä) Ïîèñê â ñëîâå áóêâû "í";
å) Ïîäñ÷åò ñòîÿùèõ ðÿäîì áóêâ "í";
æ) Ïå÷àòü íàéäåííîãî ñëîâà;
ç) Óäàëåíèå ïåðâîãî ñëîâà;
è) Åñëè òåêñò íå çàêîí÷èëñÿ âîçâðàùåíèå ê ïóíêòó (â).
Ðåàëèçóåì ýòè áëîêè íà Ïàñêàëå
a)
program example1;
var st, st1:string;
i,j,k,n:integer;
flag:boolean;
const
znak=[' ','.',',',':',';','!','?'];
begin
end.
Íàçíà÷åíèå ïåðåìåííûõ:
t- ñîäåðæèò ââåäåííûé òåêñò
st1 - õðàíèò ïåðâîå ñëîâî òåêñòà
i,j,k,n - âñïîìîãàòåëüíûå ïåðåìåííûå
flag - óêàçûâàåò, ÷òî äàííîå ñëîâî èñêîìîå
á) writeln ('Ââåäèòå òåêñò'); readln (st);
â) repeat
while st[1] in znak do delete(st,1,1);
ã) i:=1 while (not (st[i] in znak)) and (i<=length (st)) do inc (i);
st1:=copy (st,1,i-1);
flag:= false;
ä) while (pos ('í',st1)>0) and (not flag) do begin
å) j:=pos ('í',st1); n:=j; k:=0;
while st1[n]='í' do begin inc (n); inc (k); end;
if k=2 then flag:= true;
delete(st1,j,k)
end;
æ) if flag then writeln (copy (st,1,i-1));
ç) delete(st,1,i);
è) until st='';
Ïðèâåäåì ïðîãðàììó öåëèêîì:
program example1;
var st, st1:string;
i,j,k,n:integer;
flag:boolean;
const
znak=[' ','.',',',':',';','!','?'];
begin
writeln ('Ââåäèòå òåêñò');
readln (st);
repeat
while st[1] in znak do delete(st,1,1);
i:=1;
while (not (st[i] in znak)) and (i<=length (st)) do inc (i);
st1:=copy (st,1,i-1);
flag:= false;
while (pos ('í',st1)>0) and (not flag) do begin
j:=pos ('í',st1); n:=j; k:=0;
while st1[n]='í' do begin inc (n); inc (k); end;
if k=2 then flag:= true;
delete(st1,j,k)
end;
if flag then writeln (copy (st,1,i-1));
delete(st,1,i);
until st='';
readln ;
end.
Êîíòðîëüíûå âîïðîñû
Êàê îïèñûâàþòñÿ ñòðîêîâûå ïåðåìåííûå?
Êàêàÿ ìàêñèìàëüíàÿ äëèíà ñòðîêè äîïóñòèìà â Pascal?
Êàêèå îïåðàöèè äîïóñòèìû íàä ñòðîêîâûìè äàííûìè?
 ÷åì îòëè÷èå ñòðîêîâîé ïåðåìåííîé îò ìàññèâà ñèìâîëîâ?
Êàêèå ñòàíäàðòíûå ïðîöåäóðû è ôóíêöèè äëÿ ðàáîòû ñî ñòðîêàìè âû çíàåòå?
×òî âûâåäåò ôóíêöèÿ Copy (x,Pos (' ',x)+1,18), åñëè x='Ñèëà åñòü - óìà íå íàäî'?
×åìó ðàâíî çíà÷åíèå x[0] ïîñëå ïðèñâàèâàíèÿ x:='âîïðîñ'?
Çàäàíèÿ
Îáðàáîòêà òåêñòà:
 ñëåäóþùèõ çàäàíèÿõ ïîä ñëîâîì "òåêñò" ïîíèìàåòñÿ ñòðîêà ñèìâîëîâ, ñëîâà â êîòîðîé, ðàçäåëåíû ïðîáåëàìè, ",",".","!","?",";",":" (îäíèì èëè íåñêîëüêèìè).
Äàí òåêñò. à) Ïîäñ÷èòàòü êîëè÷åñòâî ñëîâ â äàííîé ñòðîêå. á) Ïîäñ÷èòàòü êîëè÷åñòâî áóêâ à â ïîñëåäíåì ñëîâå äàííîé ñòðîêè. â) Íàéòè êîëè÷åñòâî ñëîâ, íà÷èíàþùèõñÿ ñ áóêâû á. ã) Íàéòè êîëè÷åñòâî ñëîâ, ó êîòîðûõ ïåðâûé è ïîñëåäíèé ñèìâîëû ñîâïàäàþò ìåæäó ñîáîé. ä) Íàéòè äëèíó ñàìîãî êîðîòêîãî ñëîâà.
Ñîñòàâèòü ïðîãðàììó öèêëè÷åñêîé ïåðåñòàíîâêè áóêâ â ñëîâàõ òåêñòà òàê, ÷òî i-ÿ áóêâà ñëîâà ñòàíîâèòñÿ i+1-îé, à ïîñëåäíÿÿ - ïåðâîé.
 êàæäîì ñëîâå òåêñòà çàìåíèòå "à" íà áóêâó "å", åñëè "à" ñòîèò íà ÷åòíîì ìåñòå, è çàìåíèòü áóêâó "á" íà ñî÷åòàíèå "àê", åñëè "á" ñòîèò íà íå÷åòíîì ìåñòå.
Ãæàòñê ïîëó÷èë íîâîå íàçâàíèå - ãîðîä Ãàãàðèí. À â ðÿçàíñêîé îáëàñòíîé òèïîãðàôèè åùå íå ïðîñîõëè ãðàíêè íåáîëüøîé êíèãè î ðîäèíå ïåðâîãî êîñìîíàâòà. Êîíå÷íî, êíèãó íóæíî áûëî ïåðåäåëàòü... Íàïèñàòü ïðîãðàììó, îñóùåñòâëÿþùóþ â íåêîòîðîì òåêñòå çàìåíó ñëîâà "Ãæàòñê" ñëîâîì "Ãàãàðèí" (ó÷åñòü, ÷òî ñëîâà èìåþò ðàçíóþ äëèíó!)
Äàí òåêñò, ñîäåðæàùèé îò 2 äî 30 ñëîâ, â êàæäîì èç êîòîðûõ îò 2 äî 10 ëàòèíñêèõ áóêâ; ìåæäó ñîñåäíèìè ñëîâàìè - íå ìåíåå îäíîãî ïðîáåëà. Íàïå÷àòàòü âñå ñëîâà, îòëè÷íûå îò ïîñëåäíåãî ñëîâà, ïðåäâàðèòåëüíî ïðåîáðàçîâàâ êàæäîå èç íèõ ïî ñëåäóþùåìó ïðàâèëó: 1) ïåðåíåñòè ïåðâóþ áóêâó â êîíåö ñëîâà; 2) ïåðåíåñòè ïîñëåäíþþ áóêâó â íà÷àëî ñëîâà.
Îòðåäàêòèðîâàòü çàäàííîå ïðåäëîæåíèÿ òåêñòà, óäàëÿÿ èç íåãî âñå ñëîâà ñ íå÷åòíûìè íîìåðàìè è ïåðåâîðà÷èâàÿ ñëîâà ñ ÷åòíûìè íîìåðàìè. Íàïðèìåð, HOW DO YOU DO -> OD OD
Äàí òåêñò. Íàïå÷àòàòü âñå ñëîâà, îòëè÷íûå îò ïîñëåäíåãî ñëîâà, ïðåäâàðèòåëüíî ïðåîáðàçîâàâ êàæäîå èç íèõ ïî ñëåäóþùåìó ïðàâèëó: 1) îñòàâèòü â ñëîâå òîëüêî ïåðâûå âõîæäåíèÿ êàæäîé áóêâû; 2) åñëè ñëîâî íå÷åòíîé äëèíû, òî óäàëèòü åãî ñðåäíþþ áóêâó
Íàïèñàòü ïðîãðàììó äëÿ ïîäñ÷åòà ñóììû ìåñò, íà êîòîðûõ â ñëîâàõ òåêñòà ñòîèò çàäàííàÿ áóêâà.
Ñîñòàâèòü òàáëèöó ñëîâ äàííîãî òåêñòà, íà÷èíàþùèõñÿ ñ áóêâû "À", ñ óêàçàíèåì ÷èñëà ïîâòîðåíèé êàæäîãî ñëîâà.
Ñîñòàâèòü ïðîãðàììó äëÿ âû÷åðêèâàíèÿ èç ñëîâ òåêñòà âñåõ áóêâ, ñòîÿùèõ íà íå÷åòíûõ ìåñòàõ ïîñëå áóêâû "à".
Çàäà÷è íà ñìåêàëêó
Ñîñòàâèòü ïðîãðàììû äëÿ ïåðåâîäà àðàáñêèõ ÷èñåë â ðèìñêèå è äëÿ îáðàòíîé îïåðàöèè.
Íàïðèìåð, 255 = CCLV = ñòî + ñòî + ïÿòüäåñÿò + ïÿòü
Çàìå÷àíèå. Ïîäîáíûìè àëãîðèòìàìè ïåðåâîäà ÷èñåë èç îäíîé ñèñòåìû â äðóãóþ ìû ïîëüçóåìñÿ ïî íåñêîëüêó ðàç íà äíþ, êîãäà âåäåì äåíåæíûå ðàñ÷åòû. Ñóììà äåíåã - ýòî àðàáñêîå ÷èñëî, êîòîðîìó ñîîòâåòñòâóåò îïðåäåëåííûé íàáîð áàíêíîò è ìîíåò (àíàëîãè ðèìñêèõ öèôð).
Àâòîìîðôíûìè íàçûâàþòñÿ ÷èñëà, êîòîðûå ñîäåðæàòñÿ â ïîñëåäíèõ ðàçðÿäàõ èõ êâàäðàòà. Íàïðèìåð:, 52=25, 252=625. Ñîñòàâèòü ïðîãðàììó äëÿ íàõîæäåíèÿ íåñêîëüêèõ àâòîìîðôíûõ ÷èñåë.
Ïîäñ÷èòàòü, ñêîëüêî áóêâ íàäî èñïðàâèòü â ñëîâå Õ, ÷òîáû ïîëó÷èëîñü ñëîâî Y (Õ,Y - ñëîâà îäèíàêîâîé äëèíû).
Êàêîå ìèíèìàëüíîå ÷èñëî áóêâ íåîáõîäèìî çàìåíèòü â ñëîâå X ñ òåì, ÷òîáû îíî ñòàëî ïåðåâåðòûøåì?
Ñîñòàâèòü ïðîãðàììó äëÿ ïîäñ÷åòà ÷èñëà îäèíàêîâûõ áóêâ â ñëîâàõ X è Y ðàâíîé äëèíû, ñòîÿùèõ íà îäíèõ è òåõ æå ìåñòàõ.
Çàäàíî îïðåäåëåííîå êîëè÷åñòâî êîíêðåòíûõ ñî÷åòàíèé áóêâ (íàïðèìåð, ÓÙ, ÞÙ è äð.). Îïðåäåëèòü, ñêîëüêî òàêèõ ãðóïï ñèìâîëîâ ñîäåðæèòñÿ â òåêñòå, ââîäèìîì ñ êëàâèàòóðû.
Ñ êëàâèàòóðû ââîäèòñÿ òåêñò. Ïîäñ÷èòàòü è âûâåñòè íà ïå÷àòü êîëè÷åñòâî ñëîâ òåêñòà, íà÷èíàþùèõñÿ ñ ãëàñíîé.
Äëÿ çàïîìèíàíèÿ ÷èñëà p èíîãäà èñïîëüçóþò "ìàãè÷åñêèå" ôðàçû, íàïðèìåð: "ýòî ÿ çíàþ è ïîìíþ ïðåêðàñíî Ïè ìíîãèå çíàêè ìíå ëèøíè íàïðàñíû" èëè "êòî è øóòÿ è ñêîðî ïîæåëàåòú Ïè óçíàòü ÷èñëî óæú çíàåòú". ×èñëî áóêâ â êàæäîì ñëîâå ëþáîé èç äàííûõ ôðàç ïðåäñòàâëÿåò ñîáîþ íåêîòîðóþ öèôðó ÷èñëà : "ýòî"-3, "ÿ"-1, "çíàþ"-4 è ò.ä.
Ñîñòàâèòü ïðîãðàììó, êîòîðàÿ ïî óêàçàííîìó àëãîðèòìó áóäåò âûâîäèòü íà ïå÷àòü ÷èñëî, èñïîëüçóÿ ëþáîé òåêñò.
Äëÿ çàäàííîãî òåêñòà îïðåäåëèòü äëèíó ñîäåðæàùåéñÿ â íåì ìàêñèìàëüíîé ñåðèè ñèìâîëîâ, îòëè÷íûõ îò ëàòèíñêèõ áóêâ.
Çàïèñàòü ïðîãðàììó, âûÿñíÿþùóþ, ìîæíî ëè èç áóêâ ñëîâà X ñîñòàâèòü ñëîâî Y.
Çàäà÷è ïîâûøåííîé ñëîæíîñòè
Çàøèôðîâàòü ââåäåííóþ ñ êëàâèàòóðû ñòðîêó, ïîìåíÿâ ìåñòàìè ïåðâûé ñèìâîë ñî âòîðûì, òðåòèé ñ ÷åòâåðòûì è ò. ä. Çàòåì ïðîâåñòè äîïîëíèòåëüíóþ øèôðîâêó ðåçóëüòàòà ñìåùåíèåì êîäà. Ïðîâåñòè äåøèôðîâêó.
Ñîñòàâèòü ïðîöåäóðó ñîçäàíèÿ òåêñòîâîãî îêíà, îêàéìëåííîãî ðàìêîé èç ïñåâäîãðàôè÷åñêèõ ñèìâîëîâ.  ïàðàìåòðû ïðîöåäóðû ââåñòè êîîðäèíàòû ëåâîãî âåðõíåãî óãëà, ðàçìåðû è öâåò îêíà, à òàêæå öâåò ðàìêè.
Ñîñòàâèòü ïðîãðàììó, îðãàíèçóþùóþ ïåðåìåùåíèå òåêñòîâîãî îêíà 8õ8 ïî ýêðàíó. Ñì. çàäà÷ó 2. Äâèæåíèå íà÷èíàåòñÿ ïî íàæàòèþ êëàâèøè è çàêàí÷èâàåòñÿ ëèáî ïî íàæàòèþ êëàâèøè, ëèáî ïðè äîñòèæåíèè îêíîì êðàÿ ýêðàíà. Âàðèàíòû äâèæåíèÿ:
à) èç ëåâîãî âåðõíåãî óãëà â ïðàâûé íèæíèé óãîë. Ïðè íåòî÷íîì "ïîïàäàíèè" â íèæíèé óãîë ñìåùàòü îêíî ïî îäíîé èç ñòîðîí äî òî÷íîé îñòàíîâêè â óãëó.
á)èç ëåâîãî íèæíåãî óãëà â ïðàâûé âåðõíèé.
â) èç öåíòðà ýêðàíà ê îäíîé èç áîêîâûõ ñòîðîí. Ïðè äîñòèæåíèè êðàÿ ðàçìåð îêíà ïî íàïðàâëåíèþ äâèæåíèÿ äîëæåí óìåíüøàòüñÿ äî ìèíèìàëüíîãî.
Íàçàä
Íà ãëàâíóþ
Внимание! Е�ли у ва� не получило�ь найти нужную информацию, и�пользуйте
рубрикатор или во�пользуйте�ь
пои�ком .
книги по программированию и�ходники компоненты шаблоны �айтов C++ PHP Delphi �качать