Язык программирования паскаль abc! в матрице имеется столбец, в котором разность между максимальным элементом и средним арифметическим больше первого элемента. найти этот столбец, и заменить его элементы на единицу.
211
326
Ответы на вопрос:
Const nm = 50; nn = 50; type mas=array[1..nm,1..nn] of integer; procedure matrixinit(var a: mas; m,n,p,q: integer); { заполнение массива размером m*n целыми случайными числами из интервала [p; q] } var i,j,k: integer; begin k: =q-p+1; for i: =1 to m do for j: =1 to n do a[i,j]: =random(k)-p end; procedure matrixoutput(var a: mas; m,n,k: integer); { вывод элементов матрицы размера m*n в k позициях } var i,j: integer; begin for i: =1 to m do begin for j: =1 to n do write(a[i,j]: k); writeln end end; function isfits(var a: mas; m,col: integer): boolean; { функция возвращает true, если колонка col явдяется "подходящей" } var i,max: integer; mv: real; begin max: =a[1,col]; mv: =max; for i: =2 to m do begin mv: =mv+a[i,col]; if max< a[i,col] then max: =a[i,col] end; mv: =mv/m; isfits: =(max-mv> a[1,col]) end; procedure columnreplace(var a: mas; m,col: integer); { замена элементов столбца col единицами } var i: integer; begin for i: =1 to m do a[i,col]: =1 end; var p: mas; a,b,m,n,j,k: integer; flag: boolean; begin randomize; write('введите количество строк и столбцов матрицы: '); read(m,n); write('укажите минимальное и максимальной значение элементов: '); read(a,b); write('укажите количество позиций для вывода значения элемента: '); read(k); matrixinit(p,m,n,a,b); writeln('исходный массив'); matrixoutput(p,m,n,k); j: =1; repeat flag: =isfits(p,m,j); if flag then begin columnreplace(p,m,j); writeln('результирующий массив'); matrixoutput(p,m,n,k) end else inc(j) until flag or (j> n); if not flag then writeln('') end. тестовое решение: введите количество строк и столбцов матрицы: 5 8 укажите минимальное и максимальной значение элементов: 0 20 укажите количество позиций для вывода значения элемента: 3 исходный массив 19 7 2 15 2 11 2 15 12 16 8 14 6 8 1 17 12 14 10 8 7 19 7 1 0 9 0 7 18 10 2 5 18 8 4 9 16 10 14 10 результирующий массив 19 7 1 15 2 11 2 15 12 16 1 14 6 8 1 17 12 14 1 8 7 19 7 1 0 9 1 7 18 10 2 5 18 8 1 9 16 10 14 10
x=float(input('Ввести число:'))
if x<0:print('-')
elif x==0:print('0')
else: print('+')
А в твоей программе ошибка. После else не пишутся условия (if), а только результат. Можно было написать elif
Популярно: Информатика
-
teenwolf1812.04.2022 19:10
-
A1my04.11.2020 16:04
-
rfgvgvvdrxxsegb21.07.2020 06:36
-
MiSTiK33817.06.2020 04:42
-
HappyPerson2319.03.2022 07:45
-
dalnik3808.03.2020 17:37
-
Кратосчелавек26.12.2022 16:53
-
камила90520.12.2020 04:04
-
2005Киса20.06.2021 22:27
-
kamilusmonov22.01.2020 08:29