Объяснение:
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.
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