Генератор случайных чисел

Генератор случайных чисел

Сборник задач по темам Паскаля

Управляющие конструкции

1) Задание:y =

Решение:

uses crt;

var

x,y:real;

begin

clrscr;

write('Vvedite znachenie ');

readln(x);

y:=arctan(x)/ ln(2*(x*x))/ln(10) ;

writeln('Otvet: ',y:5:2);

end;

readln;

end.

2) Задание:Y =

Решение:

uses crt;

var

x,y:real;

begin

clrscr;

write('Vvedite znachenie ');

readln(x);

if x<=5 then begin

y Генератор случайных чисел:=5*cos(4*x+4);

writeln('Otvet: ',y:5:2);

end;

if (x>5) and (x<6) then begin

y:=sqr(x);

writeln('Otvet: ',y:5:2);

end;

if x>=6 then begin

y:=ln(sqr(x)*x)/ln(10);

writeln('Otvet: ',y:5:2);

end;

readln;

end.

3) Дано натуральное число n. Составить программку, которая подсчитывает сумму цифр данного числа, стоящих на четных местах.

4) Y =

5) Y Генератор случайных чисел =

4) По длинам 3-х сторон треугольника а, Ь, с вычис­лить его площадь.

Program Geron;

Var A,B,C,P,S: Real;

Begin

WriteLn{'Введите длины сторон треугольника:');

Write('a='); ReadLn(А);

Write('b='); ReadLn(B);

Write ('c='); ReadLn(C);

If (A>0) And (B>0> And (C>0> And (A+B>C)

And (B+OA Генератор случайных чисел) And (A+OB)

Then Begin

P:=(A+B+C) /2;

S:=Sqrt(P*(P-A)*(P-B)*(P-C));

WriteLn('Площадь=',S)

End

Else WriteLn('Неправильные начальные данные’)

End.


Циклы

1)Вычислить суммы всех целых чисел от 1 до N.

Program Summ_of_Integer;

{Программа вводит целое положительное число N и подсчитывает Генератор случайных чисел сумму всех целых чисел от 1 до N}

var

i, n, s : Integer;

begin

Write('N = ');

ReadLn(n); . {Вводим N}

s := 0; {Начальное значение суммы}

for i : = 1 to n do {Цикл подсчета суммы}

s : = s + i;

writeln('Сумма = ',s) {Выводим результат}

end.

2) Составить программку вычисления суммы первых 10 членов последовательности.

3) Сост. прог. выч. факториала числа Генератор случайных чисел n.

Пример: 5!=1*2*3*4*5

7!=1*2*3*4*5*6*7 }

var f,n,i : integer;

begin

clrscr;

write('n=');readln(n);

f:=1;

for i:=1 to n do f:=f*i;

write('f=',f);

readln;

end.

Цикл с параметром

Вывод на экран кубов чисел от 11 до 5

Program Test2;
var
N: integer;
begin
for N:=11 downto 5 do { Счетчик N меняется с шагом -1 }
write(N Генератор случайных чисел*N*N:5); { Эта строчка - тело цикла; оно производится 8 раз, потому что N меняется от 11 до 5 с шагом -1 }
writeln; { Этот оператор нужен, чтоб окончить вывод чисел в одну строчку }
readln
end.

Вычисление суммы чисел от 6 до 10

Program Test4:
var
N: integer; { Это будет счетчик цикла for }
S: integer; { В этой Генератор случайных чисел переменной будем копить сумму }
begin
S:=0; { Сначала обнулим сумматор }
for N:=6 to 10 do
S:=S + N; {Эта строчка - тело цикла. При его выполнении всякий раз к S прибавляется еще одно N. Переменную S можно сопоставить с аккумом, в каком скапливается сумма }
writeln('Сумма чисел=', S:6);
readln
end.

Составить программку вычисления значения выражения y Генератор случайных чисел=1+1/2+1/3+... +1/20.

{В данном случае целенаправлено организовать цикл с параметром, изменяющимся от 1 до 20, другими словами шаг конфигурации параметра равен +1. Обозначим: у - еще одно значение суммы дробей; n - параметр цикла. Беря во внимание это, составим программку: }
program prim1;
uses crt;
var n: integer;
y: real;
begin
clrscr;
{Задаем изначальное значение Генератор случайных чисел, равное нулю.}
y:=0;
{Организовываем цикл с параметром от 1 до 20.}
for n:=1 to 20 do
begin
{Находим еще одну сумму.}
y:=y+1/n;
{Выводим на экран еще одну сумму.}
writeln('y=',y);
end.;
end.

Из чисел от 10 до 99 вывести те, сумма цифр которых равна S(0 < S < 18).

{Обозначим: k - это просматриваемое число; p1 - это 1-ая цифра Генератор случайных чисел числа k, р2 - это 2-ая цифра числа k; s - это сумма цифр данного числа k. Число k будем выписывать исключительно в том случае, когда сумма p1 и р2 будет равна s.}

program prim2;
uses crt;
var k,n,p1,p2,s:integer;
begin
clrscr;
{Задаем целое число.}
writeln(' целое Генератор случайных чисел число n=');
readln(n);
{Организовываем цикл с параметром от 10 до 99.}
for k:=10 to 99 do
begin
{Выделяем первую цифру.}
p1:=k div 10;
{Выделяем вторую цифру.}
р2:=к mod 10;
{Находим сумму цифр.}
s:=p1+p2;
{Если сумма цифр равна данному числу N, то выводим К.}
if s=n then writeln('k= ',k);
end;
end.

Дано Генератор случайных чисел натуральное число n (1000<=N<=9999). Найти, является ли оно палиндромом ("перевертышем"), с учетом 4 цифр. К примеру, палиндромами являются числа: 2222, 6116, 1441.

