|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
ПОСТРОЕНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВДля программирования линейных алгоритмов используются операторы ввода, вывода и присваивания. Пример 1. Даны катеты прямоугольного треугольника. Найдите его гипотенузу и площадь. Решение. Исходными данными являются длины катетов. Из условия задачи неясно, какого типа длины катетов, поэтому выбираем наиболее общий случай и считаем их вещественными. Потребуется переменная для гипотенузы и площади, которые также будут вещественными. Program task3; var a, b, c: real; {a, b - длина катетов, c - длина гипотенузы} S: real; {площадь} begin write (‘Задайте длины катетов’); readln (a, b); c:= sqrt(sqr(a) + sqr(b)); S:= a * b/2; writeln (‘гипотенуза равна ’, c, ‘площадь равна ’, S) end. Можно было написать программу без использования переменных c и S. Program task3a; var a, b, c: real; {a, b - длина катетов, c - длина гипотенузы} begin write (‘Задайте длины катетов’); readln (a, b); writeln (‘гипотенуза равна ’, sqrt(sqr(a) + sqr(b)), ‘площадь равна ’, a * b/2) end. Пример 2. Дано действительное x. Вычислите y, используя только операции сложения, вычитания и умножения. y = 2x4 - 3x3 + 4x2 - 5x + 6. Решение. Вариант 1. y:= 2*x*x*x*x - 3*x*x*x + 4*x*x -5*x + 6. Используется 14 операций. Вариант 2. Введем дополнительные переменные: x2:= x*x; x3:= x2*x; x4:= x2*x2; тогда y:= 2*x4 - 3*x3 + 4*x2 -5*x + 6. Количество операций сократилось, но используются три дополнительные переменные. Вариант 3 позволяет не вводить новые переменные и уменьшить количество операций, для чего используется схема Горнера: y:= (((2*x - 3)*x + 4)*x - 5)*x+6. Используется восемь операций. Реализуем программно именно этот вариант. Proqram task4; Var x, y: real; begin write (‘задайте значение x’); readln (x); y:= (((2*x - 3)*x + 4)*x - 5)*x+6; writeln (‘y = ‘, y) end. Упражнения. 1. Дано действительное число x. Не пользуясь никакими арифметическими операциями, кроме *, +, -, вычислите: 1 - 2x + 3x2 - 4x3 и 1 + 2x + 3x2 + 4x3. Используйте не более 8 операций. 2. Дано действительное число a. Не пользуясь никакими операциями, кроме умножения, получите: а). a8 за 3 операции; б). а21 за 6 операций; в). а5 и а19 за 6 операций; г). а4, а12, а28 за 6 операций. 3. Текущее показание электронных часов: m часов (0 £ m £ 23), n минут (0 £ n £ 59), k секунд (0 £ k £ 59). Напишите программу, которая будет определять какое время будут показывать часы через p часов, q минут, r секунд. _____________________________________________________________________________ Проверьте себя: 1. p=1-2*x+3*x2-4*x3=1+3*x2-(2*x+4*x3), q=1+2*x+3*x2+4*x3=1+3*x2+(2*x+4*x3 , Пусть а=1+3*х2; в=х*(2+4*х2), 1) x2:=x*x; x2 2) a:=3*x2; 3*x2 3) a:=1+a; 1+3*x2 4) a3:=4*x2; 4*x2 5) b:=2*a3; 2+4*x2 6) b:=x*b; x*(2+4*x2) 7) p:=a-b; 1+3*x2-2*x-4*x2 8) q:=a+b 1+3*x2+2*x+4*x2 2. a) a2:=a*a; a4:=a2*a2; a8:=a4*a4. б) a2:=a*a; a4:=a2*a2; a8:=a4*a4; a16:=a8*a8; a20:=a16*a4; a21:=a20*a. в) a2:=a*a; a4:=a2*a2; a5:=a4*a; a10:=a5*a5; a15:=a10*a5; a19:=a15*a4. г) a2:=a*a; a4:=a2*a2; a8:=a4*a4; a12:=a8*a4; a24:=a12*a12; a28:=a24*a4. 3. m1:=(m*60+n)*60+k; m2:=(p*60+q)*60+r; m3:=m1+m2; сек:=m3 mod 60; мин:=m3 div 60 mod 60; час:=m3 div 60. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |