Использование циклов в вычислительных алгоритмах

Раздел Информатика
Класс 9 класс
Тип Конспекты
Автор
Дата
Формат docx
Изображения Есть
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

Курбет Елена Николаевна учитель информатики МБОУ «Открытый космический лицей», г. Симферополь

Практическое задание №23

Тема: Использование циклов в вычислительных алгоритмах

1 уровень сложности

1. Разработать схему алгоритма, который запрашивает N произвольных целых чисел и ищет их сумму. Число N вводится с клавиатуры. Разработать для созданного алгоритма не менее трёх тестов и проверить на них правильность работы алгоритма, где S = 1+2+3+…+N

Program odin_odin;

Var s:longint;

n,i:integer;

Begin

writeln('Vvedite n');

readln(n);

s:=0;

for i:=1 to n do s:=s+i;

writeln('summa = ',s);

End.

Использование циклов в вычислительных алгоритмах

2. Разработать схему алгоритма для вычисления суммы ряда:

Использование циклов в вычислительных алгоритмах

Число N вводится с клавиатуры.

Протестировать алгоритм для N=1, N=2, N=4, N=6. Правильность ответов проверить с помощью калькулятора.

Program odin_dva;

Var N, i: integer;

S: real;

Begin

write('Vvedite celoe chislo N = ');

readln(N);

S:=0;

for i := 1 to N do

begin

S := S + 1 / i;

end;

writeln('S = ', S);

end.

Использование циклов в вычислительных алгоритмах

3. Одноклеточная амёба каждые три часа делится на 2 клетки. Разработать схему алгоритма для определения, сколько амёб будет через 3, 6, 9, 12 и 24 часа.

Program odin_tri;

Var a: longint;

n,i:integer;

Begin

a:=1;

i:=3;

while i<=24 do

begin

a:=a*2;

writeln ('proshlo t= ',i, ' ameb - ',a);

i:=i+3;

end;

End.

Использование циклов в вычислительных алгоритмах

4. Дано натуральное число N и действительное число x. Разработать схему алгоритма для вычисления суммы ряда:

sin x + sin 2x+sin 3x+…sin N*X

Протестировать алгоритм для x=1.5 и N=3. Проверить правильность ответа на калькуляторе.

Program odin_cheturi;

Var s,x: real;

n,i:integer;

Begin

writeln('Vvedite x');

readln(x);

writeln('Vvedite n');

readln(n);

s:=0;

for i:=1 to n do

s:=s+sin(x*i);

writeln ('summa = ',s);

End.

Использование циклов в вычислительных алгоритмах

5. Разработать схему алгоритма для вычисления N-ой степени числа a (aN). Протестировать алгоритм для а) a=3 и N=4, б) a=2 и N=5.

Program odin_pjat;

Var s: real;

a,n,i:integer;

Begin

writeln('Vvedite a');

readln(a);

writeln('Vvedite n');

readln(n);

s:=1;

for i:=1 to n do

s:=s*a;

writeln ('step = ',s);

End.

Использование циклов в вычислительных алгоритмах

2 уровень сложности

1. Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за N дней? Разработать схему алгоритма для решения этой задачи. Протестировать алгоритм для N=3 и N=7.

Program dva_odin;

Var s,s1:real;

n,i:integer;

Begin

writeln('Vvedite n');

readln(n);

s1:=10;

s:=s1;

for i:=2 to n do

begin

s1:=1.1*s1;

s:=s+s1;

end;

writeln('summa = ',s);

End.

Использование циклов в вычислительных алгоритмах

2. Ежемесячная стипендия студента составляет A рублей в месяц, а расходы на проживание превышают стипендию и составляют B рублей в месяц. Рост цен ежемесячно увеличивает расходы на 3%. Разработать схему алгоритма для расчёта необходимой суммы денег, которую надо единовременно попросить у родителей, чтобы можно было прожить учебный год (10 месяцев), используя только эти деньги и стипендию. Протестировать алгоритм для следующих исходных данных:

а) A=1000, B=1100 б) A=900, B=1000 в) A=600, B=1200

Program dva_dva;

Var a,b,s:real;

i:integer;

Begin

write('Vvedite razmer stipendii ');

readln(a);

write('Vvedite razmer rashodov ');

readln(b);

s:=0;

for i:=1 to 10 do begin

s:=s+b;

b:=b*1.03;

end;

s:=s-a*10;

writeln('Neobhodimo poprosit u roditelej summu= ',Round(s));

End.

Использование циклов в вычислительных алгоритмах

3. Разработать схему алгоритма для нахождения всех делителей натурального числа N. Протестировать алгоритм для N=10, N=75, N=99, N=13.

Program dva_tri;

Var n,d:integer;

Begin

writeln('Vvedite n');

readln(n);

d := 1;

writeln('Deliteli chisla:');

repeat

if n mod d = 0 then write(d, ' ');

