Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика алгоритмизации и программирования.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
517.53 Кб
Скачать

Исполнение алгоритма

 

Обозначения проверяемых условий:

(i <= N-1) и (Flag = "Нет")  => (1)

(i <= N) и (Flag = "Нет")   => (2)

 

N теста

i

Flag

(1)

j

(2)

A[i]=A[j]

Otvet

 

 

 

 

1

1

 "Нет"

+

2

3

4

5

+

+

+

-(кц)

-

-

-

 

2

  "Да"

+

3

4

+

+

-(кц)

-

+

 

3

 

  -(кц)

 

 

 

"Есть совп.числа"

2

1

2

3

 "Нет"

+

+

-(кц)

2

3

4

3

4

+

+

-(кц)

+

-(кц)

-

-

-

 

 

 

 

 "Нет совп.чисел"

   Turbo Pascal

Program Equal;

  Uses Crt;

  Type Mas = Array [1..20] of Integer;

  Var A : Mas;

  i, j, N : Integer;

  Flag   : Boolean;

{------------------------------------------}

Procedure InputOutput; {Описание процедуры ввода-вывода данных}

 Begin ClrScr;

Write('N = '); ReadLn(N);

For i := 1 to N do

begin Write('A[' , i , '] = ') ; ReadLn(A[i]) end;

WriteLn; WriteLn('Массив А');

For i := 1 to N do Write(A[i] : 4);

WriteLn; WriteLn

 End; 

{------------------------------------------} 

Procedure Search(Var A:Mas; Var Flag:Boolean); {Описание процедуры

 Begin {поиска решения   } 

i:=1; Flag:= FALSE; 

While (i<=N-1) and not Flag do {цикл по первому числу из пары

  begin 

  j:=i+1; 

  While (j<=N) and not Flag do  {цикл по второму числу из пары

If A[i]=A[j] then Flag:=TRUE else j:=j+1; 

  i:=i+1 

  end; 

 End; 

{------------------------------------------} 

BEGIN 

InputOutput; {вызов процедуры ввода-вывода данных }

  Search(A, Flag); {вызов процедуры поиска решения задачи} 

  WriteLn( 'О т в е т : '); 

If Flag then WriteLn('Есть совпадающие числа.' )

  else WriteLn('Нет совпадающих чисел.'); 

  ReadLn 

END.

   QBasic

CLS 

INPUT "N = ", N : DIM A(N)   ' ввод массива А

FOR i = 1 TO N PRINT "A(" ; i ; ") = " ;

  INPUT A(i)

NEXT i

PRINT : PRINT "Массив А"   ' вывод массива А

FOR i = 1 TO N

  PRINT A(i) ;

NEXT i : PRINT

i = 1 : Flag = 0   ' поиск совпадающих чисел

WHILE (i <= N - 1) AND (Flag = 0)

  j = i + 1

  WHILE (j <= N) AND (Flag = 0)

  IF A(i)=A(j) THEN Flag=1 ELSE j=j+1

 WEND

 i = i + 1

WEND

PRINT : PRINT "О т в е т :"

IF Flag = 1 THEN

  PRINT "Есть совпадающие числа."

  ELSE PRINT "Нет совпадающих чисел."

END IF

END

 

Пример 5.2. Дана целочисленная матрица a(n, n). Определить, имеются ли среди её элементов, лежащих ниже главной диагонали, отрицательные числа. Система тестов

 

 

Номер 

теста

Проверяемый 

случай

Данные

Результат

N

Массив А

Otvet

1

Имеются

4

 1 -1  2  1

 2  3  1  0

 1 -1  2 -1

-2  1  0  1

 ''Есть отрицательные числа''

2

Не имеются

3

1 -1  2

1  0  1

2  1  1

"Нет отрицательных чисел"