М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
sonyacherepanova
sonyacherepanova
30.07.2021 00:30 •  Информатика

Что не так? (сравнить что больше сумма положительных или произведение отрицательных)

program ee;

var n,i,kolp,kolo: integer;

sum,po,a: real;

begin

writeln ('сколько чисел вы будете вводить? ','');

readln (n);

sum: =0;

po: =1;

kolp: =0;

kolo: =0;

for i: =1 to n do

begin

writeln ('введите число,нажмите 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 ('произведение отрицательных') else

if (sum=po) and (kolp> =1) and (kolo> =1) then writeln ('произведение отрицательных равно сумме положительных')else

if (kolp=0) and (kolo=0) then writeln ('кажется, что вы ввели все нули')else

if (kolp=0) or (kolo=0) and (sum=0) or (po=1) then writeln ('нельзя совершить подсчет,нужно ввести ак миниум 2 положительных и два отрицательных числа');

end.

👇
Открыть все ответы
Ответ:
Petersen
Petersen
30.07.2021
//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  
4,4(9 оценок)
Ответ:
russlan4ik1
russlan4ik1
30.07.2021

Объяснение:

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

4,5(66 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