Главная страница

программирование. Сборник методических указаний по выполнению практических работ по учебной дисциплине основы алгоритмизации и программирования структурное программирование


Скачать 0.68 Mb.
НазваниеСборник методических указаний по выполнению практических работ по учебной дисциплине основы алгоритмизации и программирования структурное программирование
Анкорпрограммирование
Дата01.10.2021
Размер0.68 Mb.
Формат файлаpdf
Имя файлаm_prog.pdf
ТипСборник
#239861
страница2 из 6
1   2   3   4   5   6
ТЕМА: СОСТАВЛЕНИЕ ПРОГРАММ УСЛОЖНЕННОЙ
РАЗВЕТВЛЯЮЩЕЙСЯ СТРУКТУРЫ
Цель работы: научиться составлять программы с использованием вложенного условия
Оборудование: ПК, ИСР Pascal ABC
ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Любая ветвь может не быть линейным участком программы, а сама содержать ветвление. Такое ветвление называется вложенным (или множественным) ветвлением.
Чаще вторично разветвляется ветка «нет». В качестве примера разберѐм простую задачу:
В первом магазине хозяйка приобрела a кг. огурцов. Их оказалось b штук. Во втором магазине на c кг. получилось d штук. В каком магазине огурцы крупнее?
Находим массу одного огурца в каждом магазине и сравниваем их. Блок-схема данной задачи представлена ниже.
Рассмотрим пример 2
Написать программу, которая вычисляет оптимальный вес пользователя, сравнивает его с реальным и выдает рекомендацию о необходимости поправиться или похудеть.
Оптимальный вес вычисляется по формуле: рост (в сантиметрах) — 100.
Рекомендуемый вид экрана во время работы программы приведен ниже:

19
Введите в одной строке через пробел
рост (см) и вес (кг) затем нажмите
-> 170 68
Вам надо поправиться на 2.00 кг.
Листинг программы
Program Ves; var w: real;
{вес} h: real;
{рост} opt: real;
{оптимальный вес} d: real;
{отклонение от оптимального веса} begin writeln('Введите в одной строке через пробел'); writeln ('рост (см) и вес (кг), затем нажмите '); write('->'); readln(h,w); opt:=h-100; if w=opt then writeln('Ваш вес оптимален!') else if wЗАДАНИЕ
1. Одна коробка с яйцами содержит 10 ячеек по 30 яиц в каждой. Поместятся ли a яиц в b коробок (уже имеющих пустые ячейки)? Если не поместятся, сообщить, сколько ещѐ требуется ячеек и коробок. Если останутся лишние коробки, сообщить, сколько осталось.
2. Определить, являются ли три введѐнных числа длинами сторон прямоугольного треугольника.
3. В котѐл с 20 л воды всыпали m граммов соли. Норма для супа составляет от 10 до 12 г/литр. Определить, нормально ли посолена вода. Если недосолена, сообщить, сколько граммов соли нужно добавить до нормы. Если пересолена, — сколько литров воды нужно долить до нормальной концентрации.
4. После промывки шерсть сушат. Нормальная плотность шерсти, соответствующей требуемой влажности, составляет около 280 кг/м
3
. На текстильный завод поступило m тонн шерсти, объѐм которой составляет V м
3
. Определить соответствие сырья требуемой влажности.
5. Определить, лежит ли точка (x, y) внутри кольца с центром в начале координат, внутренним радиусом r
1
и внешним радиусом r
2
6. Врач прописал больному первого лекарства всего a таблеток, по b таблеток в день и второго лекарства c таблеток по d таблеток в день. На следующий день после того, как все лекарства будет приняты, больной должен прийти на приѐм. Через сколько дней больной попадѐт на приѐм к врачу?

20
ПРАКТИЧЕСКАЯ РАБОТА 5
ТЕМА: СОСТАВЛЕНИЕ ПРОГРАММ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ
Цель работы: научиться использовать операторы циклов при составлении программ на языке Паскаль; составлять блок-схему циклической структуры
Оборудование: ПК, ИСР Pascal ABC
ТЕОРЕТИЧЕСКИЕ ДАННЫЕ
Операторы цикла используются для многократного повторения аналогичных вычислений.
Для организации цикла в Паскале имеются три различных оператора.
1. Регулярный оператор For
For <параметр цикла>:=<начальное значение> to <конечное значение> do S;
S- простой или составной оператор. инструкция for используется для организации циклов с фиксированным, определяемым во время разработки программы, числом повторений; количество повторений цикла определяется начальным и конечным значениями переменной-счетчика; переменная-счетчик должна быть целого типа (integer).
При каждом прохождении цикла < параметр цикла >, начиная с <начального значения>, увеличивается на единицу. Цикл выполняется, пока <параметр цикла> не станет больше
<конечного значения>.
Другой вариант записи оператора For:
For <параметр цикла >:=< начальное значение> downto <конечное значение> do S;
В этом случае при каждом прохождении цикла <параметр цикла> уменьшается на единицу от <начального значения> до <конечного значения>.
2. Оператор цикла While с проверкой предусловия:
While <условие> do S; {Пока выполняется условие, делать}
Цикл выполняется, пока условие истинно (true).
3. Оператор цикла Repeat с проверкой постусловия:
Repeat S until <условие>; {Выполнять до тех пор, пока не будет выполнено условие}
Цикл выполняется, пока условие ложно (false).

