Практическое занятие № 2 Программирование разветвляющихся алгоритмов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Практическое занятие № 2 Программирование разветвляющихся алгоритмов



 

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

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

 

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

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

 

 

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

- Microsoft Windows XP/7

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

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

 

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

Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Таким образом, условный оператор - это средство ветвления вычислительного процесса.

Структура условного оператора имеет следующий вид:

IF <условие> THEN <оператор1> ELSE <оператор2>,

где IF, THEN, ELSE - зарезервированные слова (если, то, иначе); <условие> - произвольное выражение логического типа; <оператор1>, <оператор2> - любые операторы языка Турбо Паскаль.

Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение <условие>. Если результат есть TRUE (истина), то выполняется <оператор1>, а <оператор2> пропускается; если результат есть FALSE (ложь), наоборот, <оператор1> пропускается, а выполняется <оператор2>. Например:

var

х, у, max: Integer;

begin

.......

if x > max then

у:= max else

y:= x;

При выполнении этого фрагмента переменная Y получит значение переменной X, если только это значение не превышает МАХ, в противном случае Y станет равно МАХ.

Часть ELSE <оператор2> условного оператора может быть опущена. Тогда при значении TRUE условного выражения выполняется <оператор1>, в противном случае этот оператор пропускается:

var

х, у, max: Integer;

begin

.......

if x > max then

max:= x;

Y:= x;

В этом примере переменная Y всегда будет иметь значение переменной X, а в МАХ запоминается максимальное значение X.

Поскольку любой из операторов <оператор1> и <оператор2> может быть любого типа, в том числе и условным, а в то же время не каждый из «вложенных» условных операторов может иметь часть ELSE <оператор2>, то возникает неоднозначность трактовки условий. Эта неоднозначность в Турбо Паскале решается следующим образом: любая встретившаяся часть ELSE соответствует ближайшей к ней «сверху» части THEN условного оператора. Например:

var

a,b,c,d: Integer; begin

a:= 1; b:= 2; c= 3; d:= 4;

if a > b then

if с < d then

if с < 0 then

с:= 0 else

a:= b; {а равно 1}

if a > b then

if с then

if с then

с:= 0

else

else

else

a:= b; {а равно 2}

 

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

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

Вариант U0.

Даны три действительные числа. Возвести в квадрат те из них, значения которых неотрицательны, и четвертую степень – отрицательные.

 

Вариант U1.

Даны действительные числа x и y, не равные друг другу. Меньшее из этих двух чисел заменить половиной их суммы, а большее – удвоенным произведением.

 

Вариант U2.

На плоскости XOY задана своими координатами точка А. Указать, где она расположена: на какой оси или в каком координатном угле.

 

Вариант U3.

Даны целые числа m, n. Если числа не равны, то заменить каждое из них одним и тем же числом, равным большему из исходных, а если равны, то заменить числа нулями.

 

Вариант U4.

Дано трехзначное число N. Проверить, будет ли сумма его цифр четным числом.

 

Вариант U5.

Определить, равен ли квадрат заданного трехзначного числа кубу суммы цифр этого числа.

 

Вариант U6.

Определить, является ли треугольник со сторонами a, b, c равносторонним.

 

Вариант U7.

Подсчитать количество отрицательных чисел среди чисел a, b, c.

 

Вариант U8.

Услуги телефонной связи оплачиваются по следующему правилу: за разговоры до А минут в месяц оплачивается В р., а разговоры сверх установленной нормы оплачиваются из расчета С р. в минуту. Написать программу, вычисляющую плату за пользование телефоном для введенного времени разговоров за месяц.

 

Вариант U9.

Составить программу, определяющую результат гадания на ромашке – «любит – не любит», взяв за исходное данное количество лепестков n.

 

Вариант U10.

Составить программу, печатающую значение TRUE, если указанное высказывание является истинным, и FALSE в противном случае: сумма двух первых цифр заданного четырехзначного числа равна сумме двух его последних цифр.

 

Вариант U11.

Найдите максимальное из трех чисел: a, b, c.

 

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

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

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

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

 

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

6.1.Какие зарезервированные слова могут использоваться при записи условного оператора?

6.2.Какой тип должно иметь выражение, стоящее в условном операторе между словами if и then?

6.3.Какие виды ветвлений вы знаете?

6.4.Приведите пример составного оператора.

6.5.Напишите формат записи оператора выбора.

 

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

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

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

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


Практическое занятие № 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. Контрольные вопросы

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

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

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

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

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

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

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

 

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

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

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

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



Поделиться:


Последнее изменение этой страницы: 2016-04-18; просмотров: 1000; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.220.106.241 (0.04 с.)