Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
informatika (2).docx
Скачиваний:
49
Добавлен:
16.04.2015
Размер:
653.64 Кб
Скачать
  1. Условие выполняется перед циклом.

  2. 13.Циклические алгоритмы. Оператор цикла с постусловием

  3. (do - while) Оператор do повторно выполняет оператор или блок операторов, заключенных в {}, пока определенное выражение не примет значение false. В следующем примере операторы цикла do - while выполняются до тех пор, пока пользователь не введёт значение из допустимого диапазона. Если в теле цикла всего один оператор, фигурные скобки ставить не нужно.

  4. int N; string s;

  5. do

  6. { Console.Write("Введите N в интервале 0..10 N=");

  7. s = Console.ReadLine();

  8. N = Convert.ToInt32(s); }

  9. while (N<0|| N>10);

  10. Console.WriteLine("Введённое число равно {0} ", N);

  11. Console.ReadKey();

    1. Блок-схема для оператора do-while

    Цикл do-while выполняется как минимум один раз, так как вычисление значения условного выражения выполняется после тела цикла. В любой точке блока do-while цикл можно разорвать с помощью оператора break. Для перехода непосредственно к оператору вычисления выражения while используется оператор continue; если выражение имеет значение true, выполнение продолжается в первом операторе цикла. Если выражение имеет значение false, выполнение продолжается в первом операторе после цикла do-while.
  12. Пример: Дано целое число N > 0. С помощью операций деления нацело и взятия остатка от деления определить, имеются ли в записи числа N нечетные цифры.

  13. int N; string s;bool f;

  14. Console. Write("Введите целое положительное число N=");

  15. s = Console. ReadLine();

  16. N = Convert.ToInt32(s);

  17. int n = N; //сохраним исходное значение

  18. f=false;

  19. do

  20. { if (N % 2 == 1) f = true;

  21. N = N / 10;

  22. while (N != 0 && !f);}

  23. if (f) Console.WriteLine("Нечётные цифры в числе {0} есть", n);

  24. else Console.WriteLine("Нечётных цифр в числе {0} нет", n);

  25. Console.ReadKey();

  26. Оператор цикла с постусловием (repeat) 

  27. В операторе цикла с постусловием (начинающимся со слова

  28. repeat) выражение, которое управляет повторным выполнением после-

  29. довательности операторов содержится внутри оператора repeat.

  30. repeat

    оператор

    until

  31. выражение

    Оператор repeat

  32. ;

  33. Результат выражения должен быть булевского типа. Операторы, заключенные между ключевыми словами repeat и until, выполняются последовательно до тех пор, пока результат выражения не примет значение True. Последовательность операторов выполнится по край- ней мере один раз, поскольку вычисление выражения производится после каждого выполнения последовательности операторов. Приведем примеры оператора цикла с постусловием:

  1. repeat

  2. K := I mod J;

  3. I := J;

  4. J := K;

  5. until J = 0;

  6. repeat

  7. Write('Введите значение (0..9):');

  8. Readln(I);

  9. until (I >= 0) and (I <= 9);

  1. 14.Массивы в Паскале. Основные алгоритмы обработки одномерных массивов.

  2. Массив – мн-во однотипных элементов. Каждый элемент имеет целочисленный порядковый номер, называемый индексом. Индексы записываются в квадратных скобках через запятую. Одномерные – каждый элемент массива получает два индекса. Многомерные – каждый элемент получает более 2-х индексов. Простой массив является одномерным. Он представляет собой линейную структуру. Способы описания: 1.простое (массив описывается в разделе описания переменных var <имя массива>: array [<нижняя граница индекса .. верхняя граница индекса>] of <тип массива> Напр-р: описание массива температур var T: array [1..12] of real. 2.определение типа (последовательное): а)описание типа массива; б)описание переменной массива. Type vector = array [1..31] of real; Var t:vector; Type index = 1..31;vector = array[index] of real; Var t:vector;r:index; Обработка массивов. 1.Ввод-вывод: Паскаль работает с массивами поэлементно. Const lim = 50; nmax = 100; Type raw = array [-lim..lim] of real; Var x,y: raw; Ввод одномерных массивов: write (‘введите кол-во элементов’); readln (n); write (‘введите элементы’); for i:=1 to n do read (x[i]); for i:=1 to n do begin write (x[i]:8:3); if i mod 5 = 0 then writeln; end; 2.Вычисление суммы элементов: s:=0;

  3. for i:=1 to n do s:=s+a[i];

  4. s:= s/n;

  5. 3.Номер первого отрицат: i:=1;

  6. while a[i]>=0 do i:=i+1;

  7. writeln (i);

  8. После выполнения этого цикла мы получаем новое первое отрицательное. В массиве отрицат. элементов нет. 4.Наибольший (наименьший): max:=a[1];

  9. For i:=2 to n do

  10. If a[i]>max then max:=a[i]; 5.Перестановка двух элементов: t:=a[k]; a[k]:=a[l]; a[l]:=t; 6.Циклическая перестановка элементов: было 1 2 3 4 5 6 стало 2 3 4 5 6 1 – циклическая перестановка на 1 позицию влево. t:=a[1];

  11. For i:=2 to n do a[i-1]:=a[i]; a[n]:=t; 7.Вычисление полинома заданной степени: Pn(x) = a0xn + a1xn-1 +…+ an-1x + an ((a0x + a1)x + a2)+…+an-1)x + an

  12. p:=a[0] for i:=1 to n do p:=p*x + a[i]; 8.Сортировка выбором:

  13. For i := 1 to n-1 do

  1. begin

  2. min:=a[i]; imin:=i;

  3. for k := i+1 to n do

  4. if min > a[k] then

  5. begin

  6. min:=a[k];    

  7. imin:=k;

  8. end;

  9. tmp:=a[i];

  10. a[i]:=a[imin];

  11. a[imin]:=tmp

  12. end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]