Эта директива там стоит по умолчанию. Все равно не хочет компилироваться. Выдает очень много ошибок. В паскале пытался скомпилировать, тоже ошибку выдал
При попытке скомпилировать этот код в паскале 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) С чем это связно? Прошу, пожалуйста помогите мне
Империал, вот только что протестил на Делфи, компилится без проблем: 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.
Всем привет. Требуется реализовать простенький эмулятор файловой структуры NTFS с набором простейших функций. ПРимеров в гугле не нашел. Может кто встречал реализации? Или как вообще делать?
Привет всем! Кто-нидь может помочь с курсовой по программированию(сделать нужно на си): С помощью текстового редактора создать файл, длинна которого не превышает 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); }
Вопрос по С (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)); } //---------------------------------------------------------------------------
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)); Обьяснял на пальцах.
спасибо за ответ, но выходит же не максимальное значения, а максимальное, уменьшенное на 2. В источниках нашёл, что это не рандомное число, а закономерное
Смотри, тип данных unsigned short имеет максимальное значение 65535, а минимальное 0. Если ты попробуешь записать в переменную этого типа число например 65538, то у тебя запишется в переменную число 2, так как 65538-65535 = 3 и начиная с первого числа этого типа 0, 1, 2. Если мы записываем отрицательно число в такую переменную, то происходит вычитание с максимального значения типа, то есть если ты записываешь в перменную -1, то идёт мы передвигаемся назад и вместо -1 в переменную пишется 65535. Если ты записываешь в переменную -4, то пишется 65532. максимально допустимое значение типа + отрицательно число записаное в переменную +1: 65535 +(negativ_numeric+1) = то что получается на выходе
Вопрос по лабе С++ Здравствуйте! Есть код: 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"" нету.
Ты взрываешь мой мозг. Что ты вообще хочешь сделать или о чем узнать? i у тебя типа инт, то есть цельные числа без запятой, а при аком раскладе ты не всегда получишь цельное число на выходе. Не совместимость типов. Скушает конечно, но будет херня. Сие вообще апофиоз феерии. При каждом проходе у тебя будет i сравниваться со значением переменной в data.b. А в каждой переменной у тебя разное значение. Эту строчку не выводит, потому что когда i = 2 в цикле, она сравнивается с data[2].b, равное 0.000 (опять не цельный тип данных!!!), вот и выпрыгивает их цикла, так как 2 больше 0.
Добрый день! Нужна помощь в программировании. Нужно выполнить задания следующие: (в среде PROLOG) Задание здесь http://clip2net.com/s/58FohN (файл в формате doc) Оплачу Вашу работу в WMZ. Связь А с я 75 - 28 - 48