вторник, 24 апреля 2012 г.

Цикл Поки


Якщо <умова> має значення TRUE (виконується), то виконується <оператор>, 
 після чого повторюється перевірка <умови>. Якщо <умова> має значення 
FALSE (не виконується), оператор WHILE припиняє свою роботу. 


 
Program While_Demo;
Var
 I  : Integer;
 St : String;
BEGIN
 Write('Введіть слово: ');
 Readln(St); 
 Writeln('Повторяю 10 раз.'); 
 I:=0;
 While I < 10 Do
  Begin
   Writeln(St);
   I:=I+1;
  End;
END.
 

воскресенье, 22 апреля 2012 г.

Цикл "Доки". Команди While, Repeat..


1)      Цикл "Доки". Команди While, Repeat.

While
            умова do
begin
Тіло циклу
end;

Вказівка виконується таким чином: перевіряється виконання умови, записаної після слова WHILE (поки), і якщо ця умова виконується то виконується серія операторів (тіло циклу), після чого знову повертається до перевірки виконання вказаної умови (зустрівши слово END). Вказані дії виконуються доти, поки умова, яка перевіряється дає істино. Якщо умова не виконується (результат виконання умови є хибно), то тіло циклу пропускається і виконання вказівки повторення закінчується.
Приклад. Вивести таблицю чисел від 20 до 30, їхні квадрати та куби за допомогою команди while можна так:
і := 20;
while  і <= 30 do
begin
writeln(і:4, i*i:6, i*i*i:8);
і:=і+1;
      end;

Команда циклу з післяумовою (repeat) має вигляд
        repeat <команди> until <логічний вираз>;
Дія команди. Команди виконуються в циклі, доки значення логічного виразу не стане істинним. Істинний логічний вираз задає умову виходу з циклу.

2) Демонстраційний приклад.

 

Завдання


Протабулювати функцію y=x2 на відрізку [a,b] кроком h.

var x,y,a,b,h:real;
begin
readln(a,b,H);
x:=a;
while x<=B do
            begin
Y:=x*x;
writeln(x,’ ‘,y);
end;
end.


1)      Розв’язування задач.

  Скласти програму знаходження суми коренів квадратних цілих чисел від  0 до 50.
- Скласти програму знаходження суми всіх парних чисел від N до 50.

среда, 18 апреля 2012 г.

задачі


 Знайти відстань між двома заданими точками з координатами А(x,y),B(x1,y1)
Математична модель -   l:=sqrt(sqr(x-x1)+sqr(y-y1));

program Otrezok;
uses Crt;
var
  x,y, x1,y1            : real;
  l                     : real;
begin
  ClrScr;
  Write('‚ Ведіть координату   X:>'); Readln(x);
  Write('‚ Ведіть координату  Y:>'); Readln(y);
  Write('‚ Ведіть координату  X1:>'); Readln(x1);
  Write('‚ Ведіть координату Y1:>'); Readln(y1);
  l:=sqrt(sqr(x-x1)+sqr(y-y1));
  Writeln('Відстань між точками ',l:2:3);

end.

четверг, 12 апреля 2012 г.

знайти корені квадратного рівняння