{Обозначим: n - вводимое число; m - дубликат числа n; а - перевертыш числа n; i - переменная цикла для сотворения перевертыша.}

program prim3;
uses crt;
var n, m, a, i: integer;
begin
clrscr;
{Введем Генератор случайных чисел четырехзначное целое число.}
writeln('N<=9999'); readln(n)
{Запоминаем введенное целое число и задаем изначальное значение перевертыша.}
m:=n;а:=0;
{Организуем цикл с параметром от 1 до 4.}
for i:=l to 4 do
{Находим перевертыш числа N}
begin
а:=а*10+ m mod 10; m:= m div 10;
end;
{Если A=N, то данное число является перевертышем.}
if a Генератор случайных чисел=n then writeln('DA!')
else writeln('NO');
readln;
end.

Оператор цикла с предусловием

Дано натуральное число n. Посчитать количество цифр в числе.

{Подсчет количества цифр начнем с последней числа числа. Увеличим счетчик цифр на единицу. Число уменьшим в 10 раз (тем мы избавляемся от последней числа числа). Дальше с получившимся числом Генератор случайных чисел проделаем ту же последовательность действий и т. д., пока число не станет равным нулю. Примечание: в теле цикла непременно должен быть оператор, влияющий на соблюдение условия, в неприятном случае произойдет зацикливание.}

program prim1;
uses crt;
var m, n: longint;
k: integer; {счетчик цифр}
begin
clrscr;
{Вводим целое число Генератор случайных чисел.}
writeln('Введите N='); readln(n);
{Запоминаем его и счетчику цифр присваиваем изначальное значение.}
m:=n;k:=0;
{Пока m0 делать цикл.}
while m 0 do
begin
{"Уменьшаем" число на последнюю цифру, т. е. в 10 раз.}
k:=k+1; m:= m div 10; {Inc(k) }
end;
{Вывод количества цифр.}
writeln('B числе ',n,'- ',k, ' цифр!');
readln;
end Генератор случайных чисел.

Вычислить больший общий делитель 2-ух натуральных чисел А и В.

program E6;
var a, b: integer;
begin
write ('введите два натуральных числа');
readln (a, b);
while ab do
if a>b then a: = a - b
else b: = b - a;
write ('НОД = ', a);
readln;
end.

Составление таблицы значений функции у = sin х Генератор случайных чисел отрезке [0;3.14] с шагом 0,1.

program E10;
var х, у: real;
begin
х: = 0;
writeln ('x' : 10,'sinx' : 10);
while x < = 3.14 do
begin
y: = sin(x);
writeln (x : 10,' ' ,y : 7 : 5);
x: = x + 0.1
end;
readln
end.

Приближенное вычисление суммы нескончаемо убывающего ряда 1+x/1!+x2/2!+x3/3!+ ...

Program Summer2;
var
Eps:real; { Данное число "эпсилон" }
X: real; { Основание степени в числителе Генератор случайных чисел дроби }
S: real; { В этой переменной будем копить сумму }
Y; real; { Для хранения еще одного слагаемого }
i: integer; { Счетчик числа шагов }
begin
write('Введите X и Epsilon:');
readln(X, Eps);
Y:=l; { 1-ое слагаемое }
S:=Y; { Положим в сумматор 1-ое слагаемое }
i:=0; { Обнулим счетчик шагов }
while абс Генератор случайных чисел(Y)>=Eps do { Пока добавленное слагаемое не меньше "эпсилон", считаем сумму. Если "эпсилон" сходу не меньше 1, цикл не выполнится никогда! }
begin { Началось тело цикла }
i:=i+l; { Вычислили номер текущего шага }
Y:=Y*X/i; { Посчитали новое слагаемое }
S:=S+Y { Прирастили сумму на текущее слагаемое }
end; { Тело цикла закончилось. После этой Генератор случайных чисел строчки компьютер перейдет на оператор while для сопоставления переменной "эпсилон" с только-только добавленным слагаемым }
{ Сейчас выведем итог на экран }
Writeln('Сумма чисел=', S:6:4);
readln
end.

Строительство числа а, введенного с клавиатуры, в степень n

Program Stp:
var P: real: { Переменная, которая хранит итог еще одного шага }
N Генератор случайных чисел: integer; { Показатель степени }
i: integer; { Счетчик числа шагов }
A: real; { Основание степени }
begin
write('Введите основание степени:');
readln(A);
write('Введите показатель степени:');
readln(N);
i:=0; { 0-й шаг }
Р:=1; { 20=1 }
while i< абс(N) do { Показатель может быть отрицательным, потому используем для анализа его абсолютную величину. Если показатель N=0, то в Генератор случайных чисел тело цикла не попадаем никогда, потому что 0-й шаг уже изготовлен }
begin
i:=i+l; { Увеличиваем i на 1,другими словами i сейчас равно номеру текущего шага }
Р:=Р*А { Получаем итог i- го шага, другими словами A^i }
end;
{ В переменной Р сейчас получен итог для положительного N }
if N Генератор случайных чисел < 0 then { Если показатель N - отрицательный, то итог обязан иметь оборотную величину }
Р:=1/Р;
writeln('Итог=',Р;6:3);
readln
end.

Оператор цикла с постусловием

Внедрение цикла repeat для подсчета суммы вводимых чисел до первого отрицательного числа

Program Summer1;
var
sum, a: real; {sum - для скопления суммы, a - для еще одного числа}
begin
sum:=0; {Обнуляем сумму}
a:=0;
repeat
sum:=sum+a Генератор случайных чисел; {Добавляем введенное число к сумме}
write('Введите число'); {Ввод еще одного числа}
readln(a)
until a < 0 {Проверяем введенное число на отрицательность}
{При выходе из цикла производится этот оператор:}
writeln ('',sum:5:3);
readln
end.

Составить программку планирования закупки продукта в магазине на сумму, не превосходящую заданную величину.

{Обозначим через x, k - подобающую Генератор случайных чисел стоимость и количество продукта, через p - заданную предельную сумму, через s - общую цена покупки. Изначальное значение общей цены покупки (s) равно нулю. Значение предельной суммы считывается с клавиатуры. Нужно повторять запрос цены и количества избранного продукта, вычислять его цена, суммировать ее с общей ценой и выводить Генератор случайных чисел итог на экран до того времени, пока она не превзойдет предельную сумму р. В данном случае на экран необходимо вывести сообщение о превышении: }


program prim2;
uses crt;
var c, k, p, s: integer;
begin
clrscr;
{Вводим наличие денег.}
writeln('Пред. сумма - ');
readln(p);
{Начальное значение цены покупки равно нулю.}
s:=0;
repeat
{Вводим стоимость Генератор случайных чисел продукта и его количество.}
writeln('стоимость тов. и его кол ');
readln (с, k);
{Находим цена обретенных продуктов.}
s:=s+c*k;
{Выводим на экран цена обретенных продуктов.}
writeln('Цена покупки = ', s);
{Повторяем до того времени, пока цена продукта не превзойдет наличия денег.}
until s>p
writeln('Суммарная цена покупки превысила предельную Генератор случайных чисел сумму');
readln;
end.

Написать программку нахождения большего общего делителя (НОД) 2-ух натуральных чисел.

{Для решения данной задачки воспользуемся циклом с постусловием:}

program prim3;
uses crt;
var x, y: integer;
begin
clrscr;
{Вводим два целых неотрицательных числа.}
writeln('x:=,y: = ');readln(x,y);
repeat
if x>y then x Генератор случайных чисел:=x mod у else y:=y mod x;
{До того времени, пока одно из чисел не станет равно нулю.}
until (x=0) Or (y=0);
{Вывод НОД - без условного оператора, потому что одно из чисел равно нулю.}
writeln('HOД=',x+y));
readln;
end.

Вложенные циклы

Даны натуральные числа n и k. Составить программку Генератор случайных чисел вычисления выражения lk+2k+...+nk.

{Для вычисления обозначенной суммы целенаправлено организовать цикл с параметром i, в каком, во-1-х, рассчитывалось бы еще одно значение y=ik и, во-2-х, производилось бы скопление суммы прибавлением приобретенного слагаемого к сумме всех предыдущих (s= s+y).}

program prim1 ;
uses crt;
var Генератор случайных чисел n, к, y, i, s, m: integer;
begin
clrscr;
writeln ('n= k='); readln(n, k);
s:=0;
for i:=l to n do
begin
у:=1;
for m:=l to к do
begin
{Нахождение степени k числа i.}
y: = y*i;
end;
{Нахождение промежной суммы.}
s:=s+y;
end;
writeln(' Ответ: ',s);
readln;
end.

Вычислить Генератор случайных чисел сумму 11+22+...+nn.

program prim1 ;
uses crt;
var n, к, y, i, s, m: integer;
begin
clrscr;
writeln ('n= k='); readln(n, k);
s:=0;
for i:=l to n do
begin
у:=1;
for m:=l to i do
begin
{Нахождение степени k числа i.}
y: = y*i;
end;
{Нахождение промежной суммы.}
s:=s+y Генератор случайных чисел;
end;
writeln(' Ответ: ',s);
readln;
end.

Написать программку, которая находит и выводит на печать все четырехзначные abcd, числа а, b, с, d - разные числа, для которых производится: ab-cd=a+b+c+d.

{Задачу можно решать несколькими методами. Одним из вероятных методов является перебор всех четырехзначных чисел и проверка для Генератор случайных чисел каждого из их выполнения критерий. Попробуем уменьшить перебор, для этого преобразуем 2-ое условие:
10а+b-(10c+d)=a+b+c+d;
9(a-c)=2(c+d);
(a-c)/(c+d)=2/9
Проанализировав 1-ое условие, получаем, что а=с+2, d=9-c, как следует 0<=c<=7.}

program prim4;
uses crt;
var a,b Генератор случайных чисел,c,d: integer;
begin
clrscr;
for c:=0 to 7 do
begin
a:=c+2; d;=9-c;
for b:=0 to 9 do
begin
if (bc)and(ba)and(bd)
then
write(a,b,c,d);
writeln
end;
end;
readln;
end.

{Таким образом, мы решили задачку, существенно сократив перебор.}

Если мы сложим все числа какого-нибудь числа, потом все Генератор случайных чисел числа отысканной суммы и будем повторять много раз, мы, в конце концов, получим однозначное число (цифру), называемое цифровым корнем данного числа. К примеру, цифровой корень числа 34697 равен 2 (3+4+6+9+7=29; 2+9=11; 1 + 1=2). Составим программку для нахождения цифрового корня натурального числа.

program prim5;
uses crt;
var n, k, s: longint;
begin
clrscr;
writeln(' число='); readln(n Генератор случайных чисел);
s:=n;
{Пока сумма является двузначным числом.}
while s>9 do
begin
k:=s;s:=0;
{Вычисляем сумму цифр числа.}
repeat
S:=s+k mod 10; k:=k div 10;
until k=0;
end;
writeln(' цифр. корень числа ',n, ' равен ',s);
readln;
end.


Генератор случайных чисел

Бывают ситуации, когда требуется, чтоб итог работы программки был случайным в определенных границах Генератор случайных чисел. Для реализации таковой способности в почти всех языках программирования находятся интегрированные функции, код которых выдает случайные числа. По сути числа не совершенно случайные, а псевдослучайные. Дело в том, что искусственно воплотить случайность нереально. Обычно берется некий коэффициент, и с его помощью рассчитывается каждое следующее «случайное» число.

В Генератор случайных чисел языке программирования Паскаль для генерации псевдослучайных чисел в данных спектрах употребляется функция random. Перед ее внедрением обычно производится процедура инициализации датчика случайных чисел - randomize; по другому программка всегда будет выдавать один и тот же итог. Randomize задает изначальное значение последовательности, от которого рассчитываются все следующие. При каждом запуске программки это значение будет различным, а Генератор случайных чисел означает и итог работы функции random будет разным.

Функция random генерирует случайное число в спектре от 0 (включительно) до единицы. Если в скобках указан аргумент, то от 0 до значения обозначенного в скобках (не включая само значение). Так выражение random (10), гласит о том, что будет получено хоть какое число в спектре [0, 10). Если Генератор случайных чисел требуется получать значения в каком-либо другом спектре (не от нуля), то прибегают к математической хитрости. К примеру, чтоб получить случайное число от -100 до 100 довольно записать такое выражение: random (200) – 100. В итоге, поначалу будет получено число из спектра [0, 199], а потом из него будет вычтена сотка. И если случайное число было меньше Генератор случайных чисел 100, то итог выражения будет отрицательным.

В примере программки поначалу при помощи процедуры randomize инициализируется датчик случайных чисел. Дальше переменной n присваивается случайное значение в спектре [5, 12). Значение переменной n употребляется для определения количества итераций цикла for. В цикле for генерируются случайные числа в спектре [0, 50) и выводятся на экран.

var n, i Генератор случайных чисел, x: integer;

Begin

randomize;

n := random (7) + 5;

for i := 1 to n do begin

x := random (100) - 50;

write (x:5)

end;

readln

end.

Задачка:

Отгадать целое число, которое "загадал" компьютер в определенном спектре.

Описание переменных:

a – число, "загаданное" компом;
b – еще одно число, вводимое юзером.

Метод решения задачки:

Программка генерирует псевдослучайное число, которое записывается в переменную a.

Пока число a не совпадет с числом Генератор случайных чисел b, юзеру будет предлагаться ввести еще одно число. При всем этом, если b > a, то на экран будет выдаваться сообщение "Много". По другому будет проверяться условие b < a. При его положительном значении появится сообщение "Не много", по другому сообщение "Угадал".

Не тяжело осознать, что если b не больше и Генератор случайных чисел не меньше a, то означает оно равно a. В таком случае логическое выражение при while возвратит false, и цикл прервется.

Программка на языке Паскаль:

Vara,b: integer;

Begin

randomize;

a := random(100);

while a b do begin

write('Введи число: ');

readln(b);

if b > a then

writeln('Много')

Else

if b < a then

writeln('Не достаточно')

Else

writeln('Угадал');

end;

readln

end.


Огромного количества

Даны Генератор случайных чисел три огромного количества. Из третьего огромного количества удалить элементы, сразу принадлежащие первым двум огромным количествам.

program resheto;

uses crt;

var

a,b,c: set of byte;

k:=integer;

begin

clrscr;

A:=[1...8];

B:=[2...7];

C:=[3...8];

For k:=1 to 8 do

If k in c-(a+b) then writeln (k);

End.

1. Даны три огромного количества выдать на Генератор случайных чисел экран скрещение суммы первых 2-ух множеств с третьим обилием.

2. Даны два огромного количества. Из огромного количества А удалить четные элементы входящие в огромное количество В.

3. Выдать элементы огромного количества А кратные 13 и не входящие в огромное количество В.

4. Даны три огромного количества. Из третьего огромного количества Генератор случайных чисел удалить элементы, первого огромного количества не входящие во 2-ое огромное количество.


Одномерный массив

1) Вычисление суммы частей массива

Program Summa;

const n=7;

var a:array [1..n] of real;

S:real;

i:integer;

begin

write (‘введите 7 частей массива, через пробел’);

For i:=1 to n do

readln(a[i]);

S:=0;

For i:=1 to n do

S:=S+a[i Генератор случайных чисел];

writeln;

write(‘Сумма всех частей массива =’,S);

readln;

readln

end.

2) Отыскать min и max значения частей массива.

Program ss;

const n=10;

var A:array[1..n] of real;

i:integer;

max,min:real;

Begin

for i:=1 to n do

Read(A[i]);

Readln;

max:=A[1];

min:=A[1];

for i:=2 to n do

if A[i Генератор случайных чисел]>max then max:=A[i]

else if A[i]

writeln;

write(max,min);

readln;

end.

3) Подсчитать сумму отрицательных частей массива.

var a: array [1..5] of integer;

i, s: integer;

begin

for i := 1 to 5 do

read ( a[i] );

s := 0;

for i := 1 to 5 do

if a[i] < 0 then

s := s + a[i];

writeln Генератор случайных чисел( s ) end.

4) Зададим и распечатаем случайный массив из сорока целых чисел:

Program M4;
Const
N=40; {Константа N будет содержать количество частей массива}
Var
A : Array [1..N] Of Integer;
I : Integer;
Begin
For I:=1 To N Do
Begin
A[I]:= Trunc(Random*101)-50
Write(A[I],'VVV')
End
End.

5) Подсчитать количество нулей в массиве Генератор случайных чисел.

Решение:

USES CRT;

var a:array[1..10] of integer;

i,k:integer;

begin

clrscr;

k:=a[1];

writeln('Enter array a'); writeln;

for i:=1 to 10 do readln(a[i]);

for i:=1 to 10 do write(a[i],' ');

k:=0;

for i:=1 to 10 do

begin

if a[i]=0 then k:=k+1;

end;

writeln('kolvo', k);

readln;

end Генератор случайных чисел.

6) Допустим, имеется одномерный массив, содержащий числа от 0 до 49 включительно. Требуется исключить из него все элементы, значения которых меньше 15.

Метод решения задачки:

Присваивание значение n переменной m требуется, т.к. n - константа и не может быть изменена. Так как при "просмотре" массива в цикле while некие элементы будут удаляться, то значение m, обозначающее Генератор случайных чисел длину массива, будет уменьшаться.

Если очередной элемент не удаляется, то перебегаем к просмотру последующего элемента (i := i + 1) и не уменьшаем массив (m не изменяется).

Программка на языке Паскаль:

const n = 20;

Var

arr: array[1..n] of integer;

i, j, m: integer;

Begin

randomize;

for i := 1 to n do begin

arr[i] := random(50);

write(arr[i]:4);

end;

m := n;

i Генератор случайных чисел := 1;

while i <= m do

if arr[i] < 15 then begin

for j := i to m - 1 do

arr[j] := arr[j+1];

m := m - 1

End

Else

i := i + 1;

for i:= 1 to m do

write(arr[i]:4);

readln

end.

7) Требуется добавить элемент в какое-нибудь место массива.

Метод решения задачки:

1. Задаем длину массива на один элемент больше, чем он будет заполнен сначала.

2. Выясняем значение и позицию добавляемого элемента

3. Все Генератор случайных чисел элементы до обозначенной позиции сдвигаем на один вспять.

4. Присваиваем по обозначенному индексу (позиции) значение.

5. Остальная (передняя) часть массива не меняется.

Программка на языке Паскаль:

const n = 6;

Var

arr: array[1..n] of integer;

i, j, num, id: integer;

Begin

writeln('Заполните массив: ');

for i := 1 to n - 1 do

readln(arr[i]);

write('Ваш массив: ');

for i := 1 to n - 1 do

write(arr[i]:5);

writeln Генератор случайных чисел;

write('Укажите очередной элемент: ');

readln(num);

write('Позиция в массиве: ');

readln(id);

for i := n - 1 downto id + 1 do

arr[i+1] := arr[i];

arr[id] := num;

write(' Ваш массив: ');

for i := 1 to n do

write(arr[i]:5);

writeln;

readln

end.

8) Требуется заполнить массив числами, которые вводит юзер, и вычислить их сумму. Если юзер вводит ноль либо превышен размер массива Генератор случайных чисел, то запросы на ввод должны закончиться.

Метод решения задачки:

Для решения подобного рода задач время от времени бывает уместно использовать цикл с постусловием (repeat).

Программка на языке Паскаль:

const n = 10;

var

arr: array[1..n] of integer;

sum: integer;

i: byte;

begin

i := 1;

sum := 0;

repeat

write ('Число: ');

readln(arr[i]);

sum := sum Генератор случайных чисел + arr[i];

i := i + 1

until (arr[i-1] = 0) or (i > n);

for i := 1 to n do

write (arr[i],' ');

writeln;

writeln ('sum = ', sum);

readln

end.

9) Из упорядоченного массива — случайный

1-ое число упорядоченного массива меняем со случайным числом последующим за ним, т.е. от 2 до n-го, 2-ое число меняем с числом из спектра 3, n Генератор случайных чисел и т.д.

Входные данные: 1 2 3 4 5 6 7 8 9 10

Выходные данные: 2 4 1 10 7 3 9 6 8 5

Program RandomArray;
Uses CRT;
Const n=10;
Typea_type=array [1..n] of integer;
Var a:a_type;
m,x,i:integer;
Begin
ClrScr;
randomize;
{исходный массив}
fori:=1 ton do a[i]:=i;
fori:=1 ton do write(a[i]:3);
writeln;
fori:=1ton-1do begin
{случайное число из спектра i+1,n}
m:=random(n-i Генератор случайных чисел-1)+i+1;
{обмен i и m числа массива }
x:=a[i]; a[i]:=a[m]; a[m]:=x
end;
fori:=1tondo write(a[i]:3);
readln
End.

10) Отыскать номер наибольшего элемента таблицы а[1..10]

uses crt;

var a : array [1..100] of longint;

k,i,n,max : longint;

begin

clrscr;

write('n=');readln(n);

for i Генератор случайных чисел:=1 to n do

begin

write('a[',i,']=');readln(a[i]);

end;

max:=a[1];k:=1;

for i:=2 to n do

if a[i]>max then

begin

max:=a[i];k:=i;

end;

write('номер: ',k);

readln;

end.

11) Дан линейный массив из n эл-тов. Составить программку упорядочивания частей таблицы

uses crt;

var a : array Генератор случайных чисел [1..100] of longint;

j,i,n,max : longint;

begin

clrscr;

write('n=');readln(n);

for i:=1 to n do

begin

write('a[',i,']=');readln(a[i]);

end;

for i:=1 to n-1 do

for j:=i+1 to n do

if a[j]>a[i] then

begin

max:=a[j];

a[j]:=a[i];

a[i]:=max;

end;

for Генератор случайных чисел i:=1 to n do writeln('a[',i,']=',a[i] );

readln;

end.

12) Дана табл a[1..n] из целых чисел.Поставить поначалу четные, а позже нечетные элм

uses crt;

var a,b : array [1..10] of longint;

m,i,j,n : longint;

begin

clrscr;

write('кол-во элм. таб. n=');readln(n);

for i:=1 to n do

begin

write('a Генератор случайных чисел[',i,']=');readln(a[i]);

end;

j:=0;m:=0;

for i:=1 to n do

begin

if a[i]mod 2=0

then

begin

j:=j+1;

b[j]:=a[i];

end

