Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2009, 23:06   #1
asd48
Пользователь
 
Регистрация: 30.11.2008
Сообщений: 32
По умолчанию что тут нужно изменить?

Есть программа на с++, смысл ее в том, чтобы преобразовать вектор W, удалив из него элементы, равные ключу поиска. Размерность вектора произвольная. Она работает, но что мне надо изменить в выделенных строчках, чтобы она работала на VB

Код:
#include <iostream>
#include <math.h>
#include<iomanip>
using namespace std;

int main()
{
int *W,i,m,j,k;
   cout<<"vvedite znachenie k: ";
   cin>>k;
      cout<<"Vvedite razmernost: ";
      cin>>m;
W=new int[m];
        cout<<"Vvedite vector "<<"\n";
 for(i=0;i<m;i++)cin>>W[i];
          cout<<"    Icxodnij massiv"<<endl;	       
          cout<<endl;
for (i=0;i<m;i++)cout<<setw(4)<<W[i]<<"\t";
              cout<<endl;

j=-1;
for(i=0;i<m;i++)
{if (W[i]!=k)
 
if (j!=i)
{
j=j++;
W[j]=W[i];}
else j=j++;
}
 cout<<"    Novij massiv"<<endl;	       
cout<<endl;
for (i=0;i<=j;i++) cout<<setw(4)<<W[i]<<"\t";

 


cout<<endl;
	cout<<endl;
	return 0;
}
Вот код на VB
Код:
Private Sub Command1_Click()
Dim m As Integer, K As Integer
Dim W() As Integer
Dim i As Integer, j As Integer

m = Text1.Text
K = Text2.Text
ReDim W(m)
For i = 0 To m
    W(i) = InputBox("W" & i)
Next

Print "Исходный массив"
For i = 0 To m
Print W(i); "   ";
Next
j = -1
For i = 0 To m
If W(i) <> K And j <> i Then
j = j + 1
W(j) = W(i)
Else
j = j + 1
End If
Next
Print " Новый массив"
For i = 0 To j
Print W(i); "";
Next
End Sub

Последний раз редактировалось MaTBeu; 09.04.2009 в 19:05.
asd48 вне форума Ответить с цитированием
Старый 08.04.2009, 01:25   #2
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

У вас уловия путаются
Код:
//.................
if (W[i]!=k)//начало блока 1
{
  if (j!=i)//начало блока 2
  {
   j=j++;
   W[j]=W[i];
  }// конец блока 2
  else j=j++;// конец блока 1
}
//.............
хоть я VB в первые вижу но наверно так будет
Код:
.......
For i = 0 To m
If W(i) <> K Then//начало блока 1
If j <> i Then//начало блока 2
j = j + 1
W(j) = W(i)
Else // конец блока 2
j = j + 1
End If// конец блока 1
Next .....
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 08.04.2009, 21:47   #3
asd48
Пользователь
 
Регистрация: 30.11.2008
Сообщений: 32
По умолчанию

Да, все заработало, только надо было поставить еще одно End if перед Next
asd48 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачка на Pascal, объясните, пожалуйста, я тут что -то не могу разобраться. Girlo4ka Помощь студентам 6 28.12.2008 15:02
Что нужно изменить, чтоб запрос заработал? Paul Hindenburg PHP 1 08.10.2008 09:45
При вводе значения в ячейку нужно изменить ее размер skobarka Microsoft Office Excel 2 26.09.2008 16:35
Подскажите что тут не так!? dcl Общие вопросы Delphi 5 28.03.2007 08:15