Program Sq1;
Var A, B, C, D, X1, X2: Real;
Begin
Writeln ('Введіть коефіцієнти квадратного рівнняння);
Readln (A,B,C);
D:=B*B-4*A*C;
If D<0 Then Writeln ('Коренів немає! ')
Else
Begin
X1:=(-B+SQRT(D))/2/A;
X2:=(-B-SQRT(D))/2/A;
Writeln ('X1=', X1:8:3, ' X2=',X2:8:3)
End
End.

вторник, 10 апреля 2012 г.

оператори розгалуження

Задача. Скласти програму, яка, якщо введене число від'ємне, змінює його на протилежне

 Program Chisla;
Var
  x : integer;Begin
  writeln('Введіть число '); {вводимо ціле число}
  readln(x);
  if x<0
    then
      x:=-x;
  writeln (x);
  readln;
End.



завдання:

Трикутник
існує тільки тоді, коли сума будь-яких двох його сторін більше третьою.

Дано: а, б, в - сторони передбачуваного трикутника.
Потрібно порівняти довжину кожного відрізка з сумою двох інших. Якщо хоча б в одному випадку відрізок виявиться більше суми двох інших, то трикутника з такими сторонами не існує.



var a, b, c: integer;
 
begin
    write (' довжини сторін ');
    readln (a,b,c);
 
    if (a < b+c) and (b < a+c) and (c < a+b) then
        writeln ('трикутник існує')
    else
        writeln ('трикутник не існує');
 
readln
end.

воскресенье, 8 апреля 2012 г.

Вибір. Команда Case.


Арифметичні дії над числами пронумеровані наступним чином: 1 - додавання, 2 - віднімання, 3 - множення, 4 - поділ. Дан номер дії N (ціле число в діапазоні 1-4) і речові числа A і B не дорівнює 0). Виконати над числами вказане дію і вивести результат


var
a,b,o: integer;
begin
 writeln (‘введіть номер дії’);
 readln (o);
  writeln (‘введіть  2 числа’);
  readln (a,b);
    case o
      1: writeln (‘результат=’, a+b);
      2: writeln (‘результат=’, a-b);
      3: writeln (‘результат=’, a*b);
      4: writeln (‘результат’, a/b:5:2);
                      else writeln (‘неправильно’);
                      end;
end.




var
a,b, integer; o:char;
begin
 writeln (‘введіть номер дії’);
 readln (o);
  writeln (‘введіть  2 числа’);
  readln (a,b);
    case o
      '+': writeln (‘результат=’, a+b);
       '-': writeln (‘результат=’, a-b);
       '*': writeln (‘результат=’, a*b);
       '/': writeln (‘результат’, a/b:5:2);
                      else writeln (‘неправильно’);
                      end;
end.

воскресенье, 1 апреля 2012 г.

Вибір. Команда Case.


1)      Вибір. Команда Case.
Команда вибору (case) має вигляд
case <вираз> of
<список значень 1>  : <команда1>
            ……………..
<список значень n>  : <команда n>
else <команда n+1>
end;
Тут вираз — це проста змінна цілого, символьного, перерахова­ного або логічного типу; списки значень — сталі або діапазони, тип яких збігається з типом виразу. Якщо список значень складається з декількох елементів, то вони перераховуються через кому. Складова частина else <команда п+1> може бути відсутня — тоді матимемо коротку форму команди case.
Дія команди. Якщо значення виразу збігається зі значенням з списку і, то виконується команда з номером і, а інші команди цієї конструкції не виконуються. Якщо значення виразу не збігається з жодним значенням з жодного списку, то виконується команда n+1 або, у випадку короткої форми, наступна команда після команди case.
2) Демонстраційний приклад.
Задача. Нехай населені пункти позначені номерами від 1 до 8. Вартість одного квитка до конкретного пункту k визначається так:
Cina =
22, k = 1, 25, k = 2,3,4,30, k = 5,6, 35, k = 7,8.
Скільки коштуватимуть т квитків до населеного пункту, номер якого вводять з клавіатури?
 program Kvytky;
 uses Crt;
var k,m,cina:integer;
begin
clrscr;
writeln('Введіть номер пункту та кількість квитків:');
readln(k,m);
case k of

1       : cina:=22;
 2..4   : cina:=25;
5,6    :  cina:=30
else  
      cina:=35
 end;
write(m,  'квитків до пункту ', k, ' коштують ');
writeln(m*cina);
readln
 end.
Якщо під час виконання програми ввести дані так: 3 5, то на екрані отримаємо: 5 квитків до пунку 3 коштують 125.
2)      Розв’язування задач.
Розв’язати самостійно такі задачі:
1) Ввести число від 1 до 12.  В залежності від цього числа вивести пори року.
2) Ввести число від 1 до 7.  В залежності від цього числа вивести дні тижня.