Страница 1 из 1

Оч-оч нада! Пжлалста, помогите!

Добавлено: 18 дек 2007, 16:40
†M@MOHT^eHoK†
Ребят, оч нада! Воть задачки по Паскалю... Ну никак решить не могу! Пж, мне до послезавтра сдать надо! А я потом свои решённые выложу на сайте! Воть! Заранее спасибо!

1. Дан одномерный целочисленный массив B(n) и натуральное число n. Для каждого из элементов массива B выяснить, сколько раз оно входит в эту последовательность. Результат представить в виде:
"a1 встречается k1 раз" При печати не должно быть повторяющихся строк.

2. Дана непустая последовательность слов из строчных русских букв; между соседними словами - запятая, за последним словом - точка. Напечатать в алфавитном порядке: все звонкие согласные буквы, которые входят более чем в одно слово; все гласные буквы, которые не входят более чем в одно слово.

3. Дана строка символов и число N. Произвести ротацию строки на N символов (например: если исходная строка равна '1x2y3z4a', а N=3, то результирующая строка будет равна ' z4a1x2y3').

...и самое главное:

4. Два натуральных числа называются "дружественными", если каждое из них равно сумме всех делителей другого, за исключением его самого (таковы, например, числа 220 и 284). Напечатать все пары "дружественных" чисел, не превосходящих заданного натурального числа.

5. Элемент двумерного массива называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицы размером NxN найти максимум среди всех локальных минимумов.

Я надеюсь на вашу помошь!

Re: Оч-оч нада! Пжлалста, помогите!

Добавлено: 19 дек 2007, 09:55
somewhere
"Дружественные числа"

Код: Выделить всё

uses crt;

var x,  n: Integer;
    s1,s2: Integer;

Function GetDividersSumm(x:integer):Integer;
var i, s: integer;
begin
GetDividersSumm := 0;
If X < 2 then exit;
S := 0;
For i := 1 to x div 2 do
	If x mod i = 0 then S := S + i;
GetDividersSumm := S;
end;

begin
ClrScr;
Write('N = '); Readln(N);
For X:=2 to N do
	begin
        s1 := GetDividersSumm(x);
        s2 := GetDividersSumm(s1);
        If (x=s2) and (x<>s1) then Writeln(x:8,s1:8);
        end;
end.

Re: Оч-оч нада! Пжлалста, помогите!

Добавлено: 19 дек 2007, 10:58
Хыиуду
Ротация строки:
l:=length(s);
s:=copy(s,l-N+1,N)+copy(s,1,l);

Локальный минимум:

Код: Выделить всё

function is_local_minimum(i,j:integer);
begin
  is_local_minimum:=
     ((i=1) or (A[i,j]<A[i-1,j])) and
     ((j=1) or (A[i,j]<A[i,j-1])) and
     ((i=N) or (A[i,j]<A[i+1,j])) and
     ((j=N) or (A[i,j]<A[i,j+1]));
end;
Дальше с этой функцией пройти в двойном цикле по всему массиву.

Re: Оч-оч нада! Пжлалста, помогите!

Добавлено: 19 дек 2007, 14:38
†M@MOHT^eHoK†
Ребять! Вы меня прост выручили! Огромное спасибо! :p