Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практичесике Информационные технологии.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
7.37 Mб
Скачать

Практическое занятие № 3 Программирование циклических алгоритмов (циклы с предусловием и постусловием)

1. Цель занятия:

- научиться конструировать циклические алгоритмы, составлять и отлаживать программы циклической структуры.

2. Перечень необходимых средств обучения (оборудование, материалы)

– технические средства обучения: персональные компьютеры, локальная сеть, коммутатор для подключения в сети Internet

Используемое программное обеспечение:

  • Microsoft Windows XP/7

  • Язык программирования Free Pascal

  • Антивирус Касперского 6.0

3. Основные теоретические положения

Два оператора повторений проверяют условие выполнения или повторения цикла:

1) Оператор цикла WHILE с предпроверкой условия:

WHILE <условие> DO <оператор>.

Здесь WHILE, DO - зарезервированные слова (пока [выполняется условие], делать);

<условие> - выражение логического типа;

 <оператор> - произвольный оператор Турбо Паскаля.

Если выражение <условие> имеет значение TRUE, то выполняется <оператор>, после чего вычисление выражения <условие> и его проверка повторяются. Если <условие> имеет значение FALSE , оператор WHILE прекращает свою работу.

Пример 1 иллюстрирует использование оператора WHILE. Найдем так называемое «машинное эпсилон» - такое минимальное, не равное нулю вещественное число, которое после прибавления его к 1.0 еще дает результат, отличный от 1.0.

Пример 1.

Program EpsilpnDetect;

{Программа вычисляет и выводит на экран значение "машинного эпсилон"}

var

epsilon: Real;

begin

epsilon := 1;

while epsilon/2 + 1 > 1 do

epsilon := epsilon/2

WriteLn('Машинное эпсилон = ',epsilon) 

end.

2) Оператор цикла REPEAT... UNTIL с постпроверкой условия:

REPEAT <тело_цикла> UNTIL <условие>.

Здесь REPEAT, UNTIL- зарезервированные слова (повторять до тех пор, пока не будет выполнено условие);

<тело_цикла> - произвольная последовательность операторов Турбо Паскаля; 

<условие> - выражение логического типа.

Операторы <тело_цикла> выполняются хотя бы один раз, после чего вычисляется выражение <условие>: если его значение есть FALSE, операторы <тело_цикла> повторяются, в противном случае оператор REPEAT. . . UNTIL завершает свою работу.

Для иллюстрации применения оператора REPEAT... UNTIL рассмотрим программу из примера 2

Пример 2. 

Program Codes_of_Chars;

{Программа вводит символ и выводит на экран его код. Для завершения работы программы нужно дважды нажать Enter}

var

ch : Char; {Вводимый символ} 

const

CR = 13; {Код символа CR} 

begin

repeat

ReadLn(ch);

WriteLn(ch,' = ',ord(ch))

until ord(ch) = CR

end.

Обратите внимание: пара REPEAT... UNTIL подобна операторным скобкам begin. .. end, поэтому перед UNTIL ставить точку с запятой необязательно.

4. Содержание заданий

Варианты заданий:

Вариант U0.

Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней?

Вариант U1.

Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет 3, 6, 9, 12, …, 24 часа.

Вариант U2.

Написать программу, вычисляющую сумму и среднее арифметическое последовательности положительных чисел, которые вводятся с клавиатуры.

Вариант U3.

Написать программу, которая определяет максимальное число из введенной с клавиатуры последовательности положительных чисел (длина последовательности не ограничена).

Вариант U4.

Написать программу, которая проверяет, является ли целое число, введенное пользователем, простым.

Вариант U5.

Написать программу – таймер, которая по истечении заданного промежутка времени выдает звуковой сигнал. Величина временного интервала вводится с клавиатуры во время работы программы.

Вариант U6.

Написать программу, которая вычисляет наибольший общий делитель двух целых чисел.

Вариант U7.

Написать программу, вычисляющую произведение положительных четных чисел до 10.

Вариант U8.

Написать программу, вычисляющую значение выражения y= для k=1,3,5,7,9.

Вариант U9.

Пусть дано натуральное число n ( запись числа n в десятичной системе счисления есть ak a k-1a k-2K…a0). Составьте фрагменты программ для ответа на следующие вопросы.

а) сколько цифр в числе n?

b) чему равна сумма его цифр?

Вариант U10.

Составьте программу для нахождения всех автоморфных чисел в отрезке [m,n]. Автоморфным называется целое число, которое равно последним числам своего квадрата. Например: 52=25, 62=36, 252=625.

Вариант U11.

Написать программу для решения следующей задачи: рост ребенка на начало года – 120 см. За месяц он подрастает на 2%. Через сколько месяцев его рост станет больше или равным 150 см.?

5. Содержание отчёта:

- постановка задачи;

- блок схема алгоритма решения задачи;

- программа на языке программирования Паскаль;

6. Контрольные вопросы

    1. Дайте определение цикла.

    2. Изобразите с помощью блок – схемы команду цикла с предусловием.

    3. Изобразите с помощью блок – схемы команду цикла с постусловием.

    4. Запишите свойство цикла с постусловием.

    5. Запишите свойство цикла с постусловием.

    6. Какой цикл называется итерационным?

    7. Что такое операторные скобки? Когда они используются в записи программы?

7. Список рекомендуемой литературы

7.1 Гвоздева В.А. Введение в специальность программиста.- М.:ФОРУМ; ИНФРА-М, 2010. - 206с.

7.2 Колдаев В. Д. Сборник задач и упражнений по информатике: учеб.пособие для сред.проф.образования / В. Д. Колдаев, Е. Ю. Павлова. - М.: ФОРУМ; ИНФРА-М, 2010. - 256с.

7.3 Мишенин А.И. Сборник задач по программированию: учеб. пособие/ М.: Финансы и статистика; ИНФРА-М,2009 - 224с.