Begin
writeln('Привет, начинающий программист, тебя приветствует Pascal');
end.
<em>MS DOS QBasic 1.0</em>
DIM n AS INTEGER, m AS INTEGER
CLS
INPUT "n,m=", n, m
IF n < 3 THEN
PRINT "n<3"
SYSTEM
END IF
REDIM a(1 TO n, 1 TO m) AS INTEGER
RANDOMIZE TIMER
FOR i = 1 TO n
FOR j = 1 TO m
a(i, j) = INT(50 * RND)
PRINT USING "###"; a(i, j);
NEXT j
PRINT
NEXT i
PRINT
FOR i = 4 TO n
FOR j = 1 TO m
a(i - 1, j) = a(i, j)
NEXT j
NEXT i
FOR i = 1 TO n - 1
FOR j = 1 TO m
PRINT USING "###"; a(i, j);
NEXT j
PRINT
NEXT i
<u>Пример
</u>n,m=5,8
43 6 19 48 44 6 28 10
5 48 44 1 31 30 25 33
19 30 46 27 29 34 45 8
17 37 43 1 37 46 25 45
48 48 27 21 36 48 44 37
43 6 19 48 44 6 28 10
5 48 44 1 31 30 25 33
17 37 43 1 37 46 25 45
48 48 27 21 36 48 44 37
<u>Замечание</u>
Поскольку QBasic не поддерживает сохранение содержимого при изменении размеров динамического массива, для упрощения было решено не заниматься созданием вспомогательного массива, копирования в него всех строк, кроме последней, затем изменение размера исходного массива и обратное копирование в него. Просто считается, что n уменьшилось на 1.
Def GetRate(rates):
RatesList = []
for rate in rates.split(' '):
RatesList.append(int(rate))
print(str(RatesList[0]) + ' ' + str(RatesList[-1]))
RatesList.remove(RatesList[0])
RatesList.remove(RatesList[-1])
return sum(RatesList)/ len(RatesList);
rates = input()
print('%.2f' % GetRate(rates))
По пять цифр в ряду
n = 10:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
n = 2:
1 10 11 100 101
110 111 1000 1001 1010
1011 1100 1101 1110 1111
10000 10001 10010 10011 10100
n = 3:
1 2 10 11 12
20 21 22 100 101
102 110 111 112 120
121 122 200 201 202
n=5:
1 2 3 4 10
11 12 13 14 20
21 22 23 24 30
31 32 33 34 40
n=8:
1 2 3 4 5
6 7 10 11 12
13 14 15 16 17
20 21 22 23 24