Перевод положительных чисел матрицы в одномерный массив - VB

  1. вроде должно быть так но не работает


textual

Код к задаче: «Перевод положительных чисел матрицы в одномерный массив - VB»

Public Class Form1
    Dim mas(999, 999) As Integer
    Dim n, m As Integer
    Dim i, j As Integer
 
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        load1()
 
    End Sub
    Private Sub load1()
        Dim c
        Dim a() As Integer, mas() As Integer
        Dim d
        n = InputBox("введите n")
        m = InputBox("введите m")
    ReDim mas(n, m)    
 Randomize()
 
        For i = 1 To n
            For j = 1 To m
                mas(i, j) = Rnd() * 100 - 50
 
            Next j
        Next i
        TextBox1.Text = ""
        For i = 1 To n
            For j = 1 To m
 
 
                TextBox1.Text = TextBox1.Text & Format(mas(i, j), "0") & " "
 
            Next
            TextBox1.Text = TextBox1.Text & vbCrLf
        Next
        For i = 1 To n
            For j = 1 To m
               
                If mas(i, j) > 0 Then
 
                    
                    c = c + 1
  ReDim Preserve a(c)
 a(c) = mas(i, j)
                End If
 
            Next
        Next
 
 
 
    End Sub
 
 
End Class

СДЕЛАЙТЕ РЕПОСТ

12   голосов, оценка 4.000 из 5



Похожие ответы
  1. Напишите программу перевода чисел (длиной 8 бит) из одной системы счисления в другую. По программе составьте блок-схему. Перевод из системы по основанию 2 в систему по основанию 10; нужно сделать exe файл

  1. Здравствуйте, помогите ,пожалуйста. Как сделать ввод в текстовое поле только положительных цифр. У меня не хочет работать данный код. Пытался

  1. Помогите пожалуйста перевести код с паскаля на VB.Pascal1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 var a,b:array[1..4] of real;     x,p,s,z:real;     i,j,k:byte; begin writeln('Введите элементы вектора А'); for i:=1 to 4 do  begin   write('a[',i,']=');   readln(a[i]);  end; writeln('Введите элементы вектора B'); for i:=1 to 3 do  begin   write('b[',i,']=');   readln(b[i]);  end; write('x='); readln(x); k:=0; i:=1; p:=1; while(i<=4)and(k=0)do if a[i]+x<0 then k:=1 else  begin   p:=p*sqrt(a[i]+x);   inc(i);  end; if k=1 then  begin   writeln('Значение Z не определено');   exit;  end; k:=0; j:=1; s:=0; for j:=1 to 3 do if b[j]<0 then k:=1 else s:=s+sqrt(b[j]); if (k=1)or (s=0) then  begin   writeln('Значение Z не определено');   exit;  end; z:=p/s; write('Z=',z:0:3) end.

  1. Здравствуйте) Помогите, пожалуйста, переделать код на Visual Basic..не знаком с этим языком..так бы хоть разобрался. А задание следующее: найти сумму положительных элементов, расп-ых впереди первого отриц-ого элементаDelphi1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 var   Form1: TForm1;   massiv: array of integer;   n:integer; implementation  {$R *.dfm}   procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.Clear; n:=strtoInt(InputBox('Размер массива', 'Введите размер массива','0')); SetLength(massiv,n); //установка размера массива end;   procedure TForm1.Button2Click(Sender: TObject); var i:integer; begin for i:=0 to n-1 do  begin   massiv[i]:=strtoint(InputBox('Элементы массива', 'Введите '+inttostr(i+1)+ ' -й элемент массива','0')); //ввод элементов массива   ListBox1.Items.Add(inttostr(massiv[i]));  end; end;   procedure TForm1.Button3Click(Sender: TObject); var i,sum: integer; begin sum:=0; for i := Low(massiv) to High(massiv)  do begin if massiv[i]<0 then  break; sum:=sum+massiv[i]; end; Listbox1.Items.Add('Сумма до 1 отрицательного='+ inttostr(sum)); End; end;

  1. Двумерный массив n*m заполнен рандомно. Определить, есть ли в данном массиве столбец, в котором равное количество положительных и отрицательных элементов. Помогите наладить программу, не могу понять почему определяет местами не правильно.

  1. Интересует перевод такого момента: читаю файл до конца:QBasic/QuickBASIC1 2         char buffer[500];         fscanf(fp, "%s[^ ]", buffer);хотелось бы узнать как можно перевести fscanf...

  1. Помогите пожалуйста решить задачи Даны натуральные числа M, N, k. Написать программу для вычисления суммы целых положительных чисел, больших М, меньших N и кратных k. Полученное число вывести на экран.

  1. Задача была такая написать программу на VB переведя ее с Pascal ABC. Эта программа рисует фрактал Госпера. Сначала я перевел программу на Turbo Pascal. Запустил. Все работает верно. Потом перевел на VB6. Он тоже что-то нарисовал - на фрактал не похож. Анализ. В программе на Паскале одна процедура вложена в другую Там ИНОЙ УРОВЕНЬ ВИДИМОСТИ ПЕРЕМЕННЫХ. Мне такое первый раз встретилось. Не пошел на поклон к Паскалю. Подумал. Чем наши ребята хуже - помогут и подскажут в чем ошибка. Привожу обе программы. Как на Паскале, так и на Бейсике. Верю. Будет фрактал "кривая Госпера" и у нас!!Pascal1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 uses crt, graph; Var Driv : Integer;     Mode : Integer;   procedure D(x, y, l, u: real; t, q: integer); procedure D2(var x, y: real; l, u: real; t, q: integer); begin    D(x, y, l, u, t, q);    x:= x + l * cos(u);    y:= y - l * sin(u) end;   begin    if t > 0 then begin       if q = 1 then begin          x:= x + l * cos(u);          y:= y - l * sin(u);          u:= u + pi       end;       u:= u - 2 * pi / 19;       l:= l / sqrt(7);       D2(x, y, l, u, t - 1, 0);       D2(x, y, l, u + pi / 3, t - 1, 1);       D2(x, y, l, u + pi, t - 1, 1);       D2(x, y, l, u + 2 * pi / 3, t - 1, 0);       D2(x, y, l, u, t - 1, 0);       D2(x, y, l, u, t - 1, 0);       D2(x, y, l, u - pi / 3, t - 1, 1);       end    else       line(round(x), round(y), round(x + l * cos(u)), round(y - l * sin(u))) end;   BEGIN    clrscr;    Driv:= Detect;    InitGraph(Driv, Mode, '');    D(100,355,400,0,4,0);    repeat until KeyPressed;    CloseGraph; END.Это программа на VB6 (перевод с Turbo Pascal)

  1. Это код вычитания двоичных чисел. Помогите пожалуйста перевести его на Visual BasicPascal1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 var sr,sf,ss:string; { вычитание двоичных строк, первое число должно быть >= второго } function BinSub(s1,s2:string):string; var s:string; l,i,j:byte; begin     {выравнивание строк по длине}     if length(s1) > length(s2) then while length(s2) < length(s1) do s2:='0'+s2                              else while length(s1) < length(s2) do s1:='0'+s1;       l:=length(s1); {начало алгоритма вычитания}     s:='';     for i:=l downto 1 do begin        case s1[i] of         '1': if s2[i]='0' then s:='1'+s else s:='0'+s;         '0': if s2[i]='0' then s:='0'+s else begin                 s:='1'+s;                 if (s1[i-1]='1') then s1[i-1]:='0' else begin                    j:=1;                    while (i-j > 0) and (s1[i-j]='0') do begin                          s1[i-j]:='1';                          inc(j);                    end;                    s1[i-j]:='0';                 end;              end;        end;     end;     {Уничтожение передних нолей}     while (length(s) > 1) and (s[1]='0') do delete(s,1,1);     BinSub:=s; end;   begin      writeln('введите 1-е двоичное число:');      readln(sf);      writeln('введите 2-е двоичное число:');      readln(ss);      sr:=BinSub(sf,ss);      writeln('результат вычитания = ',sr); end.

  1. Привет! Отрисовываю дочернее окно (textbox) с установкой ширины и высоты по размеру формы. Но текстбокс получается немного шире и выше, чем форма. Скажите, пожалуйста, где я ошибся в расчетах?