Тема: Разработка алгоритма и программы решения вычислительной задачи

Лабораторная работа №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).