МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
СЕВЕРО–КАВКАЗСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Филиал в г. Кисловодске
Кафедра ________________________________________________________________
УТВЕРЖДАЮ
Зав. кафедрой
_______________________
подпись, инициалы, фамилия
«___» ______________200 __г.
КУРСОВАЯ РАБОТА
По дисциплине______________________________________________________
__________________________________________________________________
На тему:___________________________________________________________
__________________________________________________________________
Автор работы:______________________________________________________
подпись, дата инициалы, фамилия
_________________________________________________________________
Специальность _____________________________группа__________________
Руководитель работы________________________________________________
ученая степень, звания
__________________________________________________________________
инициалы, фамилия
работа защищена _____________________ оценка _______________________
дата
______________________________
подпись, инициалы, фамилия преподавателя
Кисловодск _______г.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
СЕВЕРО–КАВКАЗСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Филиал в г. Кисловодск
Кафедра ____________________________________________________________
УТВЕРЖДАЮ
Зав. кафедрой
_______________________
подпись, инициалы, фамилия
«___» ______________20__г.
ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ
Студенту ______ курса ____________ группы __________________ факультета
Фамилия __________________ Имя _____________ Отчество _____________
1. Тема _____________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
2. Задание
__________________________________________________________________
__________________________________________________________________
3. Дата выдачи задания _______________________________________________
Срок представления работы к защите «____» _____________________ 200___ г.
Руководитель работы_______________________
подпись, инициалы, фамилия
Задание принял к исполнению _______________
дата и подпись студента
Содержание
Введение. 4
1. Основная часть. 5
2. Алгоритм задачи. 10
2.1 Блок-схема алгоритма подпрограммы Forma1. 10
2.2 Блок-схема алгоритма подпрограммы Menu. 14
2.3 Блок-схема алгоритма подпрограммы V_kor 17
2.3 Блок-схема алгоритма подпрограммы Zad_1. 17
2.5 Блок-схема алгоритма подпрограммы Zad_2. 20
2.6 Блок-схема алгоритма программы Prog_1. 22
3. Описание. 23
3.1Рассчитать длину средней линии трапеции
. 24
3.2 Нормальная матрица. 25
4. Результаты.. 27
4.1 Интерфейс подпрограммы Zad_1. 27
4.2 Интерфейс подпрограммы Zad_2. 27
5. Проверка. 29
Заключение. 30
Список использованной литературы.. 31
Приложение. 32
Введение
Процесс подготовки и решения задач на компьютерах состоит из нескольких этапов:
- постановка задачи;
- построение модели;
- разработка алгоритма;
- написание и отладка программы на языке программирования;
- тестирование программы.
Основу всей этой работы составляет построение эффективного алгоритма, главными свойствами которого являются детерминированность, массовость, результативность. При разработке программ применяют метод структурного программирования: разделение задачи на относительно независимые части и выполнение отладки этих частей. При этом достигается качество и быстрота разработки программ.
В основе работы любого компьютера лежит обработка двоичной информации, т.к. именно эта система счисления оказалась наиболее удобной в технической реализации. В то же время более удобной для нас является десятичная система счисления. Переход из одной системы счисления в другую имеет большое значение для обработки информации. Анализ двоичного представления данных необходим во многих случаях: для внутримашинного хранения данных, поиска, сжатия информации, разработки алгоритмов команд процессора и т.д.
С другой стороны подготовка данных для ввода в компьютер выполняется в символьной форме. Преобразование их в машинный код возлагается на специальные программы. В то же время не всегда эти программы способны определить ошибки, допускаемые пользователями при вводе данных с клавиатуры. Подготовка процедур контроля вводимых данных является необходимым условием разработки надежных программных продуктов.
1. Основная часть
При создании этой курсовой работы использовался язык программирования TurboPascal – очень гибкий и развитый в отношении типов данных.
Паска́ль (Pascal
) — язык программирования общего назначения. Один из наиболее известных языков программирования, широко применяется в промышленном программировании, обучении программированию в высшей школе, является базой для большого числа других языков. Был создан Николаусом Виртом в 1970, после его участия в работе комитета разработки стандарта языка Алгол-68.
Ниже приведены: блок-схемы алгоритмов программы и отдельных модулей, математические модели поставленных задач, входные и выходные данные (интерфейс заданий), т.е. результаты выполнения подпрограмм, проверка результатов, произведенная средствами MsExcel.
Паскаль был создан как язык для обучения процедурному программированию (хотя, по словам Вирта, язык нельзя считать только учебным, поскольку язык, непригодный для написания реальных программ, для обучения использоваться не должен). Название языку дано в честь выдающегося французского математика, физика, литератора и философа Блеза Паскаля. Один из первых языков, для которых была создана реализация «на самом себе» — компилятор Паскаля был написан на самом Паскале. В начале 1970-х годов для переноса Паскаль-систем на различные аппаратные платформы была создана система Pascal-P, в которой был единый компилятор Паскаля в промежуточный язык (P-код) и для каждой платформы создавался быстрый интерпретатор P-кода. Заимствование этой системы привело к созданию системы UCSD-Pascal в Университете Сан-Диего (Калифорния, США), намного позже её идеи были заимствованы создателями языка Java (байт-код, компиляция в байт-код, интерпретатор байт-кода).
Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Паскаль был одним из первых таких языков. По мнению Н. Вирта, язык должен способствовать дисциплинированию программирования, поэтому, наряду со строгой типизацией, в Паскале сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис автор постарался сделать интуитивно понятным даже при первом знакомстве с языком.
Тем не менее, первоначально язык имел ряд ограничений: невозможность передачи функциям массивов переменной длины, отсутствие нормальных средств работы с динамической памятью, ограниченная библиотека ввода-вывода, отсутствие средств для подключения функций написанных на других языках, отсутствие средств раздельной компиляции и т. п. Наиболее бросающийся в глаза недостаток синтаксиса — некритически заимствованная из Алгола структура управляющих конструкций (операторов if и циклов), требующая, как правило, постоянного использования составных операторов «begin — end». Полный разбор недостатков языка Паскаль был выполнен Брайаном Керниганом в статье «Почему Паскаль не является моим любимым языком программирования» (интересно, что эта статья вышла в начале 1980-х, когда уже существовал язык Модула-2, потомок Паскаля, избавленный от большинства его пороков). Некоторые недостатки Паскаля были исправлены в ISO-стандарте 1982 года, в частности, в языке появились открытые массивы, давшие возможность использовать одни и те же процедуры для обработки одномерных массивов различных размеров.
Необходимо заметить, что многие недостатки языка не проявляются или даже становятся достоинствами при обучении программированию. Кроме того, по сравнению с основным языком программирования в академической среде 70-х (которым был Фортран, обладавший гораздо более существенными недостатками), Паскаль представлял собой значительный шаг вперёд. В начале 1980-х годов в СССР для обучения школьников основам информатики и вычислительной техники академик А. П. Ершов разработал алголо-паскалеподобный «алгоритмический язык».
Никлаус Вирт понимал недостатки созданного им языка, но, следуя традициям академической среды и собственным принципам, согласно которым «неподходящий инструмент надо не исправлять, а заменять», не стал его развивать дальше, а разработал новые языки семейства: Модула-2 и Оберон. В противоположность этому промышленные традиции и достоинства языка побудили многие коммерческие и некоммерческие организации продолжать разрабатывать и развивать системы программирования именно на основе языка Паскаль, подвергая язык произвольному расширению, добавляя в него, часто совершенно механически, новые средства и синтаксические конструкции.
Наиболее известной реализацией Паскаля является система Turbo Pascal (выросшая затем в Borland Pascal и далее в Delphi) фирмы Borland, в которой язык был значительно расширен, были устранены некоторые недостатки языка, добавлены новые возможности. Язык стал богаче, но в отсутствие отраслевой стандартизации, потерял переносимость и общность (до появления в 1998 году Kylix — Delphi для Linux, продукты Borland работали только на платформе DOS/Windows, в настоящее время Kylix фактически заморожена).
Важным шагом в развитии языка является появление свободного языка Паскаль GNU Pascal, который не только вобрал в себя черты других Паскалей, но и обеспечил чрезвычайно широкую переносимость написанных на нем программ (более 20 различных платформ, под более чем 10 различными операционными системами).
В настоящий момент пользуются популярностью такие версии языка как TMT Pascal, Free Pascal и GNU Pascal. Продолжает использоваться и Borland Pascal.
В 1986 году фирма Apple разработала объектное расширение языка Паскаль, получив в результате Object Pascal. В 1989 году аналогичные объектные средства были добавлены фирмой Borland в систему Turbo Pascal (языковые различия между объектным Turbo Pascal 5.5 и Object Pascal от Apple крайне незначительны). Последующие версии Turbo Pascal, который стал затем называться Borland Pascal, дополняли объектное расширение новыми средствами, этот процесс продолжился и в ходе развития языка системы Delphi. Название языка менялось: от Pascal, через Object Pascal for Delphi, в литературе встречалось название Delphi Pascal, в последних версиях Delphi язык именуется так же, как и сама система (любопытный момент: в Delphi 7 пункт системного меню, запускающий справку по языку, как и в более ранних версиях, называется «Object Pascal Reference», а сам запускаемый им модуль помощи имеет заголовок «Delphi Language Manual», в тексте язык также везде называется «Delphi»). 1 февраля 2008 года Borland/CodeGear анонсировала поставку своей среды разработки приблизительно на миллион компьютеров в российских школах и ВУЗах.
Кроме того, разрабатывается система программирования PascalABC.NET, ориентированная на обучение современному программированию. PascalABC — реализация обычного паскаля, разработан для обучения программированию. PascalABC.net — аналог PascalABC, с возможностью создавать exe файлы.
При разработке программы использовались следующие конструкции языка приведены ниже:
Условие:
if условие then begin
…
end
else
begin
- цикл, с постоянным вхождением в цикл:
for переменная := 1 tondo оператор;
…
end;
А так же конструкции вывода и чтения данных:
- writeln(‘информация’); // вывод данных
- readln(переменная); // чтение данных
- цикл с предусловием:
while (условие) do
begin
. . .
оператор;
. . .
end;
- оператор выбора условию равенств значения переменной:
case переменная of
значение 1: оператор;
значение 2: оператор;
. . .
значение n: оператор;
При создание курсовой работы так же пользовалась функциями библиотеки crt:
- перемещение курсора в точку (x,y) - gotoxy(координата x, координата y);
- очистка экрана - clrscr;
А так же стандартными функциями:
- закрытие файла – close(«имя_файла»);
- расчет по модулю - abs (‘выражение’);
- подключение файла - assign(файловая переменная, ‘путь_к_файлу’);
- открытие файла для перезаписи - rewrite(файловая переменная).
2. Алгоритм задачи
2.1 Блок-схема алгоритма подпрограммы Forma1
Данная подпрограмма включает в себя подпрограмму Frame.
2.2 Блок-схема алгоритма подпрограммы Menu
2.3 Блок-схема алгоритма подпрограммы V_kor
2.3 Блок-схема алгоритма подпрограммы Zad_1
Данная подпрограмма включает в себя следующие подпрограммы: V_kor, Print, Screen, Menusописание которых приведено выше
Рисунок 1 - Блок-схема алгоритма подпрограммы Print
В подпрограмме выполняется сначала открытие файла для перезаписи, потом запись в нее результата и закрытие файла.
Рисунок 2 - Блок-схема алгоритма подпрограммы Screen
В подпрограмме выполняется сначала очистка экрана, а затем результат.
Рисунок 3 - Блок-схема алгоритма подпрограммы menus
В подпрограмме выводится меню для выбора куда отправлять результаты – на экран или на принтер. Что бы сделать выбор необходимо ввести соответствующее значение.
2.5 Блок-схема алгорит
2
В этой подпрограмме выполняется сначала ввод элементов матрицы, затем расчет первой нормы и уже потом вывод новой матрицы на экран.
2.6 Блок-схема алгоритма программы Prog_1
Данная программа включает в себя следующие подпрограммы: Forma1, Menu, Zad_1, Zad_2 приведённые ниже.
3. Описание
Созданная программа – Prog_1 состоит из двух основных подпрограмм, входящих в тело программы: Forma1, Menu.
Подпрограмма Formal выводит на экран монитора данные о курсовой работе:
СЕВЕРОКАВКАЗСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
ФИЛИАЛ В ГОРОДЕ КИСЛОВОДСКЕ
КУРСОВАЯ РАБОТА
по дисциплине информатика и программирование на тему создание прикладного программного обеспечения в среде программирования
Turbo
Pascal
Работу выполнил: студент
_____курса группы _______
ФИО____________________
Работу проверил:
__________________________
При нажатии Enter управление передается подпрограмме Menu, которая выводит на экран монитора меню заданий, с предложением ввода номера одного из подпунктов для выполнения соответствующего задания. Интерфейс данной подпрограммы следующий:
1. “
Рассчитать длину средней линии трапеции
”.
2. “Пронумеровать матрицу по ее второй норме”.
3. “Выход”.
Введите номер задания для выполнения (1- 3).
Далее в соответствии с выбранным номером пункта управление передается Программе Prog_1, на вход которой поступает номер пункта меню. Происходит анализ соответствия номера пункта меню в списке предлагаемых (1, 2, 3), в случае несоответствия выводится надпись, управление передается подпрограмме Menu, в цикле будут повторяться данные действия до правильного ввода цифры пункта меню. В случае правильного набора номера пункта программа Prog_1 передаст управление соответственно одной из подпрограмм: Zad_1, Zad_2, или будет произведен выход из программного продукта в случае выбора номера варианта 3. После выполнения выбранной подпрограммы управление вновь передается подпрограмме Menu, для возможности выполнения любого из пунктов меню.
3.1 Рассчитать длину средней линии трапеции.
Фо́рмула Геро́на позволяет вычислить площадь треугольника (S
) по его сторонам a, b, c
:
аналогично вычисляются и остальные стороны.
где р — полупериметр треугольника: .
Треугольник однозначно можно определить по следующим тройкам основных элементов:
- a, b, c (равенство по трём сторонам);
- a, b, γ (равенство по двум сторонам и углу между ними);
- a, β, γ (равенство по стороне и двум прилежащим углам).
В данном примере доказательство основывается на соотношении сторон, если выполняются все следующие условия:
- a < b + c;
- b < c + a;
- c < a + b.
3.2
Нормальная матрица
Матрица — математический объект, записываемый в виде прямоугольной таблицы чисел (или элементов кольца) и допускающий алгебраические операции (сложение, вычитание, умножение и др.) между ним и другими подобными объектами. Правила выполнения операций над матрицами сделаны такими, чтобы было удобно записывать системы линейных уравнений. Обычно матрицу обозначают Заглавной буквой латинского алфавита и выделяют круглыми скобками «(…)» (встречается также выделение квадратными скобками «[…]», двойными прямыми линиями «||…||») А числа, составляющие матрицу (элементы матрицы), обозначают той же буквой, что и саму матрицу, но маленькой. у каждого элемента матрицы есть 2 нижних индекса (aij) — первый «i» обозначает номер строки, в которой находится элемент, а второй «j» — номер столбца.
Вектор — упорядоченное множество (последовательность, одномерный массив, кортеж, перечень, список) однородных элементов. Это наиболее общее определение в том смысле, что может быть не задано обычных векторных операций вообще, их может быть меньше, или они могут не удовлетворять обычным аксиомам линейного пространства. Нормой квадратной матрицы A называется функционал, обозначаемый , удовлетворяющий условиям:
-
- -- произвольное число;
- ;
-
Норма матрицы согласована с нормой вектора ,если для любых x и A
Функционал является нормой матрицы A и называется нормой матрицы А, подчиненной норме вектора .
4.
Результаты
4.1 Интерфейс подпрограммы Zad_1
На рисунке 1 изображено окно ввода координат точек А, В, С ,D трапеции. Для каждой точки нужно ввести координаты х, у.
На рисунке 2 изображен диалог выбора: выводить результат – на принтер или на экран. Чтобы вывести на принтер нажмите 1, а для того чтобы на экран 2.
Рисунок 2 – Диалог печати
На рисунке 3 изображен вывод результата на экран. Мы видим в диалоговом окне чему равна площадь треугольника.
Рисунок 3 – Вывод результата
4.2 Интерфейс подпрограммы Zad_2
На рисунке 4 отображено главное окно задания 2, в котором сначала производился ввод элементов массива, а затем уже вывод нового массива.
Рисунок 4 – Вывод результатов
5.
Проверка
Проверим ход решения в электронных таблицах MsExcel.
Когда мы производим нормирование матрицы мы находим абсолютное значение от каждого элемента матрицы. Далее мы находим максимальное значение каждого столбца матрицы. А затем уже выводим результирующую матрицу B = (bik
), где bik
= aii
/ ½½A½½1
.
Заключение
Работа выполнена на языке TurboPascal фирмы Borland, прочно вошедшем в мир программирования в 1983 году и до сих пор являющимся удобным языком программирования для начинающих программистов, а также просто хорошим языком программирования, к которому обращаются как прикладные программисты, так и системные.
При разработке программного обеспечения производил вычисления и обработку данных, была разработана подпрограмма с использование графического режима экрана, использовались звуковые сигналы при ошибочном вводе данных, программный продукт написан в стиле структурного программирования. Все это характеризует то, что использовались возможности языка программирования TurboPascal для написания этого программного продукта.
При разработке курсовой работы был приобретен опыт работы с языком программирования, изучен синтаксис данного языка, основные конструкции, его семантика.
Работа с данным языком помогла приобрести навыки программирования.
Список использованной литературы
1. Вирт Никлаус Алгоритмы+структуры данных= программы. — М.: «Мир», 1985.
2. Грогоно Питер Программирование на языке Паскаль. — М.: «Мир», 1982.
3. Йенсен К., Вирт Н. Паскаль. Руководство для пользователя и описание языка. — М.: «Финансы и статистика», 1982.
4. Культин Н.Б. Delphi 6. Программирование на Object Pascal. — СПб.: «БХВ-Петербург», 2001. — С. 528. — ISBN 5-94157-112-7.
5. Моргун Александр Николаевич Программирование на языке Паскаль (Pascal). Основы обработки структур данных. — М.: «Диалектика», 2005. — С. 576. — ISBN 5-8459-0935-X.
6. Перминов Олег Николаевич Язык программирования Паскаль : Справочник. — М.: «Радио и связь», 1989. — С. 128. — ISBN 5-256-00311-9.
Приложение
Programkursovay;
uses crt; {Подключение библиотеки}
var {Блок объявления переменных}
second:integer; {Переменная для вывода меню}
c1,c2,c3,c4,c5,c6:char; {Переменные для вывода рамки}
x1,x2,y1,y2,yf:integer; {Координаты для вывода сообщений}
Xa,Ya,Xb,Yb,Xc,Yc:integer; {Координаты для вывода сообщений}
ax,ay,az,bx,by,bz,cx,cy,cz:real; {Переменные для расчета сторон треугольн.}
Procedure Forma1; {Процедура Forma1}
var x1,x2,y1,y2:integer;
procedure Frame (x1,x2,y1,y2:integer); {Процедура Frame}
var
x,y:integer;
c1,c2,c3,c4,c5,c6:char;
begin {Операторы присвоения}
c1:=chr(218);
c2:=chr(196);
c3:=chr(191);
c4:=chr(179);
c5:=chr(192);
c6:=chr(217);
gotoxy(x1,y1); {Установка экрана на позицию x1,y1}
write(c1);
for x:=x1+1 to x2-1 do write (c2); {Операторцикла}
write (c3); {Оператор вывода переменной с3}
for y:=y1+1 to y2-1 do
begin
gotoxy (x1,y); {Прочерчивание горизонтальной линии}
write (c4); {Оператор вывода переменной с4}
gotoxy (x2,y);
write (c4);
end;
gotoxy (x1,y2);
write (c5);
for x:=x1+1 to x2-1 do write (c2);
write(c6);
end;
begin
clrscr; {Очисткаэкрана}
x1:=4; x2:=76;
y1:=4; y2:=23;
frame (x1,x2,y1,y2);
gotoxy (12,7);
write (‘Название своего универа ');
gotoxy (27,8);
write ('ФИЛИАЛ ______________);
gotoxy (33,10);
write ('КУРСОВАЯ РАБОТА');
gotoxy (19,11);
write ('по дисциплине информатика и программирование');
gotoxy (17,12);
write ('на тему создание прикладного программного обеспечения');
gotoxy (22,13);
write ('в среде программирования Turbo Pascal');
gotoxy (45,15);
write ('Работу выполнила: студентка');
gotoxy (45,16);
write (‘_____ курса группы ______');
gotoxy (45,17);
write (‘ФИО);
gotoxy (45,18);
write ('Работу проверил: ');
gotoxy (45,19);
write ('преподаватель кафедры ПИ');
gotoxy (45,20);
write (ФИОпрепода.');
readkey;
end;
{Процедура экранная форма меню}
procedure Menu;
begin
TextBackGround(white); {тутможешьменятьцвета}
TextColor(black);
Clrscr;
x1:=4;
x2:=76;
y1:=4;
y2:=21;
c1:=chr(205);
c2:=chr(201);
c3:=chr(187);
c4:=chr(186);
c5:=chr(200);
c6:=chr(188);
yf:=10;
gotoxy(23,yf);
writeln('1. " Рассчитать длину средней линии трапеции "');
yf:=yf+1;
gotoxy(23,yf);
writeln('2. "Пронумеровать матрицу по её второй норме"');
yf:=yf+1;
gotoxy(23,yf);
writeln('3. "Выход"');
yf:=yf+1;
gotoxy(23,yf);
gotoxy(23,yf);
writeln;
yf:=yf+1;
gotoxy(23,yf);
writeln('Введите номер задания для выполнения (1-3)');
yf:=yf+19;
gotoxy(23,yf);
writeln;
end;
{*************1 zadanie********************}
procedure zadanie1;
label1;
var
x1,x2,x3,x4:integer;
y1,y2,y3,y4:integer;
q:array[1..4] of integer;
k:array[1..4] of integer;
l:array[1..4] of integer;
z,a,i:integer;
Dlin1,Dlin2,Dlin3:real;
Begin
1:;
ClrScr;
Writeln(‘Введитекоординатыточки A(x,y)’);
Readln(x1,y1);
Writeln(‘Введите координаты точки b(x,y’);
Readln)x2,y2);
Writeln(‘Введите координаты точки C(x,y)’);
Readln(x3,y3);
Writeln(‘Введите координаты точки D(x,y)’);
Readln(x4,y4);
K[1]:=x2-x1;
K[2]:=x3-x2;
K[3]:=x4-x3;
K[4]:=x1-x4;
L[1]:=y2-y1;
L[2]:=y3-y2;
L[3]:=y4-y3;
L[4]:=y1-y4;
Z:=0;
A:=0;
For i:=1 to 4 do
Begin
If k[i]=0 then
Z:=z+1;
End;
If z>2 then
Begin
Writeln(‘неправильно заданы координаты’);
Goto 1;
End;
For i:=1 to 4 do
Begin
If l[i]=0 then
a:=a+1;
end;
if a>2 then
begin
writeln(‘неправильно заданы координаты’);
Goto 1;
End;
q[1]:=k[1]*l[3];
q[2]:=k3*l[1];
q[3]:=k[2]*l[4];
q[4]:=k[4]*l[2];
if q[1]=q[2] then
begin
if q[3]=q[4] then
begin
writeln(‘неправильно введены координаты!’);
readln;
Goto 1;
End
Else
Writeln(‘координаты введены правильно!’);
End
Else
Begin
If q[3]=q[4] then
Writeln(‘неправильно введены координаты!’);
Readln;
Goto 1;
End;
End;
Dlin1:=abs(sqrt(sqr(x2-x1)+sqr(y2-y1)));
Dlin2:=abs)sqrt(sqr(x3-x4)+sqr(y3-y4)));
Dlin3:=(dlin1+dlin2)/2;
Writeln(‘Длиннасреднейлиниитрапеции ABCD=’,dlin3:10:2);
end;
{END OF ZADANIE1*******************************************}
{2 zadanie***********************************************}
{Процедура задания №2}
procedure Zadanie2;
const
n=5;
var
i,k,x1,y1:integer;
Max:array [1..n] of real;
A:array [1..n,1..n] of real;
B:array [1..n,1..n] of real;
begin
clrscr;
x1:=4;
y1:=4;
writeln ('Vvod dannix' );
for i:=1 to n do
begin
for k:=1 to n do
begin
Gotoxy(x1,y1);
readln(a[i,k]);
x1:=x1+8;
end;
x1:=4;
y1:=y1+1;
end;
Gotoxy(x1,y1);
writeln ('Vivod dannix');
x1:=4;
y1:=y1+2;
for i:=1 to n do max[i]:=0;
for k:=1 to n do
for i:=1 to n do
if abs(a[i,k])>max[k] then
max[j]:=abs(a[i,k]);
Gotoxy(x1,y1);
writeln('Vvivod matrichi B[i,k]');
x1:=4;
y1:=y1+1;
for i:=1 to n do
begin
writeln;
for k:=1 to n do
begin
b[i,k]:=a[i,k]/max[k];
write (B[i,k]:5:2);
end;
end;
readkey;
end;
{END OF ZADAN2*******************************************}
begin
Forma1;
clrscr;
second:=0;
while second <> 3 do
begin
Menu;
readln(second);
case second of
1: zadanie1;
2: zadanie2;
3: exit;
end;
end;
end.