Язык программирования Паскаль. Циклы.
материал по информатике и икт (11 класс) на тему
Предварительный просмотр:
Стандартные задачи на циклы
Простейшие алгоритмы
№1. Сумма вводимых целых чисел
var s: real;
begin
write('Введите число слагаемых: ');
var n := ReadInteger;
s := 0;
for var i:=1 to n do
begin
write('Введите слагаемое: ');
var x := ReadReal;
s += x;
end;
writeln('Сумма слагаемых равна ',s);
end.
№2. Произведение целых чисел
var p: real;
begin
write('Введите число множителей: ');
var n := ReadInteger;
p := 1;
for var i:=1 to n do
begin
write('Введите множитель: ');
x := ReadReal;
p *= x;
end;
writeln('Произведение равно ', p);
end.
№3. Двойной факториал n!!=n*(n-2)*(n-4)*...*2 (или 1)
begin
write('Введите x: ');
var x := ReadInteger;
var p := 1;
while x>=2 do
begin
p *= x;
x -= 2;
end;
writeln('Двойной факториал равен ', p);
end.
№4. Сколько нечетных среди n введенных
begin
write('Введите n: ');
var n := ReadInteger;
var c := 0;
for var i:=1 to n do
begin
write ('Введите целое число: ');
var x := ReadInteger;
if x mod 2 <> 0 then
c += 1;
end;
writeln('Количество нечетных равно ', c);
end.
№5. Защита от неверного ввода
var x: real;
begin
repeat
write('Введите x>0: ');
x := ReadReal;
if x<=0 then
writeln('Неверный ввод');
until x>0;
end.
№6. Табулирование функции f(x) на отрезке в точках, разбивающих отрезок на N частей
Дан отрезок [a,b]
function f(x: real): real;
begin
result := sin(x)*x;
end;
var
N: integer;
a, b: real;
begin
write('Введите N: ');
N := ReadInteger;
Assert(N>0);
write('Введите a и b: ');
a := ReadReal;
b := ReadReal;
var h := (b-a)/N;
var x := a;
for var i:=0 to N do
begin
writeln(x:5:2,f(x):10:4);
x += h;
end;
end.
№6a. Решение, использующее while. Погрешность округления и вычислительная погрешность
function f(x: real): real;
begin
result := sin(x)*x;
end;
var
N: integer;
a, b: real;
begin
write('Введите N: ');
N := ReadInteger;
Assert(N>0);
write('Введите a и b: ');
a := ReadReal;
b := ReadReal;
var h := (b-a)/N;
var x := a;
while x <= b+h/2 do
begin
writeln(x:5:2,f(x):10:4);
x += h;
end;
end.
Рекуррентные соотношения
№7. Вывод 10 первых степеней двойки
begin
var x := 2;
for var i := 1 to 10 do
begin
writeln(i:2,x:5);
x *= 2;
end;
end.
№8. Вывод всех двухзначных чисел, кратных 5
begin
var x := 10;
while x < 100 do
begin
writeln(x:3);
x += 5;
end;
end.
№9. Вывод n первых чисел Фибоначчи
begin
write('Введите целое число n (n > 1): ');
var n := ReadInteger;
var a := 1;
var b := 1;
write(1, ' ', 1, ' ');
for var i := 3 to n do
begin
var c := a + b;
write(c, ' ');
a := b;
b := c;
end;
end.
№10. Найти НОД(A,B), используя алгоритм Евклида:
НОД(A,B) = НОД(B,A mod B); НОД(A,0) = A
var A,B,C: integer;
begin
write('Введите целые числа A и B: ');
readln(A,B);
repeat
C := A mod B;
A := B;
B := C;
until C = 0;
write('НОД(A,B) = ', A);
end.
№11. Найти сумму цифр целого положительного числа m
begin
write('Введите целое положительное число m: ');
var m := ReadInteger;
assert(m > 0);
var s := 0;
while m > 0 do
begin
s += m mod 10;
m := m div 10;
end;
writeln('Сумма цифр числа m равна ', s);
end.
Максимумы и минимумы
№12. Найти max из введенных чисел
begin
write('Введите целое число n (n>0): ');
var n := ReadInteger;
assert(n>0);
write('Введите 1 число: ');
var x := ReadReal;
var max := x;
for var i := 2 to n do
begin
write('Введите ', i, ' число: ');
x := ReadReal;
if max < x then
max := x;
end;
writeln('Максимальное из введенных чисел: ', max);
end.
№12a. Найти min, удовлетворяющее условию p(x)
// Условие взятое как пример (Если число положительное, то условие p(x) возвращает true, иначе false)
function p(x: real): boolean;
begin
Result := x > 0;
end;
begin
write('Введите целое число n (n>0): ');
var n := ReadInteger;
assert(n>0);
var min := real.MaxValue;
for var i := 1 to n do
begin
write('Введите ', i, ' число: ');
var x := ReadReal;
if (x < min) and p(x) then
min := x;
end;
if min = real.MaxValue then
writeln('Нет чисел, удовлетворяющих условию')
else writeln('Минимальное из введенных чисел, удовлетворяющее условию: ', min);
end.
Суммирование рядов (конечных и бесконечных)
№13. Вычислить Σ(i=1..n) a^i/i!
var
a: real;
n: integer;
begin
write('Введите a и n (n>0): ');
readln(a,n);
assert(n>0);
var x := a;
var s := x;
for var i := 2 to n do
begin
x *= a / i;
s += x;
end;
writeln('Сумма = ', s);
end.
№13a. Вычислить Σ(i=1..∞) (-1)^i * a^i/i!
var a: real;
begin
write('Введите a (0 < a < 1): ');
readln(a);
assert((a>0) and (a<1));
var eps := 0.0001;
var i := 1;
var s := 0.0;
var y := -a;
repeat
s += y / i;
i += 1;
y *= -a;
until abs(y/i) < eps;
writeln('Сумма = ', s);
end.
Поиск значения
№14. Есть ли среди введенных число k?
var n,k: integer;
begin
write('Введите целые числа n (n>0) и k: ');
readln(n,k);
assert(n>0);
var Exists := false;
for var i := 1 to n do
begin
write('Введите ', i, ' целое число: ');
var x := ReadInteger;
if x = k then
begin
Exists := true;
break;
end;
end;
if Exists then
writeln('Число ', k, ' было введено')
else writeln('Число ', k, ' не было введено');
end.
№14b. Есть ли среди введенных число k? (то же с использованием while)
var n,k: integer;
begin
write('Введите целые числа n (n>0) и k: ');
readln(n,k);
assert(n>0);
var Exists := false;
var i := 1;
while (i <= n) and not Exists do
begin
write('Введите ', i, ' целое число: ');
var x := ReadInteger;
i += 1;
if x = k then
Exists := true;
end;
if Exists then
writeln('Число ', k, ' было введено')
else writeln('Число ', k, ' не было введено');
end.
№15. Является ли число N>1 простым?
begin
write('Введите целое число N (N>1): ');
var N := ReadInteger;
assert(N>1);
var IsSimple := True;
for var i := 2 to round(sqrt(N)) do
if N mod i = 0 then
begin
IsSimple := False;
break;
end;
if IsSimple then
writeln('Число ', N, ' является простым')
else writeln('Число ', N, ' является составным');
end.
Другие алгоритмы
№16. Разложение числа на простые множители
begin
write('Введите целое число x (x>1): ');
var x := ReadInteger;
assert(x>1);
var i := 2;
write(x, ' = 1');
repeat
if x mod i = 0 then
begin
write(' * ', i);
x := x div i;
end
else i += 1;
until x = 1;
end.
№17. Вычисление значения многочлена в точке x по схеме Горнера
var
x,a: real;
n: integer;
begin
write('Введите x: ');
readln(x);
write('Введите степень многочлена n (n>0): ');
readln(n);
assert(n>=0);
write('Введите коэффициенты: ');
readln(a);
var s := a;
for var i := 1 to n do
begin
write('Введите a_{', i+1,'}: ');
readln(a);
s := s*x + a;
end;
writeln('Значение многочлена p(x) = a_{1}*x^n + a_{2}*x^(n-1) + ... + a_{n}*x + a_{n+1} в точке x = ', x, ' равно ', s);
end.
№18. Дана непрерывная на отрезке функция f(x), имеющая на отрезке ровно один корень. Найти его методом половинного деления
Дан отрезок [a,b] (f(a)*f(b)<=0)
// В качестве примера взяты eps = 0.0001 и функция f(x) = sin(x)
const eps = 0.0001;
const f = sin;
var a,b: real;
begin
write('Введите числа a и b (a
readln(a,b);
assert(a
var fa := f(a);
var fb := f(b);
assert(fb*fa<0);
while (b-a) > eps do
begin
var x := (b+a)/2;
var fx := f(x);
if fa*fx <= 0 then
b := x;
else
begin
a := x;
fa := fx;
end;
end;
writeln('Корень функции на [a,b] равен ',(b+a)/2);
end.
По теме: методические разработки, презентации и конспекты
Контрольная работа. Знакомство с языком программирования Паскаль.
Контрольная работа представлена в 6 вариантах....
Язык программирования Паскаль.Знакомство
Презентация к уроку информатики и ИКТ в 8 классе по теме "Язык программирования Паскаль". Данная презентация состоит из 10 слайдов....
Язык программирования Паскаль (Введение)
Презентация....
Урок и презентация по теме Язык программирования Паскаль
Конспект урока + Презентация...
Основы программирования: ТЕМА 01. ЯЗЫК ПРОГРАММИРОВАНИЯ ПАСКАЛЬ.
ОСНОВЫ ПРОГРАММИРОВАНИЯВВЕДЕНИЕОдним из популярных сегодня ЯП является Паскаль. Он позволяет составлять программы для решения математических задач, обработки текстов, построения изображений на экране ...
Тест по теме "Циклы на языке программирования Паскаль"
Тест состоит из 10 вопросов разного уровня сложности. Проверка осуществляется в конце теста и выводятся статистические данные по количеству правильныхи неправильных ответов. По результатам теста выста...
Программирование. Язык программирования Паскаль
Цель• Познакомить обучающихся с языком программирования Паскаль• Отрабатывать практические умения обучающихся по работе в сре...