Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Osnovy_informatiki_-_5_Primery_programm-1

.pdf
Скачиваний:
9
Добавлен:
13.02.2015
Размер:
295.5 Кб
Скачать

var i,n:integer; a,ap:real; k:integer;

begin read(n);

{подготовка} read(ap); k:=0; for i:=2 to n do begin

read(a);

if (a<>0) and (ap=0) then {серия закончилась} k:=k+1;

ap:=a;

end;

if a=0 then k:=k+1; {серия в конце посл-ти} writeln(k);

end.

27.10.2012

Чердынцева М.И.

11

Пример 6

Длина самой большой серии из одинаковых чисел

27.10.2012

Чердынцева М.И.

12

var i,n,a,ap,max,k :integer; begin

read(n); {подготовка}

read(ap); max:=0; k:=1; for i:=2 to n do

begin read(a);

if (a=ap) then {серия продолжается}

 

k:=k+1

 

 

else begin

 

 

if k>max then max:=k;

 

k:=1;

{для новой серии}

 

end;

 

 

ap:=a;

 

 

end;

 

 

if k>max then max:=k;{серия в конце посл-ти}

 

writeln(max);

 

 

end.

Чердынцева М.И.

13

27.10.2012

Пример 7.

Последовательности произвольной длины, у которых есть признак конца.

Последовательность символов произвольной длины. Признак конца последовательности – точка.

Слово – последовательность символов, отличных от пробела.

Посчитать количество слов.

27.10.2012

Чердынцева М.И.

14

var с,сp:char; k:integer;

begin {подготовка} read(cp); k:=0;

while (cp<>’.’) do begin

read(c);

if c in [’ ’,’.’] and (cp<>’ ’) then {слово закончилось} k:=k+1;

сp:=с; end; writeln(k);

end.

27.10.2012

Чердынцева М.И.

15

Пример 8

Напечатать каждое слово предложения с новой строки, перевернув его.

27.10.2012

Чердынцева М.И.

16

var с:char;

zn: set of char; word:string;

begin {подготовка}

zn:=[’ ’,’,’,’:’,’;’]; read(c);

while c<>’.’ do begin

while c in zn do read(c);{пропуск} word:=’’; {пусто}

while (c<>’.’) and not c in zn do begin

word:=c+word;

read(c);

end;

writeln(word);

end;

end.

Чердынцева М.И.

17

27.10.2012

Анализ итерационного цикла while

Обозначим V –множество всех переменных программы.

V принимает значения vi из T

Состояние V на каждом этапе выполнения v0, v1, v2, v3,… vn – трасса программы

Каждый оператор переводит V из одного состояния в другое (можно считать его функцией из T в T)

27.10.2012

Чердынцева М.И.

18

Анализ итерационного цикла while

V:=v0; {B(v0)}

V

B(V)

S(V)

 

v0

B(v0)=true

S(v0 )

while B(V) do

v1

B(v1 )=true

S(v1 )

S(V); {B(vi)}

 

 

 

v2

B(v2 )=true

S(v2 )

 

 

 

 

 

. . .

 

 

{ V= vn+1 ;¬B(vn+1)}

 

 

 

vn

B(vn )=true

S(vn )

 

vn+1

B(vn+1 )=false

 

27.10.2012

Чердынцева М.И.

19

Рекуррентные соотношения

• Функции вида

xi

a, i

0

f (xi 1 ),

i [1, n]

 

x:=a; i:=0; while (i<=n) do begin

i:=i+1; x:=f(x); end;

x:=a;

for i:=1 to n do x:=f(x);

{ условие B зависит от номера и номера берутся последовательно}

27.10.2012

Чердынцева М.И.

20