d := d + 1

until d > n div 2;

writeln(n);

End.

Использование циклов в вычислительных алгоритмах

4. Разработать схему алгоритма для вычисления N! (факториал числа N). Факториал вычисляется по формуле:

N!=Использование циклов в вычислительных алгоритмах

Операцию вычисления факториала использовать нельзя!

Протестировать алгоритм для N=0, N=2 N=4.

Program dva_cheturi;

Var f:longint;

n,i:integer;

Begin

writeln('Vvedite n');

readln(n);

f:=1;

for i:=1 to n do f:=f*i;

writeln('factorial = ',f);

End.

Использование циклов в вычислительных алгоритмах

3 уровень сложности

1. Дано натуральное число N. Разработать схему алгоритма для вычисления суммы ряда: S=1!+2!+3!+…+N! (N>1)

Операцию вычисления факториала использовать нельзя!

Протестировать алгоритм для N=3 и N=5

Program odin_tri;

Var f,s:longint;

n,i:integer;

Begin

writeln('Vvedite n>1');

readln(n);

f:=1;

s:=0;

for i:=1 to n do

begin

f:=f*i;

s:=s+f;

end;

writeln('summa = ',s);

End.

Использование циклов в вычислительных алгоритмах

2. Покупатель должен заплатить в кассу S рублей. У него имеются монеты в 1, 2 и 5 рублей, а также купюры достоинством в 10, 50, 100 и 500 рублей (достаточное количество). Сколько монет и купюр разного достоинства отдаст покупатель, если он начинает платить с самых крупных? Операции целочисленного деления (div и mod) использовать нельзя. Разработать схему алгоритма для решения этой задачи. Протестировать алгоритм для S=567, S=1025, S=64, S=13.

Program tri_dva;

Var m1,m2,m5,k10,k50,k100,k500,s:integer;

begin

write('Vvedite s');

read(s);

m1:=0; m2:=0; m5:=0;

k10:=0; k50:=0; k100:=0; k500:=0;

while s>0 do

begin

if s>=500 then begin s:=s-500; k500:=k500+1; end else

if s>=100 then begin s:=s-100; k100:=k100+1; end else

if s>=50 then begin k50:=k50+1; s:=s-50; end else

if s>=10 then begin s:=s-10; k10:=k10+1; end else

if s>=5 then begin m5:=m5+1; s:=s-5; end else

if s>=2 then begin m2:=m2+1; s:=s-2; end else

begin m1:=m1+1; s:=s-1; end;

end;

write('500p= ',k500,';'); write(' 100p= ',k100,';'); write(' 50p= ',k50,';');

write(' 10p= ',k10,';'); write(' 5p= ',m5,';'); write(' 2p= ',m2,';');

writeln(' 1p= ',m1,'.');

end.

Использование циклов в вычислительных алгоритмах

3. Числа Фибоначчи (fn) определяются формулами: f0=f1=1, fn=fn-1+fn-2 при n=2,3,…

Разработать схему алгоритма для вычисления числа Фибоначчи. Определить f10, f25, f40.

Program tri_tri;

Var n,p,p1,p2,i:longint;

Begin

writeln('Vvedite nomer iskomogo elementa Fibonachi ');

readln(n);

p1:=1; p2:=1;

if (n=1) and (n=2) then

writeln('Iskomoe znachenie',n,'-go elementa Fibonachi ravno 1')

else

begin

for i:=3 to n do

begin

p:=p1+p2;

p1:=p2;

p2:=p;

end;

writeln('znachenie',n,'-go elementa Fibonachi =',p);

end;

End.

Использование циклов в вычислительных алгоритмах

4. Разработать схему алгоритма, определяющего, является ли заданное число N простым. Протестировать алгоритм для N=10, N=31, N=13, N=51.

Program tri_cheturi;

Var n, d, k : integer;

Begin

writeln('Vvedite chislo n'); readln(n);

d := 2; k := 0;

repeat

if n mod d =0 then k := k + 1;

d := d + 1

until d > n div 2;

if k = 0 then writeln('Chislo ', n,' prostoe')

else writeln('Chislo ', n,' sostavnoe');

End.

Использование циклов в вычислительных алгоритмах

5. Даны натуральное N и действительное x. Разработать схему алгоритма для вычисления суммы ряда:

sin x+sin x2+sin x3+…+sin xN

Протестировать алгоритм для а) x=0.5, N=3, б) x=1, N=5. Проверить правильность его работы с помощью калькулятора.

Program tri_pjat;

Var s,x,y: real;

n,i:integer;

Begin

writeln('Vvedite x');

readln(x);

writeln('Vvedite n');

readln(n);

s:=0;

y:=1;

for i:=1 to n do

begin

y:=y*x;

s:=s+sin(y);

end;

writeln ('summa = ',s);

End.

Использование циклов в вычислительных алгоритмах

© 2010-2022