Типовые алгоритмы обработки числовых данных

Download Report

Transcript Типовые алгоритмы обработки числовых данных

Типовые алгоритмы
обработки числовых
данных
Генерация случайных чисел
на заданном промежутке [a;b]
x
a
Randomize;
х:= random(b – а) + а;
b
Перестановка двух
переменных с использованием
дополнительной ячейки
Z:=X;
X:=Y;
Y:=Z;
Разбиение числа известной
длины на цифры
а:=3862;
Отброс 2
S:= a mod 10 + (a div 10) mod 10 + (a div 100) mod 10
Взять 2
+ a div 1000;
3
Взять 6
Взять 8
Принадлежит ли число x
заданному интервалу [a,b]
If (x>a) and (x<b) then
write (‘yes’)
else
а
write (‘no’);
If (x<a) or (x>b) then
write (‘no’)
else
write (‘yes’);
x
b
Поиск наибольшего
(наименьшего) из 3-х чисел
1. If (a>b) and (a>c) then
max:=a
else
if b>c
then
max:=b c
else
max:=c;
b
a
Поиск наибольшего
(наименьшего) из 3-х чисел
2. If a>b then
max:=a
else
c
b
max:=b;
if c>max
then
max= a
c
b
max:=c;
Writeln(‘max=’, max);
a
Вычисление факториала
числа n
Факториал – это произведение всех
натуральных чисел от 1 до n.
Обозначается n!
n!=(n-1)!*n,
0!=1,
1!=1
Реализация в программе:
…
f:=1;
For i:=1 to n do
f:=f*i;
Числа Фибоначчи
Последовательность чисел
1, 1, 2, 3, 5, 8, 13, 21…
называется числами Фибоначчи.
f1=1, f2=1, f3=f1+f2,
Реализация на Паскале:
fi=fi-2 + fi-1
…
read(n);
{количество чисел в последовательности}
f1:=1; f2:=1; write(f1,f2);
for i:=3 to n do
begin
f:=f1+f2;
write(f);
f1:=f2;
f2:=f;
end;
Возведение числа в степень:
Хn
Хn=X*X*X*…*X
- n раз
Реализация в программе:
…
read (x,n);
st:=1;
for i:=1 to n do
st:=st*x;
Делители натурального
числа n
1. Все делители:
…
read (n);
For d:=1 to n do
if n mod d =0 then
write(‘d=’,d);
Делители натурального
числа n
2. Количество делителей (кроме 1 и самого
числа):
…
read (n);
k:=2;
{1,n}
for d:=2 to n div 2 do
if n mod d =0 then
inc(k);
Типовые алгоритмы обработки
символьной информации
•
•
•
•
•
•
•
•
•
•
•
•
•
Программа находит сумму
кодов гласных букв
program glasn;
uses wincrt;
const gl=‘аяоёэеуюиы’; {объявление символьной константы}
var str: string;
i,sumkod: integer;
begin
write (‘введите строку '); readln( str);
for i:= 1 to length(str) do
begin
ПРОБУЕМ?
if pos( str[i],gl)<>0 then sumkod:=sumkod+ord(str[i]);
end;
writeln(‘сумма кодов гласных букв = ', sumkod);
end.
Типовые алгоритмы обработки
символьной информации