else

begin

m:=m+1;

b[n+1-m]:=a[i];

end;

end;

for j:=1 to n do

writeln('a[',j,']=',b[j]);

readln;

end.

13) Отыскать наибольшее кол-во схожих частей.

uses crt Генератор случайных чисел;

var a,b : array [1..10] of longint;

k,i,j,min,max,n,m,s : longint;

begin

clrscr;

write('кол-во элм. табл. n=');readln(n);

for i:=1 to n do

begin

write('a[',i,']=');readln(a[i]);

end;

for i:=1 to n-1 do

begin

min:=a[i];k:=i;

for j:=i+1 to Генератор случайных чисел n do

if a[j]

begin

min:=a[j];

k:=j;

end;

a[k]:=a[i];

a[i]:=min;

end;

k:=0;s:=1;i:=1;

while i<=n-1 do

if a[i]=a[i+1]

then

begin

s:=s+1;

i:=i+1;

end

else

begin

k:=k+1;

b[k]:=s;

i:=i+1;

s:=1;

end;

max:=b[1];

for i:=2 to Генератор случайных чисел k do

if b[i]>max then max:=b[i];

write('наибольшее кол-во схожих элм.: ',max);

readln;

end.

14)Дан одномерный массив. Упорядочить массив удалив нули со сдвигом на лево ненулевых элм

uses crt;

var b:array[1..20]of integer;i,m,n:byte;

begin

clrscr;

write('введите кол-во элм массива:');readln(n);

for Генератор случайных чисел i:=1 to n do

begin

write('b[',i,']=');readln(b[i]);

end;

i:=1;m:=0;

while i<=n do

begin

if b[i]=0 then inc(m)

else b[i-m]:=b[i];

inc(i);

end;

if n=m

then begin

write('в упорядоченном массиве нет элм');

readln;halt;

end;

writeln('упорядоченный массив');

for i:=1 to n-m do

write Генератор случайных чисел(' ',b[i]);

readln;

end.

15) Зад. лин таб, сост из цел. чисел. Опред есть ли в этой таб хотя бы одно число кратное k

uses crt;

var a : array [1..100] of longint;

i,k,n : longint;

begin

clrscr;

write('введите кол-во элм таблицы:');readln(n);

write('введите число:');readln(k);

for i Генератор случайных чисел:=1 to n do

begin

write('a[',i,']=');readln(a[i]);

end;

for i:=1 to n do if k mod a[i]=0 then write(a[i],' ');

readln;

end.

16)Даны n чисел. Опред яв-ся ли они взаимно ординарными т.е. имеют общий делитель отлич. от единицы

uses crt;

var a : array [1..100] of Генератор случайных чисел longint;

i,max,n,j : longint;

begin

clrscr;

write('введите кол-во чисел:');readln(n);

for i:=1 to n do

begin

write(i,') число:');readln(a[i]);

end;

max:=a[1];

for i:=2 to n do if max

for i:=2 to max do

for j:=1 to n do

if a Генератор случайных чисел[j] mod i=0 then beginwrite('ДА');readln;halt;end

else beginwrite('НЕТ');readln;halt;end;

readln;

end.

17)Дан одномерный массив размерностью N из положительных и отрицательных чисел. Упорядочить так ,чтоб сначала размещались все отрицательные ,а потом все положительные ,сохранив порядок следования и не создавая новый массив.

uses crt;

var Генератор случайных чисел a:array[1..100]of longint;

i,j,n,k,l:longint;

begin

clrscr;

write('Введите кол-во элм таблицы:');readln(n);

for i:=1 to n do

begin

write('a[',i,']=');readln(a[i]);

end;

j:=1;

for i:=1 to n do

if a[i]<0 then begin

l:=a[i];for k:=i downto j do

a[k]:=a Генератор случайных чисел[k-1];a[j]:=l;inc(j);

end;

for i:=1 to n do write(a[i],' ; ');readln;

end.

Сформировать одномерный массив из N частей, где элемеи ты массива- целые случайные числа в границах от 1 до 45. Напечатать элементы массива в прямом и оборотном порядке.

{Для получения случайных чисел воспользуемся последующей функцией Генератор случайных чисел:
Функция Random [(x)]
Сформировывает случайное число от 0 до X целого либо вещественного типа (перед воззванием к функции ее целенаправлено инициализировать, использовав функцию Randomize).
X - параметр, указывающий спектр значений случайного числа. Оно меняется в границах 0 до X. Итог в данном случае имеет тип Word (спектр значений - 0...65535). Если параметр X Генератор случайных чисел не задан, итог будет типа Real в границах 0.0 <Х< 1.0. Для получения массива целых случайных чисел из спектра от [А,В] random(B-A+1)+A }

program prim 1;
uses crt;
var i, n:integer;
a:array[1..10000] of integer;
begin
clrscr;
randomize;
write(' размер =' );readln(n);
for i:=1 to n do
begin
{Получаем случайные числа в Генератор случайных чисел границах от 1 до 45.}
a[i]:=random(46))+1;
{Выводим элементы массива на экран.}
write(a[i], ' ' );
end;
{Полученный массив печатаем в оборотном порядке.}
for i:=n downto 1 do
write(a[i],' ');
readkey;
end.

Переставить элементы, стоящие на нечетных местах, с надлежащими элементами на четных местах.

program prim2;
uses crt;
var i, n Генератор случайных чисел, r: integer;
a: array[1.. 10000] of integer;
begin
clrscr;
randomize;
write ('число частей ');
readln(n);
for i:=1 to n do
begin
{Получаем случайные числа и выводим их на экран.}
a[i]:=random(45)-22;
write(a[i],' ');
end;
{В приобретенном массиве меняем примыкающие элементы.}
i:=1;
{Пока I<=N-1.}
while i<=n-1 do
begin
{Меняем значения примыкающих частей. }
r Генератор случайных чисел:=a[i];a[i]:=a[i+1];a[i+1]:=r;
{Увеличиваем индекс на два.}
inc(i,2);
end;
{Распечатываем модифицированный массив.}
for i:=1 to n do
write(a[i],' ');
readkey;
end.

