Практическое занятие № 2 Программирование разветвляющихся алгоритмов
Практическое занятие № 1 Программирование линейных алгоритмов
1. Цель занятия:
- научиться выполнять постановку задачи, разбивать простую задачу на элементарные этапы, научиться записывать, отлаживать и выполнять простую программу средствами системы программирования Turbo Pascal.
2. Перечень необходимых средств обучения (оборудование, материалы):
– технические средства обучения: персональные компьютеры, локальная сеть, коммутатор для подключения в сети Internet
Используемое программное обеспечение:
- Операционная система Microsoft Windows XP/7
- Язык программирования Free Pascal
- Антивирус Касперского 6.0
3. Основные теоретические положения
Для выполнения практической работы рассмотрим следующий пример:
Пример 1
Program My_First_Program;
const
Text = 'Я программирую на Турбо Паскале';
begin
WriteLn(Text);
end.
Прежде всего проанализируем форму представления текста. В программе шесть строк. Строки программы обычно выделяют некоторые смысловые фрагменты текста и могут не связываться с конкретными действиями в программе: расположение текста программы по строкам - дело вкуса программиста, а не требование синтаксиса языка. Ту же программу можно было бы написать, например, так:
Program My_First_Program; const Text =
'Я программирую на Турбо Паскале';begin WriteLn(Text); end.
В отличие от некоторых других языков программирования пробел в языке Турбо Паскаль используется как разделитель отдельных конструкций языка, поэтому программа
PROGRAMMy_First_Program;constText=
'Я программирую на Турбо Паскале';BEGINWriteLn(Text);end.
будет неверной.
В Турбо Паскале игнорируется различие в высоте букв (заглавные или строчные), если только это не связано с текстовыми константами. Начало программы могло бы, например, выглядеть так:
program my_first_program;
Теперь о смысле отдельных строк. Первая строка
Program My_First_Program;
начинается словом Program и содержит объявление имени программы. Слово Program зарезервировано в Турбо Паскале, т.е. не может использоваться ни в каких иных целях, кроме как для объявления имени программы. В Турбо Паскале имеется множество зарезервированных слов (см. гл.З). Любое из них нельзя использовать в качестве идентификатора (имени) какого-либо объекта программы - переменной, константы и т.д. Замечу, что редактор среды Турбо Паскаля обычно выделяет зарезервированные слова цветом. В связи с этим в тексте книги эти слова выделены жирным шрифтом. Поскольку имя программы никак в дальнейшем не используется, требование его объявления кажется излишним. В Турбо Паскале можно опускать объявление имени оператором Program без каких-либо последствий для программы.
В рассматриваемом примере имя My_First_Program есть не что иное, как английская фраза «Моя Первая Программа», но только написанная без пробелов - пробел является разделителем и не может использоваться произвольно (вместо пробелов в идентификаторах разрешается использовать символ подчеркивания).
Первая строка заканчивается особым разделителем - точкой с запятой. Этот разделитель в языке Турбо Паскаль отмечает конец оператора или описания. Использование особого разделителя позволяет располагать несколько операторов на одной строке.
Вторая строка
const
содержит единственное зарезервированное слово const, означающее, что далее будут описаны одна или несколько констант (CONSTants - константы). Константами в языке считаются такие объекты программы, которые не могут изменять своего значения. В отличие от многих других языков программирования, константа в Турбо Паскале может иметь собственное имя, что соответствует принятой в научных и инженерных расчетах практике именования часто используемых констант. Например, со школы мы помним о существовании константы п—3.14159265. При обработке программы имя константы pi будет заменяться компилятором на ее значение.Описать константу в Турбо Паскале - значит указать ее имя и значение. Такое указание содержится в третьей строке
Text = 'Я программирую на Турбо Паскале';
в которой константе с именем Text присваивается в качестве значения строка символов «Я программирую на Турбо Паскале».
В Турбо Паскале могут использоваться константы разного типа - целые или вещественные числа, символы, строки символов, массивы и т.д. Признаком того, что Text является константой типа строка символов, служат два апострофа, обрамляющих строку, причем сами апострофы этой строке не принадлежат, а лишь указывают компилятору на то, что все заключенные в них символы следует рассматривать как единое целое - текстовую константу. Если понадобится включить сам апостроф в текстовую константу, достаточно его написать дважды подряд. Например, описание
Text = 'Турбо' 'Паскаль';
создаст константу со значением
Турбо'Паскаль
Все три первые строки не связаны с какими-либо конкретными действиями при работе программы. Они сообщают компилятору некоторые сведения о самой программе и использующихся в ней объектах. Эта часть программы называется разделом описаний. Зарезервированное слово begin в четвертой строке сигнализирует компилятору о начале другой части программы - раздела операторов. В нашем примере этот раздел содержит оператор
WriteLn(Text);
который, собственно, и выводит сообщение на экран компьютера.
Завершает всю программу зарезервированное слово end с точкой. Точка оповещает компилятор о конце текста программы. За сочетанием end. можно размещать какой угодно текст - он не будет обрабатываться компилятором.
Перед тем как попробовать откомпилировать и исполнить нашу программу, обсудим ее единственный исполняемый оператор
WriteLn(Text);
Любопытно, что в Паскале вообще и Турбо Паскале, в частности, нет специальных операторов ввода-вывода. Для обмена информацией с окружающим миром в программах, написанных на языке Турбо Паскаль, используются специальные стандартные процедуры. Таким образом, по своей сути оператор
WriteLn(Text);
является оператором обращения к встроенной процедуре вывода данных (свое название она получила от WRITE LiNe - записать строку).
Понятие процедуры (см. гл.8) - одно из центральных понятий Турбо Паскаля. Процедура - это некоторая последовательность операторов, к которой можно обратиться по имени. Всякий раз, когда мы называем в операторе имя процедуры, инициируется последовательность запрограммированных в ней действий.
Процедура WriteLn относится к стандартным или встроенным процедурам Турбо Паскаля. Стандартная процедура не нуждается в предварительном описании, она доступна любой программе, в которой содержится обращение к ней. Разница между оператором вывода и обращением к процедуре вывода состоит в том, что имя процедуры вывода, как и любой другой процедуры Турбо Паскаля, не является зарезервированным словом, а следовательно, пользователь может написать свою собственную процедуру с именем WriteLn. Впрочем, эта возможность для большинства пользователей остается лишь языковой тонкостью и очень редко используется на практике.
Процедура WriteLn - одна из немногих процедур Турбо Паскаля, при обращении к которым допускается использование произвольного числа параметров. Параметры передаются процедуре в виде списка, располагающегося в круглых скобках сразу за именем процедуры. В нашем примере процедуре передается единственный параметр -константа Text. Как мы увидим дальше (см. гл.5), самым первым параметром при обращении к процедуре WriteLn можно указать адрес приемника информации - устройство или дисковый файл, в который направляется вывод. Таким способом программист может легко переадресовать вывод данных. Если, как это сделано в нашем примере, адрес вывода не указан, вывод направляется на экран дисплея.
Анализируя всю программу в целом, мы обнаружим, что четыре использовавшихся в ней слова (Program, const, begin и end) являются зарезервированными. Слово WriteLn, как уже отмечалось, не относится к зарезервированным, но вряд ли может возникнуть необходимость переопределить его, так как в этом случае программа лишится мощного и удобного средства вывода данных. Два слова My_First_Program и Text служат идентификаторами (именами) некоторых объектов программы. Программист может использовать в качестве идентификаторов любые последовательности символов, которые удовлетворяют следующим ограничениям:
· идентификатор может состоять из букв латинского алфавита, цифр, знака подчеркивания; никакие другие символы в идентификаторе недопустимы;
· идентификатор не может начинаться с цифры;
· идентификатор не может совпадать ни с одним из зарезервированных слов;
· длина идентификатора может быть произвольной, но значащими считаются первые 63 символа.
Как и всюду в программе, в идентификаторах игнорируется разница в высоте букв, поэтому, например, идентификаторы Text, text и TEXT с точки зрения компилятора идентичны.
Для выполнения программы нажмите Ctrl-F9. Если Вы не ошиблись при вводе текста, то, спустя несколько секунд заметите быструю смену изображений на экране: сразу после загрузки программы Турбо Паскаль очищает экран, предоставляя его в распоряжение работающей программы пользователя. Такой экран называется окном программы. После завершения прогона (работа программы часто называется ее прогоном) на экране вновь появится окно редактора с текстом программы. Если Вы не успели разглядеть изображение окна программы, нажмите Alt-F5. После нажатия на любую клавишу среда вернет экран в режим воспроизведения окна редактора.
Перед тем, как двигаться дальше, полезно подробнее ознакомиться с некоторыми возможностями среды Турбо Паскаля. Нажмите клавишу F10, чтобы перейти к режиму выбора из главного меню, подведите указатель к опции Debug (отладка) и нажмите клавишу Enter - на экране раскроется меню второго уровня, связанное с этой опцией. Новое меню как бы «выпало» из верхней строки, поэтому такое меню часто называют выпадающим. Отыщите в новом меню опцию Output (вывод программы), подведите к ней указатель и нажмите клавишу Enter еще раз. На экране вновь появится окно программы, но оно уже не будет исчезать после нажатия на любую клавишу - экран будет связан с этим окном постоянно. Теперь добьемся того, чтобы на экране демонстрировались два окна одновременно: вновь нажмите клавишу F10, выберите Window, нажмите клавишу Enter, подведите указатель к опции Tilе(черепица) и нажмите клавишу Enter еще раз.
Двойная рамка, очерчивающая окно программы, свидетельствует о том, что именно это окно активно в данный момент. Сделаем активным окно редактора: нажмем клавишу Alt и, не отпуская ее, - клавишу с цифрой 1 (окно редактора имеет номер 1, окно программы - номер 2). Теперь все готово к дальнейшим экспериментам с программой.
4. Содержание заданий
Варианты заданий:
Вариант U0.
Написать программу вычисления стоимости некоторого количества (по весу) яблок. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены курсивом).
Вычисление стоимости покупки.
Введите исходные данные:
Цена одного килограмма яблок (руб.) –
Вес яблок (кг.) –
Стоимость покупки –
Вариант U1.
Написать программу вычисления объема цилиндра, если известны радиус его основания и высота. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены курсивом).
Вычисление объема цилиндра.
Введите исходные данные:
Радиус основания(см.) –
Высота цилиндра (см.) –
Объем цилиндра –
Вариант U2.
Написать программу вычисления площади треугольника, если известна длина основания и высота. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены курсивом).
Вычисление площади треугольника.
Введите исходные данные:
Основание (см.) –
Высота (см.) –
Площадь треугольника –
Вариант U3.
Написать программу вычисления объема параллелепипеда, если известны его длина, ширина и высота. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены курсивом).
Вычисление объема параллелепипеда.
Введите исходные данные:
Длина –
Ширина –
Высота –
Объем –
Вариант U4.
Написать программу вычисления сопротивления электрической цепи, состоящей из двух параллельно соединенных сопротивлений. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены курсивом).
Вычисление сопротивления электрической цепи
при параллельном соединении элементов.
Введите исходные данные:
Величина первого сопротивления (Ом) –
Величина второго сопротивления (Ом) –
Сопротивление цепи –
Вариант U5.
Написать программу вычисления стоимости поездки на автомобиле на дачу (туда и обратно). Исходными данными являются: расстояние до дачи (в километрах); количество бензина, которое потребляет автомобиль на 100 км. пробега; цена одного литра бензина. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены курсивом).
Вычисление стоимости поездки на дачу и обратно.
Расстояние до дачи –
Расход бензина (литров на 100 км. пробега) –
Цена литра бензина (руб.) –
Поездка на дачу и обратно обойдется в –
Вариант U6.
Написать программу вычисления площади треугольника, если известны длины двух его сторон и величина угла между ними. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены курсивом).
Вычисление площади треугольника.
Введите (через пробел) длины двух сторон (см) треугольника –
Введите величину угла между сторонами треугольника –
Площадь треугольника –
Вариант U7.
Вычислить периметр и площадь прямоугольного треугольника по заданным длинам двух катетов a и b. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены курсивом).
Вычисление периметра и площади прямоугольного треугольника
по заданным длинам двух катетов.
Введите исходные данные:
Длина катета a –
Длина катета b –
Значение периметра равно –
Значение площади равно –
Вариант U8.
Вычислить длину окружности и площадь круга одного и того же заданного радиуса R. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены курсивом).
Вычисление длины окружности и площади круга.
Введите исходные данные:
Заданный радиус равен –
Длина окружности –
Площадь круга –
Вариант U9.
Найти произведение цифр заданного четырёхзначного числа. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены курсивом).
Введите заданное четырехзначное число –
Произведение цифр заданного числа –
Вариант U10.
Даны два числа. Найти среднее арифметическое кубов этих чисел. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены курсивом).
Вычисление среднего арифметического кубов двух чисел.
Введите исходные данные:
Значение первого числа равно –
Значение второго числа равно –
Среднее арифметическое кубов этих чисел -
Вариант U11.
Вычислить корни квадратного уравнения ax2+bx+c=0, заданного коэффициентами a, b и c (предполагается, что a≠0 и что дискриминант уравнения неотрицателен). Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены курсивом).
Вычисление корней квадратного уравнения.
Введите коэффициенты (через пробел) a, b, c:
Дискриминант равен –
Корни квадратного уравнения равны -
5. Содержание отчёта:
- постановка задачи;
- блок схема алгоритма решения задачи;
- программа на языке программирования Паскаль;
6. Контрольные вопросы
6.1. Какие блоки используются при составлении блок – схем алгоритмов?
6.2. По каким правилам задаются идентификаторы в языке Turbo Pascal?
6.3. Для чего необходимо указывать типы данных?
6.4. Как обозначаются арифметические операции?
6.5. Какие виды делений вы знаете?
6.6. Назовите стандартные процедуры ввода – вывода данных.
6.7. Как называются программы, в основе которых лежит структура следование?
7. Список рекомендуемой литературы:
7.1 Гвоздева В.А. Введение в специальность программиста.- М.:ФОРУМ; ИНФРА-М, 2010. - 206с.
7.2 Колдаев В. Д. Сборник задач и упражнений по информатике: учеб.пособие для сред.проф.образования / В. Д. Колдаев, Е. Ю. Павлова. - М.: ФОРУМ; ИНФРА-М, 2010. - 256с.
7.3 Мишенин А.И. Сборник задач по программированию: учеб. пособие/ М.: Финансы и статистика; ИНФРА-М,2009 - 224с.
Практическое занятие № 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с.
Практическое занятие № 4 Программирование циклических алгоритмов (цикл с параметром)
1. Цель занятия:
- научиться конструировать циклические алгоритмы, составлять и отлаживать программы циклической структуры.
2. Перечень необходимых средств обучения (оборудование, материалы)
– технические средства обучения: персональные компьютеры, локальная сеть, коммутатор для подключения в сети Internet
Используемое программное обеспечение:
- Microsoft Windows XP/7
- Язык программирования Free Pascal
- Антивирус Касперского 6.0
3. Основные теоретические положения
Счетный оператор цикла FOR имеет такую структуру:
FOR <пар_цик> := <нач_знач> ТО <кон_знач> DO <оператор>.
Здесь FOR, TO, DO - зарезервированные слова (для, до, выполнить);
<пар_цик> - параметр цикла - переменная типа INTEGER (точнее, любого порядкового типа);
<нач_знач> - начальное значение - выражение того же типа;
<кон_знач> - конечное значение - выражение того же типа;
<оператор> - произвольный оператор Турбо Паскаля.
При выполнении оператора FOR вначале вычисляется выражение <нач_знач> и осуществляется присваивание <пар_цик> : = <нач_знач>. После этого циклически повторяется:
· проверка условия <пар_цик> <= <кон_знач>; если условие не выполнено, оператор FOR завершает свою работу;
· выполнение оператора <оператор>;
· наращивание переменной <пар_цик> на единицу.
В качестве иллюстрации применения оператора FOR рассмотрим программу, осуществляющую ввод с клавиатуры произвольного целого числа N и вычисление суммы всех целых чисел от 1 до N (пример 1).
Пример 1
Program Summ_of_Integer;
{Программа вводит целое положительное число N и подсчитывает сумму всех целых чисел от 1 до N}
var
i, n, s : Integer;
begin
Write('N = ');
ReadLn(n); . {Вводим N}
s := 0; {Начальное значение суммы}
for i : = 1 to n do {Цикл подсчета суммы}
s : = s + i;
writeln('Сумма = ',s) {Выводим результат}
end.
Условие, управляющее работой оператора FOR, проверяется перед выполнением оператора <оператор>: если условие не выполняется в самом начале работы оператора FOR, исполняемый оператор не будет выполнен ни разу. Другое обстоятельство - шаг наращивания параметра цикла строго постоянен и равен (+1). Существует другая форма оператора:
FOR<пар_цик>: = <нач_знач> DOWNTO <кон_знач> DO <оператор>
Замена зарезервированного слова ТО на DOWNTO означает, что шаг наращивания параметра цикла равен (-1), а управляющее условие приобретает вид <пар_цик> = <кон_знач>.
4. Содержание заданий
Варианты заданий:
Вариант U0.
Составить программу, которая печатает таблицу умножения и сложения натуральных чисел в десятичной системе счисления.
Вариант U1.
Найти сумму всех n-значных чисел (1 < n < 4).
Вариант U2.
Составить программу для проверки утверждения: «Результатами вычислений по формуле x2 + x +17 при 0 < x < 15 являются простые числа». Все результаты вывести на экран.
Вариант U3.
Даны действительное число а, натуральное число n. Вычислить:
P = a(a – n)(a – 2n) x … x (a – n2).
Вариант U4.
Дано натуральное число n. Вычислить:
S = 1! + 2! + 3! + … + n! (n>1).
Вариант U5.
Дано натуральное число n. Вычислить:
S = 1/32 + 1/52 + 1/72 + … + 1/(2n + 1)2.
Вариант U6.
Написать программу, которая вычисляет сумму n- первых членов ряда 1+1/2+1/3+1/4+… Количество суммируемых членов ряда задается во время работы программы.
Вариант U7.
Написать программу, которая вводит с клавиатуры последовательность из пяти дробных чисел и после ввода каждого числа выводит среднее арифметическое полученной части последовательности.
Вариант U8.
Написать программу, которая вычисляет среднее арифметическое последовательности дробных чисел, вводимых с клавиатуры. После того, как будет введено последнее число, программа должна вывести минимальное и максимальное число последовательности. Количество чисел должно задаваться во время работы программы.
Вариант U9.
Написать программу, которая генерирует три последовательности из десяти случайных чисел в диапазоне от 1 до 10, выводит каждую последовательность на экран и вычисляет среднее арифметическое каждой последовательности.
Вариант U10.
Написать программу, которая выводит двоичное представление введенного с клавиатуры десятичного целого числа в диапазоне от 0 до 255.
Вариант U11.
Написать программу, которая вычисляет частичную сумму ряда 1-1/3+1/5-1/7+1/9-… и сравнивает полученное значение с π/4 (при суммировании достаточно большого количества членов этого ряда, величина частичной суммы приближается к π/4).
5. Содержание отчёта:
- постановка задачи;
- блок схема алгоритма решения задачи;
- программа на языке программирования Паскаль;
6. Контрольные вопросы
6.1. С помощью каких зарезервированных слов записывается цикл с параметром?
6.2. Чем отличается итерационный цикл от цикла с параметром?
6.3. Запишите формулу изменения параметра цикла.
6.4. Назовите признаки циклической структуры в блок – схеме.
6.5. Какой тип должен иметь параметр цикла в цикле for?
7. Список рекомендуемой литературы
7.1 Гвоздева В.А. Введение в специальность программиста.- М.:ФОРУМ; ИНФРА-М, 2010. - 206с.
7.2 Колдаев В. Д. Сборник задач и упражнений по информатике: учеб.пособие для сред.проф.образования / В. Д. Колдаев, Е. Ю. Павлова. - М.: ФОРУМ; ИНФРА-М, 2010. - 256с.
7.3 Мишенин А.И. Сборник задач по программированию: учеб. пособие/ М.: Финансы и статистика; ИНФРА-М,2009 - 224с.
Дата добавления: 2016-07-09; просмотров: 2152;