Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная 7

.docx
Скачиваний:
0
Добавлен:
09.12.2020
Размер:
40.29 Кб
Скачать

МИНИСТЕРСТВО ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА

Государственное бюджетное образовательное учреждение

высшего образования

«ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ ИМПЕРАТОРА АЛЕКСАНДРА I»

Кафедра «ИНФОРМАТИКА И ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ»

Дисциплина «Информатика»

ОТЧЕТ

о лабораторной работе №7

на тему:

«ПРОИЗВОДНАЯ АЛГОРИТМИЧЕСКАЯ СТРУКТУРА СИНТЕЗ»

Вариант 29

Выполнил студент

Факультета УПЛ-702

Шептунов Н.А.

______________

подпись, дата

Санкт-Петербург 2018

Задача 1.

  1. Постановка задачи. Определить, в каком из двух векторов А и В размерности m больше положительных элементов. Проанализировать выполнение программы на примере А= {1; 2; -1; -4; -3; 4; 9; -10:} В= {-1; 2; 4; 0; 1; 8; -9; 7}

Входные данные: m – размерность массивов целого типа {A} – массив вещественного типа {B} – массив вещественного типа

Выходные данные: {A} – массив вещественного типа {B} – массив вещественного типа pola – переменная целого типа polb – переменная целого типа

  1. Математическая модель задачи. pola = 0, polb = 0 pola = pola + 1, если ai ≥ 0 polb = polb + 1, если bi ≥ 0 для всех i Печать "А>B", если pola > polb Печать "А<В", иначе если pola < polb Печать "A=B", иначе

  1. Разработка алгоритма.

Начало

m,{A} ,{B}

{A},{B}

pola=0, polb=0

i=1

i<=m

pola, polb

pola>polb

A=B

Конец

ai>=0

pola=pola+1

pola<polb

bi>=0

polb=polb+1

i=i+1

A>B

A<B

  1. Код приложения.

Private Sub Command1_Click()

Dim a() As Single, b() As Single, m As Integer, i As Integer, pola As Integer, polb As Integer

m = InputBox("m=")

Print "a="

ReDim a(1 To m)

For i = 1 To m

a(i) = InputBox("a(" & i & ")")

Print a(i);

Next

Print

Print "b="

ReDim b(1 To m)

For i = 1 To m

b(i) = InputBox("b(" & i & ")")

Print b(i);

Next

Print

Print

pola = 0

polb = 0

For i = 1 To m

If a(i) >= 0 Then

pola = polа + 1

End If

If b(i) >= 0 Then

polb = polb + 1

End If

Next

Print "pola=" & pola & " polb=" & polb

If pola > polb Then

Print " B A>B"

ElseIf pola < polb Then

Print " B A < B"

Else

Print " A=B"

End If

End If

  1. Отладка приложения.

Задача 2.

  1. Постановка задачи.

Заполнить вектор С значениями элементов матрицы V размерности m*n. Для отладки программы контрольный пример выбрать самостоятельно.

Входные данные: m – размерность массива целого типа n – размерность массива целого типа {V} – массив вещественного типа

Выходные данные: {V} – массив вещественного типа {С} – массив вещественного типа

  1. Математическая модель задачи.

k = 1 Ck = Vi,j, k = k + 1 для всех i и j

  1. Схема алгоритма.

Начало

m, n,{V}

{V}

k=1

i=1

i<=m

Конец

j=1

j<=n

i=i+1

Ck=Vi,j

{C}

k=k+1

j=j+1

  1. Код приложения.

Private Sub Command1_Click()

Dim C() As Single, V() As Single, m As Integer, n As Integer, i As Integer, j As Integer, k As Integer

m = InputBox("m=")

n = InputBox("n=")

Print "V"

ReDim V(1 To m, 1 To n)

For i = 1 To m

For j = 1 To n

V(i, j) = InputBox("V(" & i & " , " & j & ")")

Print V(i, j);

Next

Print

Next

Print

Print "C"

k = 1

ReDim C(1 To m * n)

For i = 1 To m

For j = 1 To n

C(k) = V(i, j)

Print C(k);

k = k + 1

Next

Next

End Sub

  1. Отладка приложения.

Соседние файлы в предмете Информатика