ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Глава 6. Алгоритмы, реализуемые с помощью комбинации циклов типа ДЛЯ и ПОКАСхема циклов типа пока / для Схема циклов типа для / пока нц пока <условие> нц для i от A до B тело внешнего цикла тело внешнего цикла ............ нц для i от A до B нц пока <условие> тело внутреннего цикла тело внутреннего цикла Кц кц ............ Кц кц Пример 6.1. В заданной целочисленной матрице A(N, M) найти количество строк, Содержащих нули. Тест
Алгоритмический язык алг Строки с нулями (арг цел N, M, арг цел таб A[1:N, 1:M], рез цел K) дано | N>0, M>0 нач цел i, j, лит Flag K:= 0 нц для i от 1 до N | цикл по всем строкам j:= 1; Flag:= " Нет " нц пока (j <= M) и (Flag = "Нет") | цикл до нулевого элемента строки если A[i, j] = 0 то Flag:= "Да"; K:=K+1 иначе j:=j+1 Все Кц Кц Кон Исполнение алгоритма Блок-схема Обозначение проверяемого условия: (j<=M) и (Flag = "Нет") => (1)
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); 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. Не нашли, что искали? Воспользуйтесь поиском:
|