Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая по ит.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
483.85 Кб
Скачать

2.5 Синтаксические диаграммы

В данном заключительном разделе приводятся синтаксичес­кие диаграммы для конструкций, рассмотренных в этой гла­ве. Кроме того, здесь показана полная синтаксическая диа­грамма для программы (рисунок 5,6,7,8,9,10,11,12,13).

Рисунок 5 – программа

Рисунок 6 - модуль

Рисунок 7 – заголовок модуля

Рисунок 8 – интерфейс модуля

Рисунок 9 - спецификация использования

Рисунок 10 – элемент интерфейса

Рисунок 11 – реализация модуля

Рисунок 12 - Элемент рализации

Рисунок 13 – инициализация модуля

Практическая часть

3 Перемножение двух матриц

Задание:

Заданы двумерные матрицы размерностью 6x5 элементов, заполненные случайными числами из диапазона [1, 100]. Перемножить их элементы, имеющие одинаковые индексы, и вывести результаты на экран и записать в файл «output.txt».

Что бы выполнить данное задание мы будем использовать PascalABC.NET — это язык программирования Паскаль нового поколения, включающий классический Паскаль, большинство возможностей языка Delphi, а также ряд собственных расширений.

Код программы будет таким

const

n = 6;

m = 5;

var

a: array[1..n, 1..m] of integer;

b: array[1..n,1..m] of integer;

c: array[1..n,1..m] of integer;

i, j: byte;

sum: integer;

t: text;

begin

assign(t, 'output.txt');

randomize;

for i := 1 to n do

begin

for j := 1 to m do

begin

a[i, j] := random(100);

b[i, j] := random(100);

end;

writeln

end;

for i := 1 to n do

begin

for j := 1 to m do

begin

write(a[i, j]:3);

end;

writeln

end;

writeln;

for i := 1 to n do

begin

for j := 1 to m do

begin

write(b[i, j]:3);

end;

writeln

end;

writeln;

for i := 1 to n do

begin

for j := 1 to m do

begin

c[i,j] := a[i, j]*b[i, j];

write(c[i, j]:8);

end;

writeln

end;

rewrite(t);

for i := 1 to n do

begin

for j := 1 to m do

begin

write(t,c[i,j]:8)

end;

writeln(t)

end;

close(t);

readln

end.

Описание программы :

const

n = 6;

m = 5;

var

a: array[1..n, 1..m] of integer;

b: array[1..n,1..m] of integer;

c: array[1..n,1..m] of integer;

i, j: byte;

sum: integer;

t: text;

определение переменных

begin

assign(t, 'output.txt'); открытие файла output для записи

randomize; включения рандома

for i := 1 to n do цикл по i от 1 до n

begin

for j := 1 to m do цикл по j от 1 до m

begin

a[i, j] := random(100); заполняется матрица а рандомно от 1 до 100

b[i, j] := random(100);

end;

writeln

end;

for i := 1 to n do цикл по i от 1 до n

begin

for j := 1 to m do цикл по j от 1 до m

begin

write(a[i, j]:3); выводим на экран матрицу а

end;

writeln

end;

writeln; вывели пустую строку для разделения двух матриц

for i := 1 to n do цикл по i от 1 до n

begin

for j := 1 to m do цикл по j от 1 до m

begin

write(b[i, j]:3); выводим на экран матрицу b

end;

writeln

end;

writeln; вывели пустую строку для разделения двух матриц

for i := 1 to n do цикл по i от 1 до n

begin

for j := 1 to m do цикл по j от 1 до m

begin

c[i,j] := a[i, j]*b[i, j]; матрица c заполняется перемножением элементов матриц a и b с одинаковыми элементами

write(c[i, j]:8);

end;

writeln

end;

rewrite(t); открываем файл output для перезаписи (удаляем все что было в нем написано ранее)

for i := 1 to n do цикл по i от 1 до n

begin

for j := 1 to m do цикл по j от 1 до m

begin

write(t,c[i,j]:8) заполняем файл output матрицой c

end;

writeln(t)

end;

close(t); закрываем файл output

readln

end.

В результате мы получаем в оке вывода(рисунок 14):

Рисунок 14

После чего программа записывает сама все в папку output.

Блок-схема программы будет выглядеть следующим образом (рисунок 15):

Начало