Вивчення Turbo Pascal

Вивчення Turbo Pascal у школі - це просто,
якщо користуватися цим сайтом

  

   
  Головна
  Вступ до програмування
  Основи програмування мовою Паскаль
  Алгоритмічні структури
  Підпрограми
  Структуровані типи даних
  Графіка
  Автор сайту
  Карта сайту
   
 
 

Запис алгоритмів з використанням вказівки розгалуження мовою програмування

 

Задача №96 (1).
Умова: Дано значення цілих величин x та y . Знайти:

Program Example_96_1; 
Uses crt; 
Var x,y,Max,Min,Rezultat:integer;   
Begin 
  Clrscr;          {Очищення екрану} 
  Write(‘Введіть значення x та y: ’); 
  Readln(x,y); 
  If x{Знаходження максимуму та мінімуму} 
  Then  
    Begin 
       Max:=y; 
       Min:=x; 
    end 
  Else 
    Begin 
       Max:=x; 
       Min:=y; 
    End; 
  Rezultat:=sqr(Max)-sqr(Min); 
  Writeln(‘Резудьтат обчислень:  ’,Rezultat:8:2); 
  Readkey;      {Затримка зображення на екрані до  
                 натискання будь якої клавіші} 
End. 

Задача №97(2).
Умова: Дано значення дійсних величин a, b, c. Знайти:

Program Example_97_2; 
Uses crt; 
Var a,b,c : real;  
    Rez1,Rez2,Min : real; {Rez1, Rez2 – проміжні  
             обчислення; Min – результат виконання програми} 
  Begin 
  Clrscr;          {Очищення екрану} 
  Write(‘Введіть числа a,b,c: ’); 
  Readln(a,b,c); 
  Rez1:=(a + b + c) / 2; 
  Rez2:=sqrt(1/(sqr(a)+1)+1/(sqr(b)+1)+1/(sqr(c)+1)); 
  If Rez1Then Min:=Rez1 
  Else Min:=Rez2; 
  Writeln(‘Min=’,Min:8:2); 
  Readkey;       {Затримка зображення на екрані до  
                  натискання будь якої клавіші} 
End. 

Задача №100(2).
Умова: Дано значення дійсної величини Х. Визначити:

Для розв'язання цієї задачі необхідно пам'ятати, що ділити на нуль не можна.

Program Example_100_2; 
Uses crt; 
Var X,Rezultat:real; 
Begin 
  Clrscr;          {Очищення екрану} 
  Write(‘Введіть значення X: ’); 
  Readln(Х); 
  If X*X*X+X-2<>0 
  Then 
    begin  
      Rezultat:=(X-5)/(X*X*X+X-2); 
      Writeln(‘Rezultat=’,Rezultat:8:2); 
    end 
  Else 
    Writeln(‘Обчислення неможливі – ділення на нуль!’); 
  Readkey;      {Затримка зображення на екрані до  
                 натискання будь якої клавіші} 
End. 

Задача №101(4).
Умова: При даному значенні Х обчислити:

Для розв'язання цієї задачі необхідно пам'ятати, що не можна знайти квадратний корінь з від'ємного числа.

Program Example_101_4; 
Uses crt; 
Var X,Rezultat:real; 
Begin 
  Clrscr;          {Очищення екрану} 
  Write(‘Введіть значення X: ’); 
  Readln(Х); 
  If (X>=1) and (X*X*X-sqrt(X-1)>=0) 
  Then 
    begin  
      Rezultat:=sqrt(X*X*X-sqrt(X-1)); 
      Writeln(‘Rezultat=’,Rezultat:8:2); 
    end 
  Else 
    Writeln(‘Обчислення неможливі – від’ємний  
             підкореневий вираз!’); 
  Readkey;     {Затримка зображення на екрані до  
                натискання будь якої клавіші} 
End. 

Задача №102(3).
Умова: Дано дійсні значення x та y. Обчислити:

Для розв'язання цієї задачі необхідно виконання умов обох попередній прикладів.

Program Example_102_3; 
Uses crt; 
Var X,Y,Rezultat:real; 
Begin 
  Clrscr;          {Очищення екрану} 
  Write(‘Введіть значення X та Y: ’); 
  Readln(Х); 
  If (sqr(X)-sqr(Y)<>0) and (X*X*X-Y+0.5>=0) 
  Then 
    begin  
      Rezultat:=sqrt(X*X*X-Y+0.5)/(sqr(X)-sqr(Y)); 
      Writeln(‘Rezultat=’,Rezultat:8:2); 
    end 
  Else 
    Writeln(‘Обчислення неможливі!’); 
  Readkey;  {Затримка зображення на екрані до  
             натискання будь якої клавіші} 
