Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Каким поисковиком вы пользуетесь ?

Google.ru
Google.com
Rambler
Mail.ru
WebAlta
Яндекс
Апорт
Yahoo
Gogo.ru
Другим


Результаты
Другие опросы

Всего голосов: 1715
Комментарии: 4

Error: Incorrect password!
Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Книги-online



Практикум — Глава 5. Алгоритмы, реализуемые с помощью вложенных циклов типа ПОКА
[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]

Пример 5.1. Определить, имеется ли в заданном целочисленном массиве A(N) хотя бы одна пара совпадающих по значению чисел.   Система тестов  
Номер  теста Проверяемый  случай Данные Результат
N Массив А Otvet
1 2 Имеется Не имеется 4  3 (1,3,2,3) (1,2,3) "Есть совпадающие числа" "Нет совпадающих чисел"
  Демонстрация
Школьный АЯ 
алг Равенство(арг цел N, арг цел таб A[1:N], 
                        рез лит Otvet)
нач цел i, j, лит Flag
  i:=1;  Flag:="Нет"
  нц пока (i<=N–1) и (Flag="Нет")
     | цикл по первому числу из пары
     j:=i+1
     нц пока (j<=N) и (Flag="Нет")
        | цикл по второму числу из пары
       если A[i]=A[j] | проверка равенства чисел
         то Flag:="Да"
         иначе  j:=j+1
       все
     кц
     i:=i+1
  кц 
  если Flag="Да"
     то Otvet:="Есть совпадающие числа"
     иначе  Otvet:="Нет совпадающих чисел"
  все
кон
Блок-схема (фрагмент)
Исполнение алгоритма   Обозначения проверяемых условий: (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
 
[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]


Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


.



книги по программированию исходники компоненты шаблоны сайтов C++ PHP Delphi скачать