- •Материалы по информатике для 10 класса «Программирование»
- •Алгоритм и его свойства
- •Алгоритмы работы с величинами
- •Программирование на языке Паскаль
- •Первая программа
- •1.Общий вид программы.
- •3. Пояснения к программе.
- •Вещественные типы
- •4. Запуск программы.
- •Т ипы данных
- •Символьный тип
- •Логический (булевский) тип
- •Арифметические операции
- •Возведение положительного числа в вещественную степень
- •Программирование ветвящихся алгоритмов
- •Неполная форма условного оператора:
- •Логические операции
- •Пример Составить программу, по которой выведется значение true, если точка с заданными координатами (х, у) лежит внутри заштрихованной области (рис. 1), и false – в противном случае.
- •Решение
- •Оператор выбора
- •Программирование циклических алгоритмов
- •Задачи целочисленной арифметики
- •Структурное программирование. Подпрограммы.
- •Локализация имен.
- •Обработка строковых величин
- •Работа с массивами
Оператор выбора
позволяет программировать ветвления по многим направлениям. Этот оператор организует переход на одну из нескольких ветвей в зависимости от значения заданного выражения (селектора выбора). Формат оператора выбора:
case К of
А1 : <оператор 1>;
А2 : <оператор 2>;
AN : <оператор N>
else < оператор N+l>
end;
Здесь К — выражение-селектор, которое может иметь только простой порядковый тип (целый, символьный, логический). А1…AN — константы того же типа, что и селектор, выполняющие роль меток ветвей. Исполнение оператора начинается с вычисления выражения К, полученное значение сравнивается с константами (метками) и выполняется соответствующий оператор. Если ни одна из меток не совпала со значением К, то выполняется оператор после слова else. Возможно использование неполного оператора выбора без ветви else. Метки ветвей также могут быть заданы списком или интервалом.
Пример В старояпонском календаре был принят двенадцатилетний цикл. Годы внутри цикла носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, петуха, собаки и свиньи. Написать программу, которая по номеру года определяет его название в старояпонском календаре, если известно, что 1996 г. был годом крысы — началом очередного цикла.
Решение. Поскольку цикл является двенадцатилетним, поставим в соответствие название года остатку от деления номера этого года на 12. При этом учтем, что остаток от деления 1996 на 12 равен 4.
Var
Year : integer;
begin
write('Введите год ' ) ; readln(Year);
case Year mod 12 of
0 : Writeln(‘Год Обезьяны’);
1 : Writeln(‘Год Петуха’);
2 : Writeln(‘Год Собаки’);
3 : Writeln(‘Год Свиньи’);
4 : Writeln(‘Год Крысы’);
5 : Writeln(‘Год Коровы’);
6 : Writeln(‘Год Тигра’);
7 : Writeln(‘Год Зайца’);
8 : Writeln(‘Год Дракона’);
9 : Writeln(‘Год Змеи’);
10 : Writeln(‘Год Лошади’);
11 : Writeln(‘Год Овцы’);
end
end.
Программирование циклических алгоритмов
Ц икл - многократное повторение последовательности действий. Известны три типа циклических алгоритмических структур: цикл с предусловием, цикл с постусловием и цикл с параметром.
В Паскале существуют операторы, реализующие все три типа циклов.
Цикл с предусловием (цикл-пока) — наиболее универсальная циклическая структура. Реализуется оператором While. Формат оператора:
while <логическое выражение> do <тело цикла>
Пока значение логического выражения — true, выполняется тело цикла. Тело цикла может быть простым или составным оператором (несколько операторов, заключенные в операторные скобки).
Пример 1. Вычислить сумму натурального ряда чисел от 1 до N.
Решение
Var
a, Summa : integer;
BEGIN
write('N='); readln(N);
a:=l; Summa:=0;
while a<=N do
begin
Summa:=Summa +a;
a := a + 1
end;
Writeln (' Результат суммирования:' , Summa) ;
END.
Цикл с постусловием (цикл-до) имеет формат:
repeat <тело цикла> until <лог.выражение>
Ц
икл
заканчивается, когда
логическое выражение принимает значение
true.
Тело цикла
с постусловием выполняется хотя бы один
раз. Использования
begin
и end
для ограничения составного тела цикла
не
требуется.
Пример Решим предыдущую задачу с использованием цикла с постусловием:
Program Natur;
Var
a, Summa : integer;
BEGIN
write('N='); readln(N);
а:=1; Summa:=0;
repeat
Summa:=Summa+ a ;
а:=а+1
until a>N;
Writeln (' Результат суммирования:' , Summa) ;
END.
Цикл с параметром имеет два варианта записи:
1) for I: = <нач.знач> to <конеч.знач> do <тело цикла>;
2 ) for I: = < конеч.знач > down to < нач.знач > do <тело цикла> .
Здесь I — параметр цикла - переменная порядкового типа ;
<нач.знач> - выражение того же типа, определяющее начальное значение параметра;
<конеч.знач> - выражение того же типа, определяющее конечное значение параметра;
<тело цикла> может быть простым или составным оператором.
Цикл повторяется, пока значение параметра лежит в интервале между начальным и конечным значением. Причем эти выражения вычисляются только один раз в начале выполнения цикла.
В первом варианте при каждом повторении цикла значение параметра изменяется на следующее значение в данном типе (для целого типа - увеличивается на 1). Во втором варианте при каждом повторении цикла значение параметра изменяется на предыдущее значение в данном типе (для целого типа — уменьшается на 1).
Пример Решим ту же задачу с использованием цикла с параметром.
Var a, Summa : integer;
BEGIN
write('N='); readln(N);
а:=1; Summa:=0;
for а : = 1 to N do
Summa : =Summa+a;
Writeln (' Результат суммирования:' , Summa)
END.
Очевидно, что все три результата будут одинаковыми. Обратите внимание, что в последнем варианте отсутствует команда, увеличивающая на 1 переменную а- очередное значение числа.
В теле цикла с параметром не должно быть команд присваивания значний переменной- параметру цикла. Эта переменная автоматически изменяет свое значение при каждом проходе цикла.
Задачи
Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней?
Имеется серия измерений элементов треугольника. Группы элементов пронумерованы. В серии в произвольном порядке могут встречаться такие группы элементов треугольника:
основание и высота;
две стороны и угол между ними (угол задан в радианах);
три стороны.
Разработать программу, которая запрашивает номер группы элементов, вводит соответствующие элементы и вычисляет площадь треугольника. Вычисления прекратить, если в качестве номера группы введен 0.
3. Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12, ..., 24 часа.
Около стены наклонно стоит палка длиной х м. Один ее конец находится на расстоянии Y м. от стены. Определить значение угла а между палкой и полом для значений х = k м и Y, изменяющегося от 2 до 3 м с шагом h м.
У гусей и кроликов вместе 64 лапы. Сколько могло быть кроликов и гусей (указать все сочетания, которые возможны)?
6. Составить алгоритм решения задачи: сколько можно купить быков, коров и телят, платя за быка 10 р., за корову — 5 р., а за теленка — 0,5 р., если на 100 р. надо купить 100 голов скота?
7. Подсчитать сумму всех двузначных чисел, которые делятся на 3 и не делятся на 4.
Долгожитель(возраст не менее 100 лет) обнаружил однажды, что если к сумме квадратов цифр его возраста прибавить число дня его рождения, то получается его возраст. Сколько лет долгожителю.
Дано натуральное число n. Вычислить S=1!+2!+3!+…+n!
Д
ано
действительное число х. Вычислить:
Перевести данное натуральное десятичное число в систему счисления с основанием n.
Д
аны
натуральные n и k.
Вычислить:
