Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по TURBO PASCAL.doc
Скачиваний:
18
Добавлен:
04.11.2018
Размер:
1.13 Mб
Скачать
    1. Самостоятельные задания

  • Составьте программу, которая выведет на экран вашу визитную карточку.

  • Даны два года: g1, g2 (эти числа вводятся с клавиатуры). Написать, сколько между ними лет.

  • Дано: год и месяц начальной даты; год и месяц конечной даты. Вычислить, сколько месяцев между этими датами.

  1. Работа с цифрами

Мы уже рассмотрели стандартные операции, которые можно производить с целыми (integer) числами. Теперь разберём основные типы задач, которые решаются с использованием этих операций, а именно: работа с цифрами числа. Это достаточно серьёзный вопрос, который вполне может встретиться на школьном экзамене по информатике.

    1. Выделение цифр числа

Используя операции деления mod и div можно выделять нужные цифры числа. Проще всего выделить последнюю цифру числа, для этого надо найти остаток от деления числа на 10, например:

3456 mod 10 = 6 – последняя цифра числа 3456

Теперь давайте попробуем найти предпоследнюю цифру. Попробуйте самостоятельно решить это задание, прежде чем читать дальше.

Существует два способа решения этой задачи.

Первый способ сводится к нахождению последней цифры числа. Для этого надо сначала «отбросить» правую цифру в исходном числе, тогда искомая цифра окажется последней. А последнюю цифру мы умеем находить. Как же «отбросить» последнюю цифру? Очень просто, надо число поделить на 10:

3456 div 10 = 345 - начальное число без последней цифры

Теперь выделим последнюю цифру нового числа:

345 mod 10 = 5 - искомая предпоследняя цифра!

Теперь объединим эти два действия в одно:

3456 div 10 mod 10 = 5.

Во втором способе мы подойдём к числу с другой стороны и выделим сначала две крайние правые цифры, получим двузначное число:

3456 mod 100 = 56

Теперь от этого двузначного числа надо «отбросить» последнюю цифру:

56 div 10 = 5

Вот и всё. Осталось только объединить эти два действия в одно:

3456 mod 100 div 10 = 5

Ещё раз самостоятельно разберите эти примеры и попробуйте выделить третью с конца цифру двумя способами.

    1. Конструирование числа по его цифрам

Как из цифр числа составить само число?

Может быть помните, как в 4-ом классе на уроке математики вы расписывали числа по разрядам:

89743 = 8*10000 + 9*1000 + 7*100 + 4*10 + 3

В чём суть этого равенства? В том, что можно числа собирать из цифр, как машинку из деталей конструктора. Например, у нас есть три переменные a, b, c, в которых записаны цифры трёхзначного числа, которое символически можно обозначить так: (abc). Тогда собрать по косточкам это число можно так:

chislo := 100*a + 10*b + c

Например, если a=3, b=7, c=1, то

(abc) = 100*3 + 10*7 + 1 = 371

Попробуйте аналогичным образом собрать следующие числа из их цифр:

(abcd) (cd) (dbase) (snickers) (dardva)

    1. Обобщение

Зная, как доставать из числа цифры и как конструировать число по его цифрам можно решать задачи вот такого типа:

Дано трёхзначное число, переписать его в обратном порядке.

Общий принцип решения задания: сначала выделяем все цифры числа, потом собираем их в нужном порядке. Эта идея реализована в следующей программе, где цифры числа хранятся в переменных c1, c2 c3.

Program Zadom;

Var a, c1, c2, c3, rez : integer;

Begin

a := 425; { Данное трёхзначное число }

c3 := a mod 10; { Выделяем третью цифру }

c2 := a div 10 mod 10; { Выделяем вторую цифру }

c1 := a div 100; { Выделяем первую цифру }

rez := c3*100 + c2*10 + c1 { Конструируем нужное число из цифр }

End.

Фразы, записанные в {фигурных} скобках, называются комментариями. Комментарии не обрабатываются компьютером, но служат подсказками для человека, читающего программу. Их обязательно надо использовать, поясняя некоторые замысловатые участки программы.