Среда Turbo Pascal 5 Разделы описаний 6 решение
Вид материала | Решение |
СодержаниеРешение типовых задач Реализация линейных алгоритмов Реализация разветвляющихся алгоритмов |
- Компоновать программы из отдельных частей отлаживать программы выполнять программы., 197.76kb.
- Програма на мові Turbo Pascal, лінійні програми Команди галуження, вибору та мітки, 1485.97kb.
- Б. В. Ващук Turbo Pascal, 715.52kb.
- Структура программы, описание ресурсов программы; Операторы ввода/вывода, 162.02kb.
- Программирование на языке высокого уровня, 59.92kb.
- Конспект урока по информатике для десятого класса по теме «Условный оператор в Turbo, 32.44kb.
- Доманская Юлия Георгиевна г. Вилейка 2006г пояснительная записка, 74.95kb.
- Структура программы на языке Turbo Pascal, 26.15kb.
- Курс «Программирование на языке Turbo Pascal 0» Цель курса, 19.6kb.
- Задачи работы Научиться создавать программы на языке Turbo Pascal с использованием, 598.05kb.
Решение типовых задач
Настоящий раздел призван показать основные практические методы и приемы разработки программ для решения наиболее часто встречающихся задач.
Работа с ним требует знания теоретических основ алгоритмизации и программирования, внимательного изучения приводимых примеров по составлению программ для решения типовых задач, самостоятельного решения приводимых в каждом раздела задач.
Реализация линейных алгоритмов
Линейными называют алгоритмы, в которых последовательность операторов совпадает с порядком их записи и не зависит от конкретных значений исходных данных.
К линейным программам относятся алгоритмы вычислений по определенным формулам. Раздел операторов таких программ предполагает три этапа: ввод исходных данных, вычисления по заданным формулам, вывод полученных результатов. Для реализации подобных программ используются операторы присваивания, ввода данных и вывода данных.
Пример. Написать программу вычисления объема цилиндра.
Var r,h,v: real; {радиус -основания, высота и объем цилиндра }
begin
writeln('Вычисление объема цилиндра');
write('радиус основания (см) —> '); readln(r);
write('высота цилиндра (см) —> '); readln(h);
v := 2*Pi*r*r*h;
writeln('Объем цилиндра ',v:6:2,' см.куб.');
readln;
end.
ЗАДАЧИ
Составьте программы для вычисления требуемых величин по известным данным, используя линейную структуру:
- Вычислите площадь, периметр и диагональ прямоугольника, если даны его стороны.
- Вычислите длину окружности и площадь круга по данному радиусу.
- Вычислите расстояние между точками A(x1,y1), В(х2,у2).
- Вычислите координаты середины отрезка, если даны координаты концов отрезка.
- По двум данным числам А и В вычислите сумму, разность и произведение этих чисел.
- Вычислите остаток от деления числа А на число В.
- Вычислите сумму цифр трехзначного натурального числа (см. сноску 1).
- Дано трехзначное число. Найдите число, записанное теми же цифрами, но в обратном порядке.
- Вычислите Р% от данного числа А.
- Вычислите число А, если его часть В составляет С%.
- Дано действительное число x. Не пользуясь никакими другими арифметическими операциями, кроме умножения, сложения и вычитания, вычислить: 2x4 - 3x3 + 4x2 – 5x + 6. Разрешается использовать не более четырех умножений и четырех сложений и вычитаний (см. сноску 2).
- Дано действительное число x. Не пользуясь никакими другими арифметическими операциями, кроме умножения, сложения и вычитания, вычислить: 1—2x+3x2 – 4x3 и 1+2х+3x2 + 4x3. Разрешается использовать не более восьми операций (см. сноску 3).
Реализация разветвляющихся алгоритмов
Д

ля описания даже простых вычислительных процессов оказывается недостаточно лишь одних линейных алгоритмов. Например, алгоритм вычисления функции, заданной формулой:
Уже не является линейным, т.к. в нем должна быть заложена операция выбора одной из формул в зависимости от заданного значения аргумента X. Такого рода алгоритмы называются разветвляющимися или развилкой.
Итак, разветвляющимися называются программы, в которых последовательность выполнения операторов определяется выполнением (или невыполнением) определенных условий.
Пример 1. Написать программу, которая сравнивает два числа, введенных с клавиатуры. Программа должна указать, какое число больше, или, если числа равны, вывести соответствующее сообщение.
var
a,b: integer; { сравниваемые числа }
begin
write('Введите числа ->'); readln (a, b);
if a = b
then writeln('числа равны')
else if a < b
then writeln(a,' меньше ',b)
else writeln(a,' больше ',b);
readln;
end.
Пример 2. Написать программу, которая проверяет, делится ли на три целое число, введенное с клавиатуры.
var
n: integer; {введенное пользователем число}
begin
write(' Введите число ->'); readln (n);
write('Число ',n);
if n mod 3 = 0 then writeln(' нацело на три делится')
else writeln(' нацело на три не делится');
readln;
end.
Пример 3. Написать программу, которая запрашивает у пользователя номер месяца и выводит соответствующее название времени года. В случае если пользователь укажет недопустимое число, программа должна вывести сообщение "Ошибка ввода данных".
var
month: integer; { номер месяца }
begin
write('Введите номер месяца ->'); readln(month);
case month of
1,2,12 : writeln('Зима');
3..5 : writeln('Весна');
6..8 : writeln('Лето');
9..11 : writeln('Осень');
else writeln('Число должно быть от 1 до 12');
end;
readln;
end.
ЗАДАЧИ
Составьте программы, используя структуру ветвления:
- Даны два числа. Определите наибольшее из них.
- Даны три числа. Определите наименьшее из них.
- Даны два числа. Меньшее из них замените суммой, а большее произведением этих чисел.
- Из двух данных чисел отрицательное замените удвоенным произведением этих чисел, а положительное - их полусуммой.
- Из двух данных чисел отрицательное замените его модулем, а положительное - произведением этих чисел.
- Определите, является ли данное число четным или нечетным.
- Определите, является ли число D делителем числа А.
- Даны три числа. Расположите их в порядке возрастания.
- Определите принадлежность числа Х промежутку (-4;2).
- Определите, является ли данное число целым или дробным.
- Определите, существует ли треугольник со сторонами а,b,с.
- Лежит ли точка А(х,у) на окружности с центром C(0;0) и радиусом R.
- Составьте программу решения линейного уравнения.
- Составьте программу решения квадратного уравнения.
- Дано натуральное число n (n > 99). Определить число сотен в нем.
- Дано натуральное число n (100n9999).
а) Сколько цифр в числе n?
б) Чему равна сумма его цифр?
в) Найти последнюю цифру числа п.
г) Найти первую цифру числа п.
- Часовая стрелка образует угол у с лучом, проходящим через центр и через точку, соответствующую 12 часам на циферблате, 0 < φ ≤ 2π. Определить значение угла для минутной стрелки, а также количество часов и полных минут.
- Даны целые числа m, n (0 < m ≤ 12, 0 ≤ n < 60), указывающие момент времени: «m часов, n минут». Определить наименьшее время (число полных минут), которое должно пройти до того момента, когда часовая и минутная стрелки на циферблате а) совпадут; б) расположатся перпендикулярно друг к другу.