servik78
?>

Что не так? (сравнить что больше сумма положительных или произведение отрицательных)program ee; var n, i, kolp, kolo: integer; sum, po, a: real; beginwriteln ('сколько чисел вы будете вводить? ', ''); readln (n); sum: =0; po: =1; kolp: =0; kolo: =0; for i: =1 to n do beginwriteln ('введите число, нажмите enter'); readln(a); if a< 0 then begin inc(kolo); po: =po*a; end; if a> 0 then begin inc(kolp); sum: =sum+a; end; if a=0 then continue; end; if (sum=1) and (kolo> =1) then writeln ('произведение отрицательных') elseif (sum=po) and (kolp> =1) and (kolo> =1) then writeln ('произведение отрицательных равно сумме положительных')elseif (kolp=0) and (kolo=0) then writeln ('кажется, что вы ввели все нули')elseif (kolp=0) or (kolo=0) and (sum=0) or (po=1) then writeln ('нельзя совершить подсчет, нужно ввести ак миниум 2 положительных и два отрицательных числа'); end.

Информатика

Ответы

v89167233402
//Pascal ABC.NET v3.0 сборка 1111

var
 i,a,b:integer;
 ar:array[1..10] of integer;

 procedure oddDec(var a,b:integer);  //подпрограмме переданы аргументы a и b
//процедура для вычитания в нечётном элементе
begin;
a:=a-b;
end;

procedure NotoddInc(var a,b:integer); //подпрограмме переданы аргументы a и b
//процедура для сложения в чётном элементе
begin;
a:=a+b;
end;

begin
randomize;
readln(a); //ввод a
readln(b); //ввод b
writeln('Array:');
for i:=1 to 10 do //весь массив
 begin;
  ar[i]:=random(-20,80); //случайные числа от -20 до 80 включительно
  write(ar[i]:4); //вывод
  if odd(i) then oddDec(ar[i],b) else NotoddInc(ar[i],a);
  {если нечётное, то первая процедура, иначе вторая. Обращаю внимания на то, что элементы меняются сразу после вывода}
 end;
writeln;
writeln('Final array:'); //вывод получившегося массива
for i:=1 to 10 do
write(ar[i]:4);
end.

Пример ввода:
20
10
Пример вывода:
Array:
  10  16   0  60  23   4  22 -20   4  55
Final array:
   0  36 -10  80  13  24  12   0  -6  75  
leonidbaryshev19623

Объяснение:

program Randomizer;

const

   RndLimit = 10000;

var

   x, SumX : integer;

begin

 SumX := 0;

 // Коммент: случайное число в паскале всегда генерируется от 0 до заданного но нам необходимо от 1000, поэтому в цикле repeat...until оно будет генерироваться до тех пор, пока не станет > 999

 Repeat x := Random(RndLimit) until x > 999;

   writeln ('Random X= ', x);

   SumX := SumX + (x div 1000) + (x mod 1000 div 100) + (x mod 1000 mod 100 div 10) + (x mod 1000 mod 100 mod 10);

 writeln ('Sum = ', SumX);

end.

запускаем

Free Pascal Compiler version 2.6.2-8 [2014/01/22] for x86_64

Copyright (c) 1993-2012 by Florian Klaempfl and others

Target OS: Linux for x86-64

Compiling main.pas      

Linking a.out             

21 lines compiled, 0.1 sec

Random X= 5488            

Sum = 25

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Что не так? (сравнить что больше сумма положительных или произведение отрицательных)program ee; var n, i, kolp, kolo: integer; sum, po, a: real; beginwriteln ('сколько чисел вы будете вводить? ', ''); readln (n); sum: =0; po: =1; kolp: =0; kolo: =0; for i: =1 to n do beginwriteln ('введите число, нажмите enter'); readln(a); if a< 0 then begin inc(kolo); po: =po*a; end; if a> 0 then begin inc(kolp); sum: =sum+a; end; if a=0 then continue; end; if (sum=1) and (kolo> =1) then writeln ('произведение отрицательных') elseif (sum=po) and (kolp> =1) and (kolo> =1) then writeln ('произведение отрицательных равно сумме положительных')elseif (kolp=0) and (kolo=0) then writeln ('кажется, что вы ввели все нули')elseif (kolp=0) or (kolo=0) and (sum=0) or (po=1) then writeln ('нельзя совершить подсчет, нужно ввести ак миниум 2 положительных и два отрицательных числа'); end.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Khiryanov
valera850515
tarasova
VadimovichSvetlana622
endyurans2ooo
ТигранКалмыкова
Часть схемы пере информацию 5 букв
Elshel8694
e-liza-k
balabinatanya7174
viktort889841
Galina
vorota-grupp
Dato24043846
olesya-kwas
Darialaza