Оглавление Лабораторная работа № 3. Циклы
Задание 1. Определите, что вычисляется в алгоритме. Составьте программу по данной блок-схеме.
Рис. 1. Цикл с параметром
Задание 2. Составьте программу для вычисления суммы ряда
1 + 1/3 + 1/5 + 1/7 + …
Program abc;
var s, t:real;
i,n:integer;
begin
write('введите n');
readln(n);
s:=0;
for i:=1 to n do
begin
t:=2*i-1;
s:=s+1/t;
end;
write('сумма равна ',s);
readln;
end.
Задание 3. Составьте программу для вычисления факториала
(n! = 1·2·3·…·n).
Program abc;
var n, i, k:real;
begin
write('введите n');
readln(n);
if n=0 then writeln('0!=1') else
if n<0 then writeln('факториал определён только для неотрицательных чисел') else
i:=0;
k:=1;
repeat
k:=k*(i+1);
i:=i+1;
until i=n;
write(n,'!=',k);
readln;
end.
Задание 4. Составьте программу, которая выводит на экран таблицу степеней двойки от 0 до 10.
program stepen;
var
i: integer;
begin
for i := 0 to 10 do
writeln('2^',i,' ',exp(ln(2)*i));
end.
Задание 5. Составьте программу, которая выводит на экран таблицу степеней для произвольного числа.
program stepen;
var
i,s,n,t: integer;
begin
writeln('введите число, начальную и конечную степени');
readln(s,t,n);
for i:=t to n do
writeln(s,'^',i,' ',exp(ln(s)*i));
end.
Задание 6. Определите, что вычисляется в программе.
Program Example5;
Uses Crt ;
Var n, m: integer ;
Begin
Clrscr;
Writeln ('Введитедвачисла');
Readln (n, m);
While m<>n do
Begin
if m > n then m:=m-n else n:=n-m;
End;
Writeln (m) ;
End.
Наибольший общий делитель
Задание 7. Определите, что вычисляется в программе, и составьте к ней блок-схему.
Program Example6;
Uses Crt ;
Var x, y: real ;
Begin
Clrscr;
x:= 1;
While x <= 10 do
Begin
y:= sqr(x) + 1;
Writeln(x:5:1, y:10:1);
x:= x+0.5;
End;
End.
Выводит число, на 1 большее квадрата x
Задание 8. Составьте программу, которая выводит таблицу значений функцииy= 2x2+ 3x– 9 в диапазоне от – 3 до 3 с шагом 0,5.
Рекомендуемый вид экрана:
---------------
Х|У
---------------
– 3 | 0
– 2,5 | – 4
– 2 | – 7
… | …
3 | 18
---------------
Доработайте программу, чтобы диапазон и шаг можно было вводить при запуске программы.
Program program;
var a,b,dx,y:real;
begin
repeat
writeln('Введите начало и конец диапазона:');
readln(a,b);
until a<=b;
writeln('Введите шаг: ');
readln(dx);
while a<=b do
begin
y:=4*a+3*a-9;
writeln(a:4:2,y:9:2);
a:=a+dx;
end;
end.
Задание 9. Составьте программу, в которой необходимо отгадать зашифрованное слово (например, КОБЯЛО). Пользователь вводит ответ до тех пор, пока не отгадает слово из этих букв. Как только введено правильное слово, программа завершается, и на экран выводится сообщение «Вы угадали сNпопытки!».
Program Example;
const a = 'КОРОВА';
const b = 'ОВКОРА';
Var c:string;
n:integer;
Begin
WriteLn(b,' Какое слово загадано?');
Repeat
ReadLn(c);
n:= n+1;
Until c=a;
WriteLn('Вы угадали c ',n,' попытки!');
End.
Задание 10.Составьте программу, которая находит все простые числа в диапазоне отAдоB.
uses crt;
var a,b,i,s,j:integer;
begin
write('Введите A=');
readln(a);
repeat
write('Введите B=');
readln(b);
until b>a;
writeln('Простые числа в диапазоне [',a,';',b,']');
for i:=a to b do
begin
s:=0;
for j:=2 to i-1 do
if i mod j=0 then inc(s);
if (s=0) then write(i,' ');
end;
end.
Задание 11.Составьте программу, которая находит все совершенные числа в диапазоне отAдоB.
program primer11;
uses crt;
var s,n,i,A,B:integer;
begin
clrscr;
writeln ('Введите целые числа [A,B]: ');
readln (A,B);
for n:=A to B do
begin
s:=0;
for i:=1 to n do
if (n mod i=0) and (n>i) then begin s:=s+i;
end;
if ((n div i)=(n/i)) and (s=n) then
writeln('Совершенное число: ',n,' ');
read;
end;
readln;
end.