- •Архитектура эвм: модель работы процессора, понятия аккумулятора, регистров, счетчика команд.
- •2). Архитектура эвм: представление целых и вещественных чисел, выполнение арифметических операций над целыми числами.
- •3. Определение алгоритма. Основные свойства алгоритма.
- •4. Формы представления алгоритмов. Базовые управляющие структуры: линейный, ветвление, цикл.
- •5. Этапы решения задач на эвм.
- •6. Алгоритм поиска максимального и минимального элементов в векторе.
- •7. Алгоритм поиска максимального и минимального элемента в матрице.
- •8. Алгоритм поиска в множестве точек точки, наиболее близко расположенной к началу координат.
- •9. Алгоритм вычисления значения многочлена по схеме Горнера.
- •10. Алгоритмы перевода числа в систему счисления по основанию 10.
- •11. Алгоритм перевода числа из системы счисления по основанию 10 в двоичную, восьмеричную, шестнадцатеричную системы
- •12. Алгоритм,который определяет является ли строка палиндромом
- •14. Алгоритм который определяет, является ли число простым
- •15. Алгоритм сортировки вектора методом «пузырек».
- •19. Функции
6. Алгоритм поиска максимального и минимального элементов в векторе.
Задан вектор b:array [1..n] of integer. Ищем минимальный элемент. Запоминаем значение первого элемента вектора в переменной m: m:=b[1];
Последовательно в цикле просматриваем элементы вектора. Если очередной элемент вектора меньше m, то запоминаем его в m: if b[i]< m then m:=b[i]
m:=b[1];
for i:=2 to n do
if b[i]<m then m:=b[i];
Пример. Вектор 1 -2 -3 5
0. m=1
i=2 m=-2
i=3 m=-3
i=4 m=-3
i=4 m=-3
7. Алгоритм поиска максимального и минимального элемента в матрице.
8. Алгоритм поиска в множестве точек точки, наиболее близко расположенной к началу координат.
Дана матрица вещественных чисел X[1..n,1..2] – координаты n точек на плоскости. Определите, какая из них ближайшая к началу координат. Напечатайте ее индекс
Решение
const n=3;
var x:array [1..n,1..2] of real;
i,j,p:integer;
min,r:real;
begin
for i:=1 to n do
for j:=1 to 2 do
x[i,j]:=StrToInt(InputBox('Ввод','x['+IntToStr(i)+', '+IntToStr(j)+']',''));
r:=sqrt(sqr(x[1,1])+sqr(x[1,2]));
min:=r;
p:=1;
for i:=1 to n do
begin
r:=sqrt(sqr(x[i,1])+sqr(x[i,2]));
if r<min then
begin
min:=r;
p:=i;
end;
end;
showMessage('Ближайшая точка к началу координат: '+IntToStr(p));
end;
end.
Множество n точек на плоскости задается, как массив xy[1..n,1..2]
9. Алгоритм вычисления значения многочлена по схеме Горнера.
В векторе S[0..n] заданы коэффициенты многочлена
Вычислите значение многочлена в точке x.
F = Snxn+Sn-1xn-1+…S1x+S0 (1)
Перепишем (1) следующим образом:
F = S0 +S1*x1+ S2*x2+…..+ Sn-1*xn-1+ Sn*xn (2)
Вынесем x за скобку и получим (3)
F = S0 +x*(S1+ x*( S2+…..+ x*(Sn-1+ Snx)….)))) (3)
f:= s[n];
for i:=n downto 1 do
f:=f*x+ s[i-1];
Пусть дан многочлен второй степени F= 2 +1*x1+ 3*x2
F= 3
i=2 F= 3*x+ 1
i=1 F= 3*x*x+ 1*x+ 2
10. Алгоритмы перевода числа в систему счисления по основанию 10.
10. Алгоритм перевода числа из двоичной, восьмеричной, шестнадцатеричной систем счисления в систему счисления по основанию 10. Представление числа задается в виде строки S. Пусть Х-основание 2 или 8.
l:=length(s);
f:= StrToInt(s[1]);
for i:=1 to l-1 do
f:=f*x+ StrToInt(s[i+1]);
Алгоритм перевода числа из двоичной, восьмеричной, в систему счисления по основанию 10.
Представление числа задается в виде строки S. Пусть Х-основание 16.
l:=length(s);
if (s[1]>='0') and (s[1]<='9') then f:= StrToInt(s[1])
else f:=ord(s[1])-55;//Код A-65, B-66, C-67, D-68,…
for i:=1 to l-1 do
if (s[i+1]>='0') and (s[i+1]<='9') then f:=f*x+ StrToInt(s[i+1])
else f:=f*x+ord(s[i+1])-55;
11. Алгоритм перевода числа из системы счисления по основанию 10 в двоичную, восьмеричную, шестнадцатеричную системы
Алгоритм перевода из 10 системы счисления в 2-ичную осуществляется последовательным нахождением остатков от деления числа на 2 нацело.
Пусть,
k = bn*2n+ bn-1*2n-1+…..+ b2*22+ b1*21+ b0
Будем последовательно находить остатки:
1. b0 = k mod 2
Разделим k нацело на 2: k = k div 2
и станет равным bn*2n-1+ bn-1*2n-2+…..+ b2*21+ b1
2. b1 = b mod 2
Разделим k нацело на 2: k = k div 2
и станет равным bn*2n-2+ bn-1*2n-3+…..+ b3*21+ b2
3. b2 = k mod 2
Разделим k нацело на 2: k = k div 2
n. bn-1 = k mod 2
Разделим k нацело на 2: k = k div 2
После шага n k станет равным bn
n+1. bn = k mod 2
Разделим k нацело на 2: k = k div 2 и станет равным 0
i:=0;
while k>0 do
begin
bi := k mod 2;
k = k div 2;i:=i+1;
end;
Пусть k=10
1. b0 = b mod 2 = 0
k = b div 2 = 5
2. b1 = b mod 2 = 1
k = k div 2 = 2
3. b2 = b mod 2 = 0
Разделим k нацело на 2
k = k div 2 = 1
4. b3= b mod 2 = 1
k = k div 2 = 0
Двоичное представление 10: 1010
Перевести в двоичную систему числа 7, 9, 15, 16.
a – исходное число, s – результат, представление в двоичной системе счисления.
s:='';
WHILE a>0 DO
BEGIN
a2:= a mod 2; a := a div 2;
s:= IntToStr(a2)+s
END
END;
Перевод числа в восьмеричную систему – аналогично.
При переводе числа в шестнадцатеричную систему изменяется оператор формирования строки s:
s:='';
WHILE a>0 DO
BEGIN
a2:= a mod 16; a := a div 16;
if a2<10 then s:= IntToStr(a2)+s
else s:= chr(a2+55)+s
END
END;