Тема: Разработка алгоритма и программы решения вычислительной задачи
Лабораторная работа №7
Цель работы: Научиться разрабатывать алгоритмы решения задач, содержащие структуры следования, развилки и циклов, по разработанному алгоритму составлять программу на языке Pascal.
Задание: Решите приведенные ниже задачи, для каждой из которых разработайте алгоритм решения, запишите алгоритм в виде блок-схемы, напишите программу, соответствующую разработанному алгоритму на языке Pacsal.
Образец выполнения задания:
Вычислить сумму 2-х любых целых чисел х и y.
Алгоритм: | Программа на языке Pascal:program Primer; {заголовок программы}uses Crt; {подключение модуля, необходимого для процедур очистки экрана и задержки}var {описание переменных величин} x,y,s: integer; {x,y,s – целочисленные величины}begin {начало тела программы} ClrScr; {очистка экрана} WriteLn('Введите два целых числа'); {вывод сообщения на экран} ReadLn(x,y); {ввод двух чисел} s := x + y; {расчет суммы чисел} WriteLn('Сумма чисел равна ',s); {вывод на экран текста и значения переменной S} ReadLn; {ожидание нажатия клавиши на клавиатуре}end. {конец программы} |
При решении задач, представленных ниже, используются целый (integer) и вещественный типы данных (real).
Запись математических функций на языке Pascal:
Функция | Запись | Тип аргумента | Тип результата |
Абсолютное значение x | abs(x) | integer, real | integer, real |
Синус x | sin(x) | real | real |
Косинус x | cos(x) | real | real |
Арктангенс х | arctan(x) | real | real |
Квадратный корень из х | sqrt(x) | real | real |
Значение х2 | sqr(x) | integer, real | integer, real |
Значение ех (e= 2.718282. . .) | exp(x) | real | real |
Запись развилок на языке Pascal:
Неполная развилка: IF Условие THEN Оператор; Оператор – это один оператор языка, реализующий Действие 1. | |||
Полная развилка: IF Условие THEN Оператор 1 ELSE Оператор 2; Описание циклов: | |||
Цикл со счетчиком: FOR i:= N1 TO N2 DO Оператор; Где i – счетчик, N1 – начальное, N2 – конечное значение счетчика, Оператор – один оператор языка, описывающий тело цикла. | |||
Цикл с предусловием: WHILE Условие DO Оператор; | |||
Цикл с постусловием: REPEAT Операторы UNTIL Условие; Операторы – это любое количество операторов, составляющих тело цикла. | |||
Если по какой-либо ветке развилки или в теле цикла (за исключением цикла REPEAT) необходимо выполнить несколько операторов, то они записываются внутри операторных скобок begin операторы end;
Операторы отделяются друг от друга в программе знаком «;» (точка с запятой).
Задача 1. Даны x, y, z. Вычислить a, b, если:
1 вариант | ||
2 вариант | ||
3 вариант | ||
4 вариант | ||
5 вариант | ||
6 вариант | ||
7 вариант | ||
8 вариант |
Задача 2. Решите задачу, используя структуры ветвления.
1 вариант | Найти максимальное из двух целых чисел a и b. |
2 вариант | Найти минимальное из двух целых чисел a и b. |
3 вариант | Вычислить y(x): y = x2 при x > 1 и y = x при x <= 1. |
4 вариант | Составить программу вычисления значения модуля |5x - 4|. |
5 вариант | Даны два отрезка [a, b], [c, d] на прямой. Установить, имеют ли они общие точки или нет. |
6 вариант | Составить программу вычисления корня . |
7 вариант | Составить программу решения уравнения . |
8 вариант | Вычислить y(x): при x > 1 и y = x2 при x <= 1. |
Задача 3. Решите задачу, используя структуры циклов.
1 вариант | Дано натуральное n, вещественное x. Вычислить S= sin(x) + (sin(x))2 +… + (sin(x))n. |
2 вариант | Дано натуральное n, вещественное x. Вычислить S= x + x2 +…+ xn. |
3 вариант | Дано натуральное n, целое x. Вычислить S= x * x2 *…* xn. |
4 вариант | Изначально размер фонда помощи малоимущим семьям составлял М млн.руб., каждый последующий год он увеличивался на 18% от значения предыдущего года. Определите, через сколько лет размер фонда стал больше N млн.руб. (N>M). |
5 вариант | На начало некоторого периода количество безработных составило М млн.человек. Каждый следующий месяц количество безработных уменьшалось на 1,2% от значения предыдущего месяца. Определите, через сколько месяцев количество безработных станет меньше N млн.человек. (N<M). |
6 вариант | Ежегодно количество человек, пользующихся услугами социальных работников, увеличивается на 1,8% от значения предыдущего года. Определите, через сколько лет оно превысит N человек, если изначально составляло M человек (N>M). |
7 вариант | Ежегодно количество человек, пользующихся услугами социального транспорта, увеличивается на 0,7% от значения предыдущего года. Определите, через сколько лет оно превысит N человек, если изначально составляло M человек (N>M). |
8 вариант | Первоначально размер пенсии Иванова И.И. составил M тыс.руб. Каждый последующий год пенсия увеличивалась на 2,3% от значения предыдущего года. Определите, через сколько лет размер пенсии станет больше N руб. (N>M). |