Занятие 2 (1 часть). Программы с линейной структурой.
Целый тип данных.
1) Понятие алгоритма. Свойства алгоритма. Основные алгоритмические конструкции. Конструкция следования
Понятие алгоритма является основным (фундаментальным) понятием информатики. Поэтому нельзя дать строгого определения этого понятия через более простые. Существует множество описательных определений этого понятия, каждое из которых лишь уточняет его.
Алгоритм – это последовательность действий, выполняя которую исполнитель придет к заданному результату. Алгоритм – это точное описание способа решения задачи, устанавливающее состав операций (команд, действий) и последовательность их выполнения. Алгоритм – это понятное и точное предписание исполнителю выполнять последовательность действий, направленных на достижение поставленной цели и ли решения поставленной задачи. Это не строгие определения, но в них выделены все основные свойства:
o Дискретность (прерывность) – любой алгоритм состоит из отдельных команд, только выполнив очередную команду можно перейти к выполнению следующей.
o Понятность – алгоритм составляется для конкретного исполнителя. У каждого из них есть свой набор команд (действий), которые он может выполнять. Этот набор допустимых действий называется системой команд исполнителя (СКИ). Поэтому правильно составленный алгоритм содержит только те команды, которые входят в СКИ, они понятны исполнителю и он может их выполнить. Например, нельзя дать первокласснику алгоритм решения квадратного уравнения.
o Однозначность (определенность, точность) – каждая команда однозначно воспринимается исполнителем и определяет его однозначную реакцию. Например, команда «Положить 2-3 ложки сахара» воспринимается не однозначно.
o Конечность – алгоритм должен завершать свою работу за конечное число команд, то есть он не должен быть бесконечным.
o Результативность – исполнение алгоритма должно приводить к полученному результату.
o Массовость – желательно, чтобы составленный алгоритм можно было применять для решения любой задачи данного класса.
Если алгоритм мы запишем на конкретном языке программирования, то получим программу.
Алгоритмическая конструкция – это форма организации действий. Математиками доказана теорема о том, что любой алгоритм можно записать использую только три алгоритмические конструкции: следование, ветвление и цикл. На самом деле мы пользуемся не только этими конструкциями (для сокращения записи алгоритма, его упрощения, облегчения понимания).
Конструкция следования – это такой способ организации действий, когда действия выполняются последовательно друг за другом, только выполнив очередное действие можно перейти к выполнению следующего. Такое выполнение можно сравнить рецептом, где необходимо в определенной последовательности выполнить некоторые действия. Алгоритм, в котором используется только конструкция следования, называется линейным. Говорят, что алгоритм имеет линейную структуру. Конструкцию следования можно представить следующим образом:
…
Действие 1
Действие 2
…
Действие N
…
В качестве действий могут быть команды ввода, вывода или присваивания.
2) Линейные программы
В программах с линейной структурой команды выполняются последовательно, одна за другой. Алгоритм программы с линейной структурой может быть представлен следующим образом:
Общий вид:
| Пример нахождения суммы двух чисел
|
3) Целый тип данных.
Существует пять целых типов: ShortInt, Integer, LongInt, Byte, Word. Они отличаются диапазоном значений, а значит и размером памяти, отводимой для их представления.
Тип | Диапазон значений | Об-ьем памяти |
ShortInt | -128..127 | 1 байт |
Integer | -32768..32767 | 2 байта |
LongInt | -.. | 4 байта |
Byte | 0..255 | 1 байт |
Word | 0..655535 | 1 байта |
Операции с величинами целого типа:
o Сложение – знак +
o Вычитание – знак -
o Умножение – знак *
o Нахождение целой части от деления – a Div b
o Нахождение остатка от деления – a Mod b
Операция обычного деления является недопустимой (если мы будем переменной целого типа присваивать выражение, где используется обычное деление ‘/’), так как эта операция на множестве целых чисел не является замкнутой (результат деления не всегда целое число, например при сложении или умножении в результате мы всегда получаем целое число).
Примеры:
19 Div 4 = 4 -19 Div 4 = -4 19 Div -4 = -4 -19 Div -4 = 4 | 19 Mod 4 = 3 -19 Mod 4 = -3 19 Mod -4 = -3 -19 Mod -4 = 3 | 27 Div 3 = 9 2 Div 7 = 0 8 Div 1 = 8 5 Div 32 =0 | 27 Mod 3 = 0 2 Mod 7 = 2 8 Mod 1 = 0 5 Mod 32 =5 |
Упражнения
1. Чему равны значения переменных а и b после выполнения последовательности действий?
Упражнение 1 a:=15 Div (16 Mod 7); b:=34 Mod a 5-29 Mod 5*2; | Упражнение 2 a:=4*5 Div 3 Mod 2; b:=4*5 Div (3 Mod 2); |
2. Дано трехзначное число аbс (где а – число сотен, b – число десятков, с – число единиц). Пусть эти числа хранятся в переменных а, b, c соответственно. Само трехзначное число хранится в переменной с именем S (т. е. а*100+b*10+с=S). Установите соответствие (равенство) между элементами первого и второго столбца.
Результат действий над переменной S | Имя переменной | |
S Div 100 | A | |
S Mod 10 | B | |
(S Div 10) Mod 10 | C | |
(S Mod 100) Div 10 |
4) Задачи:
1. Напишите программу с именем Му2_1 для нахождения цифр трехзначного числа. Сохраните ее в файле под именем Prim2_1.pas. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены полужирным шрифтом)
Введите трехзначное число
S=328
Число сотен равно 3
Число десятков равно 2
Число единиц равно 8
2. Измените программу Му2_1 для нахождения цифр четырехзначного числа. Сохраните ее в файле под именем Prim2_3.pas
3. Напишите программу с именем Му2_3 для пересчета величины временного интервала, заданного в минутах, в величину, выраженную в часах и минутах. Сохраните ее в файле под именем Prim2_3 .pas. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены полужирным шрифтом).
Введите величину временного интервала (в минутах)
?150
150 минут - это 2ч. 30 мин.
Занятие 2 (2 часть). Решение задач
1. Из трехзначного числа х вычли его последнюю цифру. Когда результат разделили на 10, а к частному слева приписали последнюю цифру числа х, то получилось число у. Найти число х по заданному значению числа у (значение у вводится с клавиатуры, 99<у<1000, число десятков в числе у не равно нулю).
2. В трехзначном числе х зачеркнули первую цифру. Когда полученное число умножили на 10, а произведение сложили с первой цифрой числа х, то получилось число у. По заданному значению числа у найти число х (значение у вводится с клавиатуры, 99<у<1000, число у не заканчивается нулем).
З. В трехзначном числе х зачеркнули его вторую цифру. Когда к образовавшемуся двузначному числу слева приписали вторую цифру числа х, то получилось число у. По заданному у найти число х (значение у вводится с клавиатуры, 99<у<1000, число десятков в числе у не равно нулю).
4. В трехзначном числе х зачеркнули его вторую цифру. Когда к образовавшемуся двузначному числу справа приписали вторую цифру числа х, то получилось число у. По заданному значению числа у найти число х (значение у вводится с клавиатуры, 99<у<1000).
5. В трехзначном числе х зачеркнули его последнюю цифру. Когда в оставшемся двузначном числе переставили цифры, а затем приписали к ним слева последнюю цифру числа х, то получилось число у. По заданному у найти число х (значение у, вводится с клавиатуры, 99<у<1000, число единиц в числе у не равно нулю).
6. С начала суток прошло N секунд. Определить сколько целых часов прошло с начала суток.
7. С начала суток прошло N секунд. Определить сколько полных минут прошло с начала последнего часа.
8. С начала суток прошло N секунд. Определить сколько полных секунд прошло с начала последней минуты.
9. Даны два целых числа а и b. Если число а делится на b или число b делится на а, то вывести 1, иначе - любое другое число. Условные операторы и операторы цикла не использовать.
10. Даны целые числа h и m(0<h<=23, 0<=m<=59), указывающие момент времени: «h часов, m минут». Определить угол (в градусах) между положением часовой стрелки в начале суток и в указанный момент времени.
11. С начала суток часовая стрелка повернулась на у градусов (0<у<360, y – целое число). Определить число целых часов и число полных минут прошедших с начала суток.
12. Часовая стрелка образует угол у с лучом, проходящим через центр и через точку, соответствующую 12 часам на циферблате, 0<y<=360. Определить значение угла для минутной стрелки.
13. Даны целое число k (1<=k<=180) и последовательность цифр ..9899, в которой выписаны подряд все двузначные числа. Определить номер пары цифр, в которую входит k-я цифра.
14. Даны целое число k (1<=k<=180) и последовательность цифр ..9899, в которой выписаны подряд все двузначные числа. Определить k-ю цифру, если известно, что k – четное число.
15. Даны целое число k (1<=k<=180) и последовательность цифр ..9899, в которой выписаны подряд все двузначные числа. Определить k-ю цифру, если известно, что k – нечетное число.
16. Даны целое число k (1<=k<=150) и последовательность цифр .. в которой выписаны подряд все трехзначные числа от 101 до 150. Определить k-ю цифру, если известно, что k число, кратное трем.
17. Даны целое число k (1<=k<=150) и последовательность цифр .. в которой выписаны подряд все трехзначные числа от 101 до 150. Определить k-ю цифру, если известно, что k одно из чисел 1, 4 7…
18. Даны целое число k (1<=k<=150) и последовательность цифр .. в которой выписаны подряд все трехзначные числа от 101 до 150. Определить k-ю цифру, если известно, что k одно из чисел 2, 5, 8 ...