{Процедура Inc(i,n) конвертирует переменную порядкового типа i к следующему значению (n=1) либо на n шагов вперед.}

Ввод с клавиатуры Генератор случайных чисел одномерного массива целых чисел и вывод его частей на экран с обратным знаком

Program Massiv2;
const N=10;
type { Раздел описания типов переменных. Эти типы определяет сам юзер, другими словами мы определяем тип одномерного массива из n целых чисел }
Mas=array [1..N] of integer; { 1..N - тип индекса; для индекса избран Генератор случайных чисел интервальный тип. другими словами интервал целых чисел от 1 до N. где N определено в разделе const }
var
Line:Mas; { Line - одномерный массив, его тип определен нами как Mas }
i:integer; {Переменная, хранящая индекс элемента массива, к которому идет воззвание }
begin
{ Ввод массива с клавиатуры }
for i:=l to N do { Воззвание Генератор случайных чисел к элементам массива происходит в цикле, по очереди }
begin { Начало цикла ввода частей массива }
write('Введите элемент с индексом ' ,i,' :');
readln(Line[i]) { Обращаемся к i-му элементу массива (Line[l],Line[2] и т. д.) }
end; { Конец цикла ввода частей массива }
{ Вывод частей происходит также в цикле:}
for i Генератор случайных чисел:=l to N do { Перебираем все N частей массива }
write(-Line[i]:5); { 10 частей выводятся в строчку. Выводим все элементы массива с обратным знаком }
writeln; { После вывода массива частей - переход на новейшую строчку }
readln
end.

Отыскать наибольший (малый) элемента массива, также его порядковый номер.

program prim3;
uses crt;
var Генератор случайных чисел i,n,r,max,min,imax,imin:integer;
a:array[1..10000] of integer;
begin
clrscr;
randomize;
write('число частей n= ');
readln(n);
for i:=1 to n do
begin
a[i]:=random(45)-22;
{Получаем случайные числа и выводим их на экран.}
write(a[i],' ');
end;
{За исходный максимум (минимум) берем 1-ый элемент массива.}
min:=a Генератор случайных чисел[1]; max:=a[1];
for i:=1 to n do
begin
{Если найдется элемент, наименьший MIN, то MIN будет равен этому элементу. Сразу запоминаем индекс промежного минимума.}
if a[i]<=min then
begin
min:=a[i]; imin:=i;
end;
{Если найдется элемент, больший МАХ, то МАХ будет равен этому элементу. Сразу запоминаем индекс промежного максимума Генератор случайных чисел.}
if a[i]>= max then
begin
max:=a[i]; imax:=i;
end;
end;
{Печатаем малый элемент и его индекс.}
writeln(min,' номер' , imin);
{Печатаем наибольший элемент и его индекс.}
writeln(max, ' номер' ,imax);
readkey;
end.

Вычисление суммы положительных частей массива

program PositivSumm;
const N=10;
type Mas=fray [1..N] of integer;
var a: Mas Генератор случайных чисел;
i: integer; { Счетчик цикла}
S:integer; { Копилка - переменная для суммирования положительных элементов}
begin
{ Заполним массив случайными числами в спектре -100..+100 }
randomize;
for i:=l to N do
begin
a[i]:=-100+random(201);
write(a[i]:5)
end;
writeln;
{ Присвоим переменным исходные значения }
S:=0; { Переменная S - аккумулятор. Она будет копить сумму всех положительных частей Генератор случайных чисел. Необходимо присвоить ей такое изначальное значение, чтоб оно не воздействовало на итог суммирования. Таким числом является ноль }
for i:=l to N do { Перебираем все элементы массива }
if A[i]>0 then { Проверяем каждый элемент на положительность }
S:=S+A[i]; { Если элемент положительный, добавляем значение элемента к аккуму }
{ Выводим итог на Генератор случайных чисел экран: }
writeln('Сумма положительных частей =',S);
readln
end.

Подсчитать количество четных частей массива, данного датчиком случайных чисел.

program prim41;
uses crt;
var i,k,,r:integer;
a:array[1..10000] of integer;
begin
clrscr;
randomize;
write(' число элемен. п=');readln(n);
for i:=1 to n do
begin
a[i]:=random(45)-22;
write(a[i Генератор случайных чисел], ' ');
{Проверяем на четность и считаем количество четных частей.}
if a[i] mod 2=0 then inc(k, 1);
end;
write('k= ',k);
readkey
end.

Подсчитать количество отрицательных и неотрицательных частей массива, данного датчиком случайных чисел.

program prim2;
uses crt;
var a: array [1..10000] of integer;
i,k,n,l:integer;
begin
randomize;
clrscr;
write('чucлo Генератор случайных чисел частей n=');readln(n);
for i:=1 to n do
begin
a[i]:=random(45)-22;
write(a[i],' ');
{Сравниваем с нулем и считаем неотрицательные и отрицательные элементы.}
if a[i]>=0 then k:=k+1 else
l:=l+1;
end;
writeln;
writeln(' нeompuц. = ', k, ' отриц.= ', l);
readln;
end.

Произвести удаление элемента из одномерного массива Генератор случайных чисел, данного датчиком случайных чисел.

program рrim3;
uses crt;
var a.array [1..1000] of integer;
i,k,n:integer;
begin
randomize;
clrscr;
write(' число частей n=');readln(n);
for i:=1 to n do
begin
a[i]:=random(45)-22;
write(a[i], ' ');
end;
{Вводим номер удаляемого элемента.}
write(' номер удал. элем. k=<п ');readln(k);
for i Генератор случайных чисел:=1 to n-1 do
begin
{Смещаем элементы массива к началу, начиная с К-го.}
if i>=k then a[i]:=a[i+1];
end;
{Обнуляем последний элемент.}
a[n]:=0;
{Выводим на экран модифицированный массив.}
for i:=1 to n - 1 do
begin
write(a[i],' ');
end;
readln;
end.

Произвести вставку элемента в одномерный Генератор случайных чисел массив, данный датчиком случайных чисел.

program prim22;
uses crt;
var a: array [1..1000] of integer;
r,i,k,n:integer;
begin
randomize;
clrscr;
{Создаем массив и выводим на экран.}
write(' число частей n=');readln(n);
for i:=1 to n do
begin
a[i]:=random(45)-22;
write(a[i], ' ' );
end;
{Вводим индекс и значение вставляемого Генератор случайных чисел элемента.}
write(' индекс < =N ');readln(k)
write('значение R =');readln(r);
{Смещаем элементы к концу массива, начиная с К+1.}
for i:=n+1 downto 1 do
begin
if i>k then a[i]:=a[i-1];
end;
{На К-ое место ставим введенный элемент.}
a[k]:=r;
{Выводим на экран модифицированный массив}
for Генератор случайных чисел i:=1 to n+1 do
begin
write(a[i],'');
end;
readln;
end.

Задание:

1. Дан массив чисел а1,...,аn. Узнать, имеются ли в данном массиве 2 идущих попорядку положительных элемента. Подсчитать количество таких пар.

2. Даны действительные а1,...,аn. Требуется отыскать наибольшее значение из чисел а1,...,an и отклонение от наибольшего для каждого из Генератор случайных чисел чисел.

3. Даны действительные а1,...,аn. Вычислить сумму положительных и произведение четных членов данного массива,если таких членов нет, то выдать сообщение.

4.Если в данном массиве реальных чисел а1,...,аn есть хотя бы один член, наименьший чем -2,то все отрицательные члены поменять их квадратами.

5.Сформировать в программке массив из целых Генератор случайных чисел чисел от 2 до N. Подсчитать сумму квадpатов четных и сумму квадратов нечетных чисел.

6.Массив а1,...,a24 содержит данные измерения температуры воздуха в течение денька. Отыскать наивысшую, наименьшую и среднюю температуру воздуха.

7.Дано натуральное число N и массив целых чисел а1,..an Узнать имеется ли в массиве а1,..,an Генератор случайных чисел хотя бы одно нечетное отрицательное число и найти его местопребывание в массиве.

8.Дан массив целых чисел a1,...,an. Отыскать количество и сумму тех членов массива а1,..,аn,которые делятся на 5 и не делятся на 7.

9.Дан массив реальных чисел a1,...,an. Получить количество отрицательных членов массива а1,..,an и пpоизведение частей, принадлежащих отрезку Генератор случайных чисел [с,в].

10. Дан массив знаков s1,..sn.Подсчитать сколько раз встречается в массиве знак К.

11.Дан массив знаков S1,...,Sn. Распечатать все буковкы В, конкретно перед которыми находится буковка С.

12. Дан массив знаков S1,...,Sn. Напечатать true, если в данном массиве буковка а встречается почаще, чем буковка b, и Генератор случайных чисел напечатать false в обратном случае.

13. Дан массив целых чисел a1,...,an. Отыскать наибольший элемент массива и поменять его местами с первым элементом.

14.Дан массив целых чисел a1,..,an. Отыскать малый элемент массива и поменять его местами с последним элементом.

15.Дан массив целых чисел a1,...,an. Отыскать малый и наибольший Генератор случайных чисел элементы массива и поменять их местами.


Двумерный массив

1) Поменять местами столбцы двумерного массива, содержащие малый и наибольший элементы.

К примеру:

Решение:

program min_max;

uses crt;

var

a: array[1. .20, 1. .20] of real;

i,j,m,n,st_min,st_max: integer;

min,max,otvet: real;

begin

clrscr;

writeln(“укажите количество строк Генератор случайных чисел матрицы”);

readln(m);

writeln(“укажите количество столбцов матрицы”);

readln(n);

writeln(“укажите элементы матрицы”);

for i:=1 to n do

for j:=1 to m do

begin

writeln(‘укажите элемент, стоящий на ’,i, ‘-ой строке и ’,j, ‘-м столбце матрицы’);

readln(a[i,j]);

end;

min:= a[1,1];

st_min:=1;

max:= a[1,1];

st_max:=1;

for Генератор случайных чисел i:=1 to m do

for j:=1 to n do

begin

if min>a[i,j] then

begin

min:=a[i,j];

st_min:=j;

end;

if max< a[i,j] then

begin

max:= a[i,j];

st_max:=j;

end;

end;

for i:=1 to m do

begin

otvet:=a[i,st_min];

a[i,st_min]:= a[i,st_max];

a Генератор случайных чисел[i,st_max]:=otvet;

end;

writeln(‘итог:’);

for i:=1 to m do

begin


generalnij-plan-municipalnogo-obrazovaniya-kokshamarskoe-selskoe-poselenie.html
generalnij-plan-municipalnogo-obrazovaniya-nozdrachyovskij-selsovet-kurskogo-rajona-kurskoj-oblasti-tom-ii-stranica-4.html
generalnij-plan-municipalnogo-obrazovaniya-suslongerskoe-selskoe-poselenie-zvenigovskogo-municipalnogo-rajona-respubliki-marij-el-stranica-4.html