Студентам с лабораторными сюда (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 20 Jun 2007.

Thread Status:
Not open for further replies.
  1. Pack4

    Pack4 New Member

    Joined:
    28 Jun 2010
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Так что с параллельными задачами, потоками и процессами никто не работает???
     
  2. revenantus

    revenantus New Member

    Joined:
    27 Sep 2010
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    компилятор ругается на uses crt;
    p.s старый добрый турбо паскаль
     
  3. BHYCHIK

    BHYCHIK Member

    Joined:
    30 Jan 2009
    Messages:
    52
    Likes Received:
    28
    Reputations:
    9
    Вроде сам смог написать, помогите баги найти пожалуйста.

    Code:
    program matrix1;
    // Программа считает колличество нулевых
    // элементов матри8цы A ограниченных
    // единичными.
    // Автор Ремень И.В.(ИУ7-12)
    
    {$APPTYPE CONSOLE}
    
    uses
      SysUtils;
    
    const
      Size = 8;
    
    var
      I, J: Integer;                { Переменные цикла                            }
      Num: Integer;                 { Переменная результата                       }
      Reading: Boolean;             { True - считывать                            }
      StartFrom, StopAt: Integer;   { Начало и конец цикла                        }
      term: array[1..8] of Integer; { Колличество прерывающих последовательностей }
      k: Integer;                   { Временная переменная                        }
    
      // Выходная матрица
      A: array[1..Size, 1..Size] of Integer =
      ((0, 1, 1, 1, 0, 1, 1, 1),
       (0, 1, 0, 1, 0, 1, 0, 1),
       (0, 1, 0, 1, 0, 1, 0, 1),
       (0, 1, 0, 1, 1, 1, 0, 1),
       (0, 1, 0, 0, 0, 0, 0, 1),
       (0, 1, 0, 1, 1, 1, 0, 1),
       (0, 1, 1, 1, 0, 1, 1, 1),
       (0, 0, 0, 0, 0, 0, 0, 0));
    
    begin
      // Инициализация значений
      Num := 0;
      Reading := false;
      StartFrom := -1;
      StopAt := -1;
      for I := 1 to Size do
        Term[i] := 0;
    
      // Рассчет начала и конца главного цикла
      for I := 1 to Size do
      begin
        for J := 1 to Size do
          begin
            if (a[i,j] = 1) and (StartFrom = -1) then
              StartFrom := i;
            if a[i,j] = 1 then
            begin
              StopAt := i;
              continue;
            end;
          end;
      end;
      StopAt := StopAt - 1;
      StartFrom := StartFrom + 1;
    
      //Рассчет колличества терминирующих последовательностей
      for I := 1 to Size do
        for J := 1 to Size do
          if (A[I,J] = 1) and (A[I,J+1]=0) then
            Term[i] := Term[i] + 1;
    
      //Вывод матрицы A
      WriteLn('Матрица A:');
      for I := 1 to Size do
      begin
        for J := 1 to Size do
          Write(A[I, J]:3);
        WriteLn;
      end;
      WriteLn;
    
      // Выволнение подсчета нулевых элементов между единичными
      for I := StartFrom to StopAt do
      begin
        K := 0;
        Reading := False;
        for J := 1 to Size - 1 do
        begin
          if (A[I, J] = 0) and (Reading = True) then
          begin
            Num := Num + 1;
            A[i,j] := 2;
          end;
          if (A[I, J] = 1) and (Reading = False) and (A[I, J+1] = 0) then
          begin
            Reading := True;
            K := K + 1;
          end
          else
          begin
            if (A[I, J] = 1) and (Reading = True) and (A[I, J+1] = 0) then
            begin
              Reading := False;
              K := K + 1;
            end;
            if (A[I, J] = 1) and (Reading = False) and (A[I, J+1] = 0) and (K = 2)
              and (term[i] = 3) then
              Reading := True;
          end;
        end;
      end;
    
        //Вывод матрицы A
      WriteLn('Матрица A:');
      for I := 1 to Size do
      begin
        for J := 1 to Size do
          Write(A[I, J]:3);
        WriteLn;
      end;
      WriteLn;
    
      WriteLn('Огорожено единицами ', Num, ' нулевых элементов');
      ReadLn;
    end.
    
     
  4. Nickotin

    Nickotin Elder - Старейшина

    Joined:
    15 Feb 2007
    Messages:
    84
    Likes Received:
    20
    Reputations:
    5
    Всем привет!
    Помогите с кодом.
    есть 2 txt файла, в которых содержатся элементы квадртаной матрицы( размер матрицы произвольный)
    мне нужно считать элементы из каждого файла, чтобы дальше работать с этими матрицами.
    Спасибо
     
  5. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    набросал процедурку, но не проверял:
    Code:
    ------------------------------------------
    type matrix = array[1..100, 1..100] of real;
    ---------------------------------------------
    
    procedure ReadFileToArray(filename:string; var a:matrix);
    var f:TextFile; i,j:integer; c:real;
    begin
    assignfile(f, filename);
    reset(f);
    j:=1;
    while not eof(f) do begin
    i:=1;
    while not eoln(f) do begin
    read(f, c);
    a[i,j]:=c;
    inc(i);
    end;
    readln(f);
    inc(j);
    end;
    end;
    
     
    1 person likes this.
  6. X-Venom

    X-Venom Banned

    Joined:
    29 Apr 2008
    Messages:
    569
    Likes Received:
    365
    Reputations:
    21
    добрый вечер. напишите пожалуйста программу. С или С++

    Дан массив X, создайте массив Y, состоящий из элементов, имеющих четные номера и массив Z, состоящий из элементов, имеющих нечетные номера. Выведите массивы Y и Z на экран.
     
  7. becensed

    becensed Member

    Joined:
    2 Dec 2009
    Messages:
    84
    Likes Received:
    24
    Reputations:
    1
    в каком месте не верно? Посчитай на калькуляторе, потом посмотри, что выводит программа. Потом скажи мне, что там не верно.
     
  8. juzam

    juzam New Member

    Joined:
    18 Oct 2010
    Messages:
    45
    Likes Received:
    2
    Reputations:
    0
    Такой вопрос появился:

    Есть массив чисел количества N. [a0,a1,a2.....aN]

    Вывести пару имеющую минимальную сумму.
     
    #2968 juzam, 24 Oct 2010
    Last edited: 24 Oct 2010
  9. kosmo987

    kosmo987 Member

    Joined:
    28 Apr 2010
    Messages:
    0
    Likes Received:
    6
    Reputations:
    1
    int[] mas = { 56, 32, 89, -5, 23, 1, 0, 45 };
    Array.Sort(mas);
    Console.WriteLine(mas[0]+" "+mas[1]);
     
    #2969 kosmo987, 24 Oct 2010
    Last edited: 24 Oct 2010
  10. juzam

    juzam New Member

    Joined:
    18 Oct 2010
    Messages:
    45
    Likes Received:
    2
    Reputations:
    0
    Ой, забыл уточнить. Извините. На чистом Си и без функций :C

    Просто саму логику в двух словах бы.

    Местами менять нельзя элементы. Скорее всего понадобится и их индексов вывод.
     
  11. kosmo987

    kosmo987 Member

    Joined:
    28 Apr 2010
    Messages:
    0
    Likes Received:
    6
    Reputations:
    1
    ну самый простой алгоритм думаю такой,перебор:
    сравниваем первый элемент с последующими,если находится меньшее число,запоминаем первый и сравниваем оставшиеся элементы с найденным числом и так далее
     
  12. juzam

    juzam New Member

    Joined:
    18 Oct 2010
    Messages:
    45
    Likes Received:
    2
    Reputations:
    0
    Так там по парам, пары идут так a0+a1,a2+a3,a4+a5....
     
  13. Nickotin

    Nickotin Elder - Старейшина

    Joined:
    15 Feb 2007
    Messages:
    84
    Likes Received:
    20
    Reputations:
    5
    Спасибо, мне бы надо использовать библиотеку fstream
     
  14. kosmo987

    kosmo987 Member

    Joined:
    28 Apr 2010
    Messages:
    0
    Likes Received:
    6
    Reputations:
    1
    я тебя не понимаю уже,нормально напиши задание.
    как найти два наименьших числа я написал.находишь их-это и есть пара,имеющая минимальную сумму.
     
  15. becensed

    becensed Member

    Joined:
    2 Dec 2009
    Messages:
    84
    Likes Received:
    24
    Reputations:
    1
    Примерно так:
    Code:
    #include <stdio.h>
    
    #define n 50
    
    void main()
    {
        int i,x,y,
            X[] = {1,2,3,4,5},
            Y[n], Z[n];
    
        for (i=0,x=0,y=0; i<sizeof(X)/sizeof(X[0]); i++) (i%2 == 0) ? (Y[x++]=X[i]) : (Z[y++] = X[i]);
    
        for (i=0; i<x; i++) printf("Y[%d] = %d\n",i,Y[i]);    
    
        printf("\n");
        
        for (i=0; i<y; i++) printf("Z[%d] = %d\n",i,Z[i]);
    }
    Но учти, что в этом примере четный начинается с нуля, т.е. элементы 1, 3 и 5 имеют четные индексы(0,2,4 соотв.). Это чтоб путаницы не возникло (мало-ли).
     
    1 person likes this.
  16. JohnnyBGoode

    JohnnyBGoode Member

    Joined:
    5 Oct 2010
    Messages:
    48
    Likes Received:
    11
    Reputations:
    5
    Code:
    #include <vcl.h>
    #pragma hdrstop
    #include <iostream.h>
    #include <conio.h>
    #include <stdio.h>
    
    //---------------------------------------------------------------------------
    
    #pragma argsused
    int main()
    {
    int i,j;
    int X[20]={2,6,4,7,2,7,2,-4,8,5,0,12,4,35,568,14,543,25,-2,-4};
    int Y[10];
    int Z[10];
    
    cout<<"Элементы с нечетными номерами:"<<endl<<endl;
    for (i = 0; i<20; i++)
    
    {
    if (i%2)  {
    
    Z[i]=X[i];
    cout<<Z[i]<<endl;
    
    }
     }
    cout<<endl;
    cout<<"Элементы с четными номерами:"<<endl<<endl ; //включая нулевой элемент
    
    for (j = 0; j < 20; j++)
    {
    if (!(j%2))  {
    Z[j]=X[j];
    cout<<Z[j]<<endl;
    }
    
    }
    getch();
    	return 0;
    }
     
    1 person likes this.
  17. X-Venom

    X-Venom Banned

    Joined:
    29 Apr 2008
    Messages:
    569
    Likes Received:
    365
    Reputations:
    21
    becensed, JohnnyBGoode спасибо парни, все работает
    а по этому коду что можете сказать :rolleyes:

    Code:
    #include <iostream>
    using namespace std;
    void main()
    {
    int n; cout<<"введите длину массива"; cin>>n;
    int *ms = new int[n];
    if(n%2)
    {
    int n1 = n / 2; int *ms1 = new int[n1];
    int n2 = n / 2; int *ms2 = new int[n2]; 
    } else {
    int n1 = n / 2 + 1; int *ms1 = new int[n1];
    int n2 = n / 2; int *ms2 = new int[n2]; 
    }
    for(int i=0;i<n;i++)
    {
    cout<<"элемент массива";
    cin>>ms[i];
    if(i%2)
    {
    ms1[i/2] = ms[i];
    } else ms2[i/2+1] = ms[i];
    }
    // вывести какнибудь эти ms1, ms2
    }
     
  18. becensed

    becensed Member

    Joined:
    2 Dec 2009
    Messages:
    84
    Likes Received:
    24
    Reputations:
    1
    Мог сказать, что он не будет работать, более того, вряд ли он будет скомпилирован.
     
  19. Nickotin

    Nickotin Elder - Старейшина

    Joined:
    15 Feb 2007
    Messages:
    84
    Likes Received:
    20
    Reputations:
    5
    Подскажите, все же, пожалуйста.
    элементы матрицы в txt файле имеют следующий вид:
    пример
    открыл я файл, создал поток
    ifstream m1;
    m1.open("m1.txt",ios::in);

    каким образом мне дальше определить размерность массива? т.к. она может меняться
    затем я так понимаю нужно создавать динамичиский массив и считывать элементы...
     
  20. zhenya20091

    zhenya20091 New Member

    Joined:
    31 Aug 2010
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    программа нахождения корней в би квадратном уравнении на Delphi . напишите пожайлуста
     
Thread Status:
Not open for further replies.