End. 

Задача №107.
За рейтинговою системою оцінка визначається таким чином, якщо сумарний бал учня становить не менше 92% від максимального, то виставляється оцінка 12, якщо не нижче 70%, то виставляється 8, якщо ж не нижче 50%, то оцінка 5, в інших випадках - оцінка 2. Визначте оцінку учня, якщо він набрав N балів, а максимальне значення сумарного балу становить S.
В цій задачі можна використати повну або скорочену форму команди розгалуження. Вам пропонується розв'язок зі скороченою формою.

Program Example_107; 
Uses crt; 
Var N,S,Grade:integer; {N – бали, що набрав учень; S  
                        – максимальне значення  
                        сумарного балу; Grade – 
                        оцінка учня} 
Begin 
  Clrscr;             {Очищення екрану} 
  Write(‘Введіть максимальне значення сумарного балу,  
        що може набрати учень: ’); 
  Readln(S); 
  Write(‘Введіть кількість балів, що отримав учень: ‘);  
  Readln(N); 
  If (S<=0) or (N<=0) or (N>S) 
  Then writeln(‘Помилка вхідних даних.’)   
  Else 
    Begin 
      N:=round(N/S*100); {Знаходження процентного  
                          відношення балів учня до  
                          максимально можливого} 
      If N>=92 then Grade:=12; 
      If (N<92) and (N>=70) then Grade:=8; 
      If (N<70) and (N>=50) then Grade:=5; 
      If (N<50) then Grade:=2; 
      Writeln(‘Учень отримав оцінку - ’, Grade); 
    End; 
  Readkey;        {Затримка зображення на екрані до  
                   натискання будь якої клавіші} 
End. 

Задача №103.
Умова: На площині дано дві точки (x1, y1) та (x2, y2). Визначити, яка з них знаходиться далі від початку координат.
Для розв'язання цієї задачі необхідно скористатися теоремою Піфагора для знаходження відстані від початку координат до заданої точки (дивись малюнок):

Очевидно, що відстань від початку координат до точки з координатами (x, y) буде обчислюватись наступним співвідношенням: .
Зверніть увагу на те, що в зв'язку з тим, що кожна з координат в формулі підноситься до квадрату, неважливо, в якій чверті координатної площини буде знаходитись точка.
Виходячи з усього вище сказаного, програма для розв'язання даної задачі має наступний вигляд:

Program Example_103; 
Uses crt; 
Var X1,Y1,X2,Y2:real; {X1,Y2,X2,Y2 – координати даних  
                       точок} 
    S1,S2:real;     {S1,S2 – відстані відповідно до  
                    першої та другої точки} 
 
Begin 
  Clrscr;          {Очищення екрану} 
  Write(‘Введіть координати першої точки: ’); 
  Readln(Х1,Y1); 
  Write(‘Введіть координати другої точки: ’); 
  Readln(Х2,Y2); 
  S1:=sqrt(sqr(X1)+sqr(Y1)); 
  S2:=sqrt(sqr(X2)+sqr(Y2)); 
  If S1Then Writeln(‘Друга точка далі від початку координат’) 
  Else Writeln(‘Перша точка далі від початку координат’); 
  Readkey;       {Затримка зображення на екрані до  
                   натискання будь якої клавіші} 
End. 

Задача №112.
Умова: Дано значення дійсних величин a, b, c. Подвоїти ці значення, якщо a >= b >= c, і замінити їх абсолютними значеннями, якщо це не так.
В цій задачі зверніть увагу на дуже поширену помилку: в програмі не можна писати подвійну нерівність, як це робиться в математиці. Тобто, вираз a >= b >= c в програмі записується як складена умова (a >= b) and (b >= c).

Program Example_112; 
Uses crt; 
Var a,b,c:real;  
Begin 
  Clrscr;          {Очищення екрану} 
  Write(‘Введіть три числа: ’); 
  Readln(a,b,c); 
  If (a>=b) and (b>=c) 
  Then  
    Begin 
      A:=A*2; 
      B:=B*2; 
      C:=C*2; 
    End 
  Else 
    Begin 
      A:=abs(A); 
      B:=abs(B); 
      C:=abs(C); 
    End; 
  Writeln(‘Вихідні значення:’); 
  Writeln(‘a=’,a:8:2); 
  Writeln(‘b=’,b:8:2); 
  Writeln(‘c=’,c:8:2); 
  Readkey;     {Затримка зображення на екрані до  
                натискання будь якої клавіші} 
End.