|
||||||||||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[18] Практическое задание N 1. 28 Написать и отладить программы с использованием процедур: 1.Вывести на экран визитную карточку программиста с указанием текущей даты. 2.Вывести на экран визитную карточку программиста с указанием времени. Примечание к п. п. 1, 2 : рассмотреть случаи задания фамилии разработчика в качестве глобального, локального и формального параметра. 3.Рассчитать массив из N значений функции Y= ex + Cos(x) при изменении аргумента с постоянным шагом в диапазоне x1. . x2, и записи массива в файл. Значения N, x1, x2 и имя файла задаются оператором ввода 4.Рассчитать массив из N значений функции Y=ln(x) - x3 при изменении аргумента с постоянным шагом в диапазоне x1. . x2, и записи массива в файл. Значения N, x1, x2 и имя файла задаются оператором ввода. 5.Создать единичную матрицу NxN (N<=50). Элементы матрицы на главной диагонали равны единице, остальные - нулю. Вывести на экран массив 20х20. 6.Заменить элементы матрицы NxN (N<=30), расположенных в строках на элементы, расположенные в столбцах, т. е. a[i, j] на a[j, i]. Вывести на экран исходный и транспонированный массивы размером 10х10. Приведем пример функции для расчета высоты треугольника по заданным значениям его сторон. Program TR; Var a, b, c, ha, hb, hc: real; {---------------------------------------------------------------- } Function H TR(a, b, c: real): real; { a, b, c - Стороны треугольника } Var p, s: real; Begin If (a<0) or (b<0) or (c<0) Then begin Writeln(Стороны треугольника >0 ?); readln; Halt end; If (a>(b+c)) or (b>(a+c)) or (c>(a+b)) Then begin Writeln(a<(b+c),b<(a+c),c<(a+b) readln; Halt end; {---------------------------------------------------------------- } BeginN:= 10;{ создание симметричной матрицы } for i:= 1 to N do for j:= i to N do x[i, j]:= 0.5 + random(50); { заполнение верхней треугольной матрицы } for i:= 1 to N do for j:= i to N do x[j,i]:= x[i,j]; { заполнение нижней, симметричной части матрицы } Wr M(x, file 1.out, N, N); { вызов процедуры записи массива в файл } end. Для правильного считывания данных, записанных в файл бесформатным выводом необходима запись пробела для разделения чисел. p:= (a+b+c)/2;{ полупериметр } s:= Sqrt(p*(p-a)*(p-b)*(p-c));{ площадь } H TR:= 2*s/a; { Присвоение функции значения } {----------------------------------------------------------------} Writeln(Введите значения сторон треугольника a,b,c); Readln(a,b,c); ha:= H TR(a, b, c); hb:= H TR(b, a, c); hc:= H TR(c, b, a); Writeln(Высоты треугольника:); Writeln(ha=,ha:-10:4, hb=,hb:-10:4, hc=,hc:-10:4); Readln В программе трижды вызывается функция расчета высоты треугольника для различных комбинаций фактических параметров, что позволяет вычислить все высоты треугольника. Практическое задание N 1. 29 Написать и отладить программы с использованием функций: 1.Рассчитать площадь треугольника по известным координатам вершин с использованием формулы S= 0.5*abs(y1*(x3-x2)+ y2*(x1-x3) + y3*(x2-x1)), а также разработать функцию расчета площади треугольника по формуле Герона (значения сторон вычисляются внутри функции). Вывести на экран значения площади треугольника, подсчитанные по обеим формулам (функциям). 2.Вывести на экран сообщения о типе треугольника: остроугольный, прямоугольный, тупоугольный (задаются координаты вершин). Для расчета углов использовать теорему косинусов, например: c a:= ( b*b + c*c - a*a)/(2*b*c); где c a - косинус угла, противоположного стороне "a". 3.Определить нахождение точки "А" внутри прямоугольника, включающего область из "N" точек с координатами Xi, Yi, i=1, . . . , N< 21. Стороны прямоугольника параллельны осям координат. Координаты точек задаются в основной программе функцией Random(1000). Функция возвращает значение логического типа. 4.Определяющую симметричность матрицы (NxN). Функция возвращает значение логического типа. Приведем пример использования функции для расчета суммы членов степенного ряда, представляющего тригонометрическую функцию Y= Sin(x). PROGRAM fun sin; var y, y1, x1: real; {---------------------- } Function Sin r( x: real): real; Var a, k, y: real; i: longint;
{if abs(x) > 2*Pi Then x:= 2*pi*Frac(x/(2*Pi)); {учет периодичности } if abs(x) > 2*Pi Then x:= x - 2*pi*Int(x/(2*Pi));{ функции } if abs(x) > Pi Then x:= Pi - ABS(x);{ учет асимметрии функции } i:= 0; a:= x; y:= a; while abs(a)>0.0000001 do begin i:=i+1; k:=-x*x/(2*i* (2*i+1)); Sin r:= y; a:= a*k; y:= y + a end; { присвоение функции ее значения } write(Введите значение аргумента: x1= ); Readln(xl); Y:= Sin r(x1);{ вызов функции, разработанной программистом } Y1:= Sin(x1);{ вызов стандартной функции } writeln(значение аргумента: x1=x1); writeln(расчетное значение функции: Sin r(x1)=y :-11:8); writeln(контрольный результат:Sin(x1) =y1:-11:8); writeln(Нажмите Enter); readln; В описании функции обязателен оператор присвоения функции ее значения. Изменение величины параметра-значения "x" в теле функции не отражается на его значении во внешней программе. Функция возвращает значение, которое во внешней программе присваивается переменной "у". Практическое задание N 1. 30 Рассчитать значения суммы членов степенного ряда, представляющих функции, из таблицы к заданию N1. 16. 1. 12. 2. Рекурсивные функции и процедуры Если одна процедура (Pr 2) вызывает в своем разделе выполнения другую (Pr 1), то вызываемая процедура должна быть описана во внешней программе перед описанием вызывающей процедуры, либо внутри вызывающей процедуры. Возможны и циклические случаи: если процедура вызывает сама себя - прямая рекурсия , если обе процедуры вызывают в своих разделах выполнения друг друга - косвенная рекурсия. Схема линейного взаимодействия процедур: Pr 1 - раздел описания Pr 1 Pr 2 - раздел описания Pr 2 Вызов Prl в процедуре Pr 2 Внешняя программа |
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | ||||||||||