Технология решения задач в среде ЯП Паскаль

Download Report

Transcript Технология решения задач в среде ЯП Паскаль

Технология решения задач с
помощью ЭВМ в среде языка
программирования Паскаль
I ЭТАП
Постановка задачи
Схема этапов решения задач на ЭВМ
II ЭТАП
Математическая модель
III ЭТАП
Алгоритм
Программа
Компьютерный эксперимент
Результаты НЕ
соответствуют цели
IV ЭТАП
Анализ
результатов
Результаты соответствуют цели
Готовая программа
I ЭТАП
ПОСТАНОВКА ЗАДАЧИ
Формулируется задача.
Определяется цель – что надо получить, и в каком
виде результат должен быть представлен.
Выделяются существенные свойства
необходимые для построения модели,
отбрасываются второстепенные.
 Задача
Написать программу вычисления стоимости поездки
на автомобиле на дачу (туда и обратно).
 Определяется цель – что надо получить, и в
каком виде результат должен быть представлен.
Получить стоимость поездки на автомобиле на дачу и
обратно.
Результат рекомендуется представить в виде:
Вычисление стоимости поездки на дачу и обратно.
Расстояние до дачи (км) -> 67
Расход бензина (литров на 100 км пробега) -> 8.5
Цена литра бензина (руб.) -> 20.00
Поездка на дачу и обратно обойдется в 227.80 руб.
 Выделяются существенные свойства необходимые
для построения модели, отбрасываются
второстепенные.
• Автомобиль движется по ровной дороге, с
постоянной скоростью.
II ЭТАП
ПОСТРОЕНИЕ МАТЕМАТИЧЕСКОЙ МОДЕЛИ
Выделяются исходные данные, необходимые для
построения математической модели, и что надо
получить (определяются переменные).
Формулируются математические связи,
объединяющие исходные данные и результат.
Дано: …
Получить: …
Связи: …
Определяется тип данных.
Дано:
rast – расстояние до дачи (км). Число
вещественного типа (real);
ben_r - расход бензина (литров на 100 км пробега).
Число вещественного типа;
cena - цена литра бензина (руб.).
Получить:
Sum – стоимости поездки. Число вещественного
типа.
Связи: Sum = 2*rast*ben_r/100*cena
III ЭТАП
АЛГОРИТМ. ПРОГРАММА.
КОМПЬЮТЕРНЫЙ ЭКСПЕРИМЕНТ
АЛГОРИТМ – конечная последовательность точно
определенных действий, проводящих к однозначному
решению поставленной задачи.
ПРОГРАММА – алгоритм, написанный на языке,
понятном исполнителю-ЭВМ. (Язык общения с ЭВМ
называют языком программирования.)
КОМПЬЮТЕРНЫЙ ЭКСПЕРИМЕНТ.
Выявляются ошибки программирования – синтаксические и
логические.
Проводится тестирование программы (процесс поиска ошибок
в программе). Тест – набор исходных данных, для которых
заранее известен результат.
Алгоритм
начало
rast
ben_r
cena
sum =
sum
конец
Program Dacha;
Var rast, ben_r, cena, sum: real;
Begin
Writeln(‘Вычисление стоимости поездки на дачу
и обратно. ‘);
Write(‘Расстояние до дачи (км) -> ’);
Readln(rast);
Write(‘Расход бензина (литров на 100 км пробега) -> ’);
Readln(ben_r);
Write(‘Цена литра бензина (руб.) -> ’);
Readln(cena);
sum = 2 * rast * ben_r / 100 * cena;
Writeln;
Writeln(‘Поездка на дачу и обратно обойдется в’ ,
sum :7 :2 , ‘ руб.’);
Readln;
End.
КОМПЬЮТЕРНЫЙ ЭКСПЕРИМЕНТ.
Выявляются ошибки программирования – синтаксические и
логические.
Проводится тестирование программы (процесс поиска ошибок
в программе). Тест – набор исходных данных, для которых
заранее известен результат.
Введем значения: rast = 100; ben_r = 10; cena = 10.
Ожидаемый результат: 2 * 100 * 10 / 100 * 10 = 200 ;
Вычисление стоимости поездки на дачу и обратно.
Расстояние до дачи (км) -> 100
Расход бензина (литров на 100 км пробега) -> 10
Цена литра бензина (руб.) -> 10
Поездка на дачу и обратно обойдется в 200.00 руб.
IV ЭТАП
АНАЛИЗ РЕЗУЛЬТАТОВ
МОДЕЛИРОВАНИЯ
Если решение не соответствует цели поставленной
задачей, значит допущены ошибки на предыдущих
этапах. Возможные ошибки:
 Слишком упростили модель;
 Неудачный выбор метода решения;
 Допущены логические ошибки.
Если ошибки выявлены, то требуется корректировка
модели, т. е. возврат к одному из предыдущих
этапов.
Введем реальные данные
• Получим результат.
• Проанализируем
Решение задач
1. Написать программу вычисления расстояния
между населенными пунктами, изображенными
на карте. Ниже приведен рекомендуемый вид
экрана во время работы программы (данные,
введенные пользователем, выделены
полужирным шрифтом).
Вычисление расстояния между населенными пунктами.
Введите исходные данные:
Масштаб карты (количество км в одном см) -> 120
Расстояние между точками, изображающими населенные
пункты (см) -> 3.5
Расстояние между населенными пунктами 420 км.
2. Написать программу вычисления стоимости
покупки, состоящей из нескольких тетрадей
и карандашей.
Рекомендуемый вид экрана во время работы
программы:
Вычисление стоимости покупки.
Введите исходные данные:
Цена тетради (руб.) -> 20.70
Количество тетрадей -> 5
Цена карандаша (руб.) -> 2.70
Количество карандашей -> 2
Стоимость покупки: 108.90 руб.
Задача 2.
Написать программу, которая преобразует введенное с
клавиатуры дробное число в денежный формат.
Например, число 12.5 должно быть преобразовано к виду
12 руб. 50 коп.
Рекомендуемый вид экрана во время работы программы:
Преобразование числа в денежный формат.
Введите дробное число -> 23.6
23.6 руб. – это 23 руб. 60 коп.
Дано: ch – дробное число (вещественный тип);
Получить: rub, kop – целые числа, равные соответственно целой и дробной
части числа ch.
Связи:
Язык программирования Паскаль имеет набор встроенных процедур и
функций, называемых стандартными. Нам могут пригодиться:
Round(x) – округление Х в сторону ближайшего целого.
Trunc(x) – вычисление целой части Х.
Кроме того, с целочисленными значениями можно проводить операции:
Div – результат целочисленного деления и
Mod – остаток от целочисленного деления.
Например: 125 div 10 =>12, 125 mod 10 => 5.
Умножим введенное дробное число на 100 и применим к получившемуся
числу функцию – Round(ch*100)
начало
Задача
ch
Z_ch=…
rub =
kop =
ch,rub,kop
конец
Program Mani;
Var ch: real; z_ch, rub, kop : integer;
Begin
Writeln(‘Преобразование числа в денежный формат.‘);
Write(‘Введите дробное число -> ’);
Readln(ch);
z_ch:= round(ch * 100);
rub:= z_ch div 100;
kop:= z_ch mod 100;
Writeln;
Writeln( ch :6 :2 ,‘ руб. – это ‘ , rub , ‘ руб. ’ ,
kop, ‘ коп.’);
Readln;
End.
Преобразование числа в денежный формат.
Введите дробное число -> 23.6
23.6 руб. – это 23 руб. 60 коп.