Модераторы: Akina
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Одномерный массив 
:(
    Опции темы
Shooter
Дата 22.2.2007, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.2.2007

Репутация: нет
Всего: нет



Задан одномерный массив P(N). В данном массиве выполнить:
1.    Увеличить все положительные элементы массива в пять раз, а отрицательные уменьшить на 7. Полученный массив распечатать.
2.    Удалить из вновь образованного массива все элементы, кратные трем. Массив распечатать.
3.    Во вновь образованной последовательности вычислить сумму элементов, стоящих на нечётных местах, и вставить это значение перед каждым элементом, кратным пяти. Значения суммы и вновь обра-зованного массива распечатать.
4.    Элементы полученного массива расположить по убыванию. Массив распечатать.
Помогите кто может, пожалуйста))))))
PM MAIL   Вверх
skeletor
Дата 22.2.2007, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 21.2.2007
Где: Киев

Репутация: нет
Всего: 2



Все эти действия не сложные. Проблема заключаеться в определении массива. В VB - нет типа, определяющего массив. В этом состоим камень преткновения.
PM MAIL WWW ICQ   Вверх
Dexx
Дата 22.2.2007, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 292
Регистрация: 13.6.2005

Репутация: 5
Всего: 7



Вот! Смотри skeletor! и чего нет в VB!? 

Код

Option Explicit

'Задан одномерный массив P(N). В данном массиве выполнить:
'1.    Увеличить все положительные элементы массива в пять раз, а отрицательные уменьшить на 7. Полученный массив распечатать.
'2.    Удалить из вновь образованного массива все элементы, кратные трем. Массив распечатать.
'3.    Во вновь образованной последовательности вычислить сумму элементов, стоящих на нечётных местах,
'      и вставить это значение перед каждым элементом, кратным пяти. Значения суммы и вновь обра-зованного массива распечатать.
'4.    Элементы полученного массива расположить по убыванию. Массив распечатать.


Const n = 20
Dim s As Integer
Dim P() As Integer
Dim K() As Integer
Dim j As Integer
Dim i As Integer
Dim t As Integer
Dim il As Integer
Dim g As Integer

Sub main()

ReDim P(n) As Integer
ReDim K(n) As Integer

Randomize
'Заполняем массив случайными числами
Debug.Print "Исходный массив:"
For i = 0 To n
    P(i) = Int((Rnd * 100) - 50)
    Debug.Print "P(" & i & ") " & P(i)
Next

Debug.Print "1. Положительные *5, отрицательные -7"
For i = 0 To n
If P(i) > 0 Then P(i) = P(i) * 5
If P(i) < 0 Then P(i) = P(i) - 7
    Debug.Print "P(" & i & ") " & P(i)
Next

For i = 0 To n
    If (P(i) Mod 3) <> 0 Then
        K(j) = P(i)
        j = j + 1
    End If
Next




ReDim Preserve K(j - 1) As Integer
Debug.Print "2. Массив без элементов кратных трем"

'Печатаем и вычисляем сумму не четных элементов
For i = 0 To j - 1
    Debug.Print "P(" & i & ") " & K(i)
    If (K(i) Mod 2) <> 0 Then s = s + K(i)
Next

Debug.Print "3. Сумма массива: " & s

Erase P

For i = 0 To j - 1

    ReDim Preserve P(t) As Integer

    If (K(i) Mod 5) = 0 Then
        P(t) = s
        t = t + 1
    End If
    
    ReDim Preserve P(t) As Integer
    P(t) = K(i)
    t = t + 1

Next

Debug.Print "Массив: "

For i = 0 To UBound(P)
    Debug.Print "P(" & i & ") " & P(i)
Next

'Пузырьковая сортировка

For i = 0 To UBound(P) - 1
    il = 0
    
    For j = 0 To UBound(P) - 1
        If P(j + 1) <= P(j) Then GoTo 23
        g = P(j)
        P(j) = P(j + 1)
        P(j + 1) = g
        il = 1
23  Next j

        If il = 0 Then GoTo 231
