Задача 1. “Зарплата” – 10 баллов
Тип задачи: Задача по программированию и алгоритмам
Задание рассчитано на написание программы на любом языке программирования.
Ввод данных может осуществляться как из входного файла, так и с клавиатуры.
Здесь ты найдешь уроки, исследования, интересные факты и вдохновение для творчества.
Если учащиеся не знакомы с языками программирования, то решение может быть сдано на алго-ритмическом или естественном языках.
В отделе работают 3 сотрудника, которые получают заработную плату в рублях. Требуется определить: на сколько зарплата самого высокооплачиваемого из них отличается от самого низкооплачиваемого.
Входные данные
В единственной строке входного файла INPUT.TXT записаны размеры зарплат всех сотрудников через пробел. Каждая заработная плата – это натуральное число, не превышающее 105.
Выходные данные
В выходной файл OUTPUT.TXT необходимо вывести одно целое число — разницу между максимальной и минимальной зарплатой.
Примеры
№ | INPUT.TXT | OUTPUT.TXT |
1 | 100 500 1000 | 900 |
2 | 36 11 20 | 25 |
Задача 2. “Четырехзначный палиндром” – 15 баллов
Тип задачи: Задача по программированию и алгоритмам
Задание рассчитано на написание программы на любом языке программирования.
Ввод данных может осуществляться как из входного файла, так и с клавиатуры.
Если учащиеся не знакомы с языками программирования, то решение может быть сдано на алго-ритмическом или естественном языках.
Требуется написать программу, определяющую, является ли четырехзначное натуральное число N палиндромом, т.е. числом, которое одинаково читается слева направо и справа налево.
Входные данные
Входной файл INPUT.TXT содержит натуральное число N (1000 ≤ N ≤ 9999).
Выходные данные
В выходной файл OUTPUT.TXT следует вывести слово «YES», если число N является палиндромом, или «NO» – если нет.
Примеры
№ | INPUT.TXT | OUTPUT.TXT |
1 | 6116 | YES |
2 | 1231 | NO |
Задача 3. “Арбузы” – 20 баллов
Тип задачи: Задача по программированию и алгоритмам
Задание рассчитано на написание программы на любом языке программирования.
Ввод данных может осуществляться как из входного файла, так и с клавиатуры.
Если учащиеся не знакомы с языками программирования, то решение может быть сдано на алго-ритмическом или естественном языках.
Иван Васильевич пришел на рынок и решил купить два арбуза: один для себя, а другой для тещи. Понятно, что для себя нужно выбрать арбуз потяжелей, а для тещи полегче. Но вот незадача: арбузов слишком много и он не знает, как же выбрать самый легкий и самый тяжелый арбуз? Помогите ему!
Входные данные
В первой строке входного файла INPUT.TXT задано одно число N – количество арбузов. Вторая строка содержит N чисел, записанных через пробел. Здесь каждое число – это масса соответствующего арбуза. Все числа натуральные и не превышают 30000.
Выходные данные
В выходной файл OUTPUT.TXT нужно вывести два числа через пробел: массу арбуза, который Иван Васильевич купит теще и массу арбуза, который он купит себе.
Пример
№ | INPUT.TXT | OUTPUT.TXT |
1 | 5 5 1 6 5 9 |
|
класс (max – 45 баллов)
Задача 1. “Зарплата” – 10 баллов
Тип задачи: Задача по программированию и алгоритмам
Задание рассчитано на написание программы на любом языке программирования.
Ввод данных может осуществляться как из входного файла, так и с клавиатуры.
Если учащиеся не знакомы с языками программирования, то решение может быть сдано на алго-ритмическом или естественном языках.
В данной задаче необходимо найти наибольшее и наименьшее значение и вывести их разность. Для этого проще всего упорядочить заданные числа A, B и C в порядке неубывания (A<=B<=C) и тогда значение C-A будет решением этой задачи. Для этого можно было бы прибегнуть к принципу чайника и отсортировать массив из трех элементов методом «пузырька», например. Но это решение не самое разумное в данном случае.
Здесь можно применить тот же метод «пузырька», но без циклов и массивов. Действительно, за 3 сравнения можно достичь желаемого результата. Сначала сравнивая А и B мы можем в A поместить наименьшее из них, поменяв их местами. Далее сравнивая A и C мы поместим в А наименьший из 3х чисел элемент. А после сравнения B и C в C получим наибольший. Описанный выше алгоритм можно представить в виде следующей блок-схемы:
На всякий случай напомним, как с помощью третьей переменной можно поменять значения переменных местами: x=a; a=b; b=x;
В языке Си для различных целочисленных переменных a и b можно использовать более красивую и короткую запись без использования третьей переменной:
a^=b^=a^=b;
Задача 2. “Четырехзначный палиндром” – 15 баллов
Тип задачи: Задача по программированию и алгоритмам
Задание рассчитано на написание программы на любом языке программирования.
Ввод данных может осуществляться как из входного файла, так и с клавиатуры.
Если учащиеся не знакомы с языками программирования, то решение может быть сдано на алго-ритмическом или естественном языках.
Решение №1
Наиболее простой способ решения этой задачи заключается в чтении заданного числа в качестве строки и сравнения первого с четвертым и второго со вторым символов. Алгоритмическиэторешениевыглядиттак:
String s;
read(s);
if(s[1]=s[4] and s[2]=s[3]) write(‘YES’) else write(‘NO’);
Решение №2
Не всегда самое простое решение приходит первым в голову и не всегда начинающие программисты умеют работать со строками. Дело в том, что когда видишь, что во входных данных число, то его хочется считать в целочисленную переменную, потом расцепить на цифры, а затем уже провести сравнение. Для того, чтобы получить n-ю цифру справа, нужно исходное число x разделить целочисленно на 10n-1, отбросив тем самым лишние n-1 цифр справа от исходного числа, а затем взять остаток от деления на 10 от того, что получилось, т.е. взять последнюю цифру, которая и окажется n-й справа от исходного числа x. Реализация с использованием данного механизма может выглядеть так:
int x,x1,x2,x3,x4;
read(x);
x1 = x div 1000;
x2 = x div 100 mod 10;
x3 = x div 10 mod 10;
x4 = x mod 10;
if(x1=x4 and x2=x3) write(‘YES’) else write(‘NO’);
Задача 3. “Арбузы” – 20 баллов
Тип задачи: Задача по программированию и алгоритмам
Задание рассчитано на написание программы на любом языке программирования.
Ввод данных может осуществляться как из входного файла, так и с клавиатуры.
Если учащиеся не знакомы с языками программирования, то решение может быть сдано на алго-ритмическом или естественном языках.
В этой задаче из представленных n чисел следует выбрать наибольшее и наименьшее число, а затем просто их вывести. Для поиска максимального элемента следует определить переменную max, в которую предварительно можно занести наименьшее возможное значение, 0 например (ведь все числа натуральные, т.е. больше нуля). Далее следует считывать в переменную x текущее значение и проверять: не больше ли оно ранее найденного, которое как раз храниться в max. Если да, то будем записывать его в max. Таким образом, по окончании процесса мы получим в max наибольшее значение. Поиск минимального элемента происходит аналогично. Заметим, что в этой задаче можно обойтись без использования массивов.
Алгоритм решения этой задачи:
read(n);
max=0; min=32000;
for i=1..n{
read(x);
if(x > max) max=x;
if(x < min) min=x;
}
write(min,’ ‘,max);
На самом деле в этой задаче может возникнуть непонятный момент: что делать, когда арбуз всего один? Кому его нужно купить: себе или теще? Если рассуждать разумно (по жизни), то конечно лучше купить его себе, а теща обойдется и без арбуза. Но если следовать условиям задачи получается, что этот арбуз будет адресован как Ивану Васильевичу, так и его теще и в данном случае нужно выводить два одинаковых числа в качестве ответа.