Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб №3 (Информатика)

.pdf
Скачиваний:
12
Добавлен:
29.03.2015
Размер:
279.92 Кб
Скачать

21

Решение. Рассмотрим особенности решения этой задачи на примере.

Возьмем трехзначное число 354. Цифрами данного числа являются 3, 5 и 4. Эти цифры каким-то образом нужно извлечь из числа, чтобы получить их сумму.

Известно, что: 354 = 35*10+4

Поэтому, чтобы извлечь число 4, достаточно найти остаток от деления числа 354 на 10. Для этого в языке Паскаль используется операция mod:

354 mod 10

Далее, необходимо извлечь цифры 3 и 5. Для начала извлечем число

35 как неполное частное от деления 354 на 10. Для этого в языке Паскаль используется операция div:

354 div 10

Известно, что: 35 = 3*10+5

Поэтому, чтобы извлечь цифру 5, найдем остаток от деления числа 35

на 10. Для этого воспользуемся операцией mod:

35 mod 10

Чтобы извлечь цифру 3, найдем неполное частное от деления числа 35

на 10. Для этого воспользуемся операцией div:

35 div 10

На рис. 15 представлен пример выполнения данного задания в системе Турбо-Паскаль.

22

Рис. 15. Текст программы для нахождения суммы цифр числа

Рассмотрим особенности данной программы.

Все используемые переменные объявлены в разделе описания переменных var и имеют тип integer (строки 1-2). Переменная x

соответствует вводимому пользователю трехзначному числу. Переменные c1, c2 и c3 соответствуют цифрам числа в разрядах единиц, десятков и сотен соответственно. Переменная sum соответствует сумме цифр числа.

Исполняемые операторы программы располагаются между служебными словами begin (строка 3) и end (строка 17).

Изначально значение переменной sum обнуляется (строка 4).

Далее, с помощью процедуры write, выводится подсказка пользователю о том, что необходимо ввести значение переменной x (строка

5).

С помощью процедуры readln пользователю предлагается ввести значение переменной x (строка 6).

В строке 7 с помощью операции mod извлекается цифра в разряде единиц, и ее значение присваивается переменной c1. Затем это значение выводится на экран (строка 8) в качестве подсказки для пользователя.

Для того, чтобы извлечь цифры в разряде десятков и сотен, отбросим цифру в разряде единиц, применив для этого операцию div, и получим тем самым двузначное число, представляющее собой неполное частное от деления трехзначного числа на 10 (строка 9).

Встроке 10 с помощью операции mod извлекается цифра в разряде десятков, и ее значение присваивается переменной c2. Затем это значение выводится на экран (строка 11) в качестве подсказки для пользователя.

Встроке 12 с помощью операции div извлекается цифра в разряде сотен, и ее значение присваивается переменной c3. Затем это значение выводится на экран (строка 13) в качестве подсказки для пользователя.

23

В строке 14 вычисляется сумма цифр числа и значение этой суммы

присваивается переменной sum.

Для вывода суммы цифр числа в строке 15 используется стандартная

процедура writeln.

Встроке 16 с помощью стандартной процедуры readln

пользователю предлагается завершить выполнение программы, нажав клавишу «Enter».

Рассмотрим особенности выполнения программы.

Изначально пользователю предлагается ввести значение переменной x, т.е. трехзначного числа (рис. 16).

Рис. 16. Пользователю необходимо ввести значение переменной x

Вводим значение переменной x, равное, например, 239, и нажимаем клавишу «Enter» (рис. 17). На экране выводятся извлеченные цифры числа и их сумма.

Рис. 17. На экране выводится сумма цифр числа

Завершаем выполнение программы, нажав клавишу «Enter».

Вопросы для самоконтроля

1)Для чего предназначен раздел операторов?

2)Каким символом операторы отделяются друг от друга?

3)Какой символ является признаком конца программы?

4)Для чего предназначены комментарии? Каким образом они записываются?

5)Для чего предназначен раздел описания, начинающийся с ключевого слова var?

24

6)В каком разделе описываются переменные, которым требуется присвоить значение до начала работы программы?

7)Какая программа называется линейной?

8)Что называется консолью?

9)Для чего предназначены операторы read и readln? В чем заключается отличие между ними?

10)Для чего предназначены операторы write и writeln? В чем заключается отличие между ними?

11)В крайние правые позиции поля шириной 11 символов необходимо вывести десятичное представление переменной x типа real в

нормализованном формате с плавающей точкой. Запишите на языке Турбо-

Паскаль соответствующий оператор вывода.

12) В крайние правые позиции поля шириной 9 символов необходимо вывести десятичное представление переменной x типа real в формате с фиксированной точкой, причем после десятичной точки должно выводиться

3 цифры, представляющие дробную часть числа. Запишите на языке Турбо-

Паскаль соответствующий оператор вывода.

Список литературы

1) Семакин И.Г., Шестаков А.П. Лекции по программированию:

Учебное пособие. Изд. 2-е, доп. – Пермь: Изд-во Перм. ун-та, 1998. – 279 с. 2) Программирование на языке высокого уровня Паскаль. Лекция 1:

Основные понятия языка. [Электронный ресурс] – Режим доступа: http://www.intuit.ru/studies/courses/628/484/lecture/6259. (Дата обращения: 28.06.2013).