Вдвухмерном массиве хранится информация о зарплате 18 человек за каждый месяц года (за январь — в первом столбце, за февраль — во втором и т. определить общую зарплату, выплаченную в июне.
Program n1; Uses Crt; var a: array[1..30,1..30] of integer; k,m,i,j,s: integer; begin for i:=1 to 18 do begin for j:=1 to 12 do begin a[i,j]:=random(5001)+5000; write(a[i,j]:6); end; writeln; end; writeln; s:=0; for i:=1 to 18 do s:=s+a[i,6]; writeln('Summa: ', s); end.
Высчитывает все правильно. Зарплату поставил от 5000 до 10000 тысяч рублей, строкой a[i,j]:=random(5001)+5000; (b-a+1)+a - формула для расчета интервала чисел, т.е. зарплату поставил от 5000 до 10000, получается: a = 5000 b = 10000 (10000-5000+1)+5000 = (5001)+5000; Если захочешь поменять сумму зарплаты, думаю поймешь теперь как. for i:=1 to 18 do s:=s+a[i,6]; - этой строкой изменяю i (т.е. работников), а j оставляю неизменным и равным 6, так как июнь 6-ой месяц по счету.
Муравей может оказаться в точках из диапазона от -60 до 60 с ЧЕТНЫМИ значениями. Т.е. это могут быть точки -60, -58, -56, -54 ..., 0, 2, ..., 58, 60 Если муравей будет ползти не меняя направления влево или вправо по координатной прямой, то он окажется в точках -60 или 60 соответственно. Если направление будет меняться, то одни и те же единичные отрезки он будет проползать по 2 (4, 6, 8 и т.д.) раз. Если x - количество единичных отрезков, которые муравей прополз 1 раз, а y - количество отрезков, которые муравей прополз 2 раза, то можно записать x+2y=60. Т.к. 60 и 2y - четные, то и x - четное.
// PascalABC.NET 3.0, сборка 1076 begin var n:=ReadInteger('Введите количество элементов массива: '); var a:=ArrRandom(n,1000,10000); Write('Исходный массив: ',a,#13#10); Write('Множество цифр из разряда сотен: '); a.Select(x->(x mod 1000) div 100).Sorted.Distinct.Println(',') end.
Тестовое решение: Введите количество элементов массива: 8 Исходный массив: [9374,4420,8856,8274,7555,2461,8302,6325] Множество цифр из разряда сотен: 2,3,4,5,8
2. "Школьный вариант"
// PascalABC.NET 3.0, сборка 1076 var i,n:integer; sd:set of 0..9; a:array[1..50] of integer; begin Write('Введите количество элементов массива: '); Read(n); Randomize; Write('Исходный массив: '); sd:=[]; for i:=1 to n do begin a[i]:=Random(9001)+1000; Write(a[i],' '); Include(sd,(a[i] mod 1000) div 100) end; Writeln; Write('Множество цифр из разряда сотен: '); for i:=0 to 9 do if i in sd then Write(i:2); Writeln end.
Тестовое решение: Введите количество элементов массива: 8 Исходный массив: 5332 4215 7231 3399 6989 8904 7804 3517 Множество цифр из разряда сотен: 2 3 5 8 9
Uses Crt;
var a: array[1..30,1..30] of integer;
k,m,i,j,s: integer;
begin for i:=1 to 18 do begin
for j:=1 to 12 do begin
a[i,j]:=random(5001)+5000;
write(a[i,j]:6);
end;
writeln;
end;
writeln;
s:=0;
for i:=1 to 18 do
s:=s+a[i,6];
writeln('Summa: ', s);
end.
Высчитывает все правильно. Зарплату поставил от 5000 до 10000 тысяч рублей, строкой a[i,j]:=random(5001)+5000;
(b-a+1)+a - формула для расчета интервала чисел, т.е. зарплату поставил от 5000 до 10000, получается:
a = 5000
b = 10000
(10000-5000+1)+5000 = (5001)+5000;
Если захочешь поменять сумму зарплаты, думаю поймешь теперь как.
for i:=1 to 18 do s:=s+a[i,6]; - этой строкой изменяю i (т.е. работников), а j оставляю неизменным и равным 6, так как июнь 6-ой месяц по счету.