задачка Pascal

Ответить
saiiika
Сообщения: 1
Зарегистрирован: 02 ноя 2008, 16:05

Дано натуральное число n и дейсвительные числа а1...аn. В последовательности а1...аn определить число соседств:
1)двух положительных чисел;
2)двух чисел разного знака;
3)двух чисел одного знака, причём модуль первого числа должен быть больше модуля 2 числа;
Буду очень благодарен, токо прошу не писать очень заумно так как мы токо начяли учить паскаль,лучше пусть задачя будет больше размером.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

for i:=1 to n-1 do
begin
if (a>0) and (a[i+1])>0 then inc(s1);
if a*a[i+1]<0 then inc(s2);
if (a*a[i+1]>0) and (abs(a)>abs(a[i+1])) then inc(s3);
end;
s1, s2, s3 - искомые ответы для пп. 1, 2, 3. Ввод a в начале и вывод s1,s2,s3 в конце - сами.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Esgal
Сообщения: 78
Зарегистрирован: 04 ноя 2008, 01:15

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

program zad1;
uses crt;
const n=14; {тут можешь сам поставить любое нужное число}
var a:array[1..n] of real;
      i,ov1,otv2,otv3:0..n;
begin
            clrscr;
            writeln('Введи массив  ');
            for i:=1 to n do 
              begin
                 read(a[i]); write(' ');
              end;
            writeln;
            otv1:=0;
            otv2:=0;
            otv3:=0;
            for i:=1 to n-1 do
              begin
                if a[i]*a[i+1]<0 then otv2:=otv2+1;;
                if a[i]>0 and a[i+1]>0 then otv1:=otv1+1;
                if (a[i]*a[i+1]>0) and (abs(a[i])>abs(a[i+1])) then otv3:=otv3+1;
              end;
            writeln('Два положительных числа соседствуют ',otv1,' раз.');
            writeln('Два числа разного знака соседствуют ',otv2,' раз.');
            writeln('Соседств описанных в пункте 3 - ',otv3,'.');
            readln;
end.
Ответить