четвер, 27 листопада 2014 р.

СТАНДАРТНІ АЛГОРИТМИ НА МОВІ PASCAL

Подивись  бібліотеку програм на мові Паскаль  на сайтах
http://acmp.ru/article.asp?id_text=195   http://algolist.manual.ru

Задача1. Скласти програму  на мові  Pascal  підрахунку   кількості різних букв у слові.

var s:string;
    r:real;
    i,j,n:integer;
begin      r:=0;
    readln(s);
    for i:=1 to length(s) do begin
       n:=0;
       for j:=1 to length(s) do begin
          if s[i]=s[j] then inc(n);          end;
       r:=r+1/n;       end;
    writeln('количество различных букв = ', r:1:0);   
end.

Задача 2. Перестановка  останньої букви у слові на перше місце (циклічний рух вправо).
var s:string;
    i,j,n:integer;
begin
    readln(s);
    s:=s[length(s)] + copy(s,1,length(s)-1);
    writeln(s);
end.
Результат:  введення:  wertyu    виведення:   uwerty
Задача 3. Перевірка рядка на   "паліндромність".
Наприклад , "шалаш", "красарк"  -  це рядки паліндроми.

var s1,s2:string;
    i:integer;
begin
    readln(s1); s2:='';
    for i:=length(s1) downto 1 do begin
       s2:=s2+s1[i];      end;
    if s1=s2 then writeln(s1, ' -  паліндромне слово')
             else  writeln(s1, ' -  непалідромне слово);
end.


Задача 4. Знайти і вивести всі  дільники  натурального числа A
var a,n,c,d:word;
begin { основная программа }
    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;  end.

Задача 5.  Знайти і вивести усі досконалі числа  до 10000

const LIMIT = 10000;
var n,i,j,s,lim,c,d : word;
begin
  for i:=1 to LIMIT 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; 
end.

Задача 6. Знайти і вивести всі прості числа  до 500

const LIMIT = 500;
var i,j,lim : word;
begin
  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;  
end.

Задача 7. Знайти і вивести суму цифр  числа  до 10000
var a,x:integer;
    i,s:integer;
begin
     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 );
end.

Задача 8. Знайти і вивести суму чисел лінійного масиву

var a:array[1..10] of integer;
    s:longint;
    i:integer;
begin
     writeln('введіть 10 чисел масиву');
     s:=0;
     for i:=1 to 10 do begin
        readln( a[i] );
        s:=s+a[i];
     end;
     writeln( 'Сума елементів масиву = ', s );
end.

Задача 9.  Знайти і вивести суму чисел двомірного масиву(таблиці)
var a:array[1..5,1..5] of integer;
    s:longint;
    i,j:integer;
begin
     writeln('введіть 25 елементів масиву');
     s:=0;
     for i:=1 to 5 do begin
        for j:=1 to 5 do begin
           readln( a[i,j] );
           s:=s+a[i,j];
        end;
     end;
     writeln( 'Сума елементів масиву = ', s );
end.

Задача 10.   Знайти найбільше число у лінійному масиві
var a:array[1..10] of integer;
    max:integer;
    i:integer;
begin
     writeln('введіть 10 елементів масиву');
     max:=-(MAXINT+1);
     for i:=1 to 10 do begin
        readln( a[i] );
        if max < a[i] then max:=a[i];
     end;
     writeln( 'Максимальний елемент  масиву = ', max );
end.
 Задача 11.    Знайти найменше  число у лінійному масиві
var a:array[1..10] of integer;
    min:integer;
    i:integer;
begin
     writeln('введіть 10 елементів масиву');
     min:=MAXINT;
     for i:=1 to 10 do begin
        readln( a[i] );
        if min > a[i] then min:=a[i];
     end;
     writeln( 'Мінімальний елемент  масиву =  ', min );
end.
Задача 12.  Знайти середнє арифметичне число для усіх чисел лінійного масиву
var a:array[1..10] of integer;
    s:longint;
    i,n:integer;
begin
     s:=0; n:=0;
     writeln('введите 10 элементов массива');
     for i:=1 to 10 do begin
        readln( a[i] );
        s:=s+a[i]; inc(n);
     end;
     writeln( 'Середнє арифметичне число = ', s/n );

end.

Немає коментарів:

Дописати коментар