21
Пример
Постановка задачи. Найти сумму 5 целых чисел от 1 до 5. Написать программы для определения суммы с помощью трех рассмотренных операторов цикла.
Структограмма и программа приведены в таблице 1
Таблица 1. Операторы цикла
ЗАДАНИЕ
Задание 1. Составьте программы, используя регулярный оператор цикла согласно своему варианту. Номер варианта соответствует номеру вашего рабочего ПК.
Вариант 1
1. Написать программу, которая выводит таблицу квадратов первых десяти чисел. Ниже представлен рекомендуемый вид экрана во время работы программы.
Таблица квадратов
Число Квадрат
1
1
2
4
3
9
4
16
5
25
6
36
7
49

22
8
64
9
81
10
100
2. Оформить отчет. Отчет должен состоять из кода программы, блок-схемы.
Вариант 2
1. Написать программу, которая выводит таблицу квадратов целых положительных чисел, введенных пользователем с клавиатуры. Ниже представлен рекомендуемый вид экрана во время работы программы.
Таблица квадратов нечетных чисел.
Число
Квадрат
1
1
3
9
5
25
7
49
9
81
2. Оформить отчет. Отчет должен состоять из кода программы, блок-схемы.
Вариант 3
1. Написать программу, которая вводит с клавиатуры 5 дробных чисел и вычисляет их среднее арифметическое. Рекомендуемый вид экрана во время работы программы приведен ниже:
Вычисление среднего арифметического последовательности дробных чисел.
После ввода каждого числа нажимайте
-> 5.4
-> 7.8
-> 3.0
-> 1.5
-> 2.3
Среднее арифметическое введенной последовательности: 4.00
2. Оформить отчет. Отчет должен состоять из кода программы, блок-схемы
Вариант 4
1. Написать программу, которая выводит на экран таблицу стоимости, например, яблок в диапазоне от 100 г до 1 кг с шагом 100. Ниже представлен рекомендуемый вид экрана программы во время ее работы (данные, введенные пользователем, выделены полужирным шрифтом).
Введите цену одного килограмма и нажмите (копейки от рублей отделяйте точкой) -> 16.50
Вес (гр)
Cтоимость (руб.)
100
1.65
200
3.30
300
4.95
400
6.60
500
8.25
600
9.90
700
11.55
800
13.20
900
14.85
1000
16.50

23 2. Оформить отчет. Отчет должен состоять из кода программы, блок-схемы
Вариант 5
1. Написать программу, которая выводит на экран таблицу перевода из градусов Цельсия
(C) в градусы по Фаренгейту (F) для значений от 15 до 30 с шагом 1 градус. Перевод осуществляется по формуле F =C*1.8+32 2. Оформить отчет. Отчет должен состоять из кода программы, блок-схемы
Вариант 6
1. Написать программу, которая выводит таблицу значений функции у=-2,4х
2
+5х-3 в диапазоне от – 2 до 2 с шагом 0,5. Ниже представлен рекомендуемый вид экрана во время работы программы:
Х
у
-2
-22,60
-1,5
-15,90
-1
-10,40
-0,5
-6,10
0
-3,00
0,5
-1,10
1
-0,40
1,5
-0,90
2
-2,60
2. Оформить отчет. Отчет должен состоять из кода программы, блок-схемы
Вариант 7
1. Написать программу, которая вводит с клавиатуры 7 дробных чисел и вычисляет сумму положительных чисел и произведение отрицательных чисел. Рекомендуемый вид экрана во время работы программы приведен ниже:
Вычисление среднего арифметического последовательности дробных чисел.
После ввода каждого числа нажимайте
-> 1.4
-> 7.8
-> 3.0
-> -7,6
-> -9,2
-> 1.5
-> 2.3
Сумма положительных чисел равна =
Произведение отрицательных чисел равно =
2. Оформить отчет. Отчет должен состоять из кода программы, блок-схемы
Вариант 8
1. Написать программу, которая вычисляет среднее арифметическое последовательности дробных чисел, вводимых с клавиатуры. После того, как будет введено последнее число, программа должна вывести минимальное и максимальное число последовательности.

