Циклы с предусловием ‘while…do…’
(Пока Делать)
Синтаксис оператора цикла ‘WHILE…DO…’:
WHILE<логическое условие>DO
Begin
<тело_цикла>
End;
Здесь WHILE, DO – зарезервированные слова (пока [выполняется условие] делать);
Если выражение <условие> имеет значение TRUE (истина), то выполняется <тело_цикла>, после чего вычисление выражения <условие> и его проверка повторяются. Если условие имеет значение FALSE (ложь), оператор WHILE прекращает свою работу.
Замечание.Если <тело_цикл> состоит из одного оператора, слова begin end могут быть опущены.
Алгоритм выполнения:Пока условие истинно, выполнять операторы тела цикла. Если условие сразу оказывается ложным, цикл не будет выполнен ни разу.
Whileпроверялось условие продолжения цикла.
После WHILE записывать условие выполнения операторов цикла.
Пример. Написать программу для вычисления суммы Nпервых натуральных, т.е. требуется вычислить 1+2+3+…N
Фрагмент программы
s:=o; {начальное значение суммы)
i:=1; {начальное значение счетчика и слагаемое}
WHILEi<=NDO{нужно выполнить циклNраз}
s:=s+i; {добавим слагаемое к сумме}
i:=i+1; {увеличение значения счетчика и слагаемое на 1}
End; {законченное тело цикла}
Пример.Вычислить факториал числа N(N!).
ФАКТОРИАЛОМ называют такую функцию целочисленного аргумента
f(i), что f(0) = 1 ; f(i) = i * f(i-l)
Тогда
f(l) = l*f(0) =1*1 = 1
f(2) = 2*f(l) = 2*1 = 2
f(3) = 3*f(2) = 3*2*1 = 6
f(4) = 4*f(3) = 4*3*2*1 = 24 и т.д.
Получаем, что факториал числа N - это произведение всех натуральных чисел от 1 до N. Дополнительная трудность заключается в том, что факториал нуля есть 1 (как результат договора между математиками), а факториал отрицательного аргумент не определен. Убедитесь самостоятельно в том, что поставленная задача решается с помощью программы:
Program Factorial;
Uses CRT;
Label start;
Var
n,i:Integer;
t:LongInt;
Begin
start:ClrScr;
Write('N = '); Readln(n);
If (n<0) Then Begin
Writeln('N>=0!!!');
Goto start;
End
Else If (n=0) Then t:=l
Else Begin t: = l;
for i:=l to n Do t:=t*i;
End;
Writeln('Факториал числа ',n,' равен ',t);
Repeat Until KeyPressed
End.
Ответ:
N = -3
N>=0!!!
N- = 8
Факториал числа 8 равен 40320
Если не поставить начальное значение t=l перед циклом, то по умолчанию ЭВМ обнулит t, из-за чего и все произведение будет равно нулю. Заметьте, что факториал настолько быстро растет,что результат пришлось описывать типом LongInt. Уже 8! оказалось больше числа MaxInt.
Пример.Вычислить суммуS=ln3+ln5+ln7+…
при условии, что в нее входят слагаемые, не превосходящие 5, и количество этих слагаемых.
Логика построения суммы очевидна: s:=s+ln(i)/ Главная проблема заключается в постановке условия на выход из цикла.
Program Logorif;
Uses CRT;
Var
i, j: byte; a, s:real;
Begin
ClrScr;
j:=1; i:=3; a:=ln(i); s:=0;
While (a<5) do
Begin
s:=s+a;
inc(j); inc(i,2);
a:=ln(i);
End;
Writeln(j-1, ' slagaemich');
Writeln('сумма = ',s:7:3);
Repeat Until KeyPressed; {стандартная функция из библиотеки CRT, приводит к задержке окна
результатов до нажатия любой клавиши}
End.
Результат работы программы 73 слагаемых, сумма=296.140.
Yandex.RTB R-A-252273-3
- Министерство образования и науки рф
- Оглавление
- 6.Проверка адекватности модели 48
- 7.Анализ результатов моделирования 49
- Лекция 1 Предмет информатики. Основные составные части персонального компьютера. Понятие и представление информации. Принципы организации порядковых систем счисления.
- Понятие информатика
- Понятие информации
- Представление данных в пэвм
- Представление информации в компьютере
- Принципы организации порядковых систем счисления
- Позиционные и непозиционные
- Правила перехода из системы в систему Алгоритм перевода целых чисел из системы с основанием р в систему с основаниемq:
- Алгоритм перевода целого числа из десятичной системы счисления в систему счисления с произвольным основанием (р)
- Алгоритм перевода целого числа из системы счисления с произвольным основанием (р) в десятичную систему счисления
- Перевод дробных чисел из одной системы счисления в другую Алгоритм перевода правильной дроби с основанием р в дробь с основаниемq
- Алгоритм перевода числа, заданного в виде правильной дроби из десятичной системы счисления в систему счисления с основание р.
- Алгоритм перевода произвольных чисел
- Перевод чисел из системы счисления с основанием 2 в систему счисления с основанием 2п и обратно Алгоритм перевода целых чисел
- Алгоритм перевода дробных чисел
- Алгоритм перевода произвольных чисел
- Лекция 2
- Арифметические и логические операции. Приоритет операций.
- Логические основы.
- Основы логики
- Обозначения для логических связок (операций):
- Логические операции
- Логические операции и таблицы истинности
- Порядок выполнения логических операций в сложном логическом выражении
- Построение таблиц истинности для сложных выражений
- Скнф и сднф
- Алгоритмы получения формулы по таблице истинности сднф и скнф
- Правила упрощения логических структур
- Приоритет арифметико-логических операций
- Лекция 3 Основные составные части пк. Файлы и файловые системы эвм. Операционные системы. Поколения эвм
- Структура пк
- Достоинствами пк
- Основные характеристики пк
- Устройство пк
- Основные устройства системного блока
- Типы процессоров
- Внешняя (долговременная) память
- Внешние устройства (устройства для ввода-вывода информации)
- Файлы и файловые системы
- Типы файлов
- Операционная система (ос)
- Лекция 4
- Основные понятия моделирования
- Основные виды моделей и их свойства
- 1.Основные виды моделей
- 2.Основные свойства моделей
- Цели, принципы и технология моделирования
- 1.Цели моделирования
- 2.Основные принципы моделирования
- 3.Технология моделирования
- 4.Основные методы решения задач моделирования
- 5.Контроль правильности модели
- Задачи моделирования
- 1.Постановка задачи моделирования
- 2.Концептуальная формулировка задачи
- 3.Построение математической модели
- 4.Выбор метода решения
- 5.Программная реализация модели на эвм
- 6.Проверка адекватности модели
- 7.Анализ результатов моделирования
- Алгоритмизация и программирование Понятие алгоритма
- Свойства алгоритма
- Формы записи алгоритмов
- Типы алгоритмов
- Методология решения задач с помощью эвм
- Классификация программных средств
- Лекция 5 Данные в языке Turbo-Pascal7.0. Стандартные функции языкаTurbo-Pascal. Структура программы на языке Турбо Паскаль. ОператорыTurbo-Pascal. Программирование линейных алгоритмов.
- Достоинствами языка Паскаль являются:
- Алфавит языка
- Данные – это простейшие объекты программной обработки.
- Характеристики основных типов данных
- Стандартные функции языка Турбо-Паскаль
- Нестандартные функции
- Структура программы на языке Турбо Паскаль
- Оператор присваивания имеет следующую структуру:
- Стандарты ввода – вывода данных
- Составной оператор
- Программирование линейных алгоритмов
- Лекция 6
- Процедуры Procedure
- Условные операторы
- Оператор ‘if-then’
- Оператор ‘if-then-else’
- Тройное ветвление
- Оператор варианта ‘case…of’
- Лекция 7 Циклические структуры. Вложенные циклы. Рекурсивные функции. Операторы прерывания.
- Определенные циклы ‘for…do…’
- Первая форма записи оператора foRс последовательным увеличением счетчика.
- Вторая форма записи оператора foRcуменьшением счетчика:
- Циклы с постусловием ‘repeat…until…’
- Циклы с предусловием ‘while…do…’
- Вложенные циклы
- Рекурсивные функции
- Операторы прерывания Операторы Break и Continue
- Лекция 8 Обработка одномерных и двумерных массивов Понятие и описание массива
- Примеры одномерного, двухмерного, трехмерного массивов
- Способы ввода одномерных массивов:
- Печать массива
- Локальная обработка массива
- Глобальная обработка массива
- Инверсия
- Циклический сдвиг
- Вычисление среднее арифметическое, среднее геометрическое, среднее квадратичное среднее гармоническое
- Сортировка массива
- Сортировка одномерного массива методом пузырька
- Пример. Сортировка обменом по возрастанию массива a из n целых чисел.
- Обработка двумерных массивов
- Литература Основная литература
- Дополнительная литература