из электронной библиотеки / 262983782449737.pdf
.pdfТема 7. Создание программных продуктов с использованием алгоритмической структуры «выбор»
Теоретический блок
Если при решении задачи нужно выбирать одно действие из нескольких возможных, то используют множественный выбор.
Case < выражение-селектор> of <Список 1>: A1;
…
<Список n>: An; [ Else An+1 ] end;
A1, … , An+1 – простые или составные операторы.
Списки состоят из констант выбора (константа может быть одна).
Оператор Case работает так: сначала вычисляется значение выражения-селектора, затем оно сравнивается с каждым списком и при совпадении значений выполняется соответствующий оператор, если совпадения не произошло, то выполняется оператор, стоящий за словом Else. Выражение-селектор должно относиться либо к целочисленному, либо к булевскому, либо к символьному типам.
Практический блок
1.Рассмотрите Пример 2 из презентации «Разветвляющиеся алгоритмы», используя «Курс по программированию».
2.Задача: разработать алгоритм, который по запросу о количестве лет пользователя в числовом виде выводит на экран это количество, согласуя в соответствии с нормами русского языка.
Исходные данные: к – количество лет – тип byte
Результат: сообщение «Ваш возраст составляет g лет (года,
год)»
Пром. данные: f
Для построения математической модели необходимо провести аналитическую работу по определению зависимости окончания слов от количества.
41
Блок-схема:
42
program vozrast;
type gody=(let,god,goda); var g:gody;
k,f:integer; begin
write('Введите Ваш возраст?'); readln(k);
f:=k;
if f>20 then f:=k mod 10; writeln(f);
case f of 1:g:=god; 2,3,4:g:=goda; 0,5..20:g:=let; end;
writeln ('Ваш возраст составляет'); case g of
let:writeln(k,' лет'); goda:writeln(k,' года'); god:writeln(k,' год'); end;
readln;
end.
Тестирование: 6 тестов
1.Введите Ваш возраст? 1
Ваш возраст составляет 1 год
2.Введите Ваш возраст? 21
Ваш возраст составляет 21 год
3.Введите Ваш возраст? 7
Ваш возраст составляет 7 лет
4.Введите Ваш возраст? 38
43
Ваш возраст составляет 38 лет
5.Введите Ваш возраст? 33
Ваш возраст составляет 33 года
6.Введите Ваш возраст? 3
Ваш возраст составляет 3 года
Задания для самостоятельной работы
Индивидуальные задания.
1.Запрашивается количество книг в фонде. Разработать алгоритм, который по запросу о количестве книг в числовом виде выводит на экран это количество, согласуя в соответствии
снормами русского языка.
2.Составьте программу-меню, которая по номеру библиотеки выдает название проходящей в ней выставки.
3.Для натурального числа d вывести фразу «Зарплата сотрудника библиотеки составляет d рублей», согласовав окончание слова «рубли» с числом d.
4.Составьте программу, которая при выборе дня недели выводит на монитор количество пользователей библиотеки, согласовав окончание слова «пользователь» с номером дня недели.
5.Составьте программу, которая при выборе фамилии автора выводит список его произведений.
6.Составьте программу, которая при выборе фамилии поэта выводит дату его рождения и текст его стихов.
7.Составьте программу меню, которая по номеру галереи выдает название проходящей в ней выставки.
8.Составьте программу, которая при выборе фамилии писателя выводит дату его рождения и названия его произведений.
9.Составьте программу меню, которая по номеру библиотеки выдает фамилию её директора.
44
Творческий блок
1. При разработке алгоритмов алгоритмической структуры «выбор» необходимо вспомнить о меню (тема 5). Проанализируйте программный код алгоритма и определите условие задачи.
program biblioteka; uses crt;
var k:word; begin
textbackground(1);
clrscr;
textcolor(12);
gotoxy(22,10);
writeln('*********************************');
textcolor(12);
gotoxy(22,14);
writeln('*********************************');
textcolor(14);
gotoxy(23,12);
writeln('Пример работы меню'); textcolor(10);
gotoxy(18,17);
writeln('Для продолжения нажмите любую клавишу'); readkey;
clrscr;
gotoxy(25,9);
writeln('Введите номер пункта'); gotoxy(30,12);
writeln('1. Шебекинская РБ'); gotoxy(30,14);
writeln('2. Белгородская РБ№1'); gotoxy(30,16);
writeln('3. Воронежская ЦРБ'); gotoxy(30,18);
writeln('4. Курская ЦРБ');
45
readln(k);
clrscr;
gotoxy(31,11); case k of 1:begin
writeln('*********************************');
textcolor(12);
gotoxy(31,15);
writeln('*********************************');
textcolor(14);
gotoxy(33,12); writeln('Шебекинская РБ'); gotoxy(38,13); writeln('Директор');
writeln('Главбух Зам.директора Зам.директора по работе с детьми Главный специалист');
textcolor(10);
gotoxy(18,17);
end;
2:begin
writeln('*********************************');
textcolor(12);
gotoxy(31,15);
writeln('*********************************');
textcolor(14);
gotoxy(33,12); writeln('Белгородская РБ№1'); gotoxy(38,13); writeln('Директор');
writeln('Главбух Зам.директора Главный специалист'); textcolor(10);
gotoxy(18,17);
end;
3:begin
writeln('*********************************');
textcolor(12);
46
gotoxy(31,15);
writeln('*********************************');
textcolor(14);
gotoxy(33,12); writeln('Воронежская ЦРБ'); gotoxy(38,13); writeln('Директор');
writeln('Главбух Зам.директора Зам.директора по работе с детьми Главный специалист');
textcolor(10);
gotoxy(18,17);
end;
4:begin
writeln('*********************************');
textcolor(12);
gotoxy(31,15);
writeln('*********************************');
textcolor(14);
gotoxy(36,12); writeln('Курская ЦРБ'); gotoxy(38,13); writeln('Директор');
writeln('Зам.директора Зам.директора по работе с детьми Главный специалист');
textcolor(10);
gotoxy(18,17);
end;
end;
readln;
end.
2. Добавьте в программный код индивидуальной задачи пользовательский интерфейс.
47
Тема 8. Создание программных продуктов с использованием алгоритмической структуры «цикл»
Теоретический блок
Циклы – фундаментальное понятие в любом языке программирования. Цикл – это такая алгоритмическая структура, в которой происходит многократное повторение действий над новыми данными. При этом многократность не означает бесконечность. В соответствии со свойством результативности алгоритмов результат должен быть получен за конечное число шагов. В общем виде различают такие части цикла:
Параметр цикла – переменная, которая контролирует количество повторений. Различают два основных вида циклов:
1. Цикл с предусловием. При таком варианте организации цикла он управляется предусловием. Тело цикла расположено после проверки условий, при определенных условиях тело цикла не выполнится ни разу.
48
2. Цикл с постусловием. Тело расположено перед проверкой условия. Такой вариант построения цикла состоит в том, что тело цикла выполняется, по крайней мере, один раз, и будет повторяться до тех пор, пока условие не станет истинным. Истинность условия в этом случае является условием выхода из цикла.
49
Итак, цикл с предусловием завершается, когда условие ложно, а цикл с постусловием – когда условие становится истинным.
Различают и третий вид циклов, в которых тело цикла выполняется заданное число раз, т.е. заранее известно количество повторений. Такие циклы называют арифметическими.
Практический блок 1
Изучите презентацию «Циклические алгоритмы», используя «Курс по программированию», разберите все примеры и действия циклических операторов для арифметического цикла и цикла с постусловием.
Задача 1. Банк начисляет 3% годовых. Определить сумму накоплений через n лет.
Тело цикла – сумма накоплений, которая ежегодно пополняется. Так как известно количество повторений, то цикл – арифметический.
Исходные данные: s (real) – сумма первоначального взноса; n (byte) – количество лет, р (byte) – процентная ставка; g(byte) – параметр цикла.
Результат: s1(real) – накопленная сумма.
50