CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Решить задачу раз плюнуть

Олег ДАНИЛЮК lezha@ua.fm

Продолжение, начало см. в МК № 3, 8, 16 (226, 231, 239).
Здравствуйте, уважаемые читатели. Сегодня мы продолжим решать задачи по программированию. Доставайте тетради (включайте компьютеры), начинаем следующий урок.

А с чего мы всегда начинаем урок? Правильно, с проверки домашнего задания!

Задача № 11

Ввести в программу три числа. Разделить максимальное на минимальное. Вывести на экран значение трех данных чисел и полученный результат.

Вот и вся задача. Найти максимальное значение очень просто. Сначала сравниваем первое число со вторым. Переменной max присваиваем значение большего из них, а затем сравниваем ее с третьим числом. Если max больше него, то ничего не делаем, если меньше — присваиваем переменной max значение третьего числа. Аналогично поступаем и с минимальным значением.

Внимательный читатель заметит, что в условии сказано: «Вывести на экран значение трех данных чисел», но в решении нет соответствующего оператора Writeln. В данном случае это необязательно, так как при считывании оператором Read этих чисел они появляются на экране. Нет смысла печатать их два раза. Давайте перейдем к следующей задаче.

Задача №12

Вывести на экран все значения Х, для которых Y=SQR(X)/3 будет целым числом. Предельное значение Х задавать с помощью оператора INPUT.

Как видите, задача решается очень просто: если при делении квадрата числа на 3 остаток будет равен нулю, то Y будет целым числом. Перейдем к следующей.

Задача №13

Составить программу, принимающую с клавиатуры две даты и определяющую, какая из них является более поздней. Каждую дату принимать в виде одного данного (например: 120291).

Наконец-то более-менее сложная задача. Тринадцатая все-таки :-).

Довольно массивная задача. Причем, я ее сделал не до конца. Нужно более тщательно проверять правильность ввода дат. Я не привел соответствующего кода потому, что он очень простой, и вы сами без проблем его напишете, но зато этот код занял бы много места.

Переменные в программе имеют тип LongInt, так как Integer не потянет такие большие числа. В принципе, всем переменным, кроме d1 и d2, можно было бы задать тип Integer, для экономии памяти. Переменная типа LongInt занимает 32 бита (4 байта), тогда как Integer — всего 16 бит (2 байта). Но на данном этапе развития информационных технологий это не существенно :-).

При решении задачи я использовал алгоритм нахождения определенных цифр числа, а так как он уже был описан в первой статье, то повторяться не буду. Вычисление более поздней даты производится, конечно же, сравнением. Сначала сравниваем года, потом (если года одинаковы) месяцы, а после — дни, если месяцы тоже одинаковы.

Две строки, которые выводят на экран отдельно день, месяц и год, написаны для красоты. Но они очень пригодятся, если пользователь неправильно ввел дату. Например, если ввести четырехзначное число, то будет непонятно, какая цифра что означает. Тогда эти строки помогут пользователю разобраться, почему получился такой результат, а не другой.

И последний штрих. Зачем я написал Readln в конце? Все очень просто. Вам не надоело нажимать Alt+F5, чтобы просмотреть результат выполнения программы? Мне тоже надоело. А если мы напишем в конце Readln (или Read), то программа не завершится, пока вы не нажмете на Enter. Есть еще один способ добиться этого результата — написать repeat until keypressed. Но в самом начале программы надо подключить модуль Crt (написать uses Crt) — тогда пустой цикл (который ничего не делает) будет выполнятся до тех пор, пока пользователь не нажмет любую клавишу на клавиатуре.

С этой задачей покончили, давайте перейдем к следующей:

Задача №14

Вывести на экран пять строк, каждая из которых состоит из следующих реквизитов: угол в градусах; угол в радианах; синус угла; косинус угла. Начальное значение угла в градусах принимать с клавиатуры. Шаг приращения — 30.

Для решения задачи требуются элементарные знания по геометрии — в частности, перевод градусов в радианы. Кстати, не забывайте, что функции Sin(x), Cos(x) и Arctan(x) возвращают синус, косинус и арктангенс угла x в радианах, но не в градусах. Причем, x — выражение вещественного типа.

Надо сказать, человек, который плохо знает математику, никогда не будет хорошим программистом. Причем, часто нужны знания, которые не дает средняя школа, а иногда этому не учат даже в ВУЗе. Мне недавно довелось решать задачу, для решения которой требуются знания по комбинаторике. В школе мы этого даже близко не проходили. Кроме того, часто требуются знания по физике и языку (для оформления программы). Без знания английского языка практически невозможно разобраться в справке. А над работой электронных переводчиков можно только посмеяться.

Задача №15

Площадь ткани, идущей на пошив костюма 50-го размера (без учета отходов), составляет 2.8 м2, 52-го размера — на 12% больше и 54-го — на 24%. Отходы во всех случаях составляют 8%. Определить необходимую площадь ткани для пошива заданного количества костюмов всех размеров.

Задачка несложная. Но опять-таки она требует некоторых знаний по математике. Знаний, конечно же, элементарных, но ведь и задачка тоже элементарная. К чему это я? Да все к тому же: если вы устроитесь на работу программистом, задачи вам придется решать посложнее. Делайте выводы.

Процент вычислить проще пареной репы. Например, 15% от 234 равно 234/100*15 или 234*0.15. В нашем случае мы прибавляем процент к начальному значению.

Устали? Ладно, пора заканчивать этот урок. Но не расслабляйтесь, ведь еще надо сделать домашнее задание:

Задача №16

Вывести на печать линейную таблицу, состоящую из случайных чисел в интервале от 100 до 600, имеющую 10 строк по 5 чисел в каждой.

Почему коварную? Потому что в ней все называется чужими именами. Но, если поразмыслить, то все становится на свои места. Вывести на печать – вывести на экран, линейную таблицу – двумерный массив, имеющую 10 строк по 5 чисел в каждой – размерностью 10х5, то есть состоящую из 10 строк и 5 столбцов. После таких рассуждений начинаешь понимать, что это легкая задача. Сложность работы программиста состоит не только в том, чтобы написать требуемый код, но и в том, чтобы понять, что именно от тебя хотят.

Задача №17

Получить 100 случайных чисел, не превышающих число 500. Вывести на экран построчно эти числа, а также подсчитать количество и вывести на экран те из них, которые заканчиваются цифрой 7.

Удачи вам в решении этой задачи — и учите математику :-)!

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov