Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: ПОМОГИТЕ!!!! ПЛЗ!!!! ПРОЧТИТЕ!!! ПЛЗ!!! =) Добавлено: 24.12.03 23:18  

Автор вопроса:  BadLand | Web-сайт: zworld.ru | ICQ: 144818355 

Сам я в программировании никакой, но вот проблем: все вы наверное сталкивались с такой вещью, как институтский застой преподов. Т.е. преподавания экономистам, например, турбо бейсика. Зачем он ИМ нужен - непонятно, но пусть все равно парятся. Люди прошу помочь - завтра у моей девушки какой-то зачет и она как настоящий студент дотянула до последнего дня. Если кому не лень поломать(а может для кого-то это только время на набирание ответа :)) голову, ответьте пожалуйста(или запишите ввиде кода). Итак, внимание, вопрос:

 

1) Дана квадратная матрица. Надо переместить ее строки по возрастанию суммы элементов, лежащих внутри треугольника, образованного 1-ой строкой, поервым столбцом и гл. диагональю.

Второй вопрос:

2)Записать на турбо бейсике: F = квадратныйкорень(x*y+a) + квадратныйкорень(t*t * m*m * 1 в степени(x+y) + 1) - 2 * квадратныйкорень(a * b*b - 1).

Квадратный корень я записывал в виде: квадратныйкорень(тут значения под ним). Ну и там степень также.

 

Всех ответевших заранее благодарю!

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #1
Добавлено: 25.12.03 09:28

Попробую написать на 2 вопрос, ответ:

Dim f as integer

f=sqr(x*y+a)+sqr(t*t*m*m*1^(x+y)+1)-2*sqr(a*b*b-1)

print f

А про матрицы, даже никак незнать, что это такое

Ответить

Номер ответа: 2
Автор ответа:
 Maxik



Вопросов: 58
Ответов: 201
 Профиль | | #2 Добавлено: 26.12.03 15:10
Матрица, в принципе, тот же массив. Если я ошибся, поправьте меня.

Ответить

Номер ответа: 3
Автор ответа:
 Scuder



ICQ: 143518458 

Вопросов: 12
Ответов: 37
 Профиль | | #3 Добавлено: 26.12.03 16:40

Попробую ответить на первый вопрос..

Допустим, дана матрица 5x5 такого вида:
0 6 1 0 0 (элементов - 5, сумма - 7)
0 2 0 1 1 (элементов - 4, сумма - 3)
3 0 2 1 0 (элементов - 3, сумма - 5)
4 0 1 5 2 (элементов - 2, сумма - 4)
1 0 2 1 1 (элементов - 1, сумма - 1)

Если я всё правильно понял, то преобразовать её нужно в такую:
1 0 2 1 1
0 2 0 1 1
4 0 1 5 2
3 0 2 1 0
0 6 1 0 0

Пишем код..
Dim x As Integer
Dim y As Integer
Dim a As Long
Dim b As Integer
Dim k As Integer
k = 5 'Размер матрицы

Dim M(5, 5) As Integer 'Существующая матрица
Dim N(5, 5) As Integer 'Итоговая матрица
Dim S(5) As Long 'Сумма элементов в строке
Dim Q(5) As Integer

'Не помню уже как в TBasic'е DATA/READ работают, но так точно проглотит.. :-)
M(1, 1) = 0: M(2, 1) = 6: M(3, 1) = 1: M(4, 1) = 0: M(5, 1) = 0
M(1, 2) = 0: M(2, 2) = 2: M(3, 2) = 0: M(4, 2) = 1: M(5, 2) = 1
M(1, 3) = 3: M(2, 3) = 0: M(3, 3) = 2: M(4, 3) = 1: M(5, 3) = 0
M(1, 4) = 4: M(2, 4) = 0: M(3, 4) = 1: M(4, 4) = 5: M(5, 4) = 2
M(1, 5) = 1: M(2, 5) = 0: M(3, 5) = 2: M(4, 5) = 1: M(5, 5) = 1

'Считаем суммы элементов
For y = 1 To k
For x = 1 To k - y + 1
S(y) = S(y) + M(x, y)
Next x
Next y

'Заполнение новой матрицы
For i = 1 To k
a = 1000000 'будем надеяться, что сумма элементов не может превысить этого числа

'Находим строчку с наименьшей суммой из тех, что остались
For y = 1 To k
If S(y) < a And Q(y) <> -1 Then a = S(y): b = y
Next y

'Заполнение строчки № i новой матрицы
For x = 1 To k
N(x, i) = M(x, b)
Next x

Q(b) = -1 'Данная строчка больше не учитывается
Next i

'Всё! Новая матрица готова! Напечатаем на экране? (Для досовского Basic'a)
For y = 1 To 5
For x = 1 To 5
Print N(x, y);
Next x
Print
Next y

Примечание: Если сумма элементов в строке может выйти за пределы 1000000, то это число нужно увеличить. Или придумать другой вариант. :-)

Как приятно вспомнить университетский курс вышки.. :-))  

 

P.S. Возможно, есть способ сделать пример покороче и без условий типа <1000000, но времени не было, поэтому что пришло в голову, то и написал.. :-)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам