ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Пример 4.3. Определить, имеется ли среди элементов главной диагонали заданнойцелочисленной матрицы A(N, N) хотя бы один положительный нечётный элемент. Система тестов
Алгоритмический язык алг Диагональ (арг цел N, арг цел таб А[1:N, 1:N], рез лит Teкст) нач цел i, лит Flag Блок-схема (фрагмент) i:=1; Flag:="Нет" нц пока (i<=N) и (Flag="Нет") | условие продолжения цикла если (A[i, i]>0) и (mod(A[i, i], 2)=1) | условие завершения цикла то Flag:= "Да" иначе i:=i+1 Все Кц если Flag = "Да" то Текст:= "Есть такие" иначе Текст:= "Нет таких" Все кон Turbo Pascal Program Diagonal; Uses Crt; Type Mas = Array [1..10, 1..10] of Integer; Var A: Mas; N, i, j: Integer; Flag: Boolean; {-----------------------------------} Procedure InputOutput(Var A: Mas); {описание процедуры ввода} Begin {вывода исходных данных} ClrScr; Write(’Количество строк и столбцов – ’); Read(N); For i:= 1 to N do For j:= 1 to N do begin Write(’A[’, i, ’, ’, j, ’] =? ’); ReadLn(A[i, j]); end; WriteLn; WriteLn(’Заданная матрица:’); For i:= 1 to N do begin For j:= 1 to N do Write(A[i, j]: 5); WriteLn; end; WriteLn; End; { of InputOutput } {------------------------------------} Procedure Solution(Var A: Mas); {описание процедуры поиска решения} Var Flag: Boolean; Begin Flag:=FALSE; i:=1; While (i<=N) and not Flag do If (A[i, i]>0) and (A[i, i] mod 2 = 1) then Flag:=TRUE else i:=i+1; WriteLn(’О т в е т:’); Write(’Среди элементов главной диагонали ’); If Flag then WriteLn (’есть нечетные положительные.’) else WriteLn(’нет нечетных положительных.’); ReadLn; End; { of Solution } {------------------------------------} BEGIN InputOutput(A); {вызов процедуры ввода-вывода данных} Solution(A); {вызов процедуры поиска решения задачи} END. Пример 4.4. Числа Фибоначчи (Fi) определяются по формулам F0 = F1 = 1; Fi = Fi –1 + Fi –2 при i = 2, 3,... (каждое очередное число равно сумме двух предыдущих). Вычислить сумму всех чисел Фибоначчи, которые не превосходят заданного натурального числа М. Тест
Алгоритмический язык алг Фибоначчи (арг цел М, рез цел S) дано | M>0 нач цел F0, F1, F2 F0:=1; F1:=1; F2:=2 S:=4 | 4 – сумма первых трех чисел Фибоначчи нц пока F2<=M F0:=F1; F1:=F2; F2:=F0+F1 | серия переприсваиваний S:=S+F2; Кц S:=S–F2 | из S вычитается последнее значение F2, превосходящее M кон Исполнение алгоритма
Turbo Pascal Program SummaFib; Uses Crt; Блок-схема Var M, {заданное число } F0, F1, F2, {три последовательных числа Фибоначчи} S: Integer; {сумма чисел Фибоначчи} BEGIN ClrScr; Write(’Введите натуральное М: ’); ReadLn(M); F0:=1; F1:=1; F2:=2; S:=4; {4 – сумма первых трех чисел Фибоначчи} Write(’Числа Фибоначчи, не превосходящие ’, M, ’:’, F0:4, F1:4); While F2<=M do begin F0:=F1; F1:=F2; Write(F1: 4); F2:=F0+F1; S:=S+F2; end; S:=S–F2; {вычитание из суммы последнего числа, которое превосходит М} WriteLn; WriteLn; WriteLn(’О т в е т: Сумма этих чисел равна ’, S); ReadLn END. Результаты работы Pascal-программы Не нашли, что искали? Воспользуйтесь поиском:
|