Javascript must be enabled in your browser to use this page.
Please enable Javascript under your Tools menu in your browser.
Once javascript is enabled Click here to go back to �нтеллектуальная Кобринщина

Циклы

Цикл с предусловием:       

while условие do

      begin

                оператор 1;

                оператор 2;

                      …

        оператор n;

      end;

        

Цикл с постусловием:        

repeat

                оператор 1;

                оператор 2;

                      …

        оператор n;     

 until условие;

 

Цикл со счётчиком:    

         for переменная:= начальное значение to конечное значение do

      begin

                оператор 1;

                оператор 2;

                      …

               оператор n;

      end;

 

Программа, выводящая на экран сто символов (*).

Program Star;

Uses Crt;

var х : Integer;                       

Begin                                    

   Clrscr;

    x:=1;

 while x<100 do

      begin

         write(‘*’);

          x:=x+1;

      end;

  readln;

End.

        

Program Star;

Uses Crt;

var х : Integer;                       

Begin                                     

   Clrscr;

    x:=1;

 repeat

         write(‘*’);

          x:=x+1;

 until x>=100;

  readln;

End.

 

Program Star;

Uses Crt;

var х : Integer;                       

Begin                                    

   Clrscr;

 for x:=1 to 100 do

      begin

         write(‘*’);

      end;

  readln;

End. 

 

Program Star;

Uses Crt;

var х : Integer;                       

Begin                                    

   Clrscr;

 for x:=100 downto 1 do

      begin

         write(‘*’);

      end;

  readln;

End.

 

Программа, вычисляющая факториал числа, введённого с клавиатуры.

Program Faktorial;

Uses Crt;

var i, х, s : Integer;                       

Begin                                    

   Clrscr;

   write(‘Введите число’);

    readln(x);

    i:=1; s:=1;

 while i<x do

      begin

         s:=s*i+s;

         i:=i+1;

      end;

writeln(‘Факториал числа’, x, ‘=’, s);

  readln;

End. 

 

Program Faktorial;

Uses Crt;

var i, х, s : Integer;                       

Begin                                     

   Clrscr;

   write(‘Введите число’);

    readln(x);

    i:=1; s:=1;

 repeat

         s:=s*i+s;

         i:=i+1;

 until i>x;

writeln(‘Факториал числа’, x, ‘=’, s);

  readln;

End.

 

Program Faktorial;

Uses Crt;

var i, х, s : Integer;                       

Begin                                    

   Clrscr;

   write(‘Введите число’);

    readln(x);

    i:=1; s:=1;

 for i=1 to x do s:=s*i+s;

writeln(‘Факториал числа’, x, ‘=’, s);

  readln;

End. 

 

Программа, вычисляющая сумму слагаемых.

Program summa;

Uses Crt;

var i, s : Integer;                       

Begin                                    

   Clrscr;

    i:=1; s:=0;

 while i<100 do

      begin

         s:=1/i+s;

         i:=i+1;

      end;

writeln(‘Сумма элементов равна’, s);

  readln;

End.

 

Program summa;

Uses Crt;

var i, s : Integer;                       

Begin                                    

   Clrscr;

    i:=1; s:=0;

 repeat

         s:=1/i+s;

         i:=i+1;

 until i>100;

writeln(‘Сумма элементов равна’, s);

  readln;

End.

 

Program summa;

Uses Crt;

var i, х, s : Integer;                       

Begin                                    

   Clrscr;

    i:=1; s:=0;

 for i=1 to 100 do s:=1/i+s;

writeln(‘Сумма элементов равна’, s);

  readln;

End. 

 

Программа вывода таблицы соответствия между температурными шкалами Цельсия и Фаренгейта в интервале температур от 0?С до 100?С.

Рrogram Celsius to Fahrenheit;

Uses Crt;

var i, Celsius: Integer; Fahrenheit: real;

Вegin

    Clrscr;

writeln("Таблица соответствия между температурными шкалами');

writeln('Цельсия и Фаренгейта');

writeln;

i:=0;

 while i <= 20 do

    begin

        Celsius := 5 * i;

        Fahrenheit := 32 + Celsius * 9 div 5;

        write(‘ С =' , Celsius) ;

        write(‘ F =', Fahrenheit);

        writeln;

         i:=i+1;

      end;

readln;

End.

        

Рrogram Celsius to Fahrenheit;

Uses Crt;

var i, Celsius: Integer; Fahrenheit: real;

Вegin

    Clrscr;

writeln("Таблица соответствия между температурными шкалами');

writeln('Цельсия и Фаренгейта');

writeln;

 i:=0;

 repeat      

        Celsius := 5 * i;

        Fahrenheit := 32 + Celsius * 9 div 5;

        write(‘ С =' , Celsius) ;

        write(‘ F =', Fahrenheit);

        writeln;

        i:=i+1;

 until i>20;

readln;

End.

        

Рrogram Celsius to Fahrenheit;

Uses Crt;

var i, Celsius: Integer; Fahrenheit: real;

Вegin

    Clrscr;

writeln("Таблица соответствия между температурными шкалами');

writeln('Цельсия и Фаренгейта');

writeln;

 for i := 0 to 20 do

    begin

        Celsius := 5 * i;

        Fahrenheit := 32 + Celsius * 9 div 5;

        write(‘ С =' , Celsius) ;

        write(‘ F =', Fahrenheit);

        writeln;

      end;

readln;

End. 

 

Программа, загадывающая число от 0 до 10. Если пользователь его угадывает, то программа поздравляет его, а если нет, то просит попытаться ещё раз, но убавляя количество призовых баллов.   

Рrogram roulette;

Uses Crt;

var number, guess, bonus: byte;

Вegin

Clrscr;

bonus:=10;

Randomize;

number := Random(ll);

writeln('Задумано целое число от 0 до 10. Угадайте!');

writeln;

wr1teln('Введите целое число от 0 до 10');

readln(guess);

while guess <> number do

     begin

        Dec(bonus);

        writeln('Bы не угадали.');

        writeln;

        if guess < number then writeln('Ваше число меньше задуманного')

              else

                 writeln('Ваше число больше задуманного');

        writeln('Попытайтесь еще раз!');

        readln(guess);

     end;

writeln('Поздравляю! Вы угадали и набрали ', bonus, ' очков');

readln;

Еnd.

 

Вычисление произведения пары неотрицательных вещественных чисел вводимых с клавиатуры и сумму всех чисел.

Program cycle;

Uses Crt;

var    x, y, sum: real;

         otv: char;

Begin

     Clrscr;

sum:=0;

repeat

write('Введите числа x,y > 0 ');

readln(x,y);

writeln('Их произведение = ',x*y:8:3);

sum:=sum+x+y;

write('Завершить программу (Д/Н)? ');

readln(otv);

until (otv='Д') or (otv='д');

writeln('Общая сумма = ',sum:8:3);

readln;

End.

 

Программа, определяющая является ли число совершенным. Число является совершенным, если оно равно сумме всех своих делителей, включая единицу. (Например 6=1+2+3, 28=1+2+4+7+14).

Program sover;

Uses Crt;

var а, i, s : Integer;

Begin

 Clrscr;

write('Введите целое число а:');

readln(a);

s := 0;

for i := 1 to a div 2 do

 if a mod i = 0 then

     begin

         s : = s + i;

           write('+', i);

       end;

         if s =a then writeln('Число ', a, 'совершенное')

             else writeln('Число ', a, ' не совершенное');

      readln;

End.

 

Программа печати всех делителей натурального числа A.

Program delit;

Uses Crt;

var a,n,c,d:word;

Вegin

    CIrScr;

    readln( a );

    n:=1;

    while ( n <= sqrt(a) ) do begin

       c:=a mod n;

       d:=a div n;

       if c = 0 then begin

          writeln( n );

          if n <> d then writeln( d );

       end;

       inc( n );

    end;

    readln;

Еnd.

 

Программа печати всех совершенных чисел до 10000.

Program strong;

Uses Crt;

var n,i,j,s,lim,c,d : word;

Вegin

  CIrScr;

  for i:=1 to 1000 do

       begin

         s:=1; lim:=round(sqrt(i));

         for j:=2 to lim do

             begin

                c:=i mod j;

                d:=i div j;

                if c = 0 then

                      begin

                          inc(s,j);

                          if (j<>d) then inc(s,d); {дважды не складывать корень числа}

                      end;

             end;

           if s=i then writeln(i);

      end;

  readln;

Еnd.

 

Программу вывода на экран всех простых чисел до 500.

Program prost;

Uses Crt;

const LIMIT = 500;

var i,j,lim : word;

Вegin

  CIrScr;

  writeln;                         {перевод строки, начинаем с новой строки}

  for i:=1 to LIMIT do begin

      j:=2; lim:=round(sqrt(i));

      while (i mod j <> 0) and (j <= lim) do inc( j );

      if (j > lim) then write( i,' ' );

  end;

  readln;

Еnd.

 

Подсчет суммы цифр числа.

Program summa;

Uses Crt;

var a,x: integer;

       i,s: integer;

Вegin

     CIrScr;

     writeln('введите целое число');

     readln( a ); x:=a;

     s:=0;

     while ( x<>0 ) do

       begin

          s := s + (x mod 10);

          x := x div 10;

       end;

     writeln( 'Сумма цифр числа ',a,' = ', s );

     readln;

Еnd.

 

Программа перевода чисел из десятичной системы счисления в римскую (от 1 до 3999 включительно).

Program dectoroman;

Uses Crt;

const rom: array[1..13] of string[2] = ('I’, ‘IV’, ‘V’, ‘IX’, 'X', 'XL', 'L', 'XC', 'С', 'CD', 'D', 'CM',  'M');

                   dec: array[1..13] of word = (1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000);

var n: word;

       s: string;

       i: byte;

Begin

  Clrscr;

write('Введите число в десятичной системе счисления: ');

readin(n) ;

  s := ‘ ‘;

  i := 13;

while n <> 0 do

     begin

      while n >= dec[i] do

          begin

          n : = n - dec[ i ];

                  s := s + rom[i];

              end;

         i := i – 1;

  end;    

writeln('Число в римской системе счисления: ', s);

readln;

End.

 

Кодировка: Пример простой кодировки (сдвиг по ключу)                    

----------------------------------------------------------------------------------------------------

 Алгоритм: каждый код символа увеличивается на некоторое число - "ключ"

----------------------------------------------------------------------------------------------------

Program kod;

Uses Crt;

var s: string;

    i, key: integer;

Вegin

     CIrScr;

     writeln('Введите текст');

     readln(s);

     writeln('Введите ключ (число от 1 до 255)');

     readln(key);

     for i:=1 to length(s) do s[i]:=char( ord(s[i]) + key  );

     writeln('Зашифрованный текст: ',s);

     readln;

Еnd.

Обработка текста: Разрешение ввода только цифр                          

----------------------------------------------------------------------------------

На входе - текст с цифрами (но будут вводиться только цифры)   

----------------------------------------------------------------------------------

Program number;

Uses Crt;

const ENTER #13;

var c:char;

Вegin

     CIrScr;

     writeln('Вводите буквы и цифры');

     c:=readkey;

     while (c<>ENTER) do

        begin

           if c in ['0'..'9'] then write(c);

           c:=readkey;

        end;

     writeln;

     readln;

Еnd.