Razdel_13_Osn_alg_i_i_progr_ya_11_05_10
.pdfЧасть 13. Основы алгоритмизации и программирования
|
|
|
|
|
|
3 |
|
+ |
|
- |
|
|
|
|
|
|
|
|
|
|
4 |
|
- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(кц) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
3 |
|
|
"Нет" |
|
1 |
|
+ |
|
+ |
|
2 |
|
|
|
|
|
|
"Да" |
|
|
|
- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(кц) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Turbo Pascal |
|
|
|
|
|
|
|
|
|
|
|
|
||
Program ContainZero; |
|
|
|
|
|
|
|
|
||||||
Uses Crt; |
|
|
|
|
|
|
|
|
|
|
|
|||
Var A |
: Array[1..10, 1..10] of Integer; |
|||||||||||||
N, M, i, j : Integer; |
|
|
|
|
|
|
||||||||
K |
: Integer; {K - количество строк, |
|||||||||||||
содержащих нули} |
|
|
|
|
|
|
|
|
|
|
|
|||
{-------------------------------------------- |
|
|
|
|
|
|
|
|
|
|
} |
Procedure InputOutput; {описание процедуры ввода-
вывода данных}
Begin
ClrScr;
Write('Количество строк - '); ReadLn(N);
Write('Количество столбцов - '); ReadLn(M); For i := 1 to N do
For j := 1 to M do
begin Write('A[' , i , ' , ' , j , ']= ? '); ReadLn(A[i, j])
end;
WriteLn; WriteLn('Исходная матрица :'); For i := 1 to N do
begin
For j := 1 to M do Write(A[i, j] : 5);
181
Часть 13. Основы алгоритмизации и программирования
WriteLn |
|
end; WriteLn |
|
End; { of InputOutput } |
|
{-------------------------------------------- |
} |
Function Zero(i:Integer):Boolean; {описание функции,
принимающей |
|
} |
|
|
Var |
Flag |
: |
Boolean; |
{значение Истина, |
если в |
строке |
есть } |
|
|
Begin |
|
|
|
{нули, и Ложь, если |
встроке нет нулей} j:=1; Flag:=FALSE;
While (j<=M) and not Flag do
If A[i, j]=0 then Flag:=TRUE else j:=j+1;
Zero:=Flag |
{значение функции присваи- |
вается имени функции} |
|
End; |
|
{-------------------------------------------- |
} |
BEGIN |
|
InputOutput; {вызов процедуры ввода-вывода} |
|
K:=0; |
|
For i := 1 to N do |
|
If Zero(i) then K:=K+1; |
{Zero(i) - указа- |
тель функции Zero}
WriteLn('Количество строк, содержащих нули, равно
', K); ReadLn
END.
QBasic
CLS
182
Часть 13. Основы алгоритмизации и программирования
INPUT |
"Количество строк - ", N |
||
INPUT |
"Количество столбцов - ", M : DIM A(N, M) |
||
FOR |
i |
= 1 TO N |
|
FOR |
j = 1 TO |
M |
|
|
PRINT "A(" |
; i ; ", " ; j ; ") = " ; |
|
|
INPUT A(i, |
j) |
|
NEXT j |
|
||
NEXT i : CLS |
|
||
"Исходная матрица :" : PRINT |
|||
FOR |
i |
= 1 TO N |
|
FOR |
j = 1 TO |
M |
|
|
PRINT A(i, |
j) ; |
|
NEXT j : PRINT |
|||
NEXT i : PRINT |
|
||
K = |
0 |
|
|
FOR |
i |
= 1 TO N |
'цикл по всем строкам |
j |
= |
1 : Flag |
= 0 |
WHILE (j <= M) AND ( Flag = 0 ) 'цикл до нулевого |
|||
элемента строки |
|
||
|
IF A(i, j) |
= 0 THEN Flag = 1: K = K + 1 ELSE j = |
|
j + |
1 |
|
|
WEND |
|
|
|
NEXT i |
|
|
|
"О т в е |
т : строк, содержащих нули, " ; K ; |
||
"." |
|
|
|
END |
|
|
|
183
Часть 13. Основы алгоритмизации и программирования
Пример 2. Дана целочисленная матрица A(N, M). Определить, встречает-
ся ли заданное целое K среди максимальных элементов столбцов этой матрицы.
Система тестов
|
|
|
|
|
|
|
|
Данные |
|
Результат |
||||
Номер |
|
Проверяемый |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
теста |
|
случай |
|
K |
|
N |
|
M |
|
Матрица |
|
|
|
Otvet |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
А |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
1 |
|
Встречается |
|
5 |
|
3 |
|
3 |
|
|
|
|
|
''Встречается'' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
Не встречается |
|
1 |
|
2 |
|
2 |
|
|
|
''Не встречается'' |
|
|
|
|
|
|
|
|
|
|
|
|
|