Next i

231

Debug.Print "Сортируем по убыванию:"

For i = 0 To UBound(P)
    Debug.Print "P(" & i & ") " & P(i)
Next i



End Sub





--------------------

PM   Вверх
Black_Star
Дата 22.2.2007, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 9.9.2003
Где: Minsk

Репутация: 4
Всего: 4



skeletor, а что за проблема в определении массива?

Shooter, советую изучить основы программирования. Такие задачи в школе решают...
PM ICQ   Вверх
Shooter
Дата 22.2.2007, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.2.2007

Репутация: нет
Всего: нет



Цитата(Black_Star @ 22.2.2007,  17:57)
skeletor, а что за проблема в определении массива?

Shooter, советую изучить основы программирования. Такие задачи в школе решают...

если б мне в школе это преподавали я бы не просил о помощи. будь задание на QBasic  я бы сам написал

Добавлено @ 20:47 
Цитата(Dexx @ 22.2.2007,  17:55)
Вот! Смотри skeletor! и чего нет в VB!? 

Код

Option Explicit

'Задан одномерный массив P(N). В данном массиве выполнить:
'1.    Увеличить все положительные элементы массива в пять раз, а отрицательные уменьшить на 7. Полученный массив распечатать.
'2.    Удалить из вновь образованного массива все элементы, кратные трем. Массив распечатать.
'3.    Во вновь образованной последовательности вычислить сумму элементов, стоящих на нечётных местах,
'      и вставить это значение перед каждым элементом, кратным пяти. Значения суммы и вновь обра-зованного массива распечатать.
'4.    Элементы полученного массива расположить по убыванию. Массив распечатать.


Const n = 20
Dim s As Integer
Dim P() As Integer
Dim K() As Integer
Dim j As Integer
Dim i As Integer
Dim t As Integer
Dim il As Integer
Dim g As Integer

Sub main()

ReDim P(n) As Integer
ReDim K(n) As Integer

Randomize
'Заполняем массив случайными числами
Debug.Print "Исходный массив:"
For i = 0 To n
    P(i) = Int((Rnd * 100) - 50)
    Debug.Print "P(" & i & ") " & P(i)
Next

Debug.Print "1. Положительные *5, отрицательные -7"
For i = 0 To n
If P(i) > 0 Then P(i) = P(i) * 5
If P(i) < 0 Then P(i) = P(i) - 7
    Debug.Print "P(" & i & ") " & P(i)
Next

For i = 0 To n
    If (P(i) Mod 3) <> 0 Then
        K(j) = P(i)
        j = j + 1
    End If
Next




ReDim Preserve K(j - 1) As Integer
Debug.Print "2. Массив без элементов кратных трем"

'Печатаем и вычисляем сумму не четных элементов
For i = 0 To j - 1
    Debug.Print "P(" & i & ") " & K(i)
    If (K(i) Mod 2) <> 0 Then s = s + K(i)
Next

Debug.Print "3. Сумма массива: " & s

Erase P

For i = 0 To j - 1

    ReDim Preserve P(t) As Integer

    If (K(i) Mod 5) = 0 Then
        P(t) = s
        t = t + 1
    End If
    
    ReDim Preserve P(t) As Integer
    P(t) = K(i)
    t = t + 1

Next

Debug.Print "Массив: "

For i = 0 To UBound(P)
    Debug.Print "P(" & i & ") " & P(i)
Next

'Пузырьковая сортировка

For i = 0 To UBound(P) - 1
    il = 0
    
    For j = 0 To UBound(P) - 1
        If P(j + 1) <= P(j) Then GoTo 23
        g = P(j)
        P(j) = P(j + 1)
        P(j + 1) = g
        il = 1
23  Next j

        If il = 0 Then GoTo 231
Next i

231

Debug.Print "Сортируем по убыванию:"

For i = 0 To UBound(P)
    Debug.Print "P(" & i & ") " & P(i)
Next i



End Sub


Спасибо огромное, очень помог!!!!)))
PM MAIL   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0456 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.