Слайд 1FREE PASCAL ПРОГРАММАЛАУ ТІЛІНДЕГІ ЕСЕПТЕР
Шапагатова Олеся Шапагатовна
БҚО Жәнібек ауданы ЖББ Т.Жароков
атындағы орта мектебі
информатика пәні мұғалімі
Слайд 2Неглухой телефон
(Время: 1 сек. Память: 16 Мб Сложность: 1%)
Возможно, что Вы
когда то играли в игру «Глухой телефон», либо слышали о ней. В этой игре участникам приходится передавать информацию друг другу различными способами: словесно, образно, бывает даже приходится писать левой рукой текст, который другой участник команды должен будет прочитать. Так же известно, что практически никогда передаваемая информация не доходит до конечного адресата. Обозначим за Fi(x) функцию, которая преобразует текст передаваемой информации x в ту, которую получит участник i+1 от участника i. Тогда последний n-й участник получит данные y, которые будут выражаться следующей формулой:
y = Fn-1(Fn-2(…F2(F1(x))))
Но Вам необходимо исключить какие-либо внешние факторы, которые могут исказить исходную информацию и Вы должны реализовать программу «неглухой телефон», которая сможет безошибочно доставлять исходные данные, т.е. в нашем случае функция Fi(x) = x для всех i от 1 до n-1.
Входные данные
В единственной строке входного файла INPUT.TXT записано натуральное число от 1 до 100.
Выходные данные
В выходной файл OUTPUT.TXT нужно вывести в точности то же число, которое задано во входном файле.
Пример
Слайд 3var a:byte;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(a);
write(a);
end.
Неглухой телефон
(Время: 1 сек. Память: 16 Мб Сложность:
1%)
Слайд 4Требуется сложить два целых числа А и В.
Входные данные
В единственной
строке входного файла INPUT.TXT записано два натуральных числа через пробел, не превышающих 109.
Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — сумму чисел А и В.
Пример
А+В
(Время: 1 сек. Память: 16 Мб Сложность: 2%)
Слайд 5var a,b:longint;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(a,b);
write(a+b);
end.
А+В
(Время: 1 сек. Память: 16 Мб Сложность: 2%)
Слайд 6Эния
(Время: 1 сек. Память: 16 Мб Сложность: 3%)
Неспокойно сейчас на стапелях
шестого дока межгалактического порта планеты Торна. Всего через месяц закончится реконструкция малого броненесущего корвета “Эния”. И снова этому боевому кораблю и его доблестной команде предстоят тяжелые бои за контроль над плутониевыми рудниками Сибелиуса. Работа не прекращается ни на секунду, лазерные сварочные аппараты работают круглые сутки. От непрерывной работы плавятся шарниры роботов-ремонтников. Но задержаться нельзя ни на секунду.
И вот в этой суматохе обнаруживается, что термозащитные панели корвета вновь требуют срочной обработки сульфидом тория. Известно, что на обработку одного квадратного метра панели требуется 1 нанограмм сульфида. Всего необходимо обработать N прямоугольных панелей размером A на B метров. Вам необходимо как можно скорее подсчитать, сколько всего сульфида необходимо на обработку всех панелей “Энии”. И не забудьте, что панели требуют обработки с обеих сторон.
Входные данные
Во входном файле INPUT.TXT содержатся 3 целых положительных числа N (N <= 100), A (A <= 100), B (B <= 100)
Выходные данные
В выходной файл OUTPUT.TXT нужно вывести единственное число – вес необходимого для обработки сульфида тория в нанограммах.
Примеры
Слайд 7var a,b,n:longint;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(n,a,b);
write(2*n*a*b);
end.
Эния
(Время: 1 сек. Память: 16 Мб Сложность: 3%)
Слайд 8Больше-меньше
(Время: 1 сек. Память: 16 Мб Сложность: 3%)
Одна из основных
операций с числами – их сравнение. Мы подозреваем, что вы в совершенстве владеете этой операцией и можете сравнивать любые числа, в том числе и целые. В данной задаче необходимо сравнить два целых числа.
Входные данные
В двух строчках входного файла INPUT.TXT записаны числа A и B, не превосходящие по абсолютной величине 2*109.
Выходные данные
Запишите в выходной файл OUTPUT.TXT один символ “<”, если A < B, “>”, если A > B и “=”, если A=B.
Примеры
Слайд 9var a,b:integer;
begin
assign(input,'input.txt');reset(input);
assign(output,'output.txt'); rewrite(output);
read(a,b);
if a>b
then write('>')
else if a
else write('=');
end.
Больше-меньше
(Время: 1 сек. Память: 16 Мб Сложность: 3%)
Слайд 10Игра
(Время: 1 сек. Память: 16 Мб Сложность: 4%)
В свободное время одноклассники
Вася и Петя любят играть в различные логические игры: морской бой, крестики-нолики, шахматы, шашки и многое другое. Ребята уже испробовали и поиграли во всевозможные классические игры подобного рода, включая компьютерные. Однажды им захотелось сыграть во что-нибудь новое, но ничего подходящего найти не удалось. Тогда Петя придумал следующую игру «Угадайка»: Играют двое участников. Первый загадывает любое трехзначное число, такое что первая и последняя цифры отличаются друг от друга более чем на единицу. Далее загадавший число игрок переворачивает загаданное число, меняя первую и последнюю цифры местами, таким образом получая еще одно число. Затем из максимального из полученных двух чисел вычитается минимальное. Задача второго игрока – угадать по первой цифре полученного в результате вычитания числа само это число. Например, если Вася загадал число 487, то перестановкой первой и последней цифры он получит число 784. После чего ему придется вычесть из 784 число 487, в результате чего получится число 297, которое и должен отгадать Петя по указанной первой цифре «2», взятой из этого числа. Петя успевает лучше Васи по математике, поэтому практически всегда выигрывает в играх такого типа. Но в данном случае Петя схитрил и специально придумал такую игру, в которой он не проиграет Васе в любом случае. Дело в том, что придуманная Петей игра имеет выигрышную стратегию, которая заключается в следующем: искомое число всегда является трехзначным и вторая его цифра всегда равна девяти, а для получения значения последней достаточно отнять от девяти первую, т.е. в рассмотренном выше случае последняя цифра равна 9-2=7. Помогите Пете еще упростить процесс отгадывания числа по заданной его первой цифре, написав соответствующую программу.
Входные данные
В единственной строке входного файла INPUT.TXT задана единственная цифра К, соответствующая первой цифре полученного Васей в результате вычитания наименьшего загаданного Васей значения из наибольшего.
Выходные данные
В выходной файл OUTPUT.TXT нужно вывести значение полученной Васей разности.
Примеры
Слайд 11var a:byte;
begin
assign(input,'input.txt');reset(input);
assign(output,'output.txt');rewrite(output);
read(a);
write(a,9,9-a);
end.
Игра
(Время: 1 сек. Память: 16 Мб Сложность: 4%)
Слайд 12Зарплата
(Время: 1 сек. Память: 16 Мб Сложность: 4%)
В отделе работают 3
сотрудника, которые получают заработную плату в рублях. Требуется определить: на сколько зарплата самого высокооплачиваемого из них отличается от самого низкооплачиваемого.
Входные данные
В единственной строке входного файла INPUT.TXT записаны размеры зарплат всех сотрудников через пробел. Каждая заработная плата – это натуральное число, не превышающее 105.
Выходные данные
В выходной файл OUTPUT.TXT необходимо вывести одно целое число — разницу между максимальной и минимальной зарплатой.
Примеры
Слайд 13var a,b,c,max,min:longint;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(a,b,c);
if a>b
then begin max:=a; min:=b end
else begin max:=b;
min:=a end;
if max
if min>c then min:=c;
write(max-min);
end.
Зарплата
(Время: 1 сек. Память: 16 Мб Сложность: 4%)
Слайд 14Два бандита
(Время: 1 сек. Память: 16 Мб Сложность: 4%)
Бандиты Гарри и
Ларри отдыхали на природе. Решив пострелять, они выставили на бревно несколько банок из-под кока-колы (не больше 10). Гарри начал простреливать банки по порядку, начиная с самой левой, Ларри — с самой правой. В какой-то момент получилось так, что они одновременно прострелили одну и ту же последнюю банку.
Гарри возмутился и сказал, что Ларри должен ему кучу денег за то, что тот лишил его удовольствия прострелить несколько банок. В ответ Ларри сказал, что Гарри должен ему еще больше денег по тем же причинам. Они стали спорить кто кому сколько должен, но никто из них не помнил сколько банок было в начале, а искать простреленные банки по всей округе было неохота. Каждый из них помнили только, сколько банок прострелил он сам.
Определите по этим данным, сколько банок не прострелил Гарри и сколько банок не прострелил Ларри.
Входные данные
В единственной строке входного файла INPUT.TXT записано 2 числа — количество банок, простреленных Гарри и Ларри соответственно.
Выходные данные
В файл OUTPUT.TXT выведите 2 числа — количество банок, не простреленных Гарри и Ларри соответственно.
Пример
Слайд 15var a,b,c:byte;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(a,b);
c:=(a+b)-1;
write(c-a,' ',c-b);
end.
Два бандита
(Время: 1 сек. Память: 16 Мб
Сложность: 4%)
Слайд 16Баскетбол
(Время: 1 сек. Память: 16 Мб Сложность: 5%)
Известны результаты каждой из
4х четвертей баскетбольной встречи. Нужно определить победителя матча.
Входные данные
Входной файл INPUT.TXT содержит 4 строки, в каждой строке находится два целых числа a и b – итоговый счет в соответствующей четверти. а – количество набранных очков за четверть первой командой, b – количество очков, набранных за четверть второй командой. (0 ≤ a,b ≤ 100).
Выходные данные
В выходной файл OUTPUT.TXT выведите номер выигравшей команды, в случае ничьей следует вывести «DRAW».
Примеры
Слайд 17var a,b,i:byte;c,d:integer;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
for i:=1 to 4 do
begin
readln(a,b);
c:=c+a;
d:=d+b;
end;
if c>d
then write (1)
else if d>c
then write(2)
else write('DRAW');
end.
Баскетбол
(Время: 1 сек. Память: 16 Мб Сложность: 5%)
Слайд 18Арифметика
(Время: 1 сек. Память: 16 Мб Сложность: 5%)
В прошлом году Вася
пошел в школу и научился считать. В этом году он изучил таблицу умножения и теперь умеет перемножать любые числа от 1 до 10 без ошибок. Друг Петя рассказал ему про системы счисления, отличные от десятичной. В частности, про двоичную, восьмеричную и даже шестнадцатеричную. Теперь Вася без труда (но уже с помощью листка и ручки) может перемножать числа от 1 до 10 и в этих системах, используя перевод из нестандартной системы в десятичную и обратно из десятичной. Например, если Васе нужно перемножить числа 101 и 1001 в двоичной системе, то он сначала эти числа переводит в десятичное представление следующим образом:
(101)2=1*22+0*21+1*20=4+0+1=5
(1001)2=1*23+0*22+0*21+1*20=8+0+0+1=9
После чего перемножение чисел 5 и 9 Вася с легкостью производит в десятичной системе счисления в уме и получает число 45. Далее производится перевод из десятичной системы счисления в двоичную. Для этого Вася делит число 45 на 2 (порядок системы счисления), запоминая остатки от деления, до тех пор пока в результате не останется число 0:
Ответ составляется из полученных остатков от деления путем их записи в обратном порядке. Таким образом Вася получает результат: (101)2 * (1001)2 = (101101)2. Но теперь Вася изучает таблицу умножения чисел от 1 до 100 в десятичной системе счисления, а поскольку запомнить такую таблицу очень сложно, то Васе придется очень долго ее зубрить. Составьте для Васи программу, которая поможет ему проверять свои знания.
Входные данные
Во входном файле INPUT.TXT записаны три натуральных числа A, B и C через пробел. Числа A и B <= 102, а C <= 106.
Выходные данные
В выходной файл нужно вывести YES в том случае, если A*B=C и вывести NO в противном случае.
Примеры
Слайд 19var a,b:byte; c:longint;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(a,b,c);
if a*b=c then write('YES') else write('NO');
end.
Арифметика
(Время: 1
сек. Память: 16 Мб Сложность: 5%)
Слайд 20Журавлики
(Время: 1 сек. Память: 16 Мб Сложность: 7%)
Петя, Катя и Сережа
делают из бумаги журавликов. Вместе они сделали S журавликов. Сколько журавликов сделал каждый ребенок, если известно, что Петя и Сережа сделали одинаковое количество журавликов, а Катя сделала в два раза больше журавликов, чем Петя и Сережа вместе?
Входные данные
В единственной строке входного файла INPUT.TXT записано одно натуральное число S – общее количество сделанных журавликов (S < 106).
Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести три числа, разделенных пробелами – количество журавликов, которые сделал каждый ребенок (Петя, Катя и Сережа).
Примеры
Слайд 21var s:longint;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(s);
write(s div 6,' ',4*s div 6,' ',s div
6);
end.
Журавлики
(Время: 1 сек. Память: 16 Мб Сложность: 7%)
Слайд 22Пятью пять - двадцать пять!
(Время: 1 сек. Память: 16 Мб Сложность:
8%)
Вася и Петя учатся в школе в одном классе. Недавно Петя поведал Васе о хитром способе возведения в квадрат натуральных чисел, оканчивающихся на цифру 5. Теперь Вася может с легкостью возводить в квадрат двузначные (и даже некоторые трехзначные) числа, оканчивающиеся на 5. Способ заключается в следующем: для возведения в квадрат числа, оканчивающегося на 5 достаточно умножить число, полученное из исходного вычеркиванием последней пятерки на следующее по порядку число, затем остается лишь приписать «25» к получившемуся результату справа. Например, для того, чтобы возвести число 125 в квадрат достаточно 12 умножить на 13 и приписать 25, т.е. приписывая к числу 12*13=156 число 25, получаем результат 15625, т.е. 1252=15625. Напишите программу, возводящую число, оканчивающееся на 5, в квадрат для того, чтобы Вася смог проверить свои навыки.
Входные данные
В единственной строке входного файла INPUT.TXT записано одно натуральное число А, оканчивающееся на цифру 5, не превышающее 4*105.
Выходные данные
В выходной файл OUTPUT.TXT выведите одно натуральное число - A2 без лидирующих нулей.
Примеры
Слайд 23var a:longint;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(a);
if a=5
then write('25')
else write((a div 10)*(a div 10+1),'25');
end.
Пятью
пять - двадцать пять!
(Время: 1 сек. Память: 16 Мб Сложность: 8%)
Слайд 24Монетки
(Время: 1 сек. Память: 16 Мб Сложность: 8%)
На столе лежат n
монеток. Некоторые из них лежат вверх решкой, а некоторые – гербом. Определите минимальное число монеток, которые нужно перевернуть, чтобы все монетки были повернуты вверх одной и той же стороной.
Входные данные
В первой строке входного файла INPUT.TXT записано натуральное число N (1 <= N <= 100) – число монеток. В каждой из последующих N строк содержится одно целое число – 1 если монетка лежит решкой вверх и 0 если вверх гербом.
Выходные данные
В выходной файл OUTPUT.TXT выведите минимальное количество монет, которые нужно перевернуть.
Пример
Слайд 25var a,n,s,i,k:longint;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
readln(n);
for i:=1 to n do
begin
readln(a);
if a=0 then s:=s+1;
end;
k:=n-s;
if
k>s
then write(s)
else write(k);
end.
Монетки
(Время: 1 сек. Память: 16 Мб Сложность: 8%)
Слайд 26Разворот
(Время: 1 сек. Память: 16 Мб Сложность: 9%)
Дано натуральное число N
и последовательность из N элементов. Требуется вывести эту последовательность в обратном порядке.
Входные данные
В первой строке входного файла INPUT.TXT записано натуральное число N (N ≤ 103). Во второй строке через пробел идут N целых чисел, по модулю не превосходящих 103 - элементы последовательности.
Выходные данные
В выходной файл OUTPUT.TXT выведите заданную последовательность в обратном порядке.
Пример
Слайд 27var n,i:integer;
a:array [1..1000] of integer;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
readln(n);
for i:=1 to
n do
read(a[i]);
for i:=n downto 1 do
write(a[i],' ');
end.
Разворот
(Время: 1 сек. Память: 16 Мб Сложность: 9%)
Слайд 28Число E
(Время: 1 сек. Память: 16 Мб Сложность: 10%)
Выведите в выходной
файл округленное до n знаков после десятичной точки число E. Число Е, округленное до 25 знаков после десятичной точки, равно 2.7182818284590452353602875.
Входные данные
Входной файл INPUT.TXT содержит целое число n (0 ≤ n ≤ 25).
Выходные данные
В выходной файл OUTPUT.TXT выведите ответ на задачу.
Пример
Слайд 29var n:byte; x,c,k:longint;
const e='2.7182818284590452353602875';
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(n);
if n=0 then write(3)
else begin
val(copy(e,n+3,1),x,c);
if x>=5 then
begin val(copy(e,n+2,1),k,c);
write(copy(e,1,n+1),k+1);
end
else write(copy(e,1,n+2));
end;
end.
Число E
(Время: 1 сек. Память: 16 Мб Сложность: 10%)
Слайд 30Клавиатура
(Время: 1 сек. Память: 16 Мб Сложность: 11%)
Для данной буквы латинского
алфавита нужно вывести справа стоящую букву на стандартной клавиатуре. При этом клавиатура замкнута, т.е. справа от буквы «p» стоит буква «a», от буквы «l» стоит буква «z», а от буквы «m» — буква «q».
Входные данные
Входной файл INPUT.TXT содержит один символ — маленькую букву латинского алфавита.
Выходные данные
В выходной файл OUTPUT.TXT следует вывести букву стоящую справа от заданной буквы, с учетом замкнутости клавиатуры.
Примеры
Слайд 31var s:string; i: integer;
const s1='qwertyuiopasdfghjklzxcvbnm';
begin
assign(input,'input.txt');reset(input);
assign(output,'output.txt');rewrite(output);
read(s);
if s='m' then write('q');
for i:=1 to length(s1)-1
do
if copy(s1,i,1)=s then write(copy(s1,i+1,1))
end.
Клавиатура
(Время: 1 сек. Память: 16 Мб Сложность: 11%)
Слайд 32Счастливый билет
(Время: 1 сек. Память: 16 Мб Сложность: 12%)
Вы пользуетесь общественным
транспортом? Вероятно, вы расплачивались за проезд и получали билет с номером. Счастливым билетом называют такой билет с шестизначным номером, где сумма первых трех цифр равна сумме последних трех. Т.е. билет с номером 385916 – счастливый, т.к. 3+8+5=9+1+6. Вам требуется написать программу, которая проверяет счастливость билета.
Входные данные
В единственной строке входного файла INPUT.TXT записано одно целое число N (0 ≤ N < 106).
Выходные данные
В выходной файл OUTPUT.TXT нужно вывести «YES», если билет с номером N счастливый и «NO» в противном случае.
Примеры
Слайд 33var n,n1,n2,i,s1,s2:longint;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(n);
n1:=n div 1000;
n2:=n mod 1000;
for i:=1 to 3
do
begin
s1:=n1 mod 10+s1;
n1:=n1 div 10
end;
for i:=1 to 3 do
begin
s2:=n2 mod 10+s2;
n2:=n2 div 10
end;
if s1=s2
then write('YES')
else write('NO');
end.
Счастливый билет
(Время: 1 сек. Память: 16 Мб Сложность: 12%)
Слайд 34Гадание
(Время: 1 сек. Память: 16 Мб Сложность: 13%)
Как и многие
другие девочки, Маша любит разные гадания. Некоторое время назад Маша узнала новый способ гадать на числах – для какого-нибудь интересующего ее натурального числа n надо посчитать сумму всех чисел, на которые n делится без остатка. Маша не очень любит арифметику, и попросила вас написать программу, которая автоматизирует процесс гадания.
Входные данные
В единственной строке входного файла INPUT.TXT записано натуральное число n (n ≤ 1000), которое Маша была вынуждена сообщить.
Выходные данные
В выходной файл OUTPUT.TXT выведите сумму всех натуральных делителей числа n.
Примеры
Слайд 35var n,i,s:integer;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(n);
for i:=1 to n do
if n mod i
= 0 then s:=s+i;
write (s);
end.
Гадание
(Время: 1 сек. Память: 16 Мб Сложность: 13%)
Слайд 36Арбузы
(Время: 1 сек. Память: 16 Мб Сложность: 14%)
Иван Васильевич пришел на
рынок и решил купить два арбуза: один для себя, а другой для тещи. Понятно, что для себя нужно выбрать арбуз потяжелей, а для тещи полегче. Но вот незадача: арбузов слишком много и он не знает как же выбрать самый легкий и самый тяжелый арбуз? Помогите ему!
Входные данные
В первой строке входного файла INPUT.TXT задано одно число N – количество арбузов. Вторая строка содержит N чисел, записанных через пробел. Здесь каждое число – это масса соответствующего арбуза. Все числа натуральные и не превышают 30000.
Выходные данные
В выходной файл OUTPUT.TXT нужно вывести два числа через пробел: массу арбуза, который Иван Васильевич купит теще и массу арбуза, который он купит себе.
Пример
Слайд 37var n,i,min,max,a:integer;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
readln(n);
min:=30000; max:=1;
for i:=1 to n do
begin
read(a);
if a
IF a>max then max:=a;
end;
write (min,' ',max);
end.
Арбузы
(Время: 1 сек. Память: 16 Мб Сложность: 14%)
Слайд 38Автобусная экскурсия
(Время: 1 сек. Память: 16 Мб Сложность: 14%)
Оргкомитет Московской городской
олимпиады решил организовать обзорную экскурсию по Москве для участников олимпиады. Для этого был заказан двухэтажный автобус (участников олимпиады достаточно много и в обычный они не умещаются) высотой 437 сантиметров. На экскурсионном маршруте встречаются N мостов. Жюри и оргкомитет олимпиады очень обеспокоены тем, что высокий двухэтажный автобус может не проехать под одним из них. Им удалось выяснить точную высоту каждого из мостов. Автобус может проехать под мостом тогда и только тогда, когда высота моста превосходит высоту автобуса.
Помогите организаторам узнать, закончится ли экскурсия благополучно, а если нет, то установить, где произойдет авария.
Входные данные
Во входном файле INPUT.TXT сначала содержится число N (1<=N<=1000). Далее идут N натуральных чисел, не превосходящих 10000 - высоты мостов в сантиметрах в том порядке, в котором они встречаются на пути автобуса.
Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести фразу "No crash", если экскурсия закончится благополучно. Если же произойдет авария, то нужно вывести сообщение "Crash k", где k - номер моста, где произойдет авария. Фразы выводить без кавычек ровно с одним пробелом внутри.
Примеры
Слайд 39var n,i,k,c:integer;
a:array [1..1000] of integer;
const b=437;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
readln(n);
for i:=1
to n do
read (a[i]);
for i:=1 to n do
if a[i]>b
then k:=k+1
else begin c:=i; break end;
if k=n then write('No crash') else write('Crash ',i);
end.
Автобусная экскурсия
(Время: 1 сек. Память: 16 Мб Сложность: 14%)
Слайд 40Клетки
(Время: 1 сек. Память: 16 Мб Сложность: 15%)
Известно, что шахматная доска
имеет размерность 8х8 и состоит из клеток 2х цветов, например, черного и белого (см. рисунок). Каждая клетка имеет координату, состоящую из буквы и цифры. Горизонтальное расположение клетки определяется буквой от A до H, а вертикальное – цифрой от 1 до 8. Заметим, что клетка с координатой А1 имеет черный цвет. Требуется по заданной координате определить цвет клетки.
Входные данные
В единственной строке входного файла INPUT.TXT записана координата клетки на шахматной доске: всего два символа – буква и цифра (без пробелов).
Выходные данные
В выходной файл OUTPUT.TXT нужно вывести «WHITE», если указанная клетка имеет белый цвет и «BLACK», если она черная.
Примеры
Слайд 41var s,a:string;x,c:integer;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(s);
a:=s[1];
val(s[2],x,c);
if (a='A') or (a='C') or (a='E') or (a='G')
then
begin
if x mod 2 = 0
then write('WHITE')
else write('BLACK');
end;
if (a='B') or (a='D') or (a='F') or (a='H')
then begin
if x mod 2 = 0
then write('BLACK')
else write('WHITE');
end;
end.
Клетки
(Время: 1 сек. Память: 16 Мб Сложность: 15%)
Слайд 42Кругляши
(Время: 1 сек. Память: 16 Мб Сложность: 16%)
Однажды в просторах рунета
появился следующий ребус:
157892 = 3
203516 = 2
409578 = 4
236271 = ?
Никто так и не смог его разгадать. Позже оказалось, что число в правом столбце равно сумме "кругляшей", которые есть в цифрах числа, расположенного слева. Ваша задача написать программу, которая определяет, сколько кругляшей в числе.
Входные данные
Во входном файле INPUT.TXT записано целое число N (0 <= N <= 10100).
Выходные данные
В выходной файл OUTPUT.TXT выведите одно число – количество кругляшей в числе N.
Примеры
Слайд 43var s:string;
i,k:integer;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(s);
for i:=1 to length(s) do
begin
if (copy(s,i,1)='0')
or (copy(s,i,1)='6') or (copy(s,i,1)='9')
then k:=k+1;
if copy(s,i,1)='8'
then k:=k+2;
end;
write(k);
end.
Кругляши
(Время: 1 сек. Память: 16 Мб Сложность: 16%)
Слайд 44Уравнение
(Время: 1 сек. Память: 16 Мб Сложность: 17%)
Вася в школе изучил
квадратные уравнения и понял, как они легко решаются путем вычисления дискриминанта. Но Петя поведал ему о методе решения кубических уравнений вида A*X3 + B*X2 + C*X + D = 0. На факультативе по математике Васе задали решить около ста уравнений как раз такого вида. Но, к сожалению, Вася забыл формулы, о которых рассказывал ему Петя. Но Васе было известно, что все корни уравнений – целые числа и находятся на отрезке [-100, 100]. Поэтому у Васи есть шанс найти их методом перебора, но для этого ему придется затратить уйму времени, т.к. возможно необходимо будет осуществить перебор нескольких тысяч значений. Помогите Васе написать программу, которая поможет ему найти корни кубических уравнений!
Входные данные
В единственной строке входного файла INPUT.TXT записаны 4 числа: A, B, C и D – целые коэффициенты кубического уравнения. Каждый коэффициент по модулю меньше 32768.
Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести через пробел в порядке возрастания все корни заданного кубического уравнения. Кратные корни следует выводить только один раз.
Примеры
Слайд 45var a,b,c,d,x:integer;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(a,b,c,d);
for x:=-100 to 100 do
if a*x*x*x+b*x*x+c*x+d=0
then write(x,' ');
end.
Уравнение
(Время:
1 сек. Память: 16 Мб Сложность: 17%)
Слайд 46Загадка
(Время: 1 сек. Память: 16 Мб Сложность: 18%)
Петя и Катя –
брат и сестра. Петя – студент, а Катя – школьница. Петя помогает Кате по математике. Он задумывает два натуральных числа X и Y (X,Y≤1000), а Катя должна их отгадать. Для этого Петя делает две подсказки. Он называет сумму этих чисел S и их произведение P. Помогите Кате отгадать задуманные Петей числа.
Входные данные
Входной файл INPUT.TXT содержит два натуральных числа S и P, разделенных пробелом.
Выходные данные
В выходной файл OUTPUT.TXT выведите два числа Х и Y, загаданные Петей. Числа следует вывести в порядке неубывания своих значений, разделенные пробелом.
Примеры
Слайд 47var s,p,x,y:longint;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(s,p);
for x:=1 to 1000 do
for y:=x to 1000
do
if ((x+y)=s) and ((x*y)=p)
then write(x,' ',y)
end.
Загадка
(Время: 1 сек. Память: 16 Мб Сложность: 18%)
Слайд 48Требуется посчитать сумму целых чисел от 1 до N.
Входные данные
В
единственной строке входного файла INPUT.TXT записано единственное целое число N, не превышающее по абсолютной величине 104.
Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — сумму чисел от 1 до N.
Пример
Сумма
(Время: 1 сек. Память: 16 Мб Сложность: 19%)
Слайд 49var n:integer; s:real;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(n);
write(n*(1+abs(n)) div 2 +ord(n
16 Мб Сложность: 19%)
Слайд 50Дом - Школа - Дом
(Время: 1 сек. Память: 16 Мб Сложность:
21%)
Мальчик Вася каждый день ездит на метро. Утром он едет в школу, а вечером того же дня, обратно из школы, домой. Для того, чтобы немного сэкономить, он покупает электронную смарт-карту на X поездок. Когда он хочет зайти в метро, он прикладывает карту к турникету. Если на карте осталось ненулевое количество поездок, то турникет пропускает Васю и списывает с карты одну поездку. Если же на карте не осталось поездок, то турникет не пропускает Васю, и он (Вася) вынужден купить на этой же станции новую карту на X поездок и вновь пройти через турникет.
Вася заметил, что в связи с тем, что утром метро переполнено, покупать новую карту утром накладно по времени, и он может опоздать в школу. В связи с этим он хочет понять: будет ли такой день, что с утра, поехав в школу, окажется, что у него на карточке ноль поездок.
Вася больше никуда на метро не ездит и поэтому заходит в метро только на станции около дома и на станции около школы.
Входные данные
Во входном файле INPUT.TXT содержится ровно 2 строки. В первой содержится слово «School» или «Home» в зависимости от того, где первый раз Вася купил карточку на X поездок. Во второй строке содержится натуральное число X, 1 ≤ X ≤ 1000.
Выходные данные
В выходной файл OUTPUT.TXT следует вывести «Yes», если будет такой день, что утром у Васи на карточке окажется ноль поездок и «No» в противном случае.
Примеры
Слайд 51var s:string;
n:integer;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
readln(s);
readln(n);
if s='Home'
then write ('Yes');
if s='School'
then begin
if n mod 2 = 0
then write('No')
else write('Yes');
end;
end.
Дом - Школа - Дом
(Время: 1 сек. Память: 16 Мб Сложность: 21%)
Слайд 52Статистика
(Время: 1 сек. Память: 16 Мб Сложность: 25%)
Вася не любит английский
язык, но каждый раз старается получить хотя бы четверку за четверть, чтобы оставаться ударником. В текущей четверти Вася заметил следующую закономерность: по нечетным дням месяца он получал тройки, а по четным – четверки. Так же он помнит, в какие дни он получал эти оценки. Поэтому он выписал на бумажке все эти дни для того, чтобы оценить, сколько у него троек и сколько четверок. Помогите Васе это сделать, расположив четные и нечетные числа в разных строчках. Вася может рассчитывать на оценку 4, если четверок не меньше, чем троек.
Входные данные
В первой строке входного файла INPUT.TXT записано единственное число N – количество элементов целочисленного массива (1<=N<=100). Вторая строка содержит N чисел, представляющих заданный массив. Каждый элемент массива – натуральное число от 1 до 31. Все элементы массива разделены пробелом.
Выходные данные
В первую строку выходного файла OUTPUT.TXT нужно вывести числа, которые соответствуют дням месяцев, в которые Вася получил тройки, а во второй строке соответственно расположить числа месяца, в которые Вася получил четверки. В третьей строке нужно вывести «YES», если Вася может рассчитывать на четверку и «NO» в противном случае. В каждой строчке числа следует выводить в том же порядке, в котором они идут во входных данных. При выводе, числа отделяются пробелом.
Примеры
Слайд 53var n,s,s1,i:integer;
a:array [1..100] of 1..31;
begin
assign(input,'input.txt'); reset (input);
assign(output,'output.txt'); rewrite(output);
readln(n);
for i:=1
to n do read(a[i]);
s:=0;
s1:=0;
for i:=1 to n do if a[i] mod 2=1
then begin s:=s+1; write(a[i],' ') end;
writeln;
for i:=1 to n do if a[i] mod 2=0
then begin s1:=s1+1; write(a[i],' ') end;
writeln;
if s>s1 then write('NO') else write('YES');
end.
Статистика
(Время: 1 сек. Память: 16 Мб Сложность: 25%)