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

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

Thread Status:
Not open for further replies.
  1. Империал

    Joined:
    11 Mar 2010
    Messages:
    1,224
    Likes Received:
    58
    Reputations:
    1
    Эта директива там стоит по умолчанию.
    Все равно не хочет компилироваться. Выдает очень много ошибок.
    В паскале пытался скомпилировать, тоже ошибку выдал
     
  2. Империал

    Joined:
    11 Mar 2010
    Messages:
    1,224
    Likes Received:
    58
    Reputations:
    1
    При попытке скомпилировать этот код в паскале

    Code:
    const n=5; m=7;
    var i, j, count: integer; x[1..n, 1..m] of integer;
    begin
    randomize();
    for i := 1 to n do
      for j := 1 to m do
        x[i, j] := random(50)-15;
    writeln('Massiv:');
    for i := 1 to n do
    begin
      for j := 1 to m do
        write(x[i, j]):4);
      writeln();
    end;
    count := 0;
    for i := 1 to n do
      for j := 1 to m do
        if x[i, j] < 0 then inc(count);
    writeln('Koli4estvo otritsatelnih: ', count);
    end.
    
    Выдается ошибка Error 4: Duplicate identifier (n)

    С чем это связно? Прошу, пожалуйста помогите мне
     
  3. DooD

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

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    442
    Reputations:
    288
    x:array [1..n, 1..m]... не?
     
  4. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    точно! писал "на коленке", че-то протупил :rolleyes:
     
  5. Империал

    Joined:
    11 Mar 2010
    Messages:
    1,224
    Likes Received:
    58
    Reputations:
    1
    Сейчас попробую, потом отпишусь о результате
     
  6. Империал

    Joined:
    11 Mar 2010
    Messages:
    1,224
    Likes Received:
    58
    Reputations:
    1
    Все равно ошибку выдает. Компилятор слово const не воспринимает
     
  7. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    Империал, вот только что протестил на Делфи, компилится без проблем:
    Code:
    program Project1;
    
    {$APPTYPE CONSOLE}
    
    
    const n=5; m=7;
    var i, j, count: integer; x: array[1..n, 1..m] of integer;
    begin
    randomize();
    for i := 1 to n do
      for j := 1 to m do
        x[i, j] := random(50)-15;
    writeln('Massiv:');
    for i := 1 to n do
    begin
      for j := 1 to m do
        write(x[i, j]:4);
      writeln;
    end;
    count := 0;
    for i := 1 to n do
      for j := 1 to m do
        if x[i, j] < 0 then inc(count);
    writeln('Koli4estvo otritsatelnih: ', count);
    end.
    
     
  8. Империал

    Joined:
    11 Mar 2010
    Messages:
    1,224
    Likes Received:
    58
    Reputations:
    1
    Работает! А если тоже самое запустить в паскале, будет работать?
     
  9. RaZoR

    RaZoR New Member

    Joined:
    28 Jul 2010
    Messages:
    2
    Likes Received:
    1
    Reputations:
    0
    Всем привет. Требуется реализовать простенький эмулятор файловой структуры NTFS с набором простейших функций. ПРимеров в гугле не нашел. Может кто встречал реализации? Или как вообще делать?
     
  10. trembitax

    trembitax New Member

    Joined:
    12 May 2013
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Привет всем! Кто-нидь может помочь с курсовой по программированию(сделать нужно на си):
    С помощью текстового редактора создать файл, длинна которого не превышает 1000 символов.
    Написать программу которая:
    1) Выводит текст на экран.
    2) Определяет количество символов в самом коротком слове.
    3) По нажатию произвольной клавиши поочередно выделяет каждое слово текста, содержащие минимальное количество символов.
    Особенно интересен 3 пункт.
    Я написал только это =(
    Code:
    #include <stdio.h>
    #include <alloc.h>
     void main(void)
     { 
     FILE *f;
     int i,z;
     char n[80],*t. 
     long curpos, length;
     clrscr(); 
     printf("Vvedite im9 faila\n");
     scanf("%s",&n);  f=fopen(n,"rb");
     fseek(f, 0L, SEEK_END);
     length = ftell(f);
     fseek(f, 0L, SEEK_SET);
     t=(char*)malloc((length+1)*sizeof(char));
     for (i=0;i<length;i++) 
     { 
       fscanf(f,"%c",&t[i]);
       printf("%c",*(t+i));  
      }  
    fclose(f);
    free(t); 
    }
     
    #4250 trembitax, 15 May 2013
    Last edited: 15 May 2013
  11. bistreevseh

    bistreevseh New Member

    Joined:
    21 May 2013
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    Вопрос по С (borland C++ builder)

    Уважаемые форумчане, вопрос следующий, если в теле объединения (union) изменить тип данных с short на unsigned short, то при выводе на экран, вместо 2 (при short) выводит 65353. Почему так происходит, есть ли какая-то формула, по которой рассчитывается это число?

    typedef struct { short a; float b; long c;} DataStr;
    void __fastcall TForm1::Button9Click(TObject *Sender)
    {
    DataStr data;
    data.a = 2;
    data.b = 5.23;
    data.c = -3;
    ShowMessage(IntToStr(sizeof(data.a)));
    ShowMessage(FloatToStr(sizeof(data.b)));
    ShowMessage(IntToStr(sizeof(data.c)));
    }
    //---------------------------------------------------------------------------
    typedef union { short a; float b; long c;} StrData;
    void __fastcall TForm1::Button10Click(TObject *Sender)
    {
    DataStr data;
    data.a = 2;
    ShowMessage(IntToStr(data.a));
    data.b = 5.23;
    ShowMessage(FloatToStr(data.b));
    data.c = -3;
    ShowMessage(IntToStr(data.c));
    ShowMessage(IntToStr(data.a));
    ShowMessage(FloatToStr(data.b));

    }
    //---------------------------------------------------------------------------
     
  12. Spot

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

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    short -32767 .. 32767
    unsigned short 0 .. 65535;
    Code:
    data.c = -3;
    ShowMessage(IntToStr(data.c));
    ShowMessage(IntToStr(data.a));
    
    В Union все переменные имеет один и тот же стек. При записи в одну переменную, перезаписываются и другие. когда ты пишешь data.c = -3, так же перезаписывается и в твою переменную unsigned short data.a = -3.
    unsigned short 0 .. 65535 , а ты пишешь отрицательное значение, вот и выбивает тебе максимальное значение для данного типа данных. Так что либо после этого присвой положительное значение, либо убирай эту строчку ShowMessage(IntToStr(data.a));

    Обьяснял на пальцах.
     
  13. bistreevseh

    bistreevseh New Member

    Joined:
    21 May 2013
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    спасибо за ответ, но выходит же не максимальное значения, а максимальное, уменьшенное на 2. В источниках нашёл, что это не рандомное число, а закономерное
     
  14. Spot

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

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Смотри, тип данных unsigned short имеет максимальное значение 65535, а минимальное 0.
    Если ты попробуешь записать в переменную этого типа число например 65538, то у тебя запишется в переменную число 2, так как 65538-65535 = 3 и начиная с первого числа этого типа 0, 1, 2.
    Если мы записываем отрицательно число в такую переменную, то происходит вычитание с максимального значения типа, то есть если ты записываешь в перменную -1, то идёт мы передвигаемся назад и вместо -1 в переменную пишется 65535.
    Если ты записываешь в переменную -4, то пишется 65532. максимально допустимое значение типа + отрицательно число записаное в переменную +1:
    65535 +(negativ_numeric+1) = то что получается на выходе
     
  15. bistreevseh

    bistreevseh New Member

    Joined:
    21 May 2013
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    Ещё вопрос, объяснить бы это с точки зрения теории, почему имеено такая зависимость получается.
     
  16. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    http://ru.wikipedia.org/wiki/Арифметическое_переполнение
     
    _________________________
  17. bistreevseh

    bistreevseh New Member

    Joined:
    21 May 2013
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    Вопрос по лабе С++

    Здравствуйте!
    Есть код:
    typedef struct { short a; float b; char c[16];
    } A;
    A data[] =
    {
    { 200, 25.178, "C++"},
    { -34, 1234.520, "FORTRAN"},
    { 0, 0.000, "Pascal"}
    };
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    text_fl->Clear();
    char buf[256];
    for(int i = 0; i < sizeof(data)/sizeof(A); i++)
    {
    sprintf(buf, "[%5d] : %8.1f (ßçûê: %6s)",
    data.a, data.b, data.c);
    text_fl->Lines->Add(buf);
    }
    }

    Что произойдет, если заменить "i < sizeof(data)/sizeof(A)" на "data.b" И вообще какие преобразования произойдут.
    Изначально при нажатии на кнопку, в окне TMemo появляются три строчки:
    200, 25.178, "C++"
    -34, 1234.520, "FORTRAN"
    0, 0.000, "Pascal"

    Когда я заменил часть кода, то стало выводится две превых строчки, т.е. строчки: "0, 0.000, "Pascal"" нету.
     
    #4257 bistreevseh, 28 May 2013
    Last edited: 28 May 2013
    1 person likes this.
  18. Spot

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

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Ты взрываешь мой мозг. Что ты вообще хочешь сделать или о чем узнать?
    i у тебя типа инт, то есть цельные числа без запятой, а при аком раскладе
    ты не всегда получишь цельное число на выходе. Не совместимость типов. Скушает конечно, но будет херня.

    Сие вообще апофиоз феерии. При каждом проходе у тебя будет i сравниваться со значением переменной в data.b. А в каждой переменной у тебя разное значение.

    Эту строчку не выводит, потому что когда i = 2 в цикле, она сравнивается с data[2].b, равное 0.000 (опять не цельный тип данных!!!), вот и выпрыгивает их цикла, так как 2 больше 0.
     
  19. student2013

    student2013 New Member

    Joined:
    24 May 2013
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Добрый день!

    Нужна помощь в программировании.
    Нужно выполнить задания следующие: (в среде PROLOG)

    Задание здесь http://clip2net.com/s/58FohN (файл в формате doc)


    Оплачу Вашу работу в WMZ.

    Связь А с я 75 - 28 - 48
     
  20. melоman

    melоman New Member

    Joined:
    14 Jan 2010
    Messages:
    10
    Likes Received:
    3
    Reputations:
    1
    Бюджет договорной.

    Задание:
     
Thread Status:
Not open for further replies.