24
Количество чисел должно задаваться во время работы программы. Рекомендуемый вид экрана приведен ниже. Данные, введенные пользователем, выделены полужирным шрифтом.
Обработка последовательности дробных чисел. Введите количество чисел
последовательности -> 5
Вводите последовательность. После ввода каждого числа нажимайте -> 5.4 ->
7.8 -> 3.0 -> 1.5 -> 2.3
Количество чисел: 5
Среднее арифметическое: 4.00
Минимальное число:
Максимальное число:
2. Оформить отчет. Отчет должен состоять из кода программы, блок-схемы
Вариант 9
1. Написать программу, которая выводит таблицу значений функции у=-9х
2
+2х в диапазоне от – 3 до 3 с шагом 1. Ниже представлен рекомендуемый вид экрана во время работы программы:
Х у
-3
-87
-2
-40
-1
-11 0
0 1
-7 2
-32 3
-75 2. Оформить отчет. Отчет должен состоять из кода программы, блок-схемы
Вариант 10
1. Написать программу, которая вычисляет произведение последовательности целых чисел, вводимых с клавиатуры. После того, как будет введено последнее число, программа должна вывести минимальное и максимальное число последовательности.
Количество чисел должно задаваться во время работы программы. Рекомендуемый вид экрана приведен ниже. Данные, введенные пользователем, выделены полужирным шрифтом.
Обработка последовательности дробных чисел. Введите количество чисел
последовательности -> 5
Вводите последовательность. После ввода каждого числа нажимайте -> 5 -> 7-
> 3 -> 1 -> 2
Количество чисел: 5
Произведение: 210
Минимальное число:
Максимальное число:
2. Оформить отчет. Отчет должен состоять из кода программы, блок-схемы
Задание 2. Составьте программу, используя оператор Repeat по варианту, предложенному преподавателем.

25
Вариант 1
Написать программу, вычисляющую произведение положительных чисел, которые вводятся с клавиатуры, используя оператор Repeat. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены полужирным шрифтом).
Вычисление произведения положительных чисел.
Вводите после стрелки числа. Для завершения ввода введите ноль.
-> 45 -> 23 -> 15
Введено чисел: 3
Произведение чисел =
Вариант 2
Написать программу, которая определяет максимальное число из введенной с клавиатуры последовательности положительных чисел (длина последовательности не ограничена). Ниже представлен рекомендуемый вид экрана во время работы программы
(данные, введенные пользователем, выделены полужирным шрифтом).
Определение максимального числа последовательности
положительных чисел.
Вводите после стрелки числа. Для завершения ввода введите ноль.
-> 56
-> 75
-> 43
-> О
Максимальное число: 75.
Вариант 3
Написать программу, которая определяет минимальное число из введенной с клавиатуры последовательности положительных чисел (длина последовательности не ограничена). Ниже представлен рекомендуемый вид экрана во время работы программы
(данные, введенные пользователем, выделены полужирным шрифтом).
Определение максимального числа последовательности положительных чисел.
Вводите после стрелки числа. Для завершения ввода введите ноль.
-> 6
-> 75
-> 3
-> О
Максимальное число:
Вариант 4
Написать программу, вычисляющую сумму отрицательных чисел, которые вводятся с клавиатуры, используя оператор Repeat. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены полужирным шрифтом).
Вычисление произведения положительных чисел.
Вводите после стрелки числа. Для завершения ввода введите ноль.
-> 45 -> 23 -> 15-> 5 -> 2 -> 1
Сумма чисел =

