150 likes | 511 Views
Типовые алгоритмы обработки числовых данных. Генерация случайных чисел на заданном промежутке [a;b]. x. a. b. Randomize ; х:= random ( b – а) + а;. Перестановка двух переменных с использованием дополнительной ячейки. Z:=X; X:=Y; Y:=Z;.
E N D
Типовые алгоритмы обработки числовых данных
Генерация случайных чисел на заданном промежутке [a;b] x a b Randomize; х:= random(b – а) + а;
Перестановка двух переменных с использованием дополнительной ячейки Z:=X; X:=Y; Y:=Z;
Разбиение числа известной длины на цифры а:=3862; S:= Отброс 2 a mod 10 + (a div 10) mod 10 + (a div 100) mod 10 Взять 2 Взять 6 Взять 8 + a div 1000; 3
Принадлежит ли число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-х чисел • If (a>b) and (a>c) then max:=a else if b>c then max:=b else max:=c; c b a
Поиск наибольшего (наименьшего) из 3-х чисел 2. If a>b then max:=a else max:=b; if c>max then max:=c; Writeln(‘max=’,max); c b a max= a b c
Вычисление факториала числа 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 • Все делители: … 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. ПРОБУЕМ?
Типовые алгоритмы обработкисимвольной информации