Все о Pascal
Главная
Вход
Регистрация
Вторник, 26.11.2024, 04:42Приветствую Вас, программист Гость | RSS
Меню сайта

Категории раздела
Уроки Pascal [36]
Мемы - "Типичный программист" [1]
Задачи [10]
Заработок в интернете [14]
Олимпиадные задчи [1]

Наш опрос
Оцените мой сайт
Всего ответов: 249

Статистика

Форма входа

Главная » Статьи » Уроки Pascal

Урок 9.

Лекция 3.Алгоритмическая конструкция Повторение. Цикл с параметром.
автор: Садовский Ефим Моисеевич

 1. Повторение.
    Операторы ветвления (краткая и полная форма).

2. Циклы
    Алгоритмы решения многих задач являются циклическими, т. е. для достижения результата определенная последовательность действий должна быть выполнена несколько раз.
    Например, программа контроля знаний (тест) выводит вопрос, принимает ответ, добавляет оценку за ответ к сумме баллов, затем повторяет это действие еще и еще раз, и так до тех пор, пока испытуемый не ответит на все вопросы.
    Алгоритм, в котором есть последовательность операций, которая должна быть выполнена несколько раз, называется циклическим, а сама последовательность операций именуется циклом.

3. Цикл For 
    Цикл for применяется в том случае, если некоторую последовательность действий надо выполнить несколько раз, причем число повторений заранее известно.
Общий вид.
for i:=n1 to n2 do 
begin

end;
шаг равен 1
или
for i:=n2 downto n1 do 
begin

end;
шаг равен -1

(Перевод: for – для, to – к, до, downto – вниз к, do - выполнить)

Команды, расположенные между операторными скобками begin – end повторяются n2-n1+1 раз, а переменная цикла i принимает все значения от n1 до n2 с шагом 1 (n1,n1+1,n1+2…n2) или от n2 до n1 с шагом -1. Если n1>n2 команды цикла не выполнятся ни разу.

Переменная i называется счетчиком цикла, ее значение автоматически изменяется на 1 или -1.
Ограничения и недостатки:
а) Все переменные, указанные в строке for – целого типа (Integer). 
б) Шаг переменной цикла – только целый (1 или –1).
в) Нельзя изменять значение переменной цикла внутри цикла (нельзя, например, внутри цикла на-писать i:=i+1)
4. Примеры:
    1. Рассчитать сумму первых натуральных чисел от 1 до 100.r> Подумаем, как бы мы считали устно: 1+2+3+4+5+6+…+100.
Самый прямой способ: 1+2=3, 3+3=6, 6+4=10, 10+5=15, 15+6=21 и т.д. То есть каждый раз к предыдущему значению суммы мы прибавляем следующее слагаемое.
Попробуем заставить то же самое делать компьютер:
program primer1;
 var i,s:integer;
 begin
 s:=0;
 for i:=1 to 100 do
 s:=s+i;
 writeln('S=',s);
 end.
Сначала S=0. Переменная i принимает значения от 1 до 100 (перебирается каждое слагаемое), которое прибавляется к предыдущему значению суммы: s:=s+i.
Внимание! Заметим, что всегда при вычислении суммы, исходное значение суммы принимается равным 0, при вычислении произведения - 1.

    2. Рассчитать сумму четных натуральных чисел от 7 до n.
Четные числа от 7 (8, 10, 12, 14, …) изменяются с шагом 2. Но переменная цикла FOR может изменяться только с шагом 1! Что делать? Добавляем условие!
program primer1;
 var i,n,s:integer;
 begin
 write('Введите N=');
 readln(n);
 s:=0;
 for i:=7 to n do
 if i mod 2=0 then
 s:=s+i;
 writeln('S=',s);
 end.
    Условием if мы из всех чисел от 7 до n выбираем только те, которые делятся на 2 – четные!
    При этом внутри цикла остается одна команда if, поэтому операторные скобки можно не ставить.

    3.Найти сумму N чисел, вводимых с клавиатуры.
Внимание! Мы заранее не знаем, сколько чисел надо будет ввести (их количество задает пользователь). Что делать? Очень просто: команды ввода числа (write и readln) расположим внутри цикла (между операторными скобками цикла), в этом случае число вводится столько раз, сколько выполняется цикл.
program primer2;
 var n,i,s,x:integer;
 begin
 write('Введите количество чисел N=');
 readln(n);
 s:=0;
 for i:=1 to n do
 begin
 write('Введите число: ');
 readln(x);
 s:=s+x;
 end;
 writeln('Полученная сумма S=',s);
 end.
    Сначала вводится количество чисел, а затем n раз вводится число X (команды ввода расположены внутри цикла) и прибавляется к предыдущему значению суммы.

7. Решение задач.
    1. Найти N! (факториал). ВНИМАНИЕ! N!=1*2*3*4*5*...*N.
    2. Найти сумму натуральных чисел от 2 до 56, кратных 5.
    3. Найти произведение натуральных нечетных чисел от n1 до n2.
    4. Найти сумму:

К О Н С П Е К Т
Тема: Алгоритмическая конструкция Повторение. Цикл с параметром.

2. Циклы.  Алгоритм, в котором есть последовательность операций, которая должна быть выполнена несколько раз, называется циклическим, а сама последовательность операций именуется циклом.

3. Цикл For. Цикл for применяется в том случае, если некоторую последовательность действий надо выполнить несколько раз, причем число повторений заранее известно.
Общий вид.
for i:=n1 to n2 do 
begin

end;
шаг равен 1
или
for i:=n2 downto n1 do 
begin

end;
шаг равен -1

(Перевод: for – для, to – к, до, downto – вниз к, do - выполнить)

Команды, расположенные между операторными скобками begin – end повторяются n2-n1+1 раз, а переменная цикла i принимает все значения от n1 до n2 с шагом 1 (n1,n1+1,n1+2…n2) или от n2 до n1 с шагом -1. Если n1>n2 команды цикла не выполнятся ни разу.

Переменная i называется счетчиком цикла, ее значение автоматически изменяется на 1 или -1.
Ограничения и недостатки:
а) Все переменные, указанные в строке for – целого типа (Integer). 
б) Шаг переменной цикла – только целый (1 или –1).
в) Нельзя изменять значение переменной цикла внутри цикла (нельзя, например, внутри цикла на-писать i:=i+1)
4. Примеры:
    1. Рассчитать сумму первых натуральных чисел от 1 до 100.r> Подумаем, как бы мы считали устно: 1+2+3+4+5+6+…+100.
program primer1;
  var i,s:integer;
  begin
   s:=0;
   for i:=1 to 100 do
   s:=s+i;
   writeln('S=',s);
  end.

Внимание! Заметим, что всегда при вычислении суммы, исходное значение суммы принимается равным 0, при вычислении произведения - 1.

    2. Рассчитать сумму четных натуральных чисел от 7 до n.
program primer1;
  var i,n,s:integer;
  begin
   write('Введите N=');
   readln(n);
   s:=0;
   for i:=7 to n do
   if i mod 2=0 then
   s:=s+i;
   writeln('S=',s);
  end.

       3.Найти сумму N чисел, вводимых с клавиатуры.
program primer2;
 var n,i,s,x:integer;
  begin
    write('Введите количество чисел N=');
    readln(n);
    s:=0;
    for i:=1 to n do
    begin
     write('Введите число: ');
     readln(x);
     s:=s+x;
    end;
   writeln('Полученная сумма S=',s);
  end.

    Сначала вводится количество чисел, а затем n раз вводится число X (команды ввода расположены внутри цикла) и прибавляется к предыдущему значению суммы.

pascal, pascal, pascal, pascal, pascal, pascal, pascal, pascal

Категория: Уроки Pascal | Добавил: yurabobr1 (13.11.2012)
Просмотров: 847 | Теги: команда, внутри, значение, число, шаг, End, сумма, цикл, переменный, integer | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright MyCorp © 2024