26
Вариант 5
Используя цикл Repeat, напишите программу, которая требует ввод пароля, например, числа 111, и если пароль правильный, то выдает на экран сообщение «Вы правильно ввели пароль». Пароль можно вводить три раза.
Вариант 6
Используя цикл Repeat, напишите программу определения идеального веса для взрослых людей по формуле: Ид. Вес = рост – 100.Выход из цикла значение роста = 250
Вариант 7
Написать программу, вычисляющую сумму и среднее арифметическое последовательности положительных чисел, которые вводятся с клавиатуры. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены полужирным шрифтом).
Вычисление среднего арифметического последовательности положительных чисел.
Вводите после стрелки числа. Для завершения ввода введите ноль.
-> 4 -> 230-> 15
Введено чисел:
Сумма чисел:
Среднее арифметическое:
Задание 3. Составьте программы, с использованием оператора While по варианту, предложенному преподавателем.
Программа, ыводит таблицу значений функции для аргумента, изменяющегося в заданных пределах с заданным шагом.
Вариант
Функция
1.
2
)
3
sin(
x
x
y
, 04 2
5 2
1
x
x
x
y




, -5<х<6 3.
x
x
y
5
sin cos
2


-3x
x
y
cos
*
)
5
sin(
4



-63
)
5 2
sin(
x
x
y



-54 6
sin
2
sin
x
x
x
y


-3x
x
y
10
sin cos
3


-2tgx
x
y


cos
2
-54 2
)
2 6
cos(
10
sin
x
x
х
x
y




-4x
x
y
sin
5
cos
2


-6

27
КОНТРОЛЬНЫЕ ВОПРОСЫ
1.
В каких случаях в программе необходимо использовать итерационный цикл, а в каких регулярный цикл?
2.
Назовите отличия итерационных циклов и цикла с параметром.
3.
Какова структура оператора цикла с параметром? Как выполняется цикл с парметром?
4.
Какого типа должны быть пареметр цикла, его начальное и конечное значения в цикле с параметром в языке Pascal?
5.
Могут ли параметр цикла, его начальное и конечное значения в цикле с параметром в языке Pascal быть разных типов? Обоснуйте ответ.
6.
Чем отличается цикл «До» от цикла «Пока»?
7.
Сколько раз повторится итерационный цикл?
8.
Какова структура цикла с постропроверкой условия?
9.
Какова структура цикла с предпроверкой условия?

28
ПРАКТИЧЕСКАЯ РАБОТА 6
ТЕМА: СОСТАВЛЕНИЕ ПРОГРАММ УСЛОЖНЕННОЙ
ЦИКЛИЧЕСКОЙ СТРУКТУРЫ
Цель работы: научиться составлять программы с использованием вложенных циклов
Оборудование: ПК, ИСР Pascal ABC
ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Для решения задачи достаточно часто требуется использовать две и более циклические конструкции, одна из которых помещается в тело цикла другой. Такие конструкции называют вложенными циклами. Внутренний и внешний циклы могут быть любыми из трех рассмотренных ранее видов (Практическая работа 5). Правила организации внешнего и внутреннего циклов такие же, как и соответствующих простых операторов. Однако при использовании вложенных циклов необходимо соблюдать следующее условие: внутренний цикл должен полностью укладываться в циклическую часть внешнего цикла.
Цикл, в тело которого мы вкладывали команды, называется внешним циклом. А цикл, который мы вложили в тело первого, называется внутренним или вложенным
циклом.
Принцип работы вложенного цикла таков: на первом проходе, внешний цикл вызывает внутренний, который исполняется до своего завершения, после чего управление передается в тело внешнего цикла. На втором проходе внешний цикл опять вызывает внутренний. И так до тех пор, пока не завершится внешний цикл.
Пример 1.
Вывести на экран таблицу умножения (от 1 до 9).
Алгоритм решения
Перебрать во внешнем цикле числа от 1 до 9. Для каждого из них перебрать во внутреннем цикле числа от 1 до 9. Во внутреннем цикле выполнять умножение переменных-счетчиков внешнего и внутреннего циклов. Таким образом на одну итерацию внешнего цикла произойдет девять итераций внутреннего, и сформируется одна строка таблицы умножения. После каждой строки надо перейти на новую. Это делается во внешнем цикле, после того как закончится выполняться внутренний.
Для построения таблицы необходимо использовать форматированный вывод, т.е. задавать ширину столбцов, иначе произойдет сдвиг, т.к. количество цифр в каждой строке различно.
var
i
,
j
:
byte;
begin
for
i
:=
1
to
9
do
begin
for
j
:=
1
to
9
do
write
(
i
*
j
:
4
)
;

29 writeln;
end
;
end
Результат работы:
1 2
3 4
5 6
7 8
9 2
4 6
8 10 12 14 16 18 3
6 9
12 15 18 21 24 27 4
8 12 16 20 24 28 32 36 5
10 15 20 25 30 35 40 45 6
12 18 24 30 36 42 48 54 7
14 21 28 35 42 49 56 63 8
16 24 32 40 48 56 64 72 9
18 27 36 45 54 63 72 81
ЗАДАНИЕ
1. Что будет выведено на экране монитора после выполнения следующего фрагмента программы:
a:=1; b:=1;
For i:=0 to n Do
Begin
For j:=1 To b Do
Write ('*') ;
WriteLn;
c:=a+b; a:=b; b:=c;
End;
если n=6? Решение какой задачи выражает этот фрагмент программы?
2. Что будет выведено на экране монитора после выполнения следующего фрагмента программы:
b: = 0 ;
While а<>0 Do
Begin
b:=b*10+а Mod 10;
а:=а Div 10;
End;
Write (b) ;
если a=13305? Решение какой задачи выражает этот фрагмент программы?
3. Выведите на экран числа в следующем виде:
7 6 5 4 3 2 6 5 4 3 2 5 4 3 2 4 3 2 3 2 2
4.
Придумайте задачу, которую можно решить с использованием вложенного цикла

30
ПРАКТИЧЕСКАЯ РАБОТА 7
1   2   3   4   5   6


написать администратору сайта