Збірник задач "Курс спортивного програмування. FPC" з розв'язками містить допустимі програмні коди до до поставлених задач, зрозумілі для тих, хто починає програмувати мовою Паскаль
Основи спортивного програмування. FPC – задачі сайту e-olimp.com.ua з розв’язками
Основи спортивного програмування. FPC
задачі сайту e-olimp.com з розв’язками
Упорядник Є.В.Шибецький
ЛІНІЙНІ ПРОГРАМИ
#1 ПРОСТА ЗАДАЧА?
Програма зчитує двоцифрове число і виводить через пропуск кожну цифру окремо.
ТЕХНІЧНІ УМОВИ
Вхідні дані
Натуральне число на проміжку від 10 до 99 включно.
Вихідні дані
Спочатку першу цифру числа і через пропуск другу.
Ліміт часу: 0.3 секунди
Бали за пройдений тест: 6.25
Складність: 10%
ПРИКЛАД
Приклад вхідних даних
23
Приклад вихідних даних
2 3
var
a,b:integer;
f1,f2:text;
begin
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
read(f1,a);
writeln(f2,a div 10,' ',a mod 10);
close(f2);
close(f1);
end.
#906 ДОБУТОК ЦИФР
Задано трицифрове число. Визначити добуток його цифр.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У єдиному рядку задане трицифрове число.
Вихідні дані
У єдиному рядку добуток цифр заданого числа.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 2.5
Складність: 4%
Джерело: ДПА-2010 Варіант 6
ПРИКЛАД
Приклад вхідних даних
235
Приклад вихідних даних
30
program p_f_906;
var
a,b,c,d,e:integer;
f1,f2:text;
begin
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
read(f1,a);
b:=a div 100;
c:=a div 10 mod 10;
d:=a mod 10;
e:=b*c*d;
writeln(f2,e);
close(f2);
close(f1);
end.
#924 КІЛЬЦЕ
Задано площу кільця й радіус зовнішнього кола. Визначити радіус внутрішнього кола.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У єдиному рядку задано 2 дісних числа, спочатку площу кільця і через пропуск - радіус зовнішнього кола. Радіус кола не перевищує 100.
Вихідні дані
У єдиному рядку вивести радіус внутрішнього кола з точністю 2 знаки після десяткової крапки.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 4
Складність: 10%
Джерело: ДПА-2010 Варіант 24
ПРИКЛАД
Приклад вхідних даних
50.2655 5
Приклад вихідних даних
3.00
program p_f_924;
var
s,r1,r2:real;
f1,f2:text;
begin
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
read(f1,s);
read(f1,r1);
r1:=pi*r1*r1-s;
r2:=sqrt(r1/pi);
writeln(f2,r2:1:2);
close(f2);
close(f1);
end.
#2059 ОЗЕРО З ЛІЛІЯМИ
На лісовому озерці почали цвісти лілії, У перший день розцвіла одна лілія, а потім кожен день кількість квітучих лілій подвоювалась. На N-ий день все озеро було покрите квітучими лілямі. А на який день була покрита квітучими ліліями половина поверхні озера?
ТЕХНІЧНІ УМОВИ
Вхідні дані
Єдине число N (1 < N ≤ 200) - номер дня, на який вся поверхня озера була покрита квітучими ліліями.
Вихідні дані
Єдине число - відповідь до задачі.
Ліміт часу: 0.1 секунди
Бали за пройдений тест: 5
Складність: 5%
ПРИКЛАД
Приклад вхідних даних
3
Приклад вихідних даних
2
program p_f_2059;
var
a,b:integer;
f1,f2:text;
begin
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
read(f1,a);
b:=a-1;
writeln(f2,b);
close(f2);
close(f1);
end.
#57 МЕТЕЛИК-САНІТАР
Учні, йдучи з дому до школи або навпаки – зі школи додому, полюбляють їсти цукерки. Але, як завжди, ця приємна справа інколи має неприємні наслідки – дітки іноді викидають обгортки на шкільному подвір’ї.
Мурзик завжди слідкував за чистотою шкільного двору і йому у цьому з радістю допомагали метелики, вдячні за чудові фотографії, зроблені ним. Метелики могли використовувати власні крильця як лінзи, причому вони могли змінювати їх фокусну відстань. Помітивши обгортку від цукерки, що лежала на шкільному подвір’ї у точці з координатами X1, Y1, метелик перелітав у точку з координатами X2, Y2, Z2, розташовану на шляху сонячного проміння до обгортки і, змінюючи фокусну відстань своїх крилець-лінз, спалював обгортку від цукерки.
Яку оптичну силу D мали крильця-лінзи метелика у цей момент?
ТЕХНІЧНІ УМОВИ
Вхідні дані
У першому рядку 2 числа: координати X1, Y1 обгортки від цукерки. У другому – 3 числа: координати X2, Y2, Z2 метелика у момент спалювання обгортки.
Всі вхідні дані цілі числа, що не перевищують за модулем 1000.
Вихідні дані
Єдине число – оптична сила крилець-лінз D, обчислена з точністю до 3-х знаків після коми за правилами математичних округлень.
Ліміт часу: 1 секунда
Бали за пройдений тест: 10
Складність: 9%
ПРИКЛАД
Приклад вхідних даних
10 20
10 20 100
Приклад вихідних даних
0.010
program p_57;
var x1,y1,x2,y2,z,s:real;
f:text;
begin
assign(f,'input.txt');
reset(f);
readln(f,x1,y1);
readln(f,x2,y2,z);
close(f);
s:=sqrt(sqr(x1-x2)+sqr(y1-
y2)+sqr(z));
s:=1/s;
assign(f,'output.txt');
rewrite(f);
writeln(f,s:0:3);
close(f)
end.
#133 КВАДРАТ І ТОЧКИ
Яку найбільшу кількість точок з цілочисельними координатами можна на аркуші в клітинку накрити квадратом зі стороною N клітинок?
ТЕХНІЧНІ УМОВИ
Вхід: Єдине число - сторона квадрату N (1 <= N <= 10000).
Вихід: Максимальна кількість накритих клітин K.
Ліміт часу: 1 секунда
Бали за пройдений тест: 10
Складність: 11%
ПРИКЛАД
Приклад вхідних даних
1
Приклад вихідних даних
4
program p_133;
var n:real;
f:text;
begin
assign(f,'input.txt');
reset(f);
readln(f,n);
close(f);
n:=sqr(n+1);
assign(f,'output.txt');
rewrite(f);
writeln(f,Trunc(n));
close(f)
end.
#157 ЗООПАРК
У зоопарку N кліток вишикувані в ряд. У зоопарку, крім інших тварин, живуть дві мавпочки, Слава та Юра. Слава та Юра завжди були великими друзями і сиділи у сусідніх клітках, але тепер вони посварились і більше не хочуть бачити один одного. Наглядач вже зібрався переселити їх у відповідності з їх бажанням, проте виникла проблема. Слава і Юра — дуже освічені мавпочки (кожна з них закінчила аж по вісім класів!), і вони неодмінно хочуть знати, скільки всього існує способів розселити їх так, щоб їх клітки не були сусідніми, і, звичайно, їх клітки повинні бути різними. Можна вважати, що всі N кліток доступні, інші мешканці зоопарку готові переїхати куди завгодно.
Наглядач спробував було порахувати сам, але збився з рахунку десь в районі бегемотів. І цілком очевидно, що без вашої допомоги йому не справитись!
ТЕХНІЧНІ УМОВИ
Вхідні дані
У першому рядку вхідних даних міститься число N (2 <= N <= 100) — кількість кліток у зоопарку.
Вихідні дані
Виведіть одно число — кількість способів поселити Славу та Юру в різні клітки так, щоб ці клітки не були сусідніми.
Ліміт часу: 1 секунда
Бали за пройдений тест: 14.2857
Складність: 10%
ПРИКЛАД
Приклад вхідних даних
Sample 1
3
Sample 2
4
Приклад вихідних даних
Sample 1
2
Sample 2
6
program p_157;
var n:real;
f:text;
begin
assign(f,'input.txt');
reset(f);
readln(f,n);
close(f);
n:=(n-1)*(n-2);
assign(f,'output.txt');
rewrite(f);
writeln(f,Trunc(n));
close(f)
end.
ПРОГРАМИ З РОЗГАЛУЖЕННЯМИ
#107 КОМПАКТ-ДИСКИ
Чисті компакт-диски продаються в трьох різних видах упаковок. Упаковка зі 100 дисків коштує 100 грн., з 20 дисків - 30 грн., а один окремий диск коштує 2 грн. Якої мінімальної суми має вистачити для покупки N таких дисків?
ТЕХНІЧНІ УМОВИ
Вхідні дані
Кількість N дисків, які потрібно купити. N ≤ 1000.
Вихідні дані.
Мінімальна сума, потрібна для покупки.
Ліміт часу: 1 секунда
Бали за пройдений тест: 1
Складність: 31%
ПРИКЛАД
Приклад вхідних даних
123
Приклад вихідних даних
136
program p_f_107;
var
s,n,a,b,c,d:integer;
f1,f2:text;
begin
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
read(f1,n);
s:=0;
a:=n div 100;
n:=n mod 100;
b:= n div 20;
n:=n mod 20;
c:=100*(a+1);
d:=10*(b+1);
s:=100*a+30*b+2*n;
if s>c then s:=c;
if 30*b+2*n>30*(b+1) then
s:=s-30*b-2*n+30*(b+1);
writeln(f2,s);
close(f2);
close(f1);
end.
#125 ОЛІМПІАДА
Олімпіада почалася в h1 год m1 хв s1 сек, а закінчилася цієї ж календарної доби в h2 год m2 хв s2 сек. Скільки часу (год хв сек) тривала олімпіада?
ТЕХНІЧНІ УМОВИ
Вхідні дані
У першому рядку записано час початку, а у другому - час закінчення олімпіади у форматі год хв сек. 0 ≤ h1 ≤ h2 ≤ 23, 0 ≤ m1, m2 ≤ 59, 0 ≤ s1, s2 ≤ 59.
Вихідні дані
У єдиний рядок вихідного файлу потрібно записати час, який тривала олімпіада у форматі год хв сек.
Ліміт часу: 1 секунда
Бали за пройдений тест: 10
Складність: 13%
ПРИКЛАД
Приклад вхідних даних
9 30 0
12 45 30
Приклад вихідних даних
3 15 30
program p_f_125;
var
s1,s2,s,m1,m2,m,h1,h2,h3,h: integer;
f1,f2:text;
begin
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
read(f1,h1,m1,s1);
read(f1,h2,m2,s2);
s:=s2-s1;
if s<0 then begin s:=s+60; m2:=m2-1 end;
m:=m2-m1;
if m<0 then begin m:=m+60; h2:=h2-1 end;
h:=h2-h1;
writeln(f2,h,' ',m,' ',s);
close(f2);
close(f1);
end.
#902 РІВЕНЬ НАВЧАЛЬНИХ ДОСЯГНЕНЬ
Встановити рівень навчальних досягнень учня (початковий, середній, достатній, високий) відповідно до заданої оцінки (від 1 до 12).
ТЕХНІЧНІ УМОВИ
Вхідні дані
Одне число - бал учня
Вихідні дані
Вивести Initial для початкового рівня, Average - для середнього, Sufficient - для достатнього і High - для високого.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 3.33333
Складність: 5%
Джерело: ДПА-2010 Варіант 2
ПРИКЛАД
Приклад вхідних даних
12
Приклад вихідних даних
High
program p_f_902;
var
n: integer;
s:string;
f1,f2:text;
begin
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
read(f1,n);
if n<=3 then s:='Initial'
else if n<=6 then s:='Average'
else if n<=9 then s:='Sufficient'
else s:='High';
writeln(f2,s);
close(f2);
close(f1);
end.
#903 ПЕРША ЧИ ОСТАННЯ?
Задано трицифрове число. Визначити, яка цифра в ньому є більшою – перша чи остання.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У єдиному рядку задано трицифрове число.
Вихідні дані
Вивести більшу з вказаних цифр. У випадку їх рівності вивести знак "=" (без лапок).
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 2.5
Складність: 8%
Джерело: ДПА-2010 Варіант 3
Приклад
Приклад вхідних даних
328
Приклад вихідних даних
8
program p_f_903;
var
n: integer;
s:string;
f1,f2:text;
begin
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
read(f1,n);
if n div 100<n mod 10 then writeln(f2,n mod 10);
if n div 100>n mod 10 then writeln(f2,n div 100);
if n div 100=n mod 10 then writeln(f2,'=');
close(f2);
close(f1);
end.
#905 ЯКИЙ ТРИКУТНИК?
Визначити тип трикутника (рівносторонній, рівнобедрений, різносторонній) за заданими довжинами його сторін.
ТЕХНІЧНІ УМОВИ
Вхідні дані
В єдиному рядку задано 3 цілих числа - довжини сторін трикутника. Довжини сторін не перевищують 100.
Вихідні дані
В єдиному рядку вивести 1, якщо трикутник рівносторонній, 2 - якщо рівнобедрений і 3 - якщо різносторонній.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 4
Складність: 8%
Джерело: ДПА-2010 Варіант 5
ПРИКЛАД
Приклад вхідних даних
3 4 3
Приклад вихідних даних
2
program p_f_905;
var
a,b,c,k: longint;
x,y:boolean;
s:string;
f1,f2:text;
begin
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
read(f1,a,b,c);
x:=(a=b) and (a=c);
y:=(a=b) or (a=c) or (b=c);
if x then k:=1 else
if y then k:=2 else k:=3;
writeln(f2,k);
close(f2);
close(f1);
end.
#915 ПРЯМОКУТНИЙ ЧИ НІ?
Задано довжини сторін трикутника. Визначити, чи є цей трикутник прямокутним.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У єдиному рядку задано 3 натуральні числа - довжини сторін трикутника. Довжини сторін не перевищують 1000.
Вихідні дані
Вивести "YES" (без лапок), якщо трикутник є прямокутним, або "NO" (без лапок) у протилежному випадку.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 4
Складність: 8%
Джерело: ДПА-2010 Варіант 15
ПРИКЛАД
Приклад вхідних даних
3 5 4
Приклад вихідних даних
YES
var a,b,c:longint;
begin
read(a,b,c);
a:=a*a;
b:=b*b;
c:=c*c;
if (a=b+c) or (b=a+c) or (c=a+b) then writeln('YES') else writeln('NO')
end.
#918 ЯКА ЧВЕРТЬ?
Задано точку з координатами х та у. Визначити, в якій координатній чверті вона розміщена.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У єдиному рядку через пропуск задано 2 дійсні числа - координати точки, значення координат по модулю не перевищують 100.
Вихідні дані
Єдине число - номер відповідної чверті, або 0, якщо однозначно визначити чверть неможливо.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 2.5
Складність: 12%
Джерело: ДПА-2010 Варіант 18
ПРИКЛАД
Приклад вхідних даних
12 31
Приклад вихідних даних
1
program p_918;
var x,y: real;
begin
read(x,y);
if (x=0) or (y=0) then writeln(0);
if (x>0) and (y>0) then writeln(1);
if (x<0) and (y>0) then writeln(2);
if (x<0) and (y<0) then writeln(3);
if (x>0) and (y<0) then writeln(4);
end.
#923 ПОРА РОКУ
Визначити назву пори року за заданим номером місяця, використовуючи складені умови.
ТЕХНІЧНІ УМОВИ
Вхідні дані
Єдине число - номер місяця.
Вихідні дані
Для весняних місяців вивести Spring, для літніх - Summer, для осінніх - Autumn і для зимових - Winter.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 3.33333
Складність: 5%
Джерело: ДПА-2010 Варіант 23
ПРИКЛАД
Приклад вхідних даних
5
Приклад вихідних даних
Spring
program p_923;
var x: integer;
begin
read(x);
if (x>=3) and (x<=5) then writeln('Spring');
if (x>=6) and (x<=8) then writeln('Summer');
if (x>=9) and (x<=11) then writeln('Autumn');
if (x=12) or (x<=2) then writeln('Winter');
end.
#929 ПАРАЛЕЛОГРАМ
Задано 4 числа a, b, c, d, що визначають довжини відрізків. Визначити, чи можна з цих відрізків утворити паралелограм.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У єдиному рядку задано 4 числа через пропуск.
Вихідні дані
Вивести у єдиному рядку слово "YES", якщо паралелограм утворти можна або "NO" (без лапок) у протилежному випадку.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 1.66667
Складність: 14%
Джерело: ДПА-2010 Варіант 29
ПРИКЛАД
Приклад вхідних даних
Sample 1
2 4 2 4
Sample 2
2 4 2.5 4
Приклад вихідних даних
Sample 1
YES
Sample 2
NO
program p_929;
var a,b,c,d: real;
f:boolean;
begin
read(a,b,c,d);
f:=((a=b) and (c=d)) or ((a=c) and (b=d)) or ((a=d) and (b=c));
if f then writeln('YES') else writeln('NO')
end.
#43 КІЛЬКІСТЬ УЧАСНИКІВ ОЛІМПІАДИ
Як відомо, на питання про те, скільки в нього учнів, давньогрецький вчений Піфагор відповідав так: "Половина моїх учнів вивчає математику, четверта частина вивчає природу, сьома частина проводить час у мовчазних роздумах, частину, що залишилась, складають 3 діви".
Секретар олімпіади на питання: "Скільки зареєстровано учасників олімпіади з інформатики?", відповідав подібно Піфагору: "K-та частина почала розв'язувати першу задачу, M-та частина – другу, а N-та – третю. В той же час D учасників вирішують проблему: "З чого почати?". Ваша задача вивести кількість учасників олімпіади S, або -1, якщо секретар помилився у своєму повідомленні.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У єдиному рядку через пропуск числа K, N, M, D. 1 ≤ K, N, M, D ≤ 1000.
Вихідні дані
Вивести кількість учасників олімпіади S, або -1, якщо секретар помилився у своєму повідомленні.
Ліміт часу: 0.1 секунди
Бали за пройдений тест: 10
Складність: 23%
Автор: Присяжнюк А.В.
ПРИКЛАД
Приклад вхідних даних
2 4 7 3
Приклад вихідних даних
28
program p_43;
var k,m,n,d,x:real;
f:text;
begin
assign(f,'input.txt');
reset(f);
readln(f,k,m,n,d);
close(f);
x:=d*k*m*n/(k*m*n-m*n-k*n-k*m);
if x<>trunc(x) then x:=-1;
assign(f,'output.txt');
rewrite(f);
writeln(f,Trunc(x));
close(f)
end.
ПРОГРАМИ З ЦИКЛАМИ
#2 ЦИФРИ
Підрахувати кількість цифр цілого невід'ємного числа n.
ТЕХНІЧНІ УМОВИ
Вхідні дані
Ціле невід'ємне число n (0 ≤ n ≤ 2000000000).
Вихідні дані
Кількість цифр у числі n.
Ліміт часу: 1 секунда
Бали за пройдений тест: 6.25
Складність: 20%
ПРИКЛАД
Приклад вхідних даних
13243
Приклад вихідних даних
5
program p_2;
var n,k:longint;
begin
read(n);
k:=0;
if n=0 then k:=1;
while n>0 do
begin
k:=k+1;
n:=n div 10
end;
writeln(k)
end.
#109 НУМЕРАЦІЯ
Для нумерації M сторінок в книжці використано N цифр. По заданому N вивести M або 0, якщо розв’язку не існує. Нумерація починається з першої сторінки.
ТЕХНІЧНІ УМОВИ
Вхідні дані
Єдине число N. У книзі не більше 1001 сторінки.
Вихідні дані
Шукана кількість сторінок.
Ліміт часу: 1 секунда
Бали за пройдений тест: 6.66667
Складність: 34%
ПРИКЛАД
Приклад вхідних даних
27
Приклад вихідних даних
18
program p_109;
var n,n1,m1,k,m2:longint;
begin
read(n);
n1:=0;
m1:=0;
while n>n1 do
begin
m1:=m1+1;
m2:=m1;
k:=0;
while m2>0 do
begin
k:=k+1;
m2:=m2 div 10
end;
n1:=n1+k;
end;
if n=n1 then writeln(m1) else writeln(0)
end.
#128 ЩАСЛИВІ КВИТКИ
Підрахувати кількість щасливих квитків, у яких сума перших трьох цифр дорівнює N. Щасливим квитком називається квиток з шестизначним номером, в якого сума перших трьох цифр дорівнює сумі останніх трьох.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У єдиному рядку записано одне натуральне число N (N ≤ 27).
Вихідні дані
Одне число - кількість таких щасливих квитків.
Ліміт часу: 1 секунда
Бали за пройдений тест: 10
Складність: 11%
ПРИКЛАД
Приклад вхідних даних
1
Приклад вихідних даних
9
program p_128;
var n,i,a1,a2,a3,a4,a5,a6,k,j:longint;
begin
read(n);
k:=0;
for i:=0 to 999999 do begin
j:=i;
a1:=j div 100000; j:=j mod 100000;
a2:=j div 10000; j:=j mod 10000;
a3:=j div 1000; j:=j mod 1000;
a4:=j div 100; j:=j mod 100;
a5:=j div 10; a6:=j mod 10;
if (a1+a2+a3=n) and (a4+a5+a6=n) then k:=k+1;
end;
writeln(k)
end.
#927 КІЛЬКІСТЬ ІГРАШОК
Задано кількість видів іграшок в магазині, кількість іграшок кожного виду та вартість іграшки кожного виду. Визначити загальну кількість іграшок, вартість яких менше 50 грн.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У першому рядку задано кількість наявних у прейскуранті видів іграшок N (0 ≤ N ≤ 1000). У наступних N рядках задано по 2 числа через пропуск: спочатку кількість іграшок A (0 ≤ A ≤ 1000) чергового виду та їх ціна B (0 < B ≤ 10000) в грн.
Вихідні дані
У єдиному рядку вивести єдине число - відповідь до задачі.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 4
Складність: 11%
Джерело: ДПА-2010 Варіант 27
ПРИКЛАД
Приклад вхідних даних
3
2 100.00
5 23.00
10 22.50
Приклад вихідних даних
15
program p_927;
var n,a,s,i:longint;b:real;
begin
read(n);
s:=0;
for i:=1 to n do begin
read(a,b);
if b<50 then s:=s+a
end;
writeln(s)
end.
ПРОГРАМИ З ВИКОРИСТАННЯМ МАСИВІВ
#108 СЕРЕДНЄ З ЧИСЕЛ
Дано три різних числа a, b, c. Вивести середнє з них.
ТЕХНІЧНІ УМОВИ
Вхідні дані
Числа a, b, c цілі і по модулю не перевищують 1000.
Вихідні дані
Єдине число - відповідь до задачі.
Ліміт часу: 1 секунда
Бали за пройдений тест: 9.09091
Складність: 12%
ПРИКЛАД
Приклад вхідних даних
11 3 7
Приклад вихідних даних
7
program p_f_108;
var
a:array[1..3] of integer;
i,j,t:integer;
f1,f2:text;
begin
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
read(f1,a[1],a[2],a[3]);
for i:=1 to 2 do
for j:=i to 3 do
if a[i]>a[j] then begin t:=a[i]; a[i]:=a[j]; a[j]:=t end;
writeln(f2,a[2]);
close(f2);
close(f1);
end.
#904 ЗБІЛЬШИТИ НА 2
Задано одновимірний масив А цілих чисел. Збільшити на 2 кожний невід’ємний елемент масиву.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У першому рядку задано натуральне число h - кількість елементів масиву (h ≤ 100). У другому рядку через проміжок задано самі елементи масиву, значення кожного з яких за модулем не перевищує 100.
Вихідні дані
В єдиному рядку вивести через проміжок h чисел: нові значення елементів масиву, у тому ж порядку, в якому їх було задано.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 1.66667
Складність: 18%
Джерело: ДПА-2010 Варіант 4
ПРИКЛАД
Приклад вхідних даних
4
1 2 3 4
Приклад вихідних даних
3 4 5 6
Пояснення: При виведенні результатів роботи числа повинні бути відокремлені одним пропуском, після останнього елементу пропуск повинен бути відсутнім.
program p_904;
var i,n:integer;
a:array[1..101] of integer;
f:text;
begin
assign(f,'input.txt');
reset(f);
readln(f,n);
for i:=1 to n do begin
read(f,a[i]);
if a[i]>=0 then a[i]:=a[i]+2
end;
close(f);
assign(f,'output.txt');
rewrite(f);
for i:=1 to n-1 do
write(f,a[i],' ');writeln(f,a[n]);
close(f)
end.
#907 ПЕРШИЙ НЕ БІЛЬШИЙ ЗА 2,5
Задано одновимірний масив А дійсних чисел, пронумерованих від 1 до h. Визначити перший елемент масиву, який не перевищує 2.5.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У першому рядку задано кількість елементів масиву h (0 < h ≤ 100), у наступному рядку задано h дісних чисел, відокремлених пропуском.
Вихідні дані
Вивести у одному рядку спочатку індекс знайденого першого вказаного елемента масива і через пропуск його значення з точістю 2 знаки після десяткової крапки. У випадку відсутності вказаного елементу в масиві вивести "Not Found" (без лапок).
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 4
Складність: 12%
Джерело: ДПА-2010 Варіант 7
Приклад
Приклад вхідних даних
5
6 7.5 2.1 2.0 0
Приклад вихідних даних
3 2.10
program p_907;
var i,n,k:integer;
a:array[1..101] of real;
s:real;
f:text;
begin
assign(f,'input.txt');
reset(f);
k:=0;
read(f,n);
for i:=1 to n do begin
read(f,a[i]);
if (a[i]<=2.5) and (k=0) then
begin s:=a[i]; k:=i end
end;
close(f);
assign(f,'output.txt');
rewrite(f);
if k<>0 then writeln(f,k,' ',s:0:2)
else writeln(f, 'Not Found');
close(f)
end.
#908 ТІ, ЩО ДІЛЯТЬСЯ НА 6
Для N цілих чисел визначити суму й кількість додатніх чисел, які діляться на 6 без остачі.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У першому рядку задано кількість чисел N (0 < N ≤ 100), у наступному рядку через пропуск задано самі числа, значення яких по модулю не перевищують 10000.
Вихідні дані
У єдиному рядку виведіть спочатку кількість вказаних чисел і через пропуск їх суму.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 5
Складність: 15%
Джерело: ДПА-2010 Варіант 8
ПРИКЛАД
Приклад вхідних даних
3
12 15 18
Приклад вихідних даних
2 30
program p_908;
var i,n,k,s:longint;
a:array[1..101] of integer;
f:text;
begin
assign(f,'input.txt');
reset(f);
k:=0;
s:=0;
read(f,n);
for i:=1 to n do begin
read(f,a[i]);
if (a[i]>0) and (a[i] mod 6=0) then begin s:=s+a[i]; k:=k+1 end
end;
close(f);
assign(f,'output.txt');
rewrite(f);
writeln(f,k,' ',s);
close(f)
end.
#910 СЕРЕДНЄ АРИФМЕТИЧНЕ ДОДАТНИХ
Задано одновимірний масив А дійсних чисел, пронумерованих від 1 до h. Визначити середнє арифметичне додатних елементів масиву.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У першому рядку задано число h - кількість елементів масиву (0 < h ≤ 100). У наступному рядку задано h елементів масиву, відокремлених пропусками. Значення елементів не перевищують по модулю 100.
Вихідні дані
У єдиному рядку вивести відповідь до задачі з точністю 2 знаки після десяткової крапки. У випадку відсутності у масиві вказаних елементів вивести повідомлення "Not Found" (без лапок).
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 6.66667
Складність: 11%
Джерело: ДПА-2010 Варіант 10
ПРИКЛАД
Приклад вхідних даних
3
5.2 -2 4
Приклад вихідних даних
4.60
program p_910;
var i,n,k:longint;
a:array[1..101] of real;
f:text;
s:real;
begin
assign(f,'input.txt');
reset(f);
read(f,n);
k:=0;
s:=0;
for i:=1 to n do begin
read(f,a[i]);
if a[i]>0 then begin s:=s+a[i];
k:=k+1 end
end;
IF k>0 then s:=s/k;
close(f);
assign(f,'output.txt');
rewrite(f);
if k>0 then writeln(f,s:0:2)
else writeln(f,'Not Found');
close(f)
end.
#914 МОДУЛЬ МАКСИМАЛЬНОГО
Задано одновимірний масив А дійсних чисел, пронумерованих від 1 до h. Визначити значення модуля максимального елемента масиву.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У першому рядку задано натуральне число h - кількість елементів у масиві (h ≤ 100). У наступному рядку через пропуск задано h дійсних чисел - самі елементи масиву, значення яких не перевищують по модулю 100.
Вихідні дані
Єдине число - відповідь до задачі, виведене з точністю 2 знаки після десяткової крапки.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 4
Складність: 18%
Джерело: ДПА-2010 Варіант 14
ПРИКЛАД
Приклад вхідних даних
5
6 7.5 2.1 2.0 0
Приклад вихідних даних
7.50
program p_914;
var i,n:longint;
a:array[1..101] of real;
f:text;
max:real;
begin
assign(f,'input.txt');
reset(f);
read(f,n);
read(f,a[1]);
max:=a[1];
for i:=2 to n do begin
read(f,a[i]);
if a[i]>max then max:=a[i]
end;
max:=abs(max);
close(f);
assign(f,'output.txt');
rewrite(f);
writeln(f,max:0:2);
close(f) end.
#916 ЦІКАВИЙ ДОБУТОК
Визначити всі можливі значення добутку i*j, якщо цілочислові значення змінних i та j змінюються відповідно i від a до b та j від c до d (1 ≤ a, b, c, d ≤ 10).
ТЕХНІЧНІ УМОВИ
Вхідні дані
У єдиному рядку 4 числа через пропуск: a, b, c та d.
Вихідні дані
Єдине число - кількість можливих варіантів добутку.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 4
Складність: 31%
Джерело: ДПА-2010 Варіант 16
ПРИКЛАД
Приклад вхідних даних
1 10 1 10
Приклад вихідних даних
42
program p_916;
var a,b,c,d,i,j,k,s,n:integer;
x:array[1..101] of integer;
begin
read(a,b,c,d);
if a>b then begin n:=a; a:=b; b:=n end;
if c>d then begin n:=c; c:=d; d:=n end;
i:=a; n:=0; k:=1;
while i<=b do begin
j:=c;
while j<=d do begin
n:=n+1;
x[n]:=i*j;
j:=j+1;
end;
i:=i+1
end;
for i:=1 to n-1 do
for j:=i+1 to n do
if x[i]>x[j] then begin a:=x[i]; x[i]:=x[j]; x[j]:=a end;
for i:=1 to n do
if x[i]<x[i+1] then k:=k+1;
writeln(k)
end.
#917 ПОДВОЄНИЙ МІНІМАЛЬНИЙ
Задано одновимірний масив A дійсних чисел пронумерованих від 1 до h. Обчислити подвоєне значення мінімального елемента масиву.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У першому рядку задано натуральне число h - кількість елементів у масиві (h ≤ 100). У наступному рядку через пропуск h дійсних чисел - самі елементи масиву, значення кожного з яких по модулю не перевищує 100.
Вихідні дані
У єдиному рядку вивести відповідь до задачі з точністю до 2-х знаків після десяткової крапки.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 4
Складність: 5%
Джерело: ДПА-2010 Варіант 17
ПРИКЛАД
Приклад вхідних даних
6
6 7.5 2.1 2.0 0 -3
Приклад вихідних даних
-6.00
program p_917;
var i,n:longint;
a:array[1..101] of real;
f:text;
min:real;
begin
assign(f,'input.txt');
reset(f);
read(f,n); read(f,a[1]); min:=a[1];
for i:=2 to n do begin
read(f,a[i]);
if a[i]<min then min:=a[i]
end;
min:=2*min;
close(f);
assign(f,'output.txt');
rewrite(f);
writeln(f,min:0:2);
close(f)
end.
#919 НОМЕР НА 3
Задано одновимірний масив А дійсних чисел, пронумерованих від 1 до h. Визначити суму і кількість додатних елементів, номери яких діляться на 3 без остачі.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У першому рядку задано натуральне число h - кількість елементів у масиві (h ≤ 100). У наступному рядку через пропуск h дійсних чисел - самі елементи масиву, значення кожного з яких по модулю не перевищує 100.
Вихідні дані
У єдиному рядку вивести спочатку кількість шуканих елементів масиву і через пропуск їх суму, обчислену з точністю до 2-х знаків після десяткової крапки.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 4
Складність: 7%
Джерело: ДПА-2010 Варіант 19
ПРИКЛАД
Приклад вхідних даних
6
6 7.5 2.1 2.0 0 -3
Приклад вихідних даних
1 2.10
program p_919;
var i,n,k:longint;
a:array[1..101] of real;
f:text;
s:real;
begin
assign(f,'input.txt');
reset(f); k:=0; s:=0; read(f,n);
for i:=1 to n do begin
read(f,a[i]);
if (a[i]>0) and (i mod 3=0) then begin s:=s+a[i]; k:=k+1 end
end;
close(f);
assign(f,'output.txt');
rewrite(f);
writeln(f,k,' ',s:0:2);
close(f) end.
#921 ВІД`ЄМНІ ЕЛЕМЕНТИ
Задано одновимірний масив А дійсних чисел, пронумерованих від 1 до h. Визначити суму й кількість від’ємних елементів масиву.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У першому рядку задано натуральне число h - кількість елементів масиву (h ≤ 100). У наступному рядку через пропуск задано h дійсних чисел - самі елементи масиву, значення яких не перевищують по модулю 100.
Вихідні дані
У єдиному рядку вивести спочатку кількість шуканих чисел і через пропуск їх суму, обчислену з точністю до 2-х знаків після десяткової крапки.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 4
Складність: 7%
Джерело: ДПА-2010 Варіант 21
ПРИКЛАД
Приклад вхідних даних
5
6 -7.5 2.1 -2.0 0
Приклад вихідних даних
2 -9.50
program p_921;
var i,n,k:longint;
a:array[1..101] of real;
f:text;
s:real;
begin
assign(f,'input.txt');
reset(f); k:=0; s:=0;
read(f,n);
for i:=1 to n do begin
read(f,a[i]);
if a[i]<0 then begin s:=s+a[i]; k:=k+1 end
end;
close(f);
assign(f,'output.txt');
rewrite(f);
writeln(f,k,' ',s:0:2);
close(f)
end.
#922 ЗСУНЬ ЕЛЕМЕНТИ
Задано одновимірний масив А цілих чисел довжини h. Зсунути елементи масиву циклічно праворуч на 1 крок.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У першому рядку задано натуральне число h - кількість елементів масиву (h ≤ 100). У другому рядку задано самі елементи масиву, значення кожного з яких за модулем не перевищує 100.
Вихідні дані
В єдиному рядку вивести через проміжок h чисел: нові значення елементів масиву.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 1.66667
Складність: 11%
Джерело: ДПА-2010 Варіант 22
ПРИКЛАД
Приклад вхідних даних
4
1 2 3 4
Приклад вихідних даних
4 1 2 3
program p_922;
var i,n,k:longint;
a:array[1..101] of integer;
f:text;
begin
assign(f,'input.txt');
reset(f); read(f,n);
for i:=1 to n do
read(f,a[i]);
close(f);
k:=a[n];
for i:=n downto 2 do
a[i]:=a[i-1];
a[1]:=k;
assign(f,'output.txt');
rewrite(f);
for i:=1 to n-1 do write(f,a[i],' ');
writeln(f,a[n]);
close(f)
end.
#928 СУМА НАЙБІЛЬШОГО ТА НАЙМЕНШОГО
Задано одновимірний масив A цілих чисел. Визначити суму найменшого та найбільшого елементів масиву.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У першому рядку задано натуральне число h - кількість елементів масиву (h ≤ 100). У другому рядку через проміжок задано самі елементи масиву, значення кожного з яких за модулем не перевищує 100.
Вихідні дані
В єдиному рядку вивести одне число - відповідь до задачі.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 1.66667
Складність: 8%
Джерело: ДПА-2010 Варіант 28
ПРИКЛАД
Приклад вхідних даних
4
1 2 3 4
Приклад вихідних даних
5
program p_928;
var i,n:longint;
a:array[1..101] of integer;
f:text;
max,min:integer;
begin
assign(f,'input.txt');
reset(f);
read(f,n);
read(f,a[1]);
max:=a[1];
min:=max;
for i:=2 to n do begin
read(f,a[i]);
if a[i]>max then max:=a[i];
if a[i]<min then min:=a[i]
end;
max:=max+min;
close(f);
assign(f,'output.txt');
rewrite(f);
writeln(f,max);
close(f)
end.
ПРОГРАМИ З ВИКОРИСТАННЯМ РЯДКІВ
#494 ГОЛОСНІ
До голосних літер в латинському алфавіті відносяться літери A, E, I, O, U і Y. Інші літери вважаються приголосними. Напишіть програму, яка підраховує кількість голосних літер в тексті.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У вхідному файлі міститься один рядок тексту, який складається лише із заглавних латинських літер та проміжків. Довжина рядка не перевищує 100 символів.
Вихідні дані
У вихідний файл вивести одне ціле число – кількість голосних у вхідному тексті.
Ліміт часу: 1 секунда
Бали за пройдений тест: 9.09091
Складність: 3%
ПРИКЛАД
Приклад вхідних даних
COBRA
Приклад вихідних даних
2
program p_494;
var i,k:byte;
a:string[100];
begin
readln(a);
k:=0;
for i:=1 to length(a) do begin
if a[i]='A' then k:=k+1;
if a[i]='E' then k:=k+1;
if a[i]='I' then k:=k+1;
if a[i]='O' then k:=k+1;
if a[i]='U' then k:=k+1;
if a[i]='Y' then k:=k+1
end;
writeln(k)
end.
#901 КІЛЬКІСТЬ ОПЕРАЦІЙ
Визначити загальну кількість операцій додавання (+), віднімання (-) та множення (*) у заданому арифметичному виразі.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У єдиному рядку задано арифметичний вираз без дужок та пропусків. Кількість символів у виразі не перевищує 250.
Вихідні дані
Єдине число - кількість вказаних операцій.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 4
Складність: 13%
Джерело: ДПА-2010 Варіант 1
ПРИКЛАД
Приклад вхідних даних
-1+2*3+a
Приклад вихідних даних
3
program p_901;
var i,k:integer;
a:string;
begin
readln(a);
k:=0;
for i:=2 to length(a) do begin
if a[i]='+' then k:=k+1;
if a[i]='-' then k:=k+1;
if a[i]='*' then k:=k+1
end;
writeln(k)
end.
#909 КІЛЬКІСТЬ СЛІВ
Визначити кількість слів у заданому фрагменті тексту.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У єдиному рядку задано фрагмент тексту на англійській мові, кількість символів у якому не перевищує 250. Гарантується, що у тексті відсутні тире, дефіси, цифри і числа.
Вихідні дані
Єдине число - кількість слів у фрагменті.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 6.66667
Складність: 7%
Джерело: ДПА-2010 Варіант 9
ПРИКЛАД
Приклад вхідних даних
Hello world!
Приклад вихідних даних
2
program p_909;
var i,k:integer;
a:string;
f:text;
begin
assign(f,'input.txt');
reset(f);
readln(f,a);
close(f);
k:=0;
for i:=1 to length(a) do begin
if a[i]=' ' then k:=k+1;
end;
k:=k+1;
assign(f,'output.txt');
rewrite(f);
writeln(f,k);
close(f)
end.
#912 КІЛЬКІСТЬ РЕЧЕНЬ
Визначити кількість речень у заданому фрагменті тексту.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У єдиному рядку задано фрагмент тексту на англійській мові, кількість символів у якому не перевищує 250. Гарантується, що у тексті відсутні тире, дефіси, цифри і числа.
Вихідні дані
Єдине число - кількість речень у фрагменті.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 6.66667
Складність: 28%
Джерело: ДПА-2010 Варіант 12
ПРИКЛАД
Приклад вхідних даних
Hello world!
Приклад вихідних даних
1
program p_912;
var i,k:integer;
a:string;
f:text;
begin
assign(f,'input.txt');
reset(f);
readln(f,a);
close(f);
k:=0;
a:=a+' ';
for i:=1 to length(a) do begin
if (a[i]='.') and (a[i+1]<>'.') then k:=k+1;
if (a[i]='!') and (a[i+1]<>'!') and (a[i+1]<>'?') then k:=k+1;
if (a[i]='?') and (a[i+1]<>'!') and (a[i+1]<>'?') then k:=k+1;
end;
assign(f,'output.txt');
rewrite(f);
writeln(f,k);
close(f)
end.
#930 НОМЕР МОБІЛЬНОГО ТЕЛЕФОНУ
Задано номер мобільного телефону. Визначити, які цифри відсутні в цьому номері.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У єдиному рядку задано номер мобільного телефону.
Вихідні дані
У першому рядку вивести кількість відсутніх у номері цифр. У другому рядку у порядку зростання вивести відсутні цифри, відокремлені пропуском.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 1.66667
Складність: 33%
Джерело: ДПА-2010 Варіант 30
ПРИКЛАД
Приклад вхідних даних
0631562976
Приклад вихідних даних
2
4 8
program p_930;
var i,j,k,p:integer;
a,c:string[13];
b:array[1..13] of integer;
f:text;
begin
assign(f,'input.txt');
reset(f);
readln(f,a);
close(f);
p:=0;
for i:=0 to 9 do begin
str(i,c);
k:=0;
for j:=1 to length(a) do
if a[j]=c then k:=k+1;
if k=0 then begin p:=p+1; b[p]:=i
end;
end;
if p>0 then for i:=1 to p-1 do
for j:=i+1 to p do
if b[i]>b[j] then begin
k:=b[i];b[i]:=b[j];b[j]:=k end;
assign(f,'output.txt');
rewrite(f);
writeln(f,p);
if p>0 then begin for i:=1 to p-1 do
write(f,b[i],' ');
writeln(f,b[p]);end;
close(f)
end.
ПРОГРАМИ З ВИКОРИСТАННЯМ ПІДПРОГРАМ
#913 ВИКОРИСТОВУЙ ПІДПРОГРАМУ
Обчислити суму і добуток N пар заданих дійсних чисел, скориставшись підпрограмою SumDob для обчислення суми і добутку двох дійсних чисел.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У першому рядку задано натуральне число N - кількість пар чисел. У наступних N рядках через пропуск задано по 2 дісних числа. Всі вхідні дані по модулю не перевищують 100.
Вихідні дані
У N рядках вивести через пропуск по два числа: спочатку суму, а потім добуток чергової пари чисел. Результат виводити з точністю 4 знаки після десяткової крапки.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 10
Складність: 8%
Джерело: ДПА-2010 Варіант 13
ПРИКЛАД
Приклад вхідних даних
2
6 7.5
2.1 2.0
Приклад вихідних даних
13.5000 45.0000
4.1000 4.2000
Пояснення: Дозволяється використовувати 2 підпрограми, для знахождення суми і добутку відповідно кожну окремо.
program p_913;
var x,y:array[1..255] of real;
s,d:real;
n,i:integer;
procedure sumdob(x,y:real;var s,d:real);
begin
s:=x+y; d:=x*y
end;
begin
read(n);
for i:=1 to n do read(x[i],y[i]);
for i:=1 to n do begin
sumdob(x[i],y[i],s,d); writeln(s:0:4,' ',d:0:4)
end end.
#920 ВИКОРИСТОВУЙ ФУНКЦІЮ
Задано 3 дійсні числа х, у i z. Визначити min(max(x,y), max(y,z), x+y+z), скориставшись допоміжними функціями для обчислення мінімального та максимального елементів з двох заданих.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У єдиному рядку задано 3 дійсні числа х, у i z, відокремлені пропуском. Значення чисел не перевищують по модулю 100.
Вихідні дані
Єдине число - відповідь до задачі, виведене з точністю 2 знаки після десяткової крапки.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 4
Складність: 10%
Джерело: ДПА-2010 Варіант 20
ПРИКЛАД
Приклад вхідних даних
1.05 2.25 2.15
Приклад вихідних даних
2.25
program p_920;
var x,y,z,k:real;
function max(x,y:real):real;
begin
if x>y then max:=x else max:=y
end;
function min(x,y:real):real;
begin
if x>y then min:=y else min:=x
end;
begin
read(x,y,z);
k:=min(max(x,y),max(y,z));
k:=min(k,x+y+z);
writeln(k:0:2);
end.
#925 ПЕРИМЕТР І ПЛОЩА
Задано дійсні числа x1, y1, x2, y2, x3, y3, значення яких відповідають координатам вершин трикутника. Визначити периметр та площу трикутника, використовуючи підпрограму Vidrizok для обчислення довжин відрізка.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У єдиному рядку через пропуск задано координати вершин трикутника: 6 чисел x1, y1, x2, y2, x3, y3, значення яких не перевищують по модулю 100.
Вихідні дані
У єдиному рядку через пропуск вивести спочатку периметр, а потім площу трикутника, обчислену з точністю до 4-х знаків після десяткової крапки.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 4
Складність: 8%
Джерело: ДПА-2010 Варіант 25
ПРИКЛАД
Приклад вхідних даних
3 2 7 6.5 10 1
Приклад вихідних даних
19.3568 17.7500
program p_925;
var x1,y1,x2,y2,x3,y3,d1,d2,d3,p,s:real;
function vidrizok(x1,y1,x2,y2:real):real;
begin
vidrizok:=sqrt(sqr(x1-x2)+sqr(y1-y2))
end;
begin
read(x1,y1,x2,y2,x3,y3);
d1:=vidrizok(x1,y1,x2,y2);
d2:=vidrizok(x1,y1,x3,y3);
d3:=vidrizok(x3,y3,x2,y2);
p:=(d1+d2+d3)/2;
s:=sqrt(p*(p-d1)*(p-d2)*(p-d3));
writeln(2*p:0:4,' ',s:0:4);
end.
#926 ФОРМУЛА ГЕРОНА
Задано сторони a, b, c, d та діагональ f опуклого чотирикутника. Визначити площу чотирикутника, використовуючи допоміжну функцію обчислення площі трикутника за формулою Герона.
ТЕХНІЧНІ УМОВИ
Вхідні дані
У єдиному рядку задано через пропуск 5 чисел: a, b, c, d, f (0 < a, b, c, d, f ≤ 100), як це показано на рисунку.
Вихідні дані
Єдине число - площа чотирикутника, обчислена з точністю до 4-х знаків після десяткової крапки.
Ліміт часу: 0.5 секунди
Бали за пройдений тест: 4
Складність: 10%
Джерело: ДПА-2010 Варіант 26
ПРИКЛАД
Приклад вхідних даних
3 4 4 2 5
Приклад вихідних даних
9.7997
program p_926;
var a,b,c,d,f,s:real;
function heron(a,b,c:real):real;
var p:real;
begin
p:=(a+b+c)/2;
heron:=sqrt(p*(p-a)*(p-b)*(p-c))
end;
begin
read(a,b,c,d,f);
s:=heron(a,b,f)+heron(c,d,f);
writeln(s:0:4);
end.
ЗМІСТ
Лінійні програми 3
Програми з розгалуженнями 11
Програми з циклами 21
Програми з використанням масивів 25
Програми з використанням рядків 37
Програми з використанням підпрограм 42
Для нотаток
___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Гарнітура Arial, Arial Narrow, Book Antiqua, Uk_Decor