Главная / Информатика / Использование формул арифметической прогрессии для решения задач по информатике

Использование формул арифметической прогрессии для решения задач по информатике

8. Арифметическая прогрессия

1. Опре­де­ли­те, что будет на­пе­ча­та­но в ре­зуль­та­те ра­бо­ты сле­ду­ю­ще­го фраг­мен­та про­грам­мы:

 

var k, s: integer;

begin

    s:=0;

    k:=1;

    while s < 66 do begin

        k:=k+3;

        s:=s+k;

    end;

    write(k);

end.

Решение.

Цикл while вы­пол­ня­ет­ся до тех пор, пока ис­тин­но усло­вие s < 66, т. е. пе­ре­мен­ная s опре­де­ля­ет, сколь­ко раз вы­пол­нит­ся цикл.

 

Зна­че­ние s есть сумма пер­вых n чле­нов ариф­ме­ти­че­ской про­грес­сии. hello_html_26cdcc6b.pnghello_html_m78f8e4f8.png — сумма пер­вых n чле­нов про­грес­сии, hello_html_m245f0a90.png — раз­ность про­грес­сии, hello_html_mea38d6d.png — ко­ли­че­ство чле­нов.

 

Цикл пре­рвет­ся, когда hello_html_m56f7e10c.png.

 

Най­дем hello_html_mea38d6d.pnghello_html_377cd46d.pnghello_html_m506e8984.pnghello_html_m1d9b7b75.png (т. к. k:=k+3). Чтобы ре­шить это не­ра­вен­ство, нам не­об­хо­ди­мо ре­шить квад­рат­ное урав­не­ние hello_html_70d1fb4a.png, среди его кор­ней нас ин­те­ре­су­ют толь­ко по­ло­жи­тель­ные, сле­до­ва­тель­но, hello_html_m34beee68.png

 

Вос­поль­зо­вав­шись ме­то­дом ин­тер­ва­лов, на­хо­дим, что пер­вое на­ту­раль­ное n, при ко­то­ром на­ру­ша­ет­ся усло­вие, есть hello_html_7b8efd5d.png.

 

Под­ста­вив из­вест­ные па­ра­мет­ры в hello_html_640ac72b.png по­лу­ча­ем, что hello_html_m715f3d7.png



2. Опре­де­ли­те, что будет на­пе­ча­та­но в ре­зуль­та­те ра­бо­ты сле­ду­ю­ще­го фраг­мен­та про­грам­мы:

 

var k, s: integer;

begin

    s:=0;

    k:=0;

    while k < 30 do begin

        k:=k+3;

        s:=s+k;

    end;

    write(s);

end.

Реше­ние.

Цикл while вы­пол­ня­ет­ся до тех пор, пока ис­тин­но усло­вие k < 30, т. е. пе­ре­мен­ная k опре­де­ля­ет, сколь­ко раз вы­пол­нит­ся цикл.

 

Так как по­сле­до­ва­тель­ность k пред­став­ля­ет собой ариф­ме­ти­че­скую про­грес­сию, най­дем n из не­ра­вен­ства:

 

hello_html_m44aa8600.png hello_html_m370526f6.png hello_html_m1d9b7b75.png (т. к. k:=k+3). Вос­поль­зо­вав­шись ме­то­дом ин­тер­ва­лов, на­хо­дим пер­вое на­ту­раль­ное n, при ко­то­ром на­ру­ша­ет­ся усло­вие: hello_html_3f4fa26e.png

Зна­че­ние s есть сумма пер­вых n чле­нов ариф­ме­ти­че­ской про­грес­сии. hello_html_24344935.png hello_html_m78f8e4f8.png — сумма пер­вых n чле­нов про­грес­сии, hello_html_m245f0a90.png — раз­ность про­грес­сии, hello_html_mea38d6d.png — ко­ли­че­ство чле­нов.

 

hello_html_m467ca80c.png



3. Опре­де­ли­те, что будет на­пе­ча­та­но в ре­зуль­та­те ра­бо­ты сле­ду­ю­ще­го фраг­мен­та про­грам­мы:

 

var k, s: integer;

begin

    s:=1;

    k:=0;

    while k < 13 do begin

        s:=s+2*k;

        k:=k+4;

    end;

    write(s+k);

end.

Реше­ние.

Цикл while вы­пол­ня­ет­ся до тех пор, пока ис­тин­но усло­вие k < 13, т. е. пе­ре­мен­ная k опре­де­ля­ет, сколь­ко раз вы­пол­нит­ся цикл.

 

Так как числа не­боль­шие, можно ак­ку­рат­но вы­пи­сать все s и k:

 

s 1 1 9 25 49

k 0 4 8 12 16

 

(Пом­ни­те, что усло­вие k < 13 про­ве­ря­ет­ся сразу после k:=k+4, сле­до­ва­тель­но, дей­ствие s:=s+2*k для k=16 вы­пол­нять­ся не будет)

 

Сле­до­ва­тель­но, ответ 49+16=65.



4. Опре­де­ли­те, что будет на­пе­ча­та­но в ре­зуль­та­те ра­бо­ты сле­ду­ю­ще­го фраг­мен­та про­грам­мы:

 

var n, s: integer;

begin

    n := 1;

    s := 0;

    while n <= 101 do begin

        s := s + 7;

        n := n + 1

    end;

    write(s)

end.

Реше­ние.

Цикл while вы­пол­ня­ет­ся до тех пор, пока ис­тин­но усло­вие n <= 101, т. е. пе­ре­мен­ная n опре­де­ля­ет, сколь­ко раз вы­пол­нит­ся цикл. Сле­до­ва­тель­но, фор­муль­но s можно за­дать как функ­цию n так:

 

hello_html_m70f05445.png, где hello_html_5fbf5b5f.png а hello_html_m2afb800b.png

 

hello_html_2703b331.png, так как по­след­няя опе­ра­ция, вы­пол­нен­ная в цикле: n := 101 + 1.

 

Сле­до­ва­тель­но hello_html_m622949b6.png



5. Опре­де­ли­те, что будет на­пе­ча­та­но в ре­зуль­та­те ра­бо­ты сле­ду­ю­ще­го фраг­мен­та про­грам­мы:

 

var n, s: integer;

begin

    n := 24;

    s := 0;

    while n <= 28 do begin

        s := s + 20;

        n := n + 2

    end;

    write(s)

end.

Реше­ние.

Цикл while вы­пол­ня­ет­ся до тех пор, пока ис­тин­но усло­вие n <= 28, т. е. пе­ре­мен­ная n опре­де­ля­ет, сколь­ко раз вы­пол­нит­ся цикл.

 

Ак­ку­рат­но по­счи­та­ем, сколь­ко раз вы­пол­нить­ся цикл (k):

 

Зна­че­ния n: 24 26 28 30.

 

Сле­до­ва­тель­но, цикл вы­пол­нит­ся три раза (так как дей­ствие n := n + 2 стоит в конце цикла, сле­до­ва­тель­но, для n=30 дей­ствие s := s + 20 не будет вы­пол­нять­ся).

 

По­счи­та­ем зна­че­ние s: hello_html_m160d074f.png.



6. Опре­де­ли­те, что будет на­пе­ча­та­но в ре­зуль­та­те вы­пол­не­ния про­грам­мы (за­пи­сан­ной ниже на раз­ных язы­ках про­грам­ми­ро­ва­ния):

 

Бэй­сик

Пас­каль

DIM N, S AS INTEGER

N = 3

S = 0

WHILE N <= 7

S = S + N

N = N + 1

WEND

PRINT S

var n, s: integer;

begin

n := 3;

s := 0;

while n <= 7 do

begin

s := s + n;

n := n + 1

end;

write(s)

end.

Си

Ал­го­рит­ми­че­ский

#include

void main()

{

int n, s;

n = 3;

s = 0;

while (n <= 7)

{

s = s + n;

n = n + 1;

}

printf("%d", s);

}

алг

нач

цел n, s

n := 3

s := 0

нц пока n <= 7

s := s + n

n := n + 1

кц

вывод s

кон

Реше­ние.

Цикл while вы­пол­ня­ет­ся до тех пор, пока ис­тин­но усло­вие n <= 7, т. е. пе­ре­мен­ная n опре­де­ля­ет, сколь­ко раз вы­пол­нит­ся цикл.

 

Цикл вы­пол­нит­ся hello_html_7d6795a1.png раз ( "+1" по­то­му, что в дроби мы не учи­ты­ва­ем то, что при 7 он тоже вы­пол­нит­ся).

 

За­ме­тим, что в s на­кап­ли­ва­ет­ся сумма ариф­ме­ти­че­ской про­грес­сии из 5 чле­нов с раз­но­стью 1. Сле­до­ва­тель­но,hello_html_m70b5cced.png.



7. Опре­де­ли­те, что будет на­пе­ча­та­но в ре­зуль­та­те вы­пол­не­ния про­грам­мы (за­пи­сан­ной ниже на раз­ных язы­ках про­грам­ми­ро­ва­ния):

 

Бэй­сик

Пас­каль

Dim s, k As Integer

s = 0

k = 1

While k < 11

s = s + k

k = k + 1

End While

Console.Write(s)

Var s, k : integer;

BEGIN

s:=0;

k:=1;

while k<11 do

begin

s:=s+k;

k:=k+1;

end;

write(s);

END.

Си

Ал­го­рит­ми­че­ский

{

int s, k;

s = 0;

k = 1;

while (k<11) {

s = s+k;

k = k+1;

}

printf("%d", s);

}

нач

цел s, k

s:=0

k:=1

нц пока k < 11

s:=s+k; k:=k+1

кц

вывод s

кон

Реше­ние.

Цикл while вы­пол­ня­ет­ся до тех пор, пока ис­тин­но усло­вие k < 11, т. е. пе­ре­мен­ная k опре­де­ля­ет, сколь­ко раз вы­пол­нит­ся цикл.

 

Цикл вы­пол­нит­ся hello_html_2fd73734.png раз. За­ме­тим, что в s на­кап­ли­ва­ет­ся сумма ариф­ме­ти­че­ской про­грес­сии, со­дер­жа­щей 11 чле­нов, с раз­но­стью 1. Сле­до­ва­тель­но, hello_html_m4dcaead0.png.



8. Опре­де­ли­те, что будет на­пе­ча­та­но в ре­зуль­та­те вы­пол­не­ния про­грам­мы 
(за­пи­сан­ной ниже на раз­ных язы­ках про­грам­ми­ро­ва­ния):

Бей­сик

Пас­каль

DIM N, S AS INTEGER

N = 0

S = 512

WHILE S  >= 0

  S = S - 20

  N = N + 1

WEND

PRINT  N

var n, s: integer;

begin

  n := 0;

  s := 512;

  while s >= 0 do

  begin

    s := s - 20;

    n := n + 1

  end;

  write(n)

end.

Си

Ал­го­рит­ми­че­ский

#include

void main()

{

  int n, s;

  n = 0;

  s = 512;

  while (s >= 0)

  {

    s = s - 20;

    n = n + 1;

  }

  printf("%d", n);

}

алг

нач

  цел n, s

  n := 0

  s := 512

  нцпока s >= 0

    s := s - 20

    n := n + 1

  кц

  вывод n

кон



Начало формы

 

Реше­ние.

В пе­ре­мен­ной n за­пи­сы­ва­ет­ся сколь­ко раз про­изо­шел цикл. Сле­до­ва­тель­но,

hello_html_m16fdf71e.png

Тот факт, что при n = 25, s будет > 0 озна­ча­ет, что у=цикл вы­пол­нить­ся 26 раз.

Конец формы



Использование формул арифметической прогрессии для решения задач по информатике
  • Информатика
Описание:

Пример: При решение задач на циклы нужны формулы математики.

Опре­де­ли­те, что будет на­пе­ча­та­но в ре­зуль­та­те ра­бо­ты сле­ду­ю­ще­го фраг­мен­та про­грам­мы:

 var k, s: integer;

begin

    s:=0;

    k:=1;

    while s < 66 do begin

        k:=k+3;

        s:=s+k;

    end;

    write(k);

end.

Решение.

Цикл while вы­пол­ня­ет­ся до тех пор, пока ис­тин­но усло­вие s < 66, т. е. пе­ре­мен­ная s опре­де­ля­ет, сколь­ко раз вы­пол­нит­ся цикл.

 Для решения задачи используем формулы арифметической прогрессии.

Ответ: 19.

 

Автор Хакимзянова Нурания Идерисовна
Дата добавления 26.12.2014
Раздел Информатика
Подраздел
Просмотров 609
Номер материала 12488
Скачать свидетельство о публикации

Оставьте свой комментарий:

Введите символы, которые изображены на картинке:

Получить новый код
* Обязательные для заполнения.


Комментарии:

↓ Показать еще коментарии ↓