Цей матеріал стане в нагоді на уроках інформатики при вивченні мови програмування та при підготовці учнів до олімпіади з інформатики. Це наступний документ з низки "Вчимося розв'язувати задачі", який стане в нагоді вчителю та учням.
Задача 1. Знайти найбільше число з трьох даних чисел.
Ідея розв’язування:
Якщо перше число більше другого і більше третього, то воно найбільше, інакше воно не найбільше, тому розглядаємо два наступних числа. Якщо друге більше третього, то друге найбільше, інакше найбільше - третє число.
Алгоритм розв’язування:
інакше якщо В>C то найбільше В
інакше найбільше С.
Програма:
Program Task1;
var a,b,c,max: real;
begin
write(‘ Введіть числa A, B і C’); readln(a,b,c);
If (a>b) and (a>c) then max : =a
else If b>c then max : = b
else max : = c;
writeln(‘ найбільше з чисел - ‘, max);
end.
Задача 2. Розв’яжіть лінійне рівняння ах+в=0.
Ідея розв’язування:
Лінійне рівняння має три можливих варіанта розв’язування :
1 ) якщо коефіцієнт a не дорівнює нулю, то рівняння має один розв’язок ;
Алгоритм розв’язування:
то вивести(«безліч розв’язків»)
інакше якщо а=0
то вивести («розв’язків нема»)
інакше вивести («рівняння має один розв’язок», -b/a);
Програма розв’язування:
Program Task2;
var a, b : real;
begin writeln(‘ax+b=0’);
write(‘ Введіть значення а і b’); readln(a,b);
If a<>0 then writeln(‘ рівняння має один розв’язок x=’,-b/a:0:2)
else If b=0 then writeln(’ рівняння має безліч розв’язків’)
else writeln(‘ рівняння не має розв’язку’);
end.
Задача 3
Обчислити
Алгоритм розв’язування
то y:=x2+4
інакше якщо x<0
то y:=abs(x)
інакше якщо x<4
то y:=1+
інакше y:=x-1
Програма розв’язування
Program Task3;
var x, y : real;
begin write(‘ Введіть значення x’); readln(x);
If x<-5 then y:=x2+4
else If x<0 then y:=abs(x)
else If x<4 then y:=1+
else y:=x-1;
writeln(‘y=’, y:0:4);
end.
Задача 4.
Дано натуральне число до 100, яке визначає вік людини (в роках). Додати до цього числа найменування "рік", " роки " або " років ", наприклад 1 рік, 42 роки, 26 років.
Проаналізуємо в яких випадках ми додаємо ці слова:
Програма розв’язування:
Var n: 1..100;
Begin
Write(' Введіть вік людини '); Readln(n);
If (n>10) and (n<15) then writeln(n,' років')
Else
Case n mod 10 of
1: writeln(n, ' рік');
2 . .4: writeln(n, ' роки');
0, 5 . . 9 : writeln(n, ' років');
end;
end.
Задача 5. Обчислити
де y=a+x+sin2a, x=cos(a/b)-sin(b/a).
Ідея розв’язування:
Що б обчислити Z необхідно не тільки знати значення a, b, c і d, а й обчислити попередньо y. Змінна у залежить від значень а і х, змінну х також потрібно попередньо обчислити, запросив значення a і b, враховуючи що вони не дорівнюють 0.
Алгоритм розв’язування:
то z:=a2(d-c)
інакше якщо y= 10
то z:= y+11ac
інакше z:= y2(a/b-2c)
6) вивести Z
Програма
Program task1;
var a, b, c, y, z : real;
begin
write(‘Ввести значення a, b’); readln(a,b);
If (a=0) or (b=0) then
begin writeln(‘ введені значення рівні 0’);
Halt;{ переривається виконання програми}
end;
write(‘Ввести значення d, c’); readln(d,c);
x:=cos(a/b)-sin(b/a);
y:=a+x+sqr(sin(a));
If y< 10 then z:=sqr(a)*(d-c)
else If y= 10 then z:= y+11*a*c
else z:= sqr(y)*(a/b-2*c);
writeln(z);
end.
Задача 6.
2. Обчислити y= - Xmax, де x1=(1-а)2*(2+аc)3, x2=cos|x1|+a2,
x3=
Идея розв’язування:
Для обчислення y необхідно знати найбільше із значень Х1, Х2 і Х3. Значення Х1 залежить від а і с, які потрібно ввести з клавіатури. Значення Х2 обчислюється після знаходження Х1 , а Х3 залежить від взаємовідношень Х1 і Х2 , враховуючи, що Х2 не дорівнює 0 і а>0.
Алгоритм розв’язування:
то Х3:=сos(Х1/ Х2)
інакше якщо Х1 =Х2 то Х3:=3с+а
інакше Х3:=а;
то Xmax:= Х1
інакше якщо Х2 >Х3 то Xmax := Х2
інакше Xmax:= Х3
Програма розв’язування:
Program task2;
var a, b, x1, x2, x3, max, y : real;
begin
write(‘Ввести значення a, b’); readln(a,b);
If a<0 then begin writeln(‘ введене значення від’ємне’);
Halt;{ переривається виконання програми}
end;
x1: = sqr(1-а)*(2+а*c)*sqr(2+a*c); x2: =cos(abs(x1))+a*a;
If (x1>x2) and (x2<>0) then x3 : =cos(x1/x2)
else If x1= x2 then x3 : = 3*c+a
else x3 : = a*sqrt(a);
If (x1>x2) and (x1>x3) then max : =x1
else If x2> x3 then max : = x2
else max : = x3;
y := - max; writeln(‘y=’, y:0:2);
readln;
end.