- •Предисловие
- •Основные навыки и умения
- •Логическая культура: знание логики, логическая интуиция.
- •Языковые знания и умения.
- •Поисковые знания и умения.
- •Алгоритмические навыки и умения.
- •Общие подходы к построению алгоритмов
- •Тестирование и сопровождение программ
- •Обязательный минимум содержания среднего (полного) общего образования
- •Технология обработки текстовой информации
- •Введение в информатику
- •Системы счисления
- •Перевод из десятичной системы счисления
- •Перевод в десятичную систему счисления
- •Перевод чисел из двоичной системы счисления в восьмеричную, шестнадцатеричную системы и обратно
- •Выполнение арифметических операций в позиционных системах счисления
- •Элементы математической логики
- •Логические законы
- •Алгоритм и его свойства
- •Исполнители. Компьютер - универсальный исполнитель
- •Работа компьютера
- •Turbo pascal - исполнитель паскаль-программ
- •Конструкции Паскаля
- •Типы данных
- •Целый тип данных
- •Вещественный тип данных
- •Символьный тип данных
- •Логический тип данных
- •Выражения
- •Операторы ввода-вывода
- •Оператор присваивания
- •Общий вид программы на Паскале
- •Условный оператор
- •If логическое_выражение then оператор1 else оператор2;
- •If логическое_выражение then оператор1;
- •Операторы цикла
- •Построение линейных алгоритмов
- •Построение ветвящихся алгоритмов
- •Построенние циклических алгоритмов
- •Нахождение суммы
- •Вложенные циклы
- •Переборный метод решения задач
- •Численные методы
- •Метод итераций
- •Метод половинного деления
- •Вычисление определенного интеграла методом трапеций
- •Случайные числа
- •Метод Монте-Карло (метод статистических испытаний)
- •Массивы Одномерные массивы
- •Перебор элементов массива
- •Перебор подмассивов
- •Классы задач по обработке массивов
- •Задачи первого класса
- •Задачи второго класса
- •Задачи третьего класса
- •Задачи четвертого класса
- •Сортировка массивов
- •Сортировка вставками
- •Сортировка пузырьком (обменом)
- •Сортировка выбором
- •Сортировка фон Неймана (слиянием)
- •Двумерные массивы
- •Обработка строк
- •Процедуры и функции
- •Рекурсия
- •Работа с графикой
- •Классы программного обеспечения
- •Компиляция и интерпретация
- •Текстовый редактор
- •Электронные таблицы
- •Системы управления базами данных (субд)
- •Пример решения экзаменационного билета
- •Контрольные работы
- •Контрольная работа №1
- •Контрольная работа № 2
- •Контрольная работа № 3
- •Контрольная работа № 4
- •Контрольная работа № 5
- •Библиографический список
Построение линейных алгоритмов
Для программирования линейных алгоритмов используются операторы ввода, вывода и присваивания.
Пример 1. Даны катеты прямоугольного треугольника. Найдите его гипотенузу и площадь.
Решение. Исходными данными являются длины катетов. Из условия задачи неясно, какого типа длины катетов, поэтому выбираем наиболее общий случай и считаем их вещественными. Потребуется переменная для гипотенузы и площади, которые также будут вещественными.
Program task3;
var a, b, c: real; {a, b - длина катетов, c - длина гипотенузы}
S : real; {площадь}
begin
write (‘Задайте длины катетов’);
readln (a, b);
c := sqrt(sqr(a) + sqr(b));
S := a * b/2;
writeln (‘гипотенуза равна ’, c, ‘площадь равна ’, S)
end.
Можно было написать программу без использования переменных c и S.
Program task3a;
var a, b, c: real; {a, b - длина катетов, c - длина гипотенузы}
begin
write (‘Задайте длины катетов’);
readln (a, b);
writeln (‘гипотенуза равна ’, sqrt(sqr(a) + sqr(b)) , ‘площадь равна ’, a * b/2)
end.
Пример 2. Дано действительное x. Вычислите y, используя только операции сложения, вычитания и умножения.
y = 2x4 - 3x3 + 4x2 - 5x + 6.
Решение. Вариант 1. y := 2*x*x*x*x - 3*x*x*x + 4*x*x -5*x + 6. Используется 14 операций.
Вариант 2. Введем дополнительные переменные:
x2 := x*x; x3 := x2*x; x4 := x2*x2;
тогда y := 2*x4 - 3*x3 + 4*x2 -5*x + 6. Количество операций сократилось, но используются три дополнительные переменные.
Вариант 3 позволяет не вводить новые переменные и уменьшить количество операций, для чего используется схема Горнера:
y := (((2*x - 3)*x + 4)*x - 5)*x+6. Используется восемь операций. Реализуем программно именно этот вариант.
Proqram task4;
Var x, y : real;
begin
write (‘задайте значение x’);
readln (x);
y := (((2*x - 3)*x + 4)*x - 5)*x+6;
writeln (‘y = ‘, y)
end.
Упражнения.
-
Дано действительное число x. Не пользуясь никакими арифметическими операциями, кроме *, +, -, вычислите:
1 - 2x + 3x2 - 4x3 и 1 + 2x + 3x2 + 4x3. Используйте не более 8 операций.
-
Дано действительное число a. Не пользуясь никакими операциями, кроме умножения, получите:
а). a8 за 3 операции; б). а21 за 6 операций; в). а5 и а19 за 6 операций;
г). а4, а12, а28 за 6 операций.
-
Текущее показание электронных часов: m часов (0 m 23), n минут (0 n 59), k секунд (0 k 59). Напишите программу, которая будет определять какое время будут показывать часы через p часов, q минут, r секунд.
_____________________________________________________________________________
Проверьте себя: 1. p=1-2*x+3*x2-4*x3=1+3*x2-(2*x+4*x3),
q=1+2*x+3*x2+4*x3=1+3*x2+(2*x+4*x3,
Пусть а=1+3*х2; в=х*(2+4*х2),
1) x2:=x*x; x2
2) a:=3*x2; 3*x2
3) a:=1+a; 1+3*x2
4) a3:=4*x2; 4*x2
5) b:=2*a3; 2+4*x2
6) b:=x*b; x*(2+4*x2)
7) p:=a-b; 1+3*x2-2*x-4*x2
8) q:=a+b 1+3*x2+2*x+4*x2
2. a) a2:=a*a; a4:=a2*a2; a8:=a4*a4.
б) a2:=a*a; a4:=a2*a2; a8:=a4*a4; a16:=a8*a8; a20:=a16*a4; a21:=a20*a.
в) a2:=a*a; a4:=a2*a2; a5:=a4*a; a10:=a5*a5; a15:=a10*a5; a19:=a15*a4.
г) a2:=a*a; a4:=a2*a2; a8:=a4*a4; a12:=a8*a4; a24:=a12*a12; a28:=a24*a4.
3. m1:=(m*60+n)*60+k;
m2:=(p*60+q)*60+r;
m3:=m1+m2;
сек:=m3 mod 60;
мин:=m3 div 60 mod 60;
час:=m3 div 60.