Çàî÷íîå äèñòàíöèîííîå îáðàçîâàíèå ñ ïîëó÷åíèåì ãîñóäàðñòâåííîãî äèïëîìà ÷åðåç Internet










Ïîëó÷èòü èíôîðìàöèþ î ïîñòóïëåíèè
 
Ãëàâíàÿ Íîâîñòè Êàðòà ñàéòà Ôîòîàëüáîì Ãîñòåâàÿ êíèãà Êîíòàêòû

 

Óïðàæíåíèå 5

Ñîçäàäèì ïðîãðàììó, êîòîðàÿ îáðàùàåò ââåäåííîå ñëîâî, ò. å. ïåðåñòàâëÿåò ñèìâîëû â ñëîâå â îáðàòíîì ïîðÿäêå, íàïðèìåð: Ïåòÿ – ÿòåÏ, ìàìà – àìàì, ïðîãðàììà – àììàðãîðï.

Àëãîðèòì îáðàùåíèÿ ñëîâà ìîæíî ïðåäñòàâèòü â âèäå ñëåäóþùåé öèêëè÷åñêîé ïðîöåäóðû îáìåíà ñîîòâåòñòâóþùèõ ñèìâîëîâ: çíà÷åíèå ïåðâîãî ñèìâîëà ñëîâà çàïîìèíàåòñÿ â íåêîòîðîé ïåðåìåííîé ñèìâîëüíîãî òèïà Ch, çàòåì íà ìåñòî ïåðâîãî ñèìâîëà çàïèñûâàåòñÿ çíà÷åíèå ïîñëåäíåãî ñèìâîëà, à íà åãî ìåñòî çàïèñûâàåòñÿ çíà÷åíèå ïåðâîãî ñèìâîëà, õðàíèìîå â ïåðåìåííîé Ch, ïîñëå ýòîãî àíàëîãè÷íî âûïîëíÿåòñÿ îáìåí âòîðîãî è ïðåäïîñëåäíåãî ñèìâîëà, òðåòüåãî è ïðåäïðåäïîñëåäíåãî è ò.ä., ïîêà ìû íå äîéäåì äî ñåðåäèíû ñëîâà. Äàëåå îáìåí ïðîäîëæàòü íå íóæíî, èíà÷å ñèìâîëû îïÿòü çàéìóò ïðåæíèå ìåñòà.

Èñõîäÿ èç ýòèõ ðàññóæäåíèé, ââåäåì ñëåäóþùèå ïåðåìåííûå: äëÿ õðàíåíèÿ ñëîâà Word òèïà string ñ ìàêñèìàëüíûì ðàçìåðîì ñëîâ 30 ñèìâîëîâ è ïåðåìåííóþ I öåëîãî òèïà, óêàçûâàþùóþ íîìåð ïîçèöèè ñðàâíèâàåìîãî ñèìâîëà îò íà÷àëà ñòðîêè, à òàêæå ñèìâîëüíóþ ïåðåìåííóþ Ch äëÿ âðåìåííîãî õðàíåíèÿ çíà÷åíèÿ ñèìâîëà ïðè îáìåíå. Çàãîëîâîê ïðîãðàììû ìîæíî áóäåò çàïèñàòü ñëåäóþùèì îáðàçîì:

program Obr_Word;

var I : byte;

Ch : char;

Word : string[30];

Àíàëîãè÷íî ïðåäûäóùåé ïðîãðàììå, ñíà÷àëà âûâåäåì íà ýêðàí çàïðîñ î ââîäå ñëîâà è ñ÷èòàåì ñ êëàâèàòóðû çíà÷åíèå ñëîâà â ïåðåìåííóþ Word. Ýòîò ôðàãìåíò ïðîãðàììû ìîæíî çàïèñàòü ñëåäóþùèì îáðàçîì:

Write('ââåäèòå ñëîâî ');

Readln(Word);

Ïîñëå ââîäà ñëîâà ñëåäóåò âûïîëíåíèå öèêëè÷åñêîé ïðîöåäóðû îáìåíà çíà÷åíèé ñîîòâåòñòâóþùèõ ñèìâîëîâ (ïåðâîãî è ïîñëåäíåãî, âòîðîãî è ïðåäïîñëåäíåãî ñèìâîëîâ, òðåòüåãî è ïðåäïðåäïîñëåäíåãî è ò. ä. äî ñåðåäèíû ñëîâà), êîòîðîå ìû çàïèøåì â âèäå öèêëà for, ïàðàìåòð êîòîðîãî, èçìåíÿÿñü îò 1 äî ñåðåäèíû ñëîâà, çíà÷åíèå êîòîðîãî îïðåäåëÿåòñÿ ðåçóëüòàòîì âûðàæåíèÿ Trunc(Length(Word)/2), óêàçûâàåò íà ïîçèöèþ î÷åðåäíîãî ñèìâîëà â ñëîâå.

Ïåðåñòàíîâêó ñîîòâåòñòâóþùèõ ñèìâîëîâ â ñëîâå ñ èñïîëüçîâàíèåì ñèìâîëüíîé ïåðåìåííîé Ch îñóùåñòâèì ñëåäóþùèì îáðàçîì:

Ch:=Word[I];{ïåðåìåííîé Ch ïðèñâîèëè çíà÷åíèå 1-ãî ñèìâîëà îò íà÷àëà ñëîâà}

Word[I]:=Word[l_ength(Word)-I+l]; {â 1-þ ïîçèöèþ çàïèñàëè çíà÷åíèå 1-ãî ñèìâîëà

îò êîíöà (Length(Word)-I+l-ro îò íà÷àëà) ñëîâà}

Word[length(Word)-I+l]:=Ch; {â LengthCWorcD-I+1-þ ïîçèöèþ îò íà÷àëà ñëîâà çàïèñàëè çíà÷åíèå 1-ãî ñèìâîëà, âðåìåííî õðàíèìîå â ïåðåìåííîé Ch}

 çàêëþ÷èòåëüíîé ÷àñòè ïðîãðàììû âûâåäåì çíà÷åíèå «îáðàùåííîãî» ñëîâà íà ýêðàí ñ ïîìîùüþ ñòàíäàðòíîé ïðîöåäóðû âûâîäà:

Write ('Ïîëó÷èëîñü ñëîâî ',Word);

Ïîëíûé òåêñò ýòîé ïðîãðàììû áóäåò òàêèì:

program 0br_Word;

var I : byte;

Ch : char;

Word : string[30];

begin

Write('ââåäèòå ñëîâî ');

Readln(Word);

for I:=l to Trunc(Length(Word)/2) do {Ïåðåáèðàÿ ñèìâîëû ïîî÷åðåäíî îò íà÷àëà äî ñåðåäèíû ñëîâà}

begin {Îáìåíèâàåì ñîîòâåòñòâóþùèå ñèìâîëû}

Ch:=Word[I];

Word[I]:=Word[l_ength(Word)-I+l];

Word[Length(Word)-I+l]:=Ch;

end;

Write('Ïîëó÷èëîñü åëîâî ',Word);

end.

Çàïóñòèòå èíòåãðèðîâàííóþ ñðåäó ïðîãðàììèðîâàíèÿ. Ââåäèòå òåêñò ïðîãðàììû Obr_Word è çàïèøèòå ôàéë íà äèñê ïîä ñîîòâåòñòâóþùèì èìåíåì, à çàòåì îòêîìïèëèðóéòå åãî. Ïîñëå óñïåøíîãî çàâåðøåíèÿ êîìïèëÿöèè ïðîâåðüòå ðàáîòó ïðîãðàììû ñ îòëàäêîé â ïîøàãîâîì ðåæèìå, îòñëåæèâàÿ çíà÷åíèÿ ïåðåìåííûõ Word, I, Word[I], Ch, Word[length(Word) -1+1]. Çàäà÷ó ðåâåðñèðîâàíèÿ (îáðàùåíèÿ òåêñòà) ìîæíî ðåøèòü è ñ ïîìîùüþ ïðîãðàììû ñ ðåêóðñèâíûì âûçîâîì ïîäïðîãðàììû-ôóíêöèè, íàïðèìåð:

program Rever_Str;

type stroka = string[30];

var

S, Rev_S : stroka;

function Reverse(Str:stroka) : stroka;

var FirstChar : char; {Ïåðâûé ñèìâîë â ñòðîêå}

OstatokStr : stroka; {Îñòàòîê ñòðîêè ïîñëå óäàëåíèÿ ïåðâîãî ñèìâîëà}

begin

if Length(Str)=l then Reverse := Str {Çàâåðøåíèå ðåêóðñèè}

else

begin

FirstChar:=Str[l];

Delete(Str,l,l):

OstatokStr:=Reverse(Str); {Ðåêóðñèâíûå âûçîâû ôóíêöèè}

Reverse:=Concat(OstatokStr,FirstChar); end;

end;

begin {Íà÷àëî îñíîâíîé ïðîãðàììû}

Write('Ââåäèòå ëþáîé òåêñò');

Readln(S);

Rev_S:=Reverse(S); {Âûçîâ ôóíêöèè ñ ïàðàìåòðîì-çíà÷åíèåì S}

Writeln(Rev_S,' åñòü ïåðåâåðíóòîå ',S);

end.



 
     
   
 


Ïðèãëàøàåì ïðèíÿòü ó÷àñòèå â êðóãëîì ñòîëå!
ïîäðîáíåå   >>>
 

Èíñòèòóò Ìåíåäæìåíòà, Ýêîíîìèêè è Èííîâàöèé íà÷èíàåò íàáîð íà êóðñû ïîâûøåíèÿ êâàëèôèêàöèè!
ïîäðîáíåå   >>>
 

Óâàæåìûå ñòóäåíòû ÀÍÎ ÂÏÎ ÈÌÝèÈ!
ïîäðîáíåå   >>>
 

Íà÷èíàåòñÿ íàáîð íà êóðñû ïîâûøåíèÿ êâàëèôèêàöèè!
ïîäðîáíåå   >>>
 

Ïðèãëàøàåì ïðèíÿòü ó÷àñòèå â êîíôåðåíöèÿõ!
ïîäðîáíåå   >>>
 


âñå íîâîñòè...

 


Ðàññûëêè Subscribe.Ru
Ñîâðåìåííîå îáðàçîâàíèå
Ïîäïèñàòüñÿ ïèñüìîì