Лінійні програми (10 задач)

1. Комп’ютер повинен опитати прізвище, ім’я, по-батькові та дату народження учня і вивести дані на екран.

2. Запитати про назву товару кількість і ціну за одиницю трьох товарів в супермаркеті. Вивести на екран чек.

3. На вході задано а. Знайти значення виразу:

4. Ввести з клавіатури три числа. Знайти максимальне, мінімальне та середнє арифметичне цих чисел.

5. Мама купила 15 кг цукру по c1 грн/кг,  10 кг муки по c2 грн/кг. Скільки потрібно заплатити за окремі продукти та загальну суму.

6. На одній ділянці ростуть 34 кущі смородини, а на другій — на t кущів менше. Скільки всього кущів смородини росте на двох
ділянках?

7. Чергові першого загону туристів  t1 хв  чиститили картоплю із швидкістю 24 картоплини/хв, а чергові другого загону  t2 хв, із швидкістю 45 картоплин/хвилину. Скільки картоплин почистили чергові першого, та другого загонів та скільки всього картоплин було почищено.

8. Білочки Руденька та Жовтенька t днів збирали горіхи. Руденька  збирала k1 горіхів/день, а Жовтенька — k2 горіхів/день.  Скільки кілограмів горіхів зібрала Руденька і скільки — Жовтенька?

9.  Ціни за два види товарів зросли на p відсотків. Вивести старі та нові ціни.

10. Ввести врожайність трьох сортів пшениці (k1,k2,k3) і розміри трьох полів (s1,s2,s3) у га. Скільки зібрали пшениці з кожного поля і з трьох полів разом?

 

Скрін або фото готової програми скидуємо сюди:

https://drive.google.com/drive/folders/1e7lFk0xRKb_SgpByslGGpu0nXdZgKofl?usp=sharing

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. Створити проект знаходження суми кількості та середнього арифметичного всіх натуральних двоцифрових чисел кратних 3. Числа, що задовольняють умовам вивести у стовпчик  у текстовому полі.

2. Створити проект знаходження суми кількості та середнього арифметичного всіх натуральних двоцифрових чисел кратних 5. Числа, що задовольняють умовам вивести у стовпчик  у текстовому полі.

3. Створити проект знаходження суми кількості та середнього арифметичного всіх парних натуральних двоцифрових чисел.  Числа, що задовольняють умовам вивести у стовпчик  у текстовому полі. Читати далі

Вивчаємо розгалуження (15 задач)

1. Ввести два числа, вивести більше.

2. Ввести ціле число. Якщо воно є додатнім, то додати до нього 1; в іншому разі не змінювати його. Вивести отримане число.
3. Ввести ціле число. Якщо воно є додатнім, то додати до нього 1; в іншому випадку відняти від нього  10. Вивести отримане число. Читати далі

Підготовка до олімпіади з програмування (задача Forecast)

Василько та Юлія грають в таку гру. Спочатку кожен записує на
папері свій прогноз – число від 1 до 6. Потім вони кидають гральний кубик з числами
від 1 до 6 на гранях. Чий прогноз виявляється ближчим до того числа, що випало, той
і переміг. Треба написати програму для визначення переможця. Технічні умови.
Програма Forecast читає з пристрою стандартного введення три числа через
пропуски (пробіли) – прогноз Василька, Юлі та результат кидання кубика. Програма
виводить “V”, якщо переміг Василько, “J” якщо Юлія або ”D” – якщо прогноз обох
однаково близький до результату (тобто переможця виявити неможливо.
Приклади
Введення Виведення
3 4 5 J
1 6 2 V
4 4 3 D

 

 

Program forecast; 
var 
V,J,res:integer; 
begin 
read(V,J,res); 
if Abs(V-res) < Abs(J-res) then 
write('V'); 
if Abs(V-res) > Abs(J-res) then 
write('J'); 
if Abs(V-res) = Abs(J-res) then 
write('D'); 
end.
Підготовка до олімпіади з програмування (задача про воронів )

Петро довго сидів біля вікна і спостерігав, як N воронів, кожен у своє гніздо, приносять монети. Петро помітив, що i-тий ворон приніс у своє гніздо ai монет. Також Петро помітив, що якщо в i-ому гнізді виявиться bi монет, то гніздо з усім своїм вмістом упаде на землю, і усі монети дістануться Петру.
У Петра є M монет. Він дуже влучно кидає монети у гнізда. Допоможіть Петру дізнатись, яке максимальне число монет він може отримати.
Вхідні дані
Перший рядок вхідного файлу містить два цілих числа N і M (1 ≤ N ≤ 1000, 0 ≤ M ≤ 1000 ) – число воронів і монет у Петра. Другий рядок містить N чисел ai (1 ≤ ai ≤ 1000). Третій рядок містить N чисел bi (ai < bi ≤ 1000).
Вихідні дані
Вихідний файл має містити одне число – максимальне число монет, які може отримати Петро.

 

Program vorona; 
type 
arr = array of integer; 
var 
ai,bi:arr; 
s,i,N,M:integer; 
begin 
readln(N,M); 
setlength(ai,N); 
setlength(bi,N); 
for i:=0 to N-1 do 
read(ai[i]); 
readln; 
for i:=0 to N-1 do 
read(bi[i]); 
for i:=0 to N-1 do 
begin 
if M >= (bi[i]-ai[i]) then 
begin 
M:=M+bi[i]-(bi[i]-ai[i]); 
end; 
end; 
writeln(M); 
end.
Підготовка до олімпіади з програмування (задача Вогняне дихання )

Одного разу Сеньйор розповів Дракону, що минулого вечора він K
разів бачив над лісом дим. Як ви знаєте, диму без вогню не буває.
Дракон пригадав, що вчора він гуляв лісом та час від часу заради
розваги дмухав вогнем, як це інколи роблять всі поважні дракони.
Всього Дракон дмухав вогнем у N точках. Сеньйору раптом стало
цікаво – наскільки далеко він може побачити драконів дим?
Нехай відстань, на яку видно дим – R. Тоді кожного разу, коли
Дракон дмухає вогнем, дим можуть побачити лише ті, хто знаходиться
на відстані не більшій ніж R від дракона.
Знаючи координати хатинки Сеньйора, а також усіх місць, де
дмухав вогнем Дракон, скажіть, яка найменша можлива відстань R,
при якій Сеньйор міг бачити дим хоча б K разів.
Вхідні дані:
У першому рядку вхідних даних задані два цілих числа X та Y –
координати хатинки Сеньйора. У наступному рядку задані два цілих
числа N та K. У наступних N рядках задані пари цілих чисел xi та yi
– координати точок, в яких Дракон дмухав вогнем.
Вихідні дані:
В єдиному рядку виведіть найменше можливе значення R. Відповідь
буде зарахованою, якщо її відносна або абсолютна похибка не
перевищуватиме 10-7
.
Обмеження:
1 ≤ N ≤ 100,
1 ≤ K ≤ N,
0 ≤ X, Y, xi, yi ≤ 1000000000 (109).
Приклад вводу:
5 6
4 2
3 4
8 11
6 5
17 25
Приклад виводу:
2.82842712

……….. тут кординатна площина і відстань між двома точками

 


program Hi; 
type 
mas = array of integer; 
mas1 = array of real; 
var 
xi,yi:mas; 
R:mas1; 
j,i,X,Y,N,K : integer; 
m : real; 
begin 
readln(X,Y); 
readln(N,K); 
setlength(xi,N); 
setlength(yi,N); 
setlength(R,N+1); 
for i := 0 to N-1 do 
begin 
readln(xi[i],yi[i]); 
end; 
for i:=0 to N-1 do 
begin 
R[i]:=Sqrt(sqr(abs(x-xi[i]))+sqr(abs(y-yi[i]))); 
end; 
for j := 1 to N-1 do 
begin 
for i := 1 to N-j do 
if R[i] > R[i+1] then 
begin 
m := R[i]; 
R[i] := R[i+1]; 
R[i+1] := m; 
end; 
end; 
for i := 1 to N do 
writeln(' сорт.',R[i]:5); 
end.
Підготовка до олімпіади з програмування (задача Дракон та бісеня)

Мале Бісеня та Дракон полюбляють проводити дозвілля разом.
Сьогодні вони грають в одну дуже цікаву гру.
У них є дошка, що складається з N рядків та M стовпців, всі
клітинки якої білі.
Гравці по черзі вибирають одну білу клітинку та зафарбовують її
в чорний колір. Бісеня ходить першим. Гравець, який не може
зробити хід, тобто на початку ходу якого вся дошка чорна, програє.
Погостривши зубки, Бісеня зрозуміло, що у Дракона велика
перевага, адже він двоголовий, а, як то кажуть, «одна голова
добре, а дві краще». Тому воно просить Вас допомогти. Вам потрібно
сказати за заданими N та M, хто виграє у цій напруженій грі.
Вхідні дані:
У єдиному рядку задані два цілих числа N та M – розміри дошки.
Вихідні дані:
Єдине слово – «Imp» (без лапок), якщо переможе Бісеня та
«Dragon» (без лапок), якщо переможе Дракон.
Обмеження:
1 ≤ N, М ≤ 100.
Приклад вводу:
7 4
Приклад виводу:
Dragon

 

program Hi; 
var N,M : integer; 
begin 
readln(N,M); 
if Odd(N*M) then write('Imp') else write('Dragon'); 
end.
Підготовка до олімпіади з програмування (задача про купе)

У плацкартному вагоні 54 місця, які розташовані в дев’яти купе. Місця від 1 до 36 основні і вони розташовані по чотири в купе (1 – 4 у першому, …, 33 – 36 у дев’ятому), від 37 до 54 – бічні, розбиті по два, але розташування по купе зворотне: місця 37 , 38 знаходяться в дев’ятому купе, 39 і 40 у восьмому, …, 53 і 54 у Першому. За номером місця визначте номер купе.

 

program l1; 
var a,res:integer; 
begin 
readln(a); {читаєм місце} 
if (a>=1) and (a<=36) {якщо місце основне} 
then 
begin 
res:= a div 4 + 1;
if a mod 4 = 0 then 
Dec(res);
end; 
if (a>=37) and (a<=54) 
then 
res:=(54-a) div 2 + 1; 
write(res); 
end.
Pascal програма “Знаходження НСК чисел”

Найменше спільне кратне (НСК) двох цілих чисел a, b називаємо найменше натуральне число, яке є кратним до обох цих чисел. Позначаємо НСК(a, b), в англомовній літературі LCM(a, b). Отже НСК(a, b) є найменшим натуральним числом, яке ділиться без залишку на обидва числа a, b. Означення можна – очевидним способом – узагальнити на довільну кількість аргументів.

Властивості•  НСК(a, b)= НСК(b, a) (перестановка аргументів не змінює НСК).

•          НСК(a, b, c, d) = НСК(НСК(a, b), НСК(c, d) )

•          НСК(a, b) =|ab|/НСД(a, b), де НСД(a, b) найбільший спільний дільник чисел a, b.

 

Програма

function NOD(x,y:integer):integer;

Begin

If x<>0 then NOD:=NOD(y mod x,x) else NOD:=y;

End;

function NOK(x,y:integer):integer;

Begin

NOK:=(x div NOD (x,y))*y;

end;

var a:array[1..100] of integer;

n,i:byte;

k:integer;

begin

write(‘Введіть к-сть елементів n=’);

readln(n);

writeln(‘Введіть елементи масиву: ‘);

for i:=1 to n do

begin

write(‘a[‘,i,’]=’);

readln(a[i]);

end;

clrscr;

writeln(‘Масив:’);

for i:=1 to n do

write(a[i],’ ‘);

writeln;

k:=NOK(a[1],a[2]);

for i:=3 to n do k:=NOK(k,a[i]);

writeln(‘НСК елементів=’,k);

readln

end.

Pascal програма “Знаходження НСД чисел”

НСД(a, b)= НСД(b, a) (перестановка аргументів не змінює НСД).

•          1<=НСД(a, b)<=min(|a|,|b|)

•          НСД(a, b, c, d) = НСД(НСД(a, b), НСД(c, d) )

•          НСД(a, b) =|ab|/НСК(a, b), де НСК(a, b) найменше спільне кратне чисел a, b.

 

Програма

function Nod(a,b:integer):integer;{знаходження НСД 2 чисел}

begin

while a<>b do

if a>b then a:=a-b else b:=b-a;

Nod:=a;

end;

var a:array[1..100] of integer;

n,i:byte;

k:integer;

begin

clrscr;

write(‘Введіть к-сть елементів n=’);

readln(n);

writeln(‘Введіть елементи масиву: ‘);

for i:=1 to n do

begin

write(‘a[‘,i,’]=’);

readln(a[i]);

end;

writeln(‘Масив:’);

for i:=1 to n do

write(a[i],’ ‘);

writeln;

k:=Nod(a[1],a[2]);

for i:=3 to n do k:=nod(k,a[i]);

writeln(‘НСД елементів=’,k);

readln

end.