))))) порадовали, почитал топик, чувство как будто на китайской 8 битке в Duck Hunt, тока что порубился.
Помогите вот с такой задачкой:
1. Вывести матрицу А размером 6x5.
2. Посчитать количество К1 положительных и К2 отрицательных элементов матрицы А.
3. Образовать массив Z из максимальных и минимальных значений каждой строки матрицы А.
4. Упорядочить элементы 2-й и 3-й строки матрицы А в порядке убывания.
5. Вывести на печать: исходную матрицу А, К1, К2, массив Z, матрицу после сортировки.
Что значит вывести?1. Вывести матрицу А размером 6x5.
Последний раз редактировалось Positiff; 03.04.2008 в 18:31.
Я ураган. Неважно, что в стакане.
Ага, значит все-таки ввести. Каждый элемент вручную..?
В принципе пункты 1, 2, 4, 5 без проблем. С 3 хз, можно, но шибко корявенький там код получится)
Я ураган. Неважно, что в стакане.
Плохая, очень плохая программа! Мозг засоряет
Ничего не корявый
Код:Dim A(6, 5) Dim Z(6, 2) Randomize For i = 1 To 6 For j = 1 To 5 A(i, j) = Int((10 * Rnd) - 5) Next Next For i = 1 To 6 Z(i, 1) = -1000000 Z(i, 2) = 1000000 For j = 1 To 5 If Z(i, 1) <= A(i, j) Then Z(i, 1) = A(i, j) End If If Z(i, 2) >= A(i, j) Then Z(i, 2) = A(i, j) End If Next Next
Дополню
Ну и сортированный массив далее.. Я хз, запутался двумерный сортировать, не приходилось)Код:Dim A(6, 5) Dim Z(6, 2) K1 = 0 K2 = 0 Randomize For i = 1 To 6 For j = 1 To 5 A(i, j) = Int((10 * Rnd) - 5) If A(i, j) >=0 Then K1 = K1 + 1 Else K2 = K2 + 1 End If Next Next For i = 1 To 6 Z(i, 1) = -1000000 Z(i, 2) = 1000000 For j = 1 To 5 If Z(i, 1) <= A(i, j) Then Z(i, 1) = A(i, j) End If If Z(i, 2) >= A(i, j) Then Z(i, 2) = A(i, j) End If Next Next Print "Массив А" For i = 1 To 6 For j = 1 To 5 If j = 5 Then Print A(i, j) Else Print A(i, j); End if Next Next Print "Количество положительных элементов: ", K1 Print "Количество отрицательных элементов: ", K2 Print "Массив Z" For i = 1 To 6 For j = 1 To 2 If j = 2 Then Print Z(i, j) Else Print Z(i, j); End if Next Next
Я ураган. Неважно, что в стакане.
1)Ввести с клавиатуры текст. Распечатать самое длинное слово(пробелов между словами может быть несколько).
2)В вводимим с клавиатуры произвольном предложении на русском языке заменить все множественные пробелы на одинарные.
3)В вводимом с клавиатуры произвольном предложении поменять 2 любых слова местами.
Последний раз редактировалось Катюха**; 04.04.2008 в 18:55.
Ну и в итоге)
Код:Cls Dim A(6, 5) Dim Z(6, 2) K1 = 0 K2 = 0 Randomize For i = 1 To 6 For j = 1 To 5 A(i, j) = Int((10 * Rnd) - 5) If A(i, j) >=0 Then K1 = K1 + 1 Else K2 = K2 + 1 End If Next Next For i = 1 To 6 Z(i, 1) = -1000000 Z(i, 2) = 1000000 For j = 1 To 5 If Z(i, 1) <= A(i, j) Then Z(i, 1) = A(i, j) End If If Z(i, 2) >= A(i, j) Then Z(i, 2) = A(i, j) End If Next Next Print "Массив А" For i = 1 To 6 For j = 1 To 5 If j = 5 Then Print A(i, j) Else Print A(i, j); End if Next Next Print "Количество положительных элементов: ", K1 Print "Количество отрицательных элементов: ", K2 Print "Массив Z" For i = 1 To 6 For j = 1 To 2 If j = 2 Then Print Z(i, j) Else Print Z(i, j); End if Next Next FOR Col=2 TO 3 FOR i = 1 TO 5 Limit = 5 DO Switch = FALSE FOR Row = 1 TO (Limit - 1) IF A(Col,Row) > A(Col,Row + 1) THEN SWAP A(Col,Row), A(Col,Row + 1) Switch = Row END IF NEXT Limit = Switch LOOP WHILE Swith NEXT i NEXT Col Print "Отсортированный массив: " For i = 1 To 6 For j = 1 To 5 If j = 5 Then Print A(i, j) Else Print A(i, j); End if Next Next
Для массива из произвольных чисел.
Добавлено через 2 минуты
В QBasic? На русском? О_о2)В вводимим с клавиатуры произвольном предложении на русском языке заменить все множественные пробелы на одинарные.
Последний раз редактировалось Positiff; 04.04.2008 в 21:46. Причина: Добавлено сообщение
Я ураган. Неважно, что в стакане.
Да. там просто нада предложение вводить не англ. буквами а русскими (ctrl-нажимаешь и всё).
могу дать задачу с решением на подобе
Катюха**
Пункт 1
Код:CLS DIM w$(100) INPUT s$ First = 1 Words = 0 FOR i = 1 TO LEN(s$) IF ASC(MID$(s$, i, 1)) = 32 THEN Words = Words + 1 w$(Words) = MID$(s$, First, i - First) IF i + 1 <= LEN(s$) THEN First = i + 1 END IF END IF NEXT FindWord = 0 MaxLen = 0 FOR i = 1 TO Words IF LEN(w$(i)) >= MaxLen THEN MaxLen = LEN(w$(i)) FindWord = i END IF NEXT PRINT s$ PRINT w$(FindWord)
Катюха** (04.04.2008)
Катюха**
Нашел пару багов последний вариант
пункт 1
пункт 3
Добавлено через 45 минутКод:CLS DIM w$(100) RANDOMIZE 100 's$ = "О сколько нам открытий чудных готовит просвещенья дух" INPUT s$ First = 1 Words = 0 FOR i = 1 TO LEN(s$) IF ASC(MID$(s$, i, 1)) = 32 THEN Words = Words + 1 w$(Words) = MID$(s$, First, i - First) IF i + 1 <= LEN(s$) THEN First = i + 1 END IF END IF NEXT IF First < LEN(s$) THEN Words = Words + 1 w$(Words) = MID$(s$, First, i - First) END IF FindWord = 0 MaxLen = 0 FOR i = 1 TO Words IF LEN(w$(i)) >= MaxLen THEN MaxLen = LEN(w$(i)) FindWord = i END IF NEXT PRINT s$ PRINT w$(FindWord) DO Word1 = INT((Words * RND) + 1) Word2 = INT((Words * RND) + 1) LOOP WHILE Word1 = Word2 SWAP w$(Word1), w$(Word2) newstr$ = "" FOR i = 1 TO Words newstr$ = newstr$ + w$(i) + " " NEXT PRINT newstr$
Катюха**
Тут посидел - подумал... и понял, если посимвольно переписать исходную строку в результирующую, игнорируя дублирующие пробелы то получим искомый результат.
Пункт 2
Вот решение
Код:s$ = "О сколько нам открытий чудных готовит просвещенья дух" newstr$ = "" IsSpace = 0 For i = 1 To Len(s$) If Asc(Mid$(s$, i, 1)) = 32 Then If IsSpace = 0 Then newstr$ = newstr$ + Mid$(s$, i, 1) IsSpace = 1 End If Else newstr$ = newstr$ + Mid(s$, i, 1) IsSpace = 0 End If Next Print s$ Print newstr$
Последний раз редактировалось Paralax; 06.04.2008 в 00:21. Причина: Добавлено сообщение
Катюха** (05.04.2008)
у Кого нибудь есть прикольный анимированыи рисунок
$Eagle$ (02.